theadnangondal
theadnangondal

Reputation: 1664

how sabre sd boots directly from uboot without SPL

sabre sd is based on imx-6 which has around 150Kb max internal RAM. however the uboot is large enough to fit in this space. How things work in this scenerio ? https://community.freescale.com/docs/DOC-95015

In this freescale documentation only uboot is used to create an SD card for sabre sd boot.

Upvotes: 3

Views: 1758

Answers (1)

Notlikethat
Notlikethat

Reputation: 20954

Short answer: it doesn't matter how small SRAM is since U-Boot itself apparently doesn't go anywhere near it.

The major giveaway is that the mx6qsabresd config sets an entry point of 0x17800000, which according to the memory map in the the reference manual is a DRAM address. Now, I don't "know" i.MX6 per se, but I can certainly summarise what the "System Boot" chapter of that manual says (hey, it was interesting...)

The internal ROM loader reads the first 4K of the image from offset 0x400 of the SD card into internal RAM to look at the header. This header (in the u-boot.imx Image) contains the size and DRAM load address of the U-Boot image, along with a load of configuration register data - from building mx6qsabresd_config I see this comes from board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg and, briefly cross-checking the addresses there with the peripheral map, appears to be mostly setting up the IOMUX and DRAM controller. The ROM code writes to configuration values to their relevant registers, DMA's the whole image from the SD card straight into DRAM, and jumps to it.

Upvotes: 4

Related Questions