how sabre sd boots directly from uboot without SPL

情到浓时终转凉″ 提交于 2019-12-10 18:46:16

问题


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.


回答1:


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.



来源:https://stackoverflow.com/questions/31263686/how-sabre-sd-boots-directly-from-uboot-without-spl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!