U-Boot
U-Boot Port
An experimental U-Boot port for the iPod nano (2nd generation), iPod nano (3rd generation), iPod nano (5th generation) and iPod nano (7th generation) lives at https://github.com/freemyipod/u-boot/tree/s5l87xx .
It can be started using wInd3x and will start up a CDC-ACM serial console over USB for debugging purposes. Currently it has no storage driver.
The current port expects to be loaded in place of retailOS, eg. by packaging it into an IMG1 and sending it to WTF. This is what wInd3x does. This way, U-Boot does not have to do any of the 'annoying' early boot stuff like bringing up DRAM.
Configuring
make apple_n36_defconfig # iPod nano (2nd generation) make apple_n46_defconfig # iPod nano (3rd generation) make apple_n33_defconfig # iPod nano (5th generation) make apple_n31_defconfig # iPod nano (7th generation)
Building
make CROSS_COMPILE=arm-none-eabi-
Running
After building, connect your iPod in DFU Mode and use wInd3x to start U-Boot:
./wInd3x cfw run u-boot.bin
When successfully started, U-Boot will then enumerate as yet another DFU device, this time ready to receive an U-Boot compatible image. You can load an image using dfu-util:
dfu-util --device 05ac:8007 --download foo dfu-util --device 05ac:8007 --detach
Note the --detach command: this is needed to get U-Boot to exit DFU mode and actually execute the image.