Angel and Angelboot together make a simple but effective boot loader that can upload a kernel and RAMdisk to a target device from a host then run them. Angel is the code that lives on the device that gets started on boot and Angelboot is the program that runs on the host and manages the upload. Angel is in fact part of the ARM SDT and can be used as a debugger in that environment. Angelboot allows it to be used outside this environment.
The Windows Jflash code 'SA-1110 Development Board, JTAG Programming Software v0.3' to give it its full title, can be downloaded from: http://developer.intel.com/design/strong/swsup/SA1110Jflash.htm whilst Jflash-linux is obtainable from: ftp://ftp.netwinder.org/users/n/nico/SA1110Jflash.tgz.
Copy dot.angelrc and Angelboot from the CD to your development directory and rename dot.angelrc to .angelrc. .angelrc is now classified as a hidden file so your filer may hide it from you. You will however, need to edit .angelrc to match your device. so that it has the following settings:
This is an example for an Assabet board
base 0xc0008000 |
The meaning of these settings is as follows:
The base address is the address in target memory that the kernel is loaded to. The file loaded is zImage in the current directory;
entry is the address in target memory that gets jumped to when the loading is complete. For the kernel this is normally the same as the load address;
r0 is what will be in register r0 when the kernel is started - this is normally zero;
r1 is what will be in register r1 when the kernel is started - this is normally the architecture number for the device;
device is the device to use for the upload - normally a serial port such as /dev/ttyS0;
options are the serial port settings to use after the upload is complete - these should match your minicom settings;
baud is the serial speed to use for the upload;
otherfile is the name of a second file to upload - normally the RAMdisk;
otherbase is the address in target memory that otherfile is loaded to;
exec allows a command to be executed once the upload is completed - normally starting your serial communication program.
Make sure your device is ready and that the serial port is connected. Run:
./angelboot
Angelboot will run using the config in .angelrc. You should see the following:
Initialising execution environment. |
Downloading other image size 0x26935d to 0xc0800000 |
Obvisouly the sizes and number of lines of dots and stars vary with the size of the uploaded images and the target addresses are what you specify in .angelrc.
The device should now be running, booting the kernel and using the RAMdisk as the root filing system. If you specified an exec line to run your serial program then it will start and show you the kernel boot info and login prompt.