NOR flash boot for versatile uboot

本文介绍如何通过修改U-Boot使系统能直接从NOR Flash启动,绕过Boot_Monitor阶段。主要内容包括初始化SDRAM、设置REMAP寄存器进行地址重映射以及复制异常向量表到内存起始地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ARM versatile uboot 实现过程,是假设ARM Boot_Monitor先于uboot运行。如果想脱离Boot_Monitor 实现由uboot的NOR flash 启动,需要做以下修改。

 

Revision to code tree

 

To enable autoboot from uboot, i.e. get rid of Boot_Monitor from the booting phase, following should be done

 

 

1. Init SDRAM

 

This can be done in lowlevel_init.S in the board/versatile folder. The SDRAM init could be copied from Boot_Monitor: platform code sysboot.S

 

2. Enable REMAP

 

after cpu_init function, set PC to PC+ #NOR_FLASH (when NOR_FLASH boot enabled, NOR_FLASH could be seen from both address 0x0 and the real 0x34000000 address.); set REMAP register. After remap, the 0x0 is the SDRAM space. Relocation could be done after this, by copying the code (adr r0, _start) to link address (TEXT_BASE). PC could then go back to the linked address and run.

 

3. Copy the vector table

 

copy the expection vector table to 0x0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值