Topic: bootloader (chumby boot process)

Hi all,

I really do not know whether this question should be posted in the hardware section or not. It does concern the bootloader so I figured i could ask it here.
Anyway, I'm new to embedded systems and I was looking at the bootloader code for the ironforge version and I could not make any difference between
the splstartup.s and the startup.s files. Could any body explained or point me to a document that explains the chumby boot process.

Regards,
-Encloy

Re: bootloader (chumby boot process)

splstartups and startup.s are just turds left over from development. They aren't used in the actual code.

check out the Makefile and there you will find the real files actually used by the chumby bootloader.

boot.S, bl.c, 2bl.c are critical main-path code pieces. The uart.c, lcdc.c, touchpanel.c, setupKernel.c, mx2_2bl_readwrite.c are libraries that are used by this bootloader.

Chapters 23, 9, and 10 of the i.MX21 reference manual from Freescale will explain what the processor does with the code. Basically, it automatically reads page0 out of flash, sticks it into a buffer located at 0xDF003000, and executes it. That's boot.S. boot.S sets up the basic hardware registers and sucks in bl.c, which does some more initialization and copies the first block (guaranteed no bad blocks) into SDRAM and then jumps to that. The first block contains 2bl.c, which contains the bad-block handling code and so forth, as well as all the libraries to setup LCD, touchscreen, render images, interact over the UART, etc. etc--all the stuff you "see" at boottime. 2bl.c generally just checks touchscreen state, checks some flags stored in FLASH, and based on a combination of those selects which kernel to load into memory and run.

7BAA 2E53 01C1 DCFF 497B  E7F0 9699 A303 78F0 D9B9

Re: bootloader (chumby boot process)

Thanks Bunnie for the reply..
I have a quick question: which utility do you use to flash the bootloader in the Chumby?
Do you flash through Jtag if so which Jtag utility do you use. Or do you set the IMX21
in bootstrap mode and flash through the serial port? If so do you which linux utility do you
use?

-Regards

Re: bootloader (chumby boot process)

The JTAG signals available on  expansion connector are crypto-processor signals. you can access The iMX21 JTAG signals  via test points and two resistor pads, but is not easy to attach an external connector. You can boot the iMX21 in bootstrap mode, just follow the cpu schematics note.
Then you can use tha HAB toolkit for download applications to internal RAM.

I don't know how the  chumby team write the NAND flash, but i think that they use an external flash burner and mount the programmed flash in production.

Re: bootloader (chumby boot process)

Thanks... the HAB toolkit works under windows only. right ?
I 'm using a Linux environment ... Do you know of any existing Linux tool?
or I'll be tempted to invest some time in writing my own application for it

Re: bootloader (chumby boot process)

See this thread here:

http://forum.chumby.com/viewtopic.php?id=1145?

i have links to a program that does the essentials of uploading data over the serial port and running the code that has been uploaded there. I think cicamargoba is trying to adapt this to a generic tool, maybe you and him can collaborate.

7BAA 2E53 01C1 DCFF 497B  E7F0 9699 A303 78F0 D9B9