关闭

S5PV210启动过程分析

标签: S5PV210启动过程分析S5PV210启动过程分析翻译
802人阅读 评论(0) 收藏 举报
分类:
学习任何一款处理器,首先要搞清楚它的启动流程。
参考《
S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf
一、iROM启动方式简介
    九鼎X210开发板的SoC为三星S5PV210,S5PV210采用iROM启动方式进行启动,通过查阅三星官方S5PV210文档s5pv210_irom_applicationnote_preliminary可知,iROM启动方式支持从MoviNAND/iNand, MMC/SD Card ,pure Nand, eMMC, eSSD, UART and USB等存储设备启动。
1、硬件支持需求
使用iROM启动方式有几种硬件需求:
A、基于CortexA8的S5PV210X微处理器
B、64KB iROM
C、96KB iRAM
D、通用的SDRAM和控制器
E、4/8 Bit的高速SD/MMC控制器
F、4-bit SD / 4-bit MMC / 4 or 8-bit eMMC
G、Nand Flash控制器
H、OneNand控制器
I、eSSD控制器
J、UART/USB控制器
2、启动模式
A、OneNand启动(Mux/Demux)
B、Nand启动(支持8/16-Bit ECC)
C、MMC启动(MMC4.3标准,兼容eMMC)
D、eSSD启动
E、UART/USB启动
安全启动模式支持:对除UART/USB 外的所有启动设备的BootLoader采用整体校验,安全秘钥值写在S5PV210内部,如果安全秘钥值没有写在S5PV210内部,则为非安全启动模式。三星在制造阶段就将安全秘钥值写入到了S5PV210内部。
第二启动模式支持:当第一启动模式(安全启动模式)失败后,就会试图从4 bit的SD/MMC通道2通过SD/MMC启动。
3、iROM启动方式的优点
A、降低BOM(材料清单)成本
iROM启动支持从Movinand/iNAND/MMC/eMMC Card, eSSD设备启动,系统无需启动介质就可以启动,不需要像nor flash这样的启动设备。
B、改善读特性
采用iROM启动方式从nand flash启动时,S5PV210支持8/16-bit H/W ECC。但是16-bit ECC仅支持4KB 5cycle的Nand。
C、降低生产成本
能从其他启动设备烧录启动设备,无需Gang programmer烧录器
4、电路设计
A、使用OM引脚选择iROM启动设备
B、所有的S5PV210启动设备都可以从MMC通道2使用SD/MMC设备以第二启动方式启动。
C、OneNand 启动时,Xm0CSn4/NFCSn2/ONANDXL_CSn0信号必须有效。BL1代码段起始处必须是BL1的校验数据。
D、Nand启动时,Xm0CSn2/NFCSn0信号必须有效。BL1代码段起始处必须是BL1的校验数据。
E、SD/MMC/eMMC启动时,MMC通道0分配给第一启动模式使用,通道2分配给第二启动模式使用。BL1代码段起始处必须是BL1的校验数据。
F、UART启动使用串口端口2
二、iROM启动流程
S5PV210启动过程分为BL0、BL1、BL2三个阶段,S5PV210内部有96Kb的IRAM和64Kb的IROM。S5PV210启动过程如下图:

注释:(其中 BL1 最大 16KBBL2 最大 80KB,而后面我们自己移植的boot  200  Kbyte,因此就没法按照手册给的这个流程。我们实际的流程是:在 BL1 中初始化时钟、DRAM 控制器,拷贝 BL2到外部 DRAM,跳转到 DRAM 中执行 BL2BL2 加载 OS 到 OS 的起始地址执行 OS。)
第一步:iROM初始化,初始化系统时钟、特殊设备控制寄存器和启动设备
第二步:iROM启动代码加载BL1(bootloader)到iRAM,在安全启动模式下iROM对BL1进行整体校验。
第三步:如果校验成功执行BL1,BL1加载BL2(剩余的bootloader)到iRAM,BL1将会对BL2进行整体校验。否则运行2 个启动序列,即从SD卡通道二启动。
第四步:执行BL2,BL2初始化DRAM控制器,加载kernel到外部SDRAM
第五步:跳转到OS起始地址,进入系统
1、BL0启动阶段
S5PV20 上电从 0地址(iROM)开始 运行 Samsung 出厂时固化在里面的代码,这部分代码叫做 BL0boot loader0),BL0 将执行如下操作:
在BL0阶段初始化的内容如下:
1、关闭看门狗
2、初始化icache(指令cache)
3、初始化栈(设置中断栈、SVC栈)
4、初始化堆
5、初始化块设备copy函数
6、初始化PLL(锁相环)和设置系统时钟
7、根据 OM 引脚配置,从指定的外部存储器拷贝 BL1 到内部 SRAM
8、校验BL1,如果校验失败,将从MMC channel2,SD卡通道二启动,(从启动设备中拷贝前16K的代码到IRAM的0xD0020000处;)
9、检查是否是安全启动模式
10、跳转到BL1的地址(0xD0020010
2、第一启动模式启动流程
安全启动模式(第一启动模式)的启动过程:


3、第二启动模式启动流程
第二启动模式的启动过程:


4、UART启动模式
S5PV210 iROM支持串口下载功能,串口下载一般通过发送校验位到DNW进行校验,不关心启动设备。对于串口下载来说不需要选择信号。为了避免串口超时错误,用户需要在开发板电源打开之前设置DNW配置,也就是当BL1代码被选中,下载进程启动时,iROM就应该被启动。
5、USB启动模式
S5PV210 iROM支持USB下载功能。如果串口超时发生,iROM会试图从USB模式启动。为了避免USB协商超时错误,用户必须预先用USB线连接好目标开发板和PC。如果USB连接好,用户就能通过USB线下载BL1镜像到开发板。
在UART、USB启动模式下BL1不需要头信息,BL1代码的基地址是0xD0020000,但是下载地址仍然为0xd0020010,因为 download完成后S5PV210会即刻跳转到0xd0020010处执行,那么如果下载到0xd0020000前面的16字的内容会被忽略。
在其他启动模式下,BL1必须有头信息,BL1代码的基地址是0xD0020010。
三、iROM启动的其他细节
1、iROM内存分配

2、全局变量
如果用MMC设备启动,MMC卡的信息必须保存在特殊区域。

2、设备拷贝函数
S5PV210内部有一段用于启动设备的块拷贝函数的ROM代码,因此开发者不需要实现设备拷贝函数。这些内部函数能从存储设备中拷贝任何数据到SDRAM,用户在iROM启动过程完成后仍然可以使用这些函数。


2、启动设备启动扇区分配
SD/MMC/eSSD设备启动扇区分配

我们需要按照上图的布局将程序烧写到 SD 卡,每个块大小为 512Byte。
Block0 保留, BL1 烧写到 Block1 开始的块,这是强制要求的。 BL2 和 Kernel 的布局要求只是建议。
eMMC设备启动扇区分配

OneNAND/NAND设备启动扇区分配

如果从Nand启动,Nand ECC数据应该项如下设定:

对于8bit ECC来说,ECC 数据大小是13字节
对于16bit ECC来说,ECC 数据大小是26字节,但是对于每一种Nand flash,ECC的大小是不一样的,因此需要去查阅Nand flash的数据手册。
2、启动代码的头信息数据
BL1必须有头信息数据,头信息数据是用于通过iROM复制BL1到iRAM中使用,头信息数据有两种信息,一种是BL1的大小,一种是BL1数据校验。当加载BL1时,iROM检查位于头数据中的BL1的大小,拷贝BL1到iRAM。拷贝完BL1后,iROM计算拷贝的BL1的数据和,与位于BL1头数据信息中的校验和数据进行比较。如果成功,BL1启动,否则iROM将会试图从SD/MMC通道2端口的第二启动模式(4-bit SD/MMC)启动。计算数据校验和的代码如下:
for(count=0;count< dataLength;count+=1)
{
buffer = (*(volatile u8*)(uBlAddr+count));
checkSum = checkSum + buffer;
}
Count:无符号整型
dataLength:BL1的大小
buffer:从BL1读取1字节数据的存储变量
Checksum:BL1的校验和

2、时钟设置
S5PV210只有24MHZ的外部晶体振荡器可用。

本博文翻译自:三星S5PV210官方S5PV210_iROM_ApplicationNote文档
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

ARM第一部分-S5PV210启动过程详解1

内存: SRAM          静态内存          特点就是容量小、价格高,优点是不需要软件初始化直接...
  • Karven_
  • Karven_
  • 2016-03-12 11:41
  • 571

S5PV210启动过程详解

7.1.启动涉及的内存和外存  (1)内存:SRAM即静态内存,缺点是容量小、价格高,一般是几十K或几百K;优点是不需要软件初始化直接上电就能使用。DRAM即动态内存,优点是容量大、价格低;缺点是上电后不能直接使用,需要软件初始化后才可以使用。  (2)单片机:内存需求量小,...
  • Hallo_ween
  • Hallo_ween
  • 2016-10-11 23:39
  • 1022

7.S5PV210启动过程详解

7.1.启动涉及的内存和外存 7.2.S5PV210启动方式 7.3.S5PV210启动过程概述 7.4.在开发板上选择不同的启动方式
  • Rston
  • Rston
  • 2016-03-26 22:40
  • 2779

S5PV210启动过程分析

S5PV210启动过程分析
  • czg13548930186
  • czg13548930186
  • 2017-03-15 16:37
  • 352

S5PV210启动过程分析

原文地址:http://www.51hei.com/bbs/dpj-25281-1.html S5PV210内部有96Kb的IRAM和64Kb的IROM。 DRAM0的地址:0x2000_0000——0x3FFF_FFFF(512MB)(自带内存) DRAM1的地址:0x4000_0000...
  • dongqing27
  • dongqing27
  • 2016-05-25 11:30
  • 380

S5PV210启动过程分析

刚刚接触S5PV210,看了官方的数据手册感觉跟以前用的STM32单片机根本不在一个层面上,当然两者的用途不同,不具备可比性。        可能之前习惯使用STM32等单片机,现在接触S5PV210还有点不太适应,尤其搞不懂S5PV21...
  • spu20134823091
  • spu20134823091
  • 2016-08-18 22:19
  • 521

朱老师ARM裸机学习笔记(四):S5PV210启动过程详解

常用器件特性内存: SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用 DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。单片机中:内存需求量小,而且希望开发尽量简单,适合全部...
  • Kevin_Mr
  • Kevin_Mr
  • 2016-03-09 12:00
  • 2028

(一)s5pv210启动方式

序:         后悔自己当初买了友善的smart210,它的资料做的很不好,就像学校里头的博创实验箱,箱子可以可是做的资料却狗屁不是。如果之前买的是韦东山老师的jz2440估计现在学起来不用那么苦逼,我也看了很多人的博客关于smart210的技术说明,但...
  • asd451006071
  • asd451006071
  • 2015-01-24 20:00
  • 4879

S5PV210的SD卡启动详解1

《朱老师物联网大讲堂》学习笔记 学习地址:www.zhulaoshi.org 本来是不打算写笔记的, 这节课主要是回顾之前的知识, 为了保证笔记的完整, 就贴朱老师的笔记在这里了。 1.10.4.S5PV210的SD卡启动详解1 1.10.4.1、SoC为何要支持SD卡...
  • qq_18973645
  • qq_18973645
  • 2016-04-13 18:37
  • 1061

S5PV210开发系列一_开发环境以及启动模式

ARM核以其高性能、低功耗、低成本广泛应用在各个领域,包括ARM7、ARM9、ARM11、Cortex-M、Cortex-A等这几个系列。众多的半导体商如NXP、Freescale、Atmel、Samsung、TI等都设计了基于ARM核的自家通用处理器,ARM核从低成本控制处理器到高性能应用处理器,...
  • huang20083200056
  • huang20083200056
  • 2015-06-13 20:57
  • 2303
    个人资料
    • 访问:397805次
    • 积分:8158
    • 等级:
    • 排名:第2921名
    • 原创:316篇
    • 转载:12篇
    • 译文:89篇
    • 评论:105条
    【目录索引】

    闲适音乐

    博客专栏
    最新评论

    Email: 457086306@qq.com