
DS80C400 Network Microcontroller
74 of 96
Now armed with an IP address and TFTP server IP address, the DS80C400 tries to find code to be loaded into
external program memory. The TINI400 ROM first requests to read the file from the TFTP server coinciding with its
unique physical MAC address (e.g., 006035AB9811). If the request is denied, it issues a second, less specific,
request to read the filename associated with the TINI400 ROM revision (e.g. TINI400-1.0.1). If this request is
denied, then lastly it attempts to read from the TFTP server the file ‘TINI400.’ Using this strategy, the TFTP server
operator can distinguish between different devices and/or different releases of the TINI400 ROM firmware.
After successfully locating the desired file on the TFTP server, the DS80C400 must transfer and program the file
into external memory. Currently, the DS80C400 only offers programming support for SRAM and AMD compatible
flash memory devices. The NetBoot code expects the transferred file to be in the Dallas
tbin2
format. The
tbin2
format consists of one or more records, allowing binary concatenation of multiple images into one file.
Figure 16
illustrates the
tbin2
file format.
For each 64kB bank to be programmed, the TINI400 ROM first performs a CRC-16 of the current memory bank
contents. If the CRC-16 of the current memory matches the data to be programmed, the bank is left alone. If the
CRC-16 differs, it performs a couple of write/read-back operations to assess whether the bank is flash or SRAM
and then executes the erasure (if flash) and programming.
After completion of the TFTP server file transfer and programming of external memory, the NetBoot process
concludes by updating a ‘previous TFTP success’ flag and executing the ROM find-user-code routine.
If either DHCP or the TFTP transfer fail, the NetBoot code checks whether the TFTP transfer has been successful
in a previous attempt. If so, the TINI400 ROM exits NetBoot and transfers execution to the find-user-code routine. If
the TFTP transfer has not been successful in the past, the TINI400 ROM allows the watchdog timer to reset the
DS80C400.
Figure 16. Dallas
tbin2
Record and File Format
Find-User Code
The TINI400 ROM firmware attempts to find valid user code by searching for specific signature bytes at the
beginning of each 64kB block of memory. The search begins at address location C00000h and continues
downward through memory in decrements of 64kB until executable code is located or failure occurs (search
terminates at 000000h). For the find-user-code routine to judge a block of memory as valid executable code, it
must be tagged with the signature bytes shown in
Figure 17
.
VERSION
TARGET ADDRESS (3) LENGTH-1 (2) CRC-16 (2)
BINARY DATA (LENGTH)
tbin2 record
tbin2 record
tbin2 record
tbin2 record
tbin2 record
.
.
.
tbin2 record
tbin2 file
FIELD
FORMAT
(NOTES)
Version:
01h (versions other than 01h reserved for future use)
Target Address:
LSB, MSB, XSB (target addresses > FF0000h reserved)
Length-1:
LSB, MSB
CRC-16:
LSB, MSB
Содержание DS80C400
Страница 6: ...DS80C400 Network Microcontroller 6 of 96...
Страница 7: ...DS80C400 Network Microcontroller 7 of 96...
Страница 15: ...DS80C400 Network Microcontroller 15 of 96...
Страница 16: ...DS80C400 Network Microcontroller 16 of 96 l...
Страница 22: ...DS80C400 Network Microcontroller 22 of 96 OW PIN TIMING...