`
coolerbaosi
  • 浏览: 729189 次
文章分类
社区版块
存档分类
最新评论

S3C6410启动模式介绍

 
阅读更多

目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就我个人的理解,介绍一下S3C6410的启动。

先读一下S3C6410 User Manual的第3章 System Controller,在123页列了一张表,如图:

这章表列出了S3C6410所支持的几种启动模式。首先介绍一下和启动模式相关的硬件管脚:

OM[4:0]:选择启动设备及时钟源。OM[0]为0选择XXTlpll,为1选择XEXTCLK。

GPN[15:13]:用于识别所支持的Nandflash的类型,包括Page的类型和地址周期。

XSELNAND:选择Nand启动或者是OneNand启动。0为OneNand,1为Nand。

从表中可以看出,S3C6410好像并不支持Nandflash启动,因为Boot Device中没有Nandflash设备。当OM[4:0]为0000x/0001x/0010x/0011x的时候,Boot Device是Reserved,我想这里是Samsung在6410中有意要隐瞒什么。如果你用过S3C6400,你应该知道在S3C6400 User Manual中也有这么一张表,描述了s3c6400的启动模式,具体S3C6400的启动模式也是在第3章 System Controller,在第107页的表,如图:

我想和S3C6410的表对照一下就会发现,两个处理器的启动模式是兼容的,我认为S3C6410应该兼容S3C6400的启动模式,只不过Samsung在S3C6410 User Manual中隐藏了S3C6400中所支持Nandflash启动模式,目的可能是Samsung不希望在S3C6410中使用Nandflash启动,而要推崇IROM的启动模式。个人理解啊!

下面来总结一下S3C6410所支持的启动模式:

1. NORFlash启动

通过Nor Flash启动,此时OM[4:1]为0100或0101,对应8bit和16bit。

2. NandFlash启动

虽然在S3C6410 User Manual中没有提到,但是也是支持的,从S3C6400 User Manual可以找到。OM[4:1]四个硬件管脚决定了Nandflash启动,以及支持的Nandflash的类型,包括大Page和小Page,地址周期为3,4,5。当然,XSELNAND管脚也要为1。

3. OneNAND启动

首先XSELNAND管脚为0,其次OM[4:1]为0110,为OneNand启动模式。

4. MODEM启动

当OM[4:1]为0111的时候,为MODEM启动。S3C6410通过MODEM接口下载boot代码到内部RAM中,然后进行引导。

5. IROM启动

当OM[4:1]为1111的时候,从Internal ROM中启动,此时GPN[15:13]用于识别设备的类型。这种模式以前没见过,这里具体介绍一下。

IROM模式可以支持MoviNand,SD/MMC,iNand,OneNand和Nand等。关于IROM的引导,具体过程如图:

1. 处理器上电后,当OM[4:1]=1111时,运行iROM中的程序,这个程序被称为Bootloader0(BL0),它会做一些初始化的工作。

2. 然后根据GPN[15:13]的管脚设置,选择从相应的设备(SD/MMC/OneNand/Nand)中的指定区域读取4KB的程序到SteppingStone中运行,这段代码被称为Bootloader1(BL1)。

3. BL1可以初始化系统时钟,UART,SDRAM等设备,然后拷贝Bootloader2(BL2)到SDRAM中。

4. 跳转到SDRAM中的BL2,继续运行,BL2可以支持更强大的功能,可以将OS加载到SDRAM中,然后运行OS。

整个过程中,IROM是最先被运行的,它会首先做一些初始化,具体IROM的流程如下:

1. 禁用Watch-dog

2. 初始化TCM

3. 初始化设备拷贝函数,用于拷贝BL1到SteppingStone中

4. 初始化栈区域

5. 初始化PLL

6. 初始化指令Cache

7. 初始化堆区域

8. 拷贝BL1到SteppingStone中

9. 验证BL1

10. 跳转到SteppingStone中运行

还是看一下流程图吧,理解起来会更直观一些,IROM启动流程如图:


分享到:
评论

相关推荐

    s3c6410启动模式

    s3c6410启动模式,包括多种模式,nandflash、norflash等

    s3c2440启动模式

    s3c2440启动模式,从nor 或者 nand 启动的分析

    arm11 (S3C6410)裸机程序代码

    6410裸机学习程序,Arm为三星公司出的S3C6410(ARM11),适用于OK6410 飞凌6410 Tiny6410 的裸机程序开发。 编译环境:XP SP3,RVDS2.2编译器 功能模块: 串口 、LED、beep(蜂鸣器)、key(查询和中断模式)、PWM、...

    ADS环境下s3c2440启动配置文件分析

    介绍了S3C2440 微处理器的基本特征及在 ADS 环境下进行嵌入式开发过程中所涉及到 bootloader 的相关知识 并分析了 S3C2440 平台上系统启动过程中的资源配置情况。对于理解分析移植 vivi u-boot 等引导系统有一定的...

    基于S3C6410的ARM11学习(四) 初始化之设置处理器模式

    用户模式(User): ARM处理器正常的程序执行状态快速中断模式(FIQ): 高速数据传输或通道处理外部中断模式(IRQ): 通用的中断处理管理模式(Supervisor): 操作系统使用保护模式数据访问终止模式(Abort):...

    s3c-u-boot-1.1.6设置SD启动模式

    这一份资料是我从百度文库下载得到的,我已验证过可以使用,所以我对其进行了整理,现在我将它贴出来,希望对大家有用!

    S3C2416X标准英文数据手册

    S3C2416x 标准英文数据手册,本版本有详细描述 S3C2416x 的启动模式。

    icool6410 硬件手册

    主处理器采用三星的S3C6410,内存选用三星的K4X1G163PE DDR400 (BGA封装),CPU主频可以跑到800Mhz,外频可以跑到400Mhz,该CPU有2D/3D加速功能. 该板支持高清视频到720P,外置存储有NAND/TFcard.电源全部采用Torex的...

    S3C2416裸机开发系列一_裸机开发环境以及启动模式-附件资源

    S3C2416裸机开发系列一_裸机开发环境以及启动模式-附件资源

    OK6410上基于ucos操作系统的相册浏览

    以前花了1个月时间去设计和实现,当时研究jpeg解码、bmp解码、dlmaloc内存分配,温习ucos源码,还有啃读S3c6410手册和飞凌OK6410的原理图,基本是那时及更早期钻研的综合成果,当时也正在看linux,所以启动流程也有...

    Windows 95/98 in DOSBOX vbemp 9x, S3 Trio 32/64 PCI驱动

    借用Bochs的磁盘工具bximage创建一个160MB的flat模式硬盘映像c.img,得到参数CHS=325/16/63,扇区大小使用默认的512字节,将这些参数用来设备DOSBOX的映像装载命令,如下如果第一条命令装入磁盘无法识别,可以替换第...

    ARM-S3C2440启动文件init.s解析

    Arm上电时处于ARM状态,故无论指令为ARM集或Thumb集,都先强制成ARM集,待init.s初始化完成后 ;再根据用户的编译配置转换成相应的指令模式。

    S3C241032位单片机与嵌入式操作系统答疑.doc

    1、如何实现让S3C2410从32位的FLASH启动? 答案:S3C2410首先从NAND FLASH中读取前4K字节的程序到其内部自带的4K字节的SRAM中,然后,再从此RAM中开始执行此程序。在此程序中要完成的最重要的任务是初始化SDRAM...

    丹佛斯软启动器MCD500中文操作手册.pdf

    启动模式33 恒定电流33 电流斜坡34 AAC 自适应加速控制34 快速启动35 停止模式35 惯性停车35 TVR 软停止36 AAC 自适应加速控制36 制动37 点动操作37 内部三角形操作38 典型启动电流39 带主接触器的安装41 带旁路接触...

    Nucleus操作系统在ARM11上的移植研究与实现

    以S3C6410为例,详细介绍了从板级初始化到任务循环调度过程中的启动模块、中断设计、定时器设计、任务调度流程与触发方式。目前成功移植于TD-LTE系统中,实现操作系统基本功能的同时满足了实验项目中TD-LTE对系统...

    mini_s3c2440开发板用户手册

    mini_s3c2440开发板用户手册 目 录 第一章 MINI2440 开发板介绍...........................................................................................................................- 9 - 1.1 MINI...

Global site tag (gtag.js) - Google Analytics