saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

how sabre sd boots directly from uboot without SPL

sabre sd 基于 imx-6,其最大内部 RAM 约为 150Kb。然而 uboot 足够大以适应这个 space。在这个场景中事情是如何运作的? https://community.freescale.com/docs/DOC-95015

在此飞思卡尔文档中,仅使用 uboot 为 saber sd 引导创建 SD 卡。

简短回答:SRAM 有多小并不重要,因为 U-Boot 本身显然不会接近它。

主要的赠品是 mx6qsabresd 配置设置了一个入口点 0x17800000,根据 the reference manual 中的内存映射,它是一个 DRAM 地址。现在,我不 "know" i.MX6 本身,但我当然可以总结该手册的 "System Boot" 章节所说的内容(嘿,这很有趣...)

内部ROM加载器从SD卡的偏移量0x400读取图像的前4K到内部RAM以查看header。这个 header(在 u-boot.imx 图像中)包含 U-Boot 图像的大小和 DRAM 加载地址,以及配置寄存器数据的加载 - 来自构建 mx6qsabresd_config 我明白了这来自 board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg 并且,简要地 cross-checking 那里的地址和外围映射,似乎主要是设置 IOMUX 和 DRAM 控制器。 ROM 代码将配置值写入其相关寄存器,DMA 将 SD 卡中的整个图像直接写入 DRAM,然后跳转到它。