Projects :


    uCLinux  NEW


Last update:


s5linbox.jpg (4356 bytes)                          Back     Home

S5linBOX boot

Flash partitioning support,
BOOTP/TFTP Ethernet download support,
Flash write support,
Automatic boot from flash or network (BOOTP/TFTP),
Compressed image boot.  >>>>> NEW in V0.2 <<<<<

Download V0.1 binary file (to run from flash or network) 
Download V0.1 S19 file (for JTAG download)

Download V0.2 binary file (to run from flash or network)
Download V0.2 S19 file (for JTAG download)


We use S5LinBOX boot to get programs from Flash or network and make them running.
It includes also flash organizing tool, which makes booting from flash or network and writing
to flash simple job. We must download boot program (uclboot.S19) to RAM at address 0x0
using JTAG cable and OCD_Commander to run it for first time.

Boot program is resident in lower part (64KB) of onboard flash. It starts running after reset.
After initialization it waits for any key from the console (UARTA) for 3 seconds. At the
same time it broadcasts BOOTP request over Ethernet to find if there is an BOOTP server
on the network which has boot file for us. If any key pressed in this time interval we will get
Boot prompt. After this waiting time expires we check if we got any response to our BOOTP
request. If Yes then we proceed with TFTP file transfer from BOOTP server and run
downloaded program. If we did not get any response from our BOOTP request we proceed
with boot from flash, based on flash partitioning table.

Init uart
Init txd 100
Init lan
Init mac
Press any key for boot prompt .
S5LinBOX boot (V0.1, S57MMK 12/2002)
Flash, Bootp, Tftp, Go_downloaded, go_fRom_flash, myIp, txDelay, bOot_files :

Heart of boot program is flash partitioning table. It resides in serial EEPROM at offset of
2048 bytes. Table has maximum 10 entries. Each entry includes partition name (char file_name[12]),
partition offset (U32 flash_addr), partition run address (U32 run_addr) and partition length
(U32 max_len). Partition run address is the address in RAM where we copy the contents off the
partition and run. We can build or edit partition table with command "bOot_files" from boot
prompt. Partition name is important when we are booting from the network using BOOTP/TFTP.
After we get response to our BOOTP request we check if returned file name exists in partition
table. If Yes then we use information from partition table for that file to copy and run. The name is
also important when we are writing a file to flash after downloading from network.

Clear, List, Add, Delete, Edit, Flash_boot_default, Quit [] : _

With command "C" we can clear whole partition table. With "L" we list the table. With "A" we
add new entry to table. We can delete or edit existing entry with command "D" or "E" and with
table entry number. With "F" we mark flash file as default boot file. That file will be automatically
booted if no key pressed or BOOTP response after reset. Here is typical example of partition table:

Clear, List, Add, Delete, Edit, Flash_boot_default, Quit [] : l
   File    Flash_add Run_add Max_len
0: uclboot 00000     00000   10000
1: config  10000     00000   10000
2: uclinux 20000     08000   1D0000
3: etnc13  1F0000    00000   10000 Default boot
Clear, List, Add, Delete, Edit, Flash_boot_default, Quit [l] :

From boot prompt we can send Bootp request to check our bootp server availability. If we get
response its information is used for possible subsequent TFTP file transfers. With Tftp command
we download file from our bootp/tftp server to RAM address 0xC00000. Downloaded file can
be run or written to flash.

One can write downloaded file to Flash if its name exists in flash partition table. Information from
the table is used to erase and program appropriate flash segments. There is no way to write
downloaded file to flash if it is not included in partition table.

One can run downloaded file from boot prompt with command "Go_downloaded". If downloaded
file name does not exist in partition table we will be asked for run address.

One can run program for any flash partition with command "go_fRom_flash". We will be prompted
with default boot file name. If we agree just press enter, otherwise enter any file name from the
partition table.

Command "myIp" allows us to change default boot time IP number ( Note that bootp
request uses broadcast method to find bootp server on the network. After it get reply it changes
IP address accordingly.

Using command "txDelay" we can change txdelay parameter for on board scrambler. At the same
time one can choose between "auto enable" or "no auto enable" hdlc operation. Use "no auto enable"
when you have ax25 link to older SuperVozelj nodes with Zilog SCC chips. (This option is only
temporarily included here until I make I2C support under uClinux).

Back  Home