Homepage Johann Hanne 
Valid XHTML 1.0 Strict
About | Projects | Gadgets | Photos | Links
Projects - uClinux on the CX82100 - Bootloader 

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.