达芬奇DM355初始化流程

本文详细介绍了达芬奇DMSoC芯片的复位状态、初始化顺序及U-boot与Linux的启动过程。从上电复位到操作系统启动,涵盖了PLL、DDR2、NOR Flash等关键组件的配置步骤。

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

达芬奇DMSoC复位状态

 

DM355上电复位后,芯片的绝大部分模块都处于不工作状态。锁相环PLL处于旁路(Bypass)模式;DSP子系统的状态取决于DSP_BT引脚; UART1UART2也处于不工作状态,UART0的状态取决于BTSEL引脚(如果BTSEL=11UART0工作)EMIFA处于工作状态,其 数据总线宽度由EM_WIDTH决定,地址总线宽度由 AEAW决定;芯片的大部分引脚都被配置为GPIO引脚。引脚复用通过寄存器PINMUX0 PINMUX1控制。

 

达芬奇DMSoC初始化顺序

 

(1)DMSoC复位。芯片的配置由PSC决定,取决于BTSEL[0-3]EM_WIDTHAEWADSP_BT的状态。

 

(2)ROM boot loader(如果被选)NAND或者UART0的初始化。

 

(3)引导加载(Boot-loading)。以U-boot为例,①使能电源域:DDR2DSP;②设置时钟频率(ARMDSPDDR2时钟的乘除系数);③设置引脚复用控制器;④设置ARM引导启动操作系统。

 

(4)操作系统启动。以Linux为例,①初始化ARM;②初始化硬件系统;③ 初始化Linux环境。

 

U-boot初始化顺序

 

通常情况下,ARM Linux要求boot loader中有少许的初始化。目前TIDVEVM使用的是U-boot-1.1.3U-boot代码中首先运行的是u- boot/cpu/arm926ejs/start.S,芯片和一些DVEVM板的硬件配置主要在u- boot/board/davinci/platform.Sdavinci.c中完成。其中u- boot/board/davinci/platform.S设置最基本的系统硬件环境,包括系统PLLDDR2的初始化、PSC的配置及使能 UART0AEMIF等硬件模块。有些工程师设计的达芬奇板可能用到了和DVEVM不同的 Flash,那么就要根据用到的Flash参数修改u- boot/board/davinci/flash.c。另外,关于DM644x支持的NAND Flash ID,请参考TMS320DM644x DMSoC的相关文档。

 

NOR Flash boot为例,DVEVM u-boot初始化下列的达芬奇DMSoC内容:

 

(1)关中断和MMU

(2)使能DSP电源域(PTCMD),把DSP置为复位状态。

 

(3)初始化PLL,使能DDR2,软复位DDR2并且重新使能DDR2,使其脱离复位状态。

 

(4)初始化系统PLL

 

(5)配置AEMIF引脚为NOR Flash接口。

 

(6)VTP校准。

 

完成以上步骤之后,U-boot准备引导ARM Linux

 

(1)配置系统的内存(通过ATAG_ MEM块和mem=)NAND FlashDDR2

(2)通过TFTP加载等加载方式,加载内核到指定的存储地址。

(3)如果定义过,加载RAM Disk

(4)初始化传递到内核的引导参数(EMAC地址,串口,控制台,视频格式等)

(5)获得ARM Linux机类型值(DVEVM为#901)

(6)设置kernel tagged list

(7)用初始值设置ARM的寄存器。

(8)调用内核。

 

Linux 初始化步骤

 

(1)Linux内核需要从引导加载程序(U-boot)中得到以下参数。

 

* 已经初始化的memory系统。

* R00R1ARM Linux机类型值。

* R2指向ATAG结构体的内容:①物理memory区;②是否使用RAM DISK及其压缩版的地址;③视频驱动程序具体的初始化参数;④内核命令行;⑤其他参数(串口和版本号)

 

更多关于Linux内核引导参数的信息可以参考Linux/Documentation/kernel-parameters.txt。如果要想传递给内核更多的参数,再u-boot中的bootargs中设置就可以了。

 

(2)对于压缩的内核(aka uImage)Linux 最初启动Linux/arch/kernel/head.s

 

(3)start_kernel()运行。位于Linux/init/main.c

 

(4)Linux的第一个进程init()运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值