The bootloader (called cnxt-boot-ldr) for the CX82100 is taken from
the Actiontec Dual PC modem. It has
been written by Conexant and extended by Actiontec. The latest Actiontec
firmware (2.0.0.0.19n-R7000M from 10/20/03) contains version 0.9. Below
is the source code (GPL) of version 0.9.1.
Attention:
This bootloader does work. However, you must not upgrade the bootloader
via the disaster recovery method (which works by pressing the reset
button for five seconds immediately after powering the device). The problem
is that the bootloader runs directly from flash (i.e. without copying itself
to RAM first) and if you change the flash contents while it is running,
it will crash. This will effectively destroy the bootloader and make
the device unbootable.
Again: The only way to upgrade the bootloader is from a Linux already
running on the device. Upgrading it via disaster recovery (i.e. while
the bootloader itself is still running) will destroy it and make the
device unbootable.
If the bootloader works for you, there is zero reason to update it. It's
only here if you want to do some development or if you want to boot uClinux
on a device not already running it (e.g. the Linksys BEFSX41).
cnxt-boot-ldr 0.9.1 source code:
cnxt-boot-ldr-0.9.1.tar.bz2
Patches:
- Fixes:
The original bootloader uses some parts of the Linux kernel in a way
which does not compile with current kernels. This patch is a quick workaround
which only changes some includes so it does work. It should really be fixed
to compile without kernel includes being installed.
- Netboot:
This extends the bootloader to not only being able to reflash the
device via tftp but to also being able to load a kernel image via tftp and
boot it directly. If a filename is received in the bootp reply
(i.e. if there is a 'filename "linux.bin";' line in dhcpd.conf), this
kernel will be downloaded and booted. If no bootp filename is received,
files named 'boot-ldr.bin', 'linuz' and 'romdisk.img' will be downloaded
and written to flash (this is supposed to work with the Actiontec
DPCM only due to flash chip support limitations).
For now, this patch will always do tftp downloads
(i.e. not only when the button is pressed) and never boot from flash.
This is because every CX82100 board seems to have the button on
a different GPIO line. I will compile different bootloaders for
all the boards at a later time.
|