关于S5PV210的更多介绍,可查阅相关文档
S5PV210_UM_REV1.1
S5PV210_iROM_ApplicationNote_Preliminary_20091126
(1)概述
S5PV210是三星公司推出的一款32位精简指令集的为移动设备和通用程序领域提供高性价比、低功耗、高性能的解决方案。它内置ARM Cortex-A8内核( V7-A架构)。
为了能在3G和3.5G通信服务提供最优的硬件性能,S5PV210采取了64-bit内部总线架构。这包括许多为像进行移动视频处理、播放控制和裁剪等任务提供了强力的硬件加速器。内置的复用格式编解码器(MFC)能够进行MPEG-1/2/4、H.263和H.264的编解码,以及VC1的解码。这些硬件加速器还支持实时视频交流和模拟电视的输出,HDMI输出NTSC或PAL。
S5PV210还提供了外置储存器的接口。其内存系统为外置的Flash/ROM存储器提供并行接口,DRAM接口。而且DRAM接口支持LPDDR1、DDR2、LPDDR2。
Falsh/ROM接口支持NAND Flash、Nor Flash、OneNAND、SRAM以及ROM类型的外置存储器。
为了减少系统功耗以及加强整体的功能性,S5PV210包含了TFT 24位真彩LCD控制器、摄像机接口、MIPI DSI、CSI-2、电源管理器、ATA接口、4个串口、24通道DMA、5个定时器、通用I/O端口、3个I2S、S/PDIF、3个I2C总线接口、2个HS-SPI、USB Host 2.0、USB 2.0 OTG(480Mbps),4个SD卡接口、4个PLL。
S5PV210芯片的整体架构如下图1-1所示▼:
至于各项功能的细节描述,看文档吧。
(2)内存分布
S5PV210支持的内存范围为0x00000000~0xFFFFFFFF,共4GB大小。其内存分布如下图2-1所示▼:
具体每个内存块的大小如下表所示▼:
其中,内置存储器的分布如下图2-2所示▼:
(3)S5PV210的启动流程
由上述的内存分布可以看出,S5PV210内置了64KB的ROM和96KB的SRAM。启动时,内置的64KB的ROM和96KB的SRAM区域就会被使用。
内置ROM区域(后简称iROM)的启动代码由三星官方提供,使用者一般不可更改。为了保证能安全地启动,S5PV210会首先从iROM启动,并且启动过程中使用e-fuse信息(一段被编程入内存后便不可再更改的数据)。
一般地,下列各种类型的外部存储器都可作为启动设备:
• General NAND Flash memory
• OneNAND memory
• SD/ MMC memory (such as MoviNAND and iNAND)
• eMMC memory
• eSSD memory
• UART and USB devices
一般的,linux+arm嵌入式中,外部存储器中固化着Boot Loader,而iROM和iRAM都是为了能够正确并安全地启动Boot Loader而存在的。
启动代码有3部分,分别是iROM代码(简称BL0)和Boot Loader代码(其中Boot Loader代码分为 2部分,简称BL1和BL2):
① iROM代码:小而简单的平台独立的代码,被固化在内置存储器中;
② BL1代码:小而简单的平台独立的代码,被固化在外部存储器中;
③ BL2代码:大而复杂的平台相关的代码,被固化在外部存储器中。
S5PV210的启动流程如下图所示▼:
特别地,在SRAM区域,BL1最大不超过16KB,BL2最大不超过80KB。
流程简述:
iROM代码即BL0代码被固化在内部64KB ROM中,其作用是初始化基础的系统功能,比如时钟、栈和堆等;
BL0代码在内部96KB的SRAM中运行。根据OM引脚的配置,选择从何种启动设备中读取BL1镜像到SRAM中并执行(此过程中可对BL1镜像进行校验);
BL1从启动设备中读取BL2镜像到SRAM中并执行(此过程中可对BL2镜像进行校验);
BL2主要进行初始化系统时钟、串口、DRAM控制器等。然后从启动设备中读取OS镜像到外部的DRAM中并执行(此过程中可对OS镜像进行校验);
启动完成后,BL2跳转至OS。
启动部分就结束了。
具体地BL0、BL1和BL2做了什么,如下图所示▼:
其中,iROM即BL0的工作如下:
1. 关闭看门狗;
2. 初始化指令缓存控制器;
3. 初始化栈和堆区域;
4. 校验安全码;
5. 设置时钟分频器、锁定时间、PLL以及源时钟;
6. 校验OM引脚和从启动设备(区块0)加载16kb大小BL1到iRAM的0xD0020000处执行;
7. 若安全启动成功,则执行完整校验;
8. 若完整校验通过,则在iRAM中跳转到BL1部分(0xD0020010处执行)
也就是初始化环境–>加载镜像–>校验镜像–>跳转至镜像并执行。
站在内部SRAM即iRAM的角度,流程有▼:
1. 从启动设备加载BL2到iRAM;
2. 若安全启动成功,则进行完整校验;
3. 若完整校验通过,则在iRAM中跳转到BL2部分(跳转地址由软件代码中设置);
4. 若完整校验不通过,则停止BL1;
5. BL2初始化DRAM控制器;
6. 从启动设备(区块1)中加载OS镜像到外部DRAM;
7. 在外部DRAM中跳转到OS代码(0x20000000或0x40000000)。
至于BL1和BL2具体做了什么,这视Boot Loader的代码而定。因为Boot Loader有许多种,比如ARMBoot、U-Boot等等。
S5PV210使用的Boot Loader是U-Boot,所以这部分便留到uboot启动分析再写。
设计资源 培训 开发板 精华推荐
- 用于系统过温保护的 SPX2954 250mA 低压降稳压器的典型应用
- LT1618、USB 至 12V 升压转换器,具有可选择的 100mA/500mA 电流限制
- AM1G-4818SH30Z 18V 1 瓦 DC-DC 转换器的典型应用
- 使用 ROHM Semiconductor 的 BA50BC0WFP-E2 的参考设计
- 平衡车
- 具有内部 PMOS FET 和过流保护的 NCP361 USB 正过压保护控制器的典型应用电路
- C2898291_0.91寸OLED显示屏方案验证板-15P
- 音频功放
- LT4275AHMS IEEE 802.3at(类型 2)25.5W 受电设备的典型应用电路
- TWR-S12G128,适用于汽车应用的 MC9S12G128 超可靠 16 位微控制器塔式系统模块的塔式开发板