U靴在哪里获得Marvell Armada 38x(MVEBU)的CONFIG_SYS_INIT_SP_ADDR

时间:2019-01-19 19:56:42

标签: operating-system arm u-boot armv7

我正在研究Marvell Armada A388 SoC(88F6828,manual)(ARMv7,Cortex-A)的内部结构,并研究SoC的U-boot源代码,从而学习低级ARM体系结构。我在crt0.S中使用该指令设置堆栈,并在以后使用了一些指令:

ldr r0, =(CONFIG_SYS_INIT_SP_ADDR)

对于我的董事会,CONFIG_SYS_INIT_SP_ADDR中的arch/arm/mach-mvebu/include/mach/config.h被定义为

/* end of 16M scrubbed by training in bootrom */
#define CONFIG_SYS_INIT_SP_ADDR     0x00FF0000

他们是如何获得此地址的(“擦洗”评论的确切含义/原因为何)? MMU此时已禁用,因此物理地址为0x00FF0000,将通过迭代内部寄存器空间中的地址窗口进行映射。根据{{​​3}},覆盖0x00FF0000的窗口是可配置窗口19(u-boot尚未更改任何窗口):

the default memory mapping

因此,该地址将解析为DRAM中的地址。但是,DRAM尚未初始化。他们只是随意选择地址,为什么我们要在初始化/初始化DRAM控制器之前使用DRAM?我对下次如何发现自己的东西很感兴趣。

0 个答案:

没有答案