达芬奇 DMSoC 初始化流程

达芬奇 DMSoC 初始化流程
 
 
 
达芬奇 DM SoC 初始化流程

 

> 达芬奇 DMSoC 初始化顺序
(1)DMSoC 复位。芯片的配置由 PSC 决定,取决于 BTSEL[0-3] 、 EM_WIDTH 、 AEWA 和 DSP_BT 的状态。
(2)ROM boot loader( 如果被选 ) 。 NAND 或者 UART0 的初始化。
(3) 引导加载 (Boot-loading) 。以 U-boot 为例, ① 使能电源域: DDR2 和 DSP ; ② 设置时钟频率 (ARM 、 DSP 和 DDR2 时钟的乘除系数 ) ; ③ 设置引脚复用控制器; ④ 设置 ARM 引导启动操作系统。
(4) 操作系统启动。以 Linux 为例, ① 初始化 ARM ; ② 初始化硬件系统; ③ 初始化 Linux环境。
 
> U-boot 初始化顺序
通常情况下, ARM Linux 要求 boot loader 中有少许的初始化。目前 TI 的 DVEVM 使用的是 U-boot-1.1.3 。 U-boot 代码中首先运行的是 u-boot/cpu/arm926ejs/start.S ,芯片和一些 DVEVM 板的硬件配置主要在 u-boot/board/davinci/platform.S 和 davinci.c 中完成。 其中 u-boot/board/davinci/platform.S 设置最基本的系统硬件环境,包括系统 PLL 及 DDR2的初始化、 PSC 的配置及使能 UART0 、 AEMIF 等硬件模块。有些工程师设计的达芬奇板可能用到了和 DVEVM 不同的 Flash ,那么就要根据用到的 Flash 参数修改 u-boot/board/davinc i/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 Flash 和 DDR2 。
(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 系统。
* R0 = 0 ; R1 为 ARM 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() 运行。
 
> 达芬奇 DMSoC 复位状态
DM644x 上电复位后,芯片的绝大部分模块都处于不工作状态。锁相环 PLL 处于旁路 (By pass) 模式; DSP 子系统的状态取决于 DSP_BT 引脚; UART1 和 UART2 也处于不工作状态, UART 0的状态取决于 BTSEL 引脚 ( 如果 BTSEL=11 , UART0 工作 ) ; EMIFA 处于工作状态,其数据总线宽度由EM_WIDTH 决定,地址总线宽度由 AEAW 决定;芯片的大部分引脚都被配置为 GPIO 引脚。引脚复用通过寄存器 PINMUX0 和 PINMUX1 控制。

 

发表于: 2010-07-17,修改于: 2010-07-17 10:19,已浏览1次,有评论0条 推荐 投诉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值