Welcome, Guest. Please login or register.

Author Topic: Fido1100 MCU  (Read 2819 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline FantomaTopic starter

  • Newbie
  • *
  • Join Date: Jun 2007
  • Posts: 7
    • Show all replies
Fido1100 MCU
« on: January 25, 2008, 10:51:57 AM »
I encountered the Fido1100 (http://www.innovasic.com/fido.htm) completely by accident while looking for details on why the Coldfire is different to the original 68k core.  It claims to be completely CPU32+ compatible and from what I can find that means an 020 with a couple of extra bitfield instructions and addressing modes (or alternatively missing those features, depending on what you read).  
I couldn't find any mention of it on the forums so I thought i'd mention it and maybe someone technical can see if it is actually compatible with the 68k and could be used in a Minimig environment.  
 

Offline FantomaTopic starter

  • Newbie
  • *
  • Join Date: Jun 2007
  • Posts: 7
    • Show all replies
Re: Fido1100 MCU
« Reply #1 on: January 25, 2008, 11:21:31 PM »
I don't know about the level of instuction compatibility but after reading a bit more regarding the memory map in the user guide it seems you can relocate all the internal memory and registers *except* for the flash residing at $0->$FFFFF (Only 256K is present however).  That space is reserved for chip ram so it seems like a complete show stopper.

It looked promising too. :(
 

Offline FantomaTopic starter

  • Newbie
  • *
  • Join Date: Jun 2007
  • Posts: 7
    • Show all replies
Re: Fido1100 MCU
« Reply #2 on: January 27, 2008, 10:09:30 AM »
Even though having the flash at $0 is pretty much fatal I checked with this [http://piru.dyndns.org/~p/coldfire-v4-m68k.txt] coldfire->68k missing features list to find out what to check for.  I figured Coldfire is so cut down that compared to CPU32 nothing else would be missing, someone else with far more patience should be able to find more incomplete features than I could.

I assumed the addressing modes were correct and didn't look into this much as the guide doesn't list any definite info.  (It references 'core addressing modes' but links to nowhere, plus the m68000 reference guide doesn't explicitly say that CPU32 does not have every addressing mode the 68000 does.)

*Opcodes missing sizes* - All OK
*Completely missing opcodes* - Some exceptions
There are only 5 BCD instructions, The Fido has the original '000 ABCD, NBCD & SBCD but does not have PACK & UNPK which first appeared in the '020.
All the bitfield operations that first appeared in the '020 (FCHG, BFCLR, BFEXTS, BFEXTU, BFFFO, BFINS, BFSET & BFTST) are not present.

(From the Motorola M68000 Family Programmer’s Reference Manual - section 7.1)
''The CPU32 can execute object code from an MC68000 and MC68010 and many of the instructions of the MC68020.
There are three new instructions provided for the CPU32: BGND, LPSTOP, [TBLS, TBLSN, TBLU, and TBLUN]).
The MC68020 instructions not supported by the CPU32 are BFCHG, BFCLR, BFEXTS, BFEXTU, BFFFO, BFINS, BFSET, BFTST, CALLM, CAS, CAS2, cpBcc, cpDBcc, cpGEN, cpRESTORE, cpSAVE, cpScc, cpTRAPcc, RTM, PACK & UNPK.''

So to me it appears that the Fido could function as a souped up 66Mhz 68000 but other things that still are a mystery are;
* Freeing up of location $0 - I don't think it is possible to get the Amiga to mark the first 1M as 'do not use' seeing as it is meant to be chip ram?  Maybe if the Kickstart was modified and only system friendly apps were used but whats the point of it if no games will work?
* No floating point unit - Can a 68881/2 be added, there is no mention of it in the user guide.
* External interfacing - The pin outs are odd, full 30 bit address bus but only 16 bit data bus. (plus SDRAM refresh logic is built in?)
* The extra features such as built in ethernet could be useful, what would be more useful would be configuring the UICs to become the extra 16 bits of the data bus.

If someone could get their hands on one they could make a board and get it to replace the cpu on an a500 just as a test.  It says it is 5v tolerant so it could (maybe) work if the addr $0 problem can be resolved.