[Avila] Redboot via ethernet
Jim Thompson
jim at netgate.com
Thu May 24 14:12:00 EDT 2007
David Boreham wrote:
> Probably a very dumb question (it's been 15 years since
> I last worked with embedded systems...) but on a from-the-factory
> board flashed with redboot and uclinux is there a way
> to either force redboot to talk via ethernet ? Mine boots all
> the way into Linux and I can telnet to it in that state.
> I'd like to tell it to drop back to redboot, or alternatively
> have some way to force redboot to halt before it boots
> linux.
>
> Can this be done, or do I need to break out my serial cable
> from behind the glass panel on the wall ?
in theory you can re-write the redboot configuration area from linux and
eliminate the 'startup script' that actually loads and boots linux.
The format is pretty simple, just a series of tagged data with a header
and checksum.
The linux that comes loaded on flash reports:
IXP4XX-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0x7e0000
6 RedBoot partitions found on MTD device IXP4XX-Flash.0
Creating 6 MTD partitions on "IXP4XX-Flash.0":
0x00000000-0x00080000 : "RedBoot"
0x00080000-0x001c0000 : "zimage"
0x001c0000-0x004e0000 : "ramdisk"
0x004e0000-0x007e0000 : "unallocated"
0x007e0000-0x007ff000 : "FIS directory"
0x007ff000-0x00800000 : "RedBoot config"
and...
# ls -l /dev/mtd*
crw-rw-rw- 1 0 0 90, 0 /dev/mtd0
crw-rw-rw- 1 0 0 90, 2 /dev/mtd1
crw-rw-rw- 1 0 0 90, 4 /dev/mtd2
crw-rw-rw- 1 0 0 90, 6 /dev/mtd3
brw-rw-rw- 1 0 0 31, 0 /dev/mtdblock0
brw-rw-rw- 1 0 0 31, 1 /dev/mtdblock1
brw-rw-rw- 1 0 0 31, 2 /dev/mtdblock2
brw-rw-rw- 1 0 0 31, 3 /dev/mtdblock3
crw-rw-rw- 1 0 0 90, 1 /dev/mtdr0
crw-rw-rw- 1 0 0 90, 3 /dev/mtdr1
crw-rw-rw- 1 0 0 90, 5 /dev/mtdr2
crw-rw-rw- 1 0 0 90, 7 /dev/mtdr3
# mknod /dev/mtd4 c 90 8
# mknod /dev/mtdr4 c 90 9
# mknod /dev/mtd5 c 90 10
# mknod /dev/mtdr5 c 90 11
# cat /dev/mtd5
-zN
boot_script
boot_script_databoot_scriptfis load ramdisk
fis load zimage
exec
boot_script_timeoutboot_scriptbootpbootp_my_gateway_ipbootp
bootp_my_ipbootp@(bootp
_my_ip_maskbootpbootp_server_ip@(console_baud_rateB
gdb_port#(info_console_for
ceinfo_console_numberinfo_console_force
net_debug
# net_devicenpe_eth0h0^-^-1
You'll need to write the little utility that properly configures the
area, of course.
You could also try to telnet to 192.168.3.2 (the factory default), port
9000 in the 2.5 seconds before linux starts booting. :-)
Jim
More information about the Avila
mailing list