Recently I started experimenting with u-boot with an intention to learn it’s internals. My old ATngw100 broad came very handy for some real world experiments. I started with setting up a development for AVR32 based embedded systems – I must say the ‘process’ is pretty easy today, just need few hours of reading online! I setup the following on my debian lenny for the development of a u-boot application on ATngw100.
1) Downloaded Buildroot for AVR32 and baked it for cross development tool chain, u-boot, Linux kernel and root fs for AVR32.
2) Using GTKTerm I could hook to ATngw100 board and I familiarized with the u-boot shell commands and environment variables.
3) Installed and configured tftp, DHCP and NFS packages on debian lenny. tftp is useful to transfer binary images to u-boot environment on board. DHCP can provide dynamic configuration parameters the monitor program. This was necessary as I was trying to implement a manufacturing software download application for this hardware. NFS is handy for application development when we frequently change our root fs. Every thing went perfectly alright.
4) Now I need a way to reflash the boot loader, the very initial software on the board. I used Atmel flash upgrade utility to self program the u-boot from the u-boot console itself. This is a risky ‘task’ if you don’t have a AVR JTAGICE mkII because it can spoil your day if the programming is interrupted for some reason!
5) Installed QEMU on debian lenny. Booting u-boot on QEMU is very helpful for functional testing in host PC.
We are ready to experiment with uboot on Host PC as well as on target to explore the source.