I was incorrect in some of the statements I made before when discussing the TI AM170x booting. Daniel pointed out a few of my mistakes in the comments (thanks!). This is a quick follow up. I have quite a lot more reading and learning to do.
The AM170x chips require an external memory attached either to EMIFA, I2C, SPI, UART, or the HPI (host port interface). Since I want to be able to boot without requiring the UART connected, that boot method is most likely ruled out. The HPI sounds interesting but the impression I get is that usually another processor of some sort is connected there, which the TuxedoBoard won't have. So it's down to NOR or NAND flash on EMIFA, I2C, or SPI. Any of those will probably work for me, even though I wanted to avoid having an external memory device.
It turns out that the internal ROM is hard coded and not changeable. I was under the incorrect impression that it was an EEPROM and that using Code Composer Studio that one could change it. This is not the case. The internal ROM is what gets executed after reset, it sets up some basic configuration registers and checks the boot mode pins. Based on the boot mode pins, the ROM will configure the processor to access the appropriate external memory interface and load up the AIS (or non AIS boot mode) executable. This executable holds the device configuration information along with some other setup data such as clock speeds, pin mux settings, and various other configuration registers.
It seems like one could create an AIS (or non AIS executable) that would contain arbitrary code to be executed as a first stage bootloader but I'm not entirely clear on that yet. If so, or if it could fetch a first stage bootloader from the external memory that could contain a custom written binary that can access the SD/MMC card. All this together might be an end-around for booting off SD/MMC. Uboot would then be the second stage bootloader.
Daniel pointed out that there's a TI BSD licensed version of the AIS generator and other core boot code written in C# which should execute under Mono in Linux. These utilities also should not require Code Composer Studio, which is handy.
Saturday, 1 October 2011
TI AM170x Booting Annoyances: Take 2
Posted on 11:08 by Unknown
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment