DSTni-LX Bootstrap Notes

What is the sequence of events when a DSTni-LX boots? How long does it take to boot?



11-Dec-02 Release 1.0
DSTni-LX Bootstrap Notes
This set of informal notes provides information in response to questions about the operation of the DSTni-LX bootstrap.


1)      What happens on power-up or reset and how much time elapsed before the bootstrap
begins loading or starting an application? The bootstrap will perform the following
activities:

a.      Perform a byte-wide checksum over the range of the bootstrap code space
(FF800 through FFFFF for 20-bit mode, FFF800 through FFFFFF for 24-bit 
mode). The expected result of the sum is zero. The topmost byte of the 
address range is the checksum.

b.      Perform a pattern test over the on-chip Static RAM address range (00000 
through 3FFFF). This consists of 6 passes over the range. The first pass 
performs word writes to fill the 128K words with the pattern AAAAh. The 
second pass verifies the AAAAh pattern. The third pass fills the range with 
5555h. The fourth pass verifies the 5555h pattern. The fifth pass fills the range 
with 0000h. The sixth pass verifies the entire on-chip RAM is zero.
The LED0 PIO pin is driven active during the RAM test period.

c.      Copy the initialized data segment from the bootstrap code space to its data 
space located at 00400h through 007FFH. This is done as a word string move 
loop.

d.      Poll serial port 0 for 1 second, testing for the presence of a host computer 
attempting to communicate with the bootstrap. If a valid character sequence is 
received within this time, begin the process to load and execute a binary 
image from the serial port. If the expected character sequence is not received 
within 1 second, proceed to the next bootstrap step.

e.      Check for the presence of the signature (‘FC-1’) in parallel flash (location 
FF7E0 for 20-bit mode, FFF7E0 for 24-bit mode). If signature is present, 
perform a far jump to location FF7E:0000 (20-bit mode) or FFF7:00E0 (24-bit 
mode), starting the application in parallel flash. If signature is not present, 
proceed to the next bootstrap step.

f.      Initialize the SPI device and perform a 264 byte read operation from Page 5 of 
the Atmel serial flash. Check the data for the presence of a valid DSTni binary 
file header. If the header is valid, proceed to load the file from SPI flash to on-
chip RAM. Perform a 16-bit checksum during the load process. If the 
checksum is zero upon completion of the load, jump to start address stored in 
the file header. If a valid header is not found or the checksum fails, proceed to 
the next bootstrap step. The bootstrap runs the SPI channel at 933MHz.

g.      There are no valid boot sources available. Remain in a loop constantly polling 
serial port 0 for a download attempt from a host computer.

We have the following timing measurements:

·       Elapsed time from end of reset to end of internal RAM test: 101ms
·       Elapsed time polling serial port 0: 1000ms
·       Elapsed time from end of RAM test to start of load from SPI flash: 1150ms
·       SPI flash load speed: 115K bytes/sec
·       Worse case (5 wait states) copy speed from parallel flash to RAM using 16-bit string move: 16.6M bytes/sec

Some extra notes:
·       The bootstrap does not attempt to test external RAM.
·       For parallel flash execution, the bootstrap initializes the upper memory 
chip select to the worse case wait-state value, 5 (120ns per cycle). If the 
parallel flash being used can run faster, the application code can, during its 
startup, reprogram UMCS to access parallel flash faster.




[Originally Published On: 12/16/2002 03:39 PM]