OMAPL138的启动顺序

#Bootloader
Bootloader为存储在ROM中的启动代码(一些程序),由TI在芯片出厂时以掩膜方式固化内容。
TI使用ROM空间的一部分,还有一部分剩余空间,用户可以委托TI写入(掩模)所需代码。

##版本

OMAPL138的Bootloader保存在ROM中,检查内存地址0xFFFD0000,在memory window中选择Character,在偏移地址0x08可以读到版本号:版本号为类似于d800k008
##启动模式

启动模式分为两种

  • Master
    从各种内存启动
  • Slave
    从外部Master启动

除了HPI (Host Port Interface)和2种NOR (Parallel Flash) boot模式,其他模式均使用AIS(Application Image Script)格式。

管脚配置详见Using the OMAP-L132/L138 Bootloader Appendix A Boot Mode Selection Table

##启动顺序
OMAP-L138 SOC 的启动详解

OMAP-L138 的ROM内有DSP 与ARM两份启动代码,芯片上电解复位后,DSP Bootloader 先运行,通过PRU 加载ARM初始化代码,因为DSP 不能访问ARM的片上RAM空间,所以这一步通过PRU 完成,然后DSP 通过PSC 使能ARM,运行ARM的Bootloader, ARM再将DSP 置于复位态,并关闭其时钟。这个过程由芯片内部ROM 代码自动完成,所以从用户的角度,芯片就是从ARM 开始启动的。
ARM Bootloader 读取BOOTCFG 寄存器,获取用户设定的启动模式,然后从相应的外设搬移用户代码到相应的地址,跳转到用户代码的入口地址,完成SOC 的启动过程。

下面这段话未找到出处文档

When the device is powered on, it starts execution from DSP ROM. ARM is in in the disable state at this moment.

The DSP ROM code will Read certain registers to know that ARM is present. (Otherwise it will be a DSP-only boot) Program PDSP0 to prepare for ARM reset vector.

Bring ARM out of reset and let ARM starts execution from its ROM. (Yes, that’s the main difference from OMAPL137 silicon 1.x. ARM has its own ROM and will master the boot process afterwards)

DSP stills in the idle loop.

ARM starts execution from its ROM. It will Put DSP into disable state (probably local reset).

Initialize HW, i.e. PSC, PLL, external memory etc. Read bootcfg registers to decide what boot mode it will be and load and run ARM UBL from appropriate boot media, i.e. SPI flash, NAND, NOR etc.

ARM UBL starts running. Its behavior is totally defined by the SW. For example, TI provided ARM UBL will load and run UBOOT which will further load and run Linux. The Linux application can load and run DSP.out via DSPLINK. This model is the same as DaVinci model.

Industrial customers can choose to load and run a DSP AIS image in certain boot media. Meanwhile ARM UBL also starts booting UBOOT and Linux. In that way, DSP can start processing data before Linux finishing boot.


#主要内存地址的Memory Map

ARM可以访问全部地址空间,DSP不能访问ARM的内存空间。

  • DSP (C674x)
    |Section |Size | Start| End |
    |—|---?—|---|
    |DSP L2 ROM1|1024K|0x0070 0000/0x1170 0000|0x007F 0000/0x117F FFFF|
    |DSP L2 RAM|256K|0x0080 0000/0x1180 0000|0x0083 0000/0x1183 0000|
    |DSP L1P RAM|32K|0x00E0 0000/0x11E0 0000|0x00E0 7FFF/0x11E0 7FFF|
    |DSP L1D RAM|32K|0x00F0 0000/0x11F0 0000|0x00F0 7FFF/0x11F0 7FFF|
Section Size Start End
ARM Local ROM 64K 0xFFFD 0000 0xFFFD FFFF
ARM Interrupt Control 8K 0xFFFE E000 0xFFFE FFFF
ARM Local RAM 8K 0xFFFF 0000 0xFFFF 1FFFF
  • Shared
<
Section Size Start End
EMIFA SDRAM data (CS0) 512M 0x4000 0000 0x5FFF FFFF
EMIFA async data (CS1) 32M 0x6000 0000 0x61FF FFFF
EMIFA async data (CS2) 32M 0x6000 0000 0x61FF FFFF
EMIFA async data (CS3) 32M 0x6200 0000 0x63FF FFFF
EMIFA async data (CS4) 32M 0x6400 0000 0x65FF FFFF
EMIFA async data (CS5) 32M 0x6600 0000 0x67FF FFFF
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值