微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 达芬奇数字媒体片上系统的架构和Linux启动过程

达芬奇数字媒体片上系统的架构和Linux启动过程

时间:06-02 来源:网络 点击:

(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()运行。

总结

经过上面介绍,很多DSP工程师可能会对达芬奇DMSoC及Linux启动流程有一个感性的认识,双核架构的达芬奇DMSoC带给我们的是一加一大于二的性价比,要想了解更多的细节,请参考数据手册和应用文档。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top