Electronic – Atmel ARM Boot from MicroSD card

armatmelsd

I studying the Atmel's ATSAME70Q19 Datasheet and i'm a little confused about boot operation mode from HSMCI.

In Page 892, "38.11 HSMCI Boot Operation Mode" there's a reference which says:

In boot operation mode, the processor can read boot data from the slave (MMC device) by keeping the CMD line
low after power-on before issuing CMD1. The data can be read from either the boot area or user area, depending
on register setting.

  1. What is the "boot data"? Binary file? Hex File? or something else?
  2. Where is "boot area" and "user area" on microSD card?

I realize that it need to store a binary file into the microSD card but how?
In formated card (e.g. FAT) or like a raw data?

Best Answer

The documentation seem to assume that you know what this boot operation mode is about, and why it has sense to be there from functional perspective. Probably it is begin explained and discussed in some Atmel training.

This may also be a historical feature. Look at AT91SAM ARM-based Flash MCU, page 30 - it depicts memory mapping, the very first code block is called "boot memory". As described in 9.1.4 "boot strategies" system always boots from boot memory, and then boot ROM can perform further booting actions from devices and options available.

In your case I bet SD-card is just one of the options to load boot data from - note that datasheet you point to does not state boot code, but talks about data instead. Probably you can make data to become code so that MCU can execute it. But it is certainly up to programmer if to use this boot feature, how to use data on the external device (SD-card) and where it is located - and all this information should be supplied through the boot memory code which is being executed on power-on (or reset).