7.S5PV210启动过程详解


7.1.启动涉及的内存和外存
(1)内存:SRAM即静态内存,缺点是容量小、价格高,一般是几十K或几百K;优点是不需要软件初始化直接上电就能使用。DRAM即动态内存,优点是容量大、价格低;缺点是上电后不能直接使用,需要软件初始化后才可以使用。
(2)单片机:内存需求量小,而且希望开发尽量简单,适合全部使用SRAM;嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质;PC机:内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM。
(3)外存:NorFlash的缺点是容量小、价格高;优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般做启动介质。NandFlash的优点是容量大、价格低;缺点是不能总线式访问,即不能一上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
(4)PC机:很小容量的BIOS(NorFlash)+很大容量的硬盘(类似于NandFlash)+大容量的DRAM;单片机:很小容量的NorFlash+很小容量的SRAM;嵌入式系统:因为NorFlash很贵,现在的嵌入式系统倾向于不用NorFlash而是使用:外接大容量的Nand+外接大容量的DRAM+SoC内置SRAM。


7.2.S5PV210启动方式
(1)210内置了96KB大小的SRAM(叫iRAM)和64KB大小的NorFlash(叫iROM)。
(2)第1步:CPU上电后先从内部IROM中读取预先设置的代码(BL0)到IRAM中执行。该段IROM代码首先执行基本的初始化(CPU时钟、关看门狗、初始化块设备拷贝函数…)(该段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM和NanFlash,因此该段IROM代码不能负责初始化外接的DRAM和NandFlash的,则该段IROM代码只能初始化SoC内部的东西);然后该段代码会判断我们选择的启动模式(我们通过硬件跳线可更改板子的启动模式),然后从相应的外部存储器去读取第1部分启动代码(BL1,大小为16KB)到IRAM。
(3)第2步:从IRAM中去运行读取来的BL1(16KB),BL1负责初始化NandFlash,然后将BL2(剩余的80KB)读取到IRAM,然后运行。
(4)第3步:从IRAM中运行BL2,然后BL2负责初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。


7.3.S5PV210启动过程概述
(1)210内部有iROM和iRAM,因此启动时分两个阶段:内部启动阶段和外部启动阶段。对于内部启动阶段各种S5PV210的开发板都是相同的,对于外部启动阶段,不同开发板会有不同。启动过程主要参考”S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf”。
(2)S5PV210出厂时内置了64KB的iROM和96KB的iRAM。iROM中预先内置烧录了一些代码(称为iROM代码),iRAM属于SRAM(不需软件初始化,上电即可使用)。210启动时首先在内部运行iROM代码,然后由iROM代码开启外部启动流程。设计iROM和iRAM的目的是为了支持多种外部设备启动。
(3)Second boot support:When 1 st boot mode fails, SD/MMC boot will be tried through SD/MMC channel 2 with 4-bit data
当第1启动模式失败时,SD/MMC卡启动模式下将会从SD/MMC2通道尝试再次启动。这种二级启动是一种冗余设计。SoC中第1启动介质故障而导致不能启动时,可以从备用启动介质启动。我们做裸机实验时从SD2启动就是利用了这一设计特性。
(4)使用iROM启动的好处:降低BOM成本。因为iROM可以使SOC从各种外设启动,因此可以省下一块boot rom(专门用来启动的ROM,一般是norflash);支持各种校验类型的nand;可以在不使用编程器的情况下使用一种外部存储器(譬如SD卡)运行程序来给另一种外部存储器(譬如NandFlash)编程烧录。这样生产时就不用额外购买专用编程器了,降低了量产成本。
(5)BL0做了什么:关看门狗;初始化指令cache;初始化栈;初始化堆;初始化块设备复制函数device copy function;设置SoC时钟系统;复制BL1到内部iRAM(16KB);检查BL1的校验和;跳转到BL1去执行。
(6)S5PV210的所有启动方式:先1st启动,通过OMpin选择启动介质;再2nd启动,从SD2启动;再Uart启动;再USB启动(见图1和图2和图3)。


7.4.在开发板上选择不同的启动方式
(1)SoC通过OMpin来识别外部启动介质,GEC210开发板中的NandFlash启动方式是first启动中选择启动介质,而SD卡启动方式是second启动中的MMC通道2启动的,即GEC210上的SD卡是接在MMC通道2上的(见图4和图5)。
(2)在GEC210开发板中可通过拨码开发选择从NandFlash启动或从SD卡启动两种启动方式。


7.S5PV210启动过程详解_第1张图片


7.S5PV210启动过程详解_第2张图片


7.S5PV210启动过程详解_第3张图片


7.S5PV210启动过程详解_第4张图片


7.S5PV210启动过程详解_第5张图片


你可能感兴趣的:(arm裸机)