Difference between revisions of "Gen-X 68040"

From C256 Foenix Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 +
At present, the GenX is functionally equivalent to an A2560K without the keyboard.
 +
 
[https://256-foenix.us-east-1.linodeobjects.com/A2560K_UM_Rev0.0.2.pdf Manual]
 
[https://256-foenix.us-east-1.linodeobjects.com/A2560K_UM_Rev0.0.2.pdf Manual]
  
Line 5: Line 7:
 
Notes:
 
Notes:
  
 +
* Both displays show logos, but only display B is responsive.
 +
 +
Startup
 +
 +
* On hard-reset, the FPGA copies the first 64k of flash to $0.
 +
* Post-upload reset leaves that block alone, so you can upload code there.
 +
* Remember that the 68040 has THREE stacks: user, supervisor, and interrupt.  Reset puts you on the interrupt stack.
 +
 +
Memory
 +
 +
* With the latest pre-release FPGA load, burst access to SRAM and flash works in all modes.  This enables use of the MMU and all of the caching modes.
 +
* If you wish to enable the caches, be sure to mark the I/O space as "serialized".  This should technically be done even if you aren't using the dcache.
 
* At present, the DRAM is not stable.
 
* At present, the DRAM is not stable.
 +
* To test your own OS code, upload it to $0000:0000.
 +
 +
I/O
 +
* Power and SD Card LED control bits at GAVIN:0000 (feca) don't appear to work.
 +
* If you wish to enable the caches, be sure to mark the I/O space as "serialized".  This should technically be done even if you aren't using the dcache.
 +
 +
Math Co-Pro
 +
* Unsigned divide seems broken.
 +
* When running out of iCache, you need a NOP between writing the signed divide registers and reading back the result.
 +
 +
vasm
 +
 +
* The 68040 MOVEC cache and MMU control registers are there, but typically without the last letter (R for Register).
 +
* Auto-alignment rules are brain-damaged: the assembler will re-align instructions but not their associated labels, and won't even warn you if constants are mis-aligned. 
 +
** Ha!  The -align option forces natural alignment of data.  This fixes most of the problems. Just be sure to manually re-align after any byte data.

Revision as of 11:44, 17 March 2024

At present, the GenX is functionally equivalent to an A2560K without the keyboard.

Manual

Latest FPGA release:

Notes:

  • Both displays show logos, but only display B is responsive.

Startup

  • On hard-reset, the FPGA copies the first 64k of flash to $0.
  • Post-upload reset leaves that block alone, so you can upload code there.
  • Remember that the 68040 has THREE stacks: user, supervisor, and interrupt. Reset puts you on the interrupt stack.

Memory

  • With the latest pre-release FPGA load, burst access to SRAM and flash works in all modes. This enables use of the MMU and all of the caching modes.
  • If you wish to enable the caches, be sure to mark the I/O space as "serialized". This should technically be done even if you aren't using the dcache.
  • At present, the DRAM is not stable.
  • To test your own OS code, upload it to $0000:0000.

I/O

  • Power and SD Card LED control bits at GAVIN:0000 (feca) don't appear to work.
  • If you wish to enable the caches, be sure to mark the I/O space as "serialized". This should technically be done even if you aren't using the dcache.

Math Co-Pro

  • Unsigned divide seems broken.
  • When running out of iCache, you need a NOP between writing the signed divide registers and reading back the result.

vasm

  • The 68040 MOVEC cache and MMU control registers are there, but typically without the last letter (R for Register).
  • Auto-alignment rules are brain-damaged: the assembler will re-align instructions but not their associated labels, and won't even warn you if constants are mis-aligned.
    • Ha! The -align option forces natural alignment of data. This fixes most of the problems. Just be sure to manually re-align after any byte data.