Replacing the bootloader

The stock wma11b comes with a simple bootloader that does nothing except basic hardware configuration and loading of the Linux kernel from flash. My main focus with the wma11b has always been to replace this bootloader with an alternative that allows downloading of new kernels via the serial port or ethernet connection.

I'm pleased to announce the availabilty of a patch for U-Boot that adds the wma11b as supported platform.

Download

u-boot-1.1.4-wma11b-0.2.patch.gz

Quick start:

$ tar xvjf u-boot-1.1.4.tar.bz2
$ patch -p0 < u-boot-1.1.4-wma11b-0.1.patch
$ cd u-boot-1.1.4
$ make wma11b_config
$ make CROSS_COMPILE=arm-linux-

Changes

u-boot-1.1.4-wma11b-0.1 - March 2006
- Initial release

u-boot-1.1.4-wma11b-0.2 - October 2006
- TEXT_BASE changed from 0xa0080000 to 0xa0e00000 to move u-boot to the end of RAM so the kernel can go in the standard location 0xa0008000 instead.
- Kernel command line arguments now stored at 0xa0000100.

Current Work

On my TODO list (these won't be done anytime soon):

Sample serial output

U-Boot 1.1.4 (Mar 10 2006 - 23:30:21)

U-Boot code: A0080000 -> A009524C  BSS: -> A0098FA4
RAM Configuration:
Bank #0: a0000000 16 MB
Bank #1: a4000000  0 kB
Bank #2: a8000000  0 kB
Bank #3: ac000000  0 kB
Flash:  2 MB
In:    serial
Out:   serial
Err:   serial
wma11b> help
?       - alias for 'help'
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dhcp    - invoke DHCP client to obtain IP/boot params
echo    - echo args to console
erase   - erase FLASH memory
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print online help
iminfo  - print header information for application image
imls    - list all images found in flash
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loop    - infinite loop on address range
md      - memory display
mm      - memory modify (auto-incrementing)
mtest   - simple RAM test
mw      - memory write (fill)
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sleep   - delay execution for some time
tftpboot- boot image via network using TFTP protocol
version - print monitor version
wma11b> dhcp 0xa0100000 uImage
dm9000 i/o: 0x10000000, id: 0x90000a46 
MAC: 00:06:25:0e:cf:2e
operating at 100M full duplex mode
BOOTP broadcast 1
DHCP client bound to address 192.168.0.116
TFTP from server 192.168.0.1; our IP address is 192.168.0.116
Filename 'uImage'.
Load address: 0xa0100000
Loading: #################################################################
         #################################################################
         #################################################################
         ################################################
done
Bytes transferred = 1242769 (12f691 hex)
wma11b> imi 0xa0100000

## Checking Image at a0100000 ...
   Image Name:   Linux Kernel Image
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1242705 Bytes =  1.2 MB
   Load Address: a0100000
   Entry Point:  a0100000
   Verifying Checksum ... OK
wma11b>

[ Home Page ]

By Andrew Wild | Visitor Statistics | Portugal Holiday
This file last modified Sunday, 22-Oct-2006 13:41:52 BST