(2)idmap_pg_dir是为turn on MMU准备的一致性映射,物理地址的高16bit都是0,因此identity mapping必定是选择TTBR0_EL1指向的各级地址翻译表。后续当系统运行之后,在进程切换的时候,会修改TTBR0的值,切换到真实的进程地址空间上去。TTBR1用于kernel space,所有的内核线程都是共享一个空间就是swapper_pg_dir。 (3...
ldr r1, [r0, #INF_REG3_OFFSET] cmp r1, #BOOT_NAND /* 0x0 => boot device is nand */ beq nand_boot cmp r1, #BOOT_ONENAND /* 0x1 => boot device is onenand */ beq onenand_boot cmp r1, #BOOT_MMCSD beq mmcsd_boot cmp r1, #BOOT_NOR beq nor_boot cmp r1, #BOOT_SEC_DE...
cmp r1, r2 beq mmcsd_boot #endif ldr r0, =INF_REG_BASE ldr r1, [r0, #INF_REG3_OFFSET] cmp r1, #BOOT_NAND /* 0x0 => boot device is nand */ beq nand_boot cmp r1, #BOOT_ONENAND /* 0x1 => boot device is onenand */ beq onenand_boot cmp r1, #BOOT_MMCSD beq mmcsd_...
ldr r5,=0x0000ffffmcr p15,0, r5, c3, c0,0@load domain access register/*将转换表ttb的基地址放入cp15的c2寄存器,mmu就能自动使用虚拟地址映射*/ldr r0, _mmu_table_base ldr r1,=CFG_PHY_UBOOT_BASE ldr r2,=0xfff00000bic r0, r0, r2 orr r1, r0, r1 mcr p15,0, r1, c2, c0,0/*通...
orrr2, r2, r1, lsr #20-4@ combine variant and revision cmpr2, #0x30 mrceqp15, 0, r0, c1, c0, 1@ read ACTLR orreqr0, r0, #0x6@ Enable DP1(2), DP2(1) mcreqp15, 0, r0, c1, c0, 1@ write ACTLR /* * Invalidate L1 I/D ...
ctr0.S: /arch/arm/lib/ctr0.S (u-boot自带,一般不需要修改) 2. 启动过程原理 必须要明白的一点是,当代码从存储介质(nand flash,SD,norflash,onenand等)中搬运到了DRAM中后随即会跳转到内存中运行u-boot,接着会有一个重定位(relocate_code)的过程,relocate_code子函数在start.S中,而给relocate_code子函...
mcrp15, 0, r0, c1, c0, 0 2.6、记录启动介质的选择 r2保存了判断启动介质的值,后面判断启动介质时会用到。 /* Read booting information */ ldrr0, =PRO_ID_BASE ldrr1, [r0,#OMR_OFFSET] bicr2, r1, #0xffffffc1 2.7、判断启动介质
ldr r1, =_main mov pc, r1_main: mov r0, #1; mov r1, #0; bl xboot_main b _main / * 注意: 非常重要的情况,一定要搞清芯片内部的BROM程序是不是和你现在的启动代码及相关的代码相对应。 否则买到的是特制的BROM的芯片,将来会有很大的麻烦。 因为你需要咨询原厂要他提供特制BROM芯片的用法,再...
{ - "@jeecg/antd-online-mini": "2.4.0-beta4", + "@jeecg/antd-online-mini": "2.4.21-beta", "ant-design-vue": "^1.7.2", "@antv/data-set": "^0.11.4", "viser-vue": "^2.4.8", diff --git a/ant-design-vue-jeecg/public/cdn/font-icon/font_2316098_umqusozousr.js b/ant...
mov r1, #0 bl memset /*memset(r0,r1,r2); 在keil 里这些是不需要做的*/ /* Call _main */ ldr r1, =_main mov pc, r1_main: mov r0, #1; mov r1, #0; bl xboot_main b _main / * 注意: 非常重要的情况,一定要搞清芯片内部的BROM程序是不是和你现在的启动代码及相关的代码相对应。