Chapter 24 of the UM shows that the internal RAM is 64K. Where does the BOOT ROM put the 128KB image that's read from the MMC?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Chapter 24 of the UM shows that the internal RAM is 64K. Where does the BOOT ROM put the 128KB image that's read from the MMC?
The typical X-Loader (a.k.a. MLO) provided is actually smaller than 64k, more on the order of 16k, so it would still fit in the 64k. My suspicion is that this is an error in initialization section of the TRM and that it can only hold a 64k user boot loader, as it does not appear the additional cache memory for the Cortex A8 can be used as normal RAM so as you suggest there would be no where else to put it.
In general the out of the box X-Loader/MLO has been sufficient for most customers, are you looking to use a larger initial user boot loader?
Thanks for your reply, Bernie.
At this point, I have no information on any other bootloader. Does TI provide a generic bootloader other than the boot ROM. We're sort of flying in the dark right now. We'd like to use the chip, but we're still sketchy on a lot of details. I haven't started writing software, yet, and I'm looking for information on how the boot process works. Right now, we're picked the boot mode to be MMC2, ENET, USB, MMC1. So I'm reading sectoin 24 in the reference manual, but there's a lot of conflicting information regarding sizes (64K vs 128K). I tried clicking the cdocsurvey link on page 127, but that gives me a 404 error.
Can you point me to a boot application? I was considering using u-boot, but since I'm not going to be running linux (or any other operating system) on this product, it might be challenging to make work (I've used u-boot before w/ linux and it was fine; I haven't checked out what I need to do for a non-OS use of u-boot).
Thanks,
Matt Gessner
MATT GESSNER said:Does TI provide a generic bootloader other than the boot ROM.
The boot ROM is always used, since it is permanently burned into the device, it will typically boot up a secondary boot loader (which is known as X-Loader, MLO, or UBL for other parts) that will do some board specific configuration (most importantly DDR initialization) and than load up an application of some sort, which can also be another level of boot loader. So in a typical Linux boot you have a boot sequence that ends up looking something like:
Reset is Released...
RBL
X-Loader
U-Boot
uImage (Linux kernel)
File System
User Application is run...
MATT GESSNER said:Can you point me to a boot application?
The software for booting outside of the permanent RBL can be found in the SDK for the device, for an AM35xx you would be looking at this sdk. This includes the sources for X-Loader and U-Boot, as well as the Linux kernel.
MATT GESSNER said:I was considering using u-boot, but since I'm not going to be running linux (or any other operating system) on this product, it might be challenging to make work (I've used u-boot before w/ linux and it was fine; I haven't checked out what I need to do for a non-OS use of u-boot).
U-Boot is what I would typically recommend as a starting point for a non OS implementation as it gives you the most features without actually being an 'OS' and since it is after X-Loader you will have full access to DDR. However keep in mind that the device and the software collateral provided by TI is structured around running a high level OS on the ARM (primarily Linux, though WinCE is also an option), it is not generally recommended to use the AM35xx without a high level OS, support will be limited.
<quote>The typical X-Loader (a.k.a. MLO) provided is actually smaller than 64k, more on the order of 16k, so it would still fit in the 64k. My suspicion is that this is an error in initialization section of the TRM and that it can only hold a 64k user boot loader, as it does not appear the additional cache memory for the Cortex A8 can be used as normal RAM so as you suggest there would be no where else to put it. </quote>
I think this 128KB comments origines from the first OMAP35xx-chips, which supports a so called "configuration header" for letting the ROM code directly load stuff from i.e. NAND og MMC directly into external memory, thereby not being limited by the internal RAM size. This feature has apparently have been removed (most likely for being able to keep the same ROM size I guess :-) while adding support for Ethernet in the ROM-code for OMAP3505. For more information about the CH header for the first OMAP devices can be found at http://nishanthmenon.blogspot.com/2009/05/configuration-header-no-more-x-loader.html or in the OMAP3530 TRM...
Best regards
Søren