[初级教程]samsung s3c2416x 的启动方式

1.背景知识

s3c2416x这款芯片,官网宣称是对s3c2440的完美替代,对比了这两块芯片,发现s3c2416只能说在手持PDA等方面确实比2440强,其他的部分,感觉都差不多。好了,话不多少,直接进入正题,今天要说的是改芯片的所支持的启动方式。

根据三星提供的s3c2416x的datasheet来看,确切说,提供了3版的datasheet,分别是2008年的3月,2008年的09月第二次修订版,2009年的04月第三次修订版,这三个版本中对s3c2416x的启动方式经历两次的修改,并最终提供了iROM的启动方式,那我们先来看看提供了哪几种启动方式先:

  • Norflash启动的方式
  • Nandflash启动的方式
  • iROM的方式启动,并从nand/sd/mmc/moviNand/iNand中加载启动代码,比如Bootloader等

上面的几种启动方式,Samsung经过几次对s3c2416x的datasheet修订之后,现今,Samsung主推的启动的方式即iROM的启动方式,为主导的启动方式,从nandflash启动,已经被移到了iROM的启动方式中,并支持了nand/iNand/moviNand/sd/mmc的多种启动方式。

2.说说iROM启动

iROM启动的方式,Samsung为了对自家芯片的启动方式做一个统一,在多年前,对自家产品的芯片的启动方式发起了一次标准化推广,即,推广IROM的启动。IROM启动的意思即是,Samsung自己生产的芯片,在芯片的内部固化了一些引导代码,这些引导代码会做一引导启动的操作,当然,只是简单的引导,这段代码的存在也就是我们熟知的BL0启动阶段。就s3c2416x这款芯片而言,以下几个步骤是需要在BL0启动阶段做的事:

  • 设置系统进入svc32模式
  • 初始化系统时钟
  • 屏蔽所有的中断
  • 关闭MMU
  • 根据GPC5/GPC6/GPC7引脚的值来确定从哪一个存储设备中加载启动代码到内部的Stepping stone中去运行

3.如何设置才能让芯片从IROM启动?

  • 首先要设置OM[4:0]位,依据数据手册中的描述,进行如下设置:

图 3-1-1

根据上图中所描述的,将OM[4:0]设置成0100x (x, 0:x-tal, 1:extclk),比如我使用的是外部晶振,那么最后一位设置成0,那么整个OM[4:0]就是01000, 如果我使用外部时钟,最后一位就设置成1,那整个OM[4:0]就变成了01001,这些位的设置依赖于你硬件的连线。

  • 其次,在来设置GPC5/GPC6/GPC7位,用来选择我们IROM从哪个存储设备中加载引导代码,是Nand还是SD/MMC,还是MoviNand等
    图 3-1-2
    比如说我们用的外设的nandflash的页大小是2k,地址周期是5个地址周期(这个多少地址周期,在nandflash的datasheet中会给出的,看nand的datasheet就ok),那么根据上图的描述,GPC7:GPC5的值就设置成101

经过上述两步骤的设置,我们的芯片将会从以IROM的方式启动,并且,启动后会从Nandflash中加载启动代码到Stepping stone中运行,然后在Stepping stone中去加载剩下的代码到SDRAM中去运行。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值