Bootloader

Quick Update

Work on my new bootloader is going well, I have to functions to talk to the Flash EEPROM working properly, booting from USB seems to be working 100% now, and I can now read and boot from the NAND memory. An example is show below.

Happy Days Are Here Again

Hardware SetupHardware SetupNot everything was going well today. The hard drive in the my linux box is failing, I'm guessing the bearing have worn out, causing it to overheat and fail. I had a frantic few hours last night backing up all my data. Its not just the code for the bootloader I'm currently working on, its all the code I have written for the RS Media. Some of which serves as documentation for the things I have discovered about the RS Media.

I ask for ID

Today, I finally got the my bootloader to read the Silicon ID details from the Flash EEPROM.

Nocturnal's RS Media BootLoader - Ver 0.2 (12/09/2007)
Flash EEPROM : Manufacturer ID = 00C2 Device ID = 22BA
MC9328MXL Silicon ID = 00000003

Bootloader Frustration

New BootloaderNew BootloaderI'm getting extremely frustrated trying to modify the RS Media's Bootloader. I'm pretty certain I have located the section that determines how many bytes to load, and it still won't load the newer kernel. So either, there is something else I am missing, or the newer kernel image I have is damaged. So I've decided to try a little something different, I'm writing my own bootloader. At the moment all it does is print a pretty menu.

Its not as large an undertaking as it sounds. The board support package contains sample bootloader code (which incidentally, is what the RS Media's bootloader is based off. Must remember to contact FreeScale and ask them what licensing the code is covered by), so most of the bootloader code will come straight from the sample code, with some modifications to fit the RS Media.

Whoops!

Well, I've spent the last few days going through the bootloader in a disassembler. So far I cannot for the life of me figure out where the bootloader is determining how many bytes to load for the kernel.

I have, however, along the way changed the image (the one that shows when you turn the power on) from the WowWee logo to something else. I have also managed to get the bootloader stuck in a perpetual loop, executing itself over and over and over, while trying to load the kernel. Which was fun.

I'm getting very tired of staring at stuff like this...

 
ROM:00005950                 LDR     R2, =0x8FF2A7C
ROM:00005954                 MOV     R3, #0x800      @ 2048
ROM:00005958                 STR     R3, [R2]
ROM:0000595C                 B       loc_596C        @ Str Add "Manu ID = "
ROM:00005960 @ ---------------------------------------------------------------------------