注明:本文是基于深圳九鼎创展X4418开发板,不确定适用于所有厂家4418开发板.

前一章我们简单讲了一下怎么通过硬件来配制芯片启动方式,在硬件配制好后自然要了解一下这个软件启是过程是怎么样的。接触过S5P4412的朋友一定都知道IROM boot启动,烧写启动代码时有四个文件要烧写(BL1,BL2,u-boot.bin,TSZW).其实4418也一样采用的是IROM启动方式,但是镜像这一块还有有点不一样,因为s5p4418不支持trustzone功能,所以在烧写代码时就没有TSZW这个文件。

启动过程其实比较简单,如下图:

  1. 芯片电上

  2. 当上电后运行的第一个代码就是IROM里的代码,加为芯片里面都有一个小的ROM存储空间,里面是有代码的,具体做些什么也没有看到有介绍资料,但是估计也和4412一样,侦测启动脚的配制,从启动存储里抓取2nboot代码。

  3. 运行内部RAM 中的2nboot代码(复制u-boot.bin到DDR3中)

  4. 运行u-boot.bin

上面就是一个代码运行的过程。

知道上面的一个流程我们再来对比的一下S5P4412和S5P4418镜像有什么区别

S5p4412

S5p4418

BL1.bin

2nboot.bin

TSZW.bin

NC

BL2.bin

u-boot.bin

u-boot.bin

从这个图表中我们就很易容看出来两平台的镜像有什么区别,4412的BL1相当于4418的2nboot.bin.但是s5p4412 BL2.bin+u-boot.bin相当于s5p4418的u-boot.bin

其实4418中还有一个很重要的文件NSIH.TXT.这个文件也算是启动镜像的一部分。如果少了这个你的u-boot同样跑不起来。这样就很清楚了其实s5p4418里也有三个文件2nboot.bin,u-boot.bin,nsih.txt.

我使用的是九鼎的4418开发板,九鼎在uboot编译的时候已经把这三个文件打包成了一个文件ubootpak.bin。这样我们只要写一个文件就可以了。这三个文件是怎么存放的呢?

加为开发板上是EMMC,EMMC和SD卡其实是一样的,block 0是卡的相关信息,这部分是不能改的,如果改了block 0卡可能就费了。大家一家要注意。所有的有镜像文件都是烧写在block 1以后的。

下面是一个镜像在EMMC中分布图:

Block 0

Sd/emmc卡信息

Block 1

Nsih.bin

Block2

2nboot.bin

Block63

Nsih.bin

Block64

u-boot.bin

这样看就比较清楚看镜像所以具体位置。

U-boot.bin可能大家都知道,这是用u-boot代码编译出来的,这个我就不介绍了。我们来简单说一个nsih.bin这个文件。

Nsih.bin这个文件其实就是对芯片一些简单寄存器的配制,包括(启动方式,PLL,DDR)。

这是我从nsih.txt中截取的一段。

// Vector Code Area

{设置值} {地址}   {注释}

E59FF018//0x000 : MOV PC, ResetV

E59FF018//0x004 : MOV PC, UndefV

E59FF018//0x008 : MOV PC, SWIV

E59FF018//0x00C : MOV PC, PAbortV

E59FF018//0x010 : MOV PC, DAbortV

E59FF018//0x014 : MOV PC, NotUsed

E59FF018//0x018 : MOV PC, IRQV

E59FF018//0x01C : MOV PC, FIQV

我已经用红色的标注了各列是什么。我们最终要写入EMMC/SD中的就是前面的这个值。从nsih.txt这个文件中来看我们并不清楚怎么来设定相关的值,这个大家不用担心,三星已经提供了一个excel表格给大家,大家只要通过个表格来设置就自动生成nsih.txt文件。

2nboot.bin这个文件也是一样,我们可以在android代码中找到一个2NBOOT文件夹。是编译这个代码来生成的。

好这一节先介绍到这里,这样大家会更明白怎么来烧写镜像。无论是用专门的工具还是我们直接在ubuntu下用dd命令来烧写我们都可以实现。

S5P4418启动镜像分析相关推荐

  1. 【SemiDrive源码分析】【X9芯片启动流程】27 - AP1 Android Preloader启动流程分析(加载atf、tos、bootloader镜像后进入BL31环境)

    [SemiDrive源码分析][X9芯片启动流程]27 - AP1 Android Preloader启动流程分析(加载atf.tos.bootloader镜像后进入BL31环境) 一.Android ...

  2. u-boot启动流程分析

    u-boot启动流程分析 以smdk2410为例,分析u-boot的启动流程.u-boot的启动流程是指从cpu上电开机执行u-boot到u-boot成功加载完操作系统的过程.这一过程可以分为两个阶段 ...

  3. 常见SOC启动流程分析

    常见SOC启动流程分析 本文以s5pv210这款SOC为例,分析了其启动流程 在s5pv210的SOC内部,存在着一个内部的ROM和一个内部的RAM 这个内部的ROM叫做 IROM,它是norflas ...

  4. Bootm启动流程分析

    Bootm启动流程分析 如何引导内核 uboot启动命令 内核镜像介绍 内核启动前提 Bootm命令详解 Bootm命令格式 do_bootm do_bootm_subcommand images全局 ...

  5. RISC-V Linux 启动流程分析

    " Author:  通天塔 985400330@qq.com Date:    2022/05/15 Revisor: lzufalcon falcon@tinylab.org Proje ...

  6. 【Autopsy数字取证篇】Autopsy案例创建与镜像分析详细教程

    [Autopsy数字取证篇]Autopsy案例创建与镜像分析详细教程 Autopsy是一款非常优秀且功能强大的免费开源数字取证分析工具.-[蘇小沐] 文章目录 [Autopsy数字取证篇]Autops ...

  7. arm9 c语言函数库,s3c2410(ARM9)启动代码分析(转载)

    ADS下C语言的入口方式和ROM镜像文件的生成 这部分介绍下ADS下如何生成可以运行的ROM镜像文件,我们知道当程序下载到flash中运行的时候,对于RW.ZI数据就存在着两个环境,一个load环境, ...

  8. Hyperledger Fabric笔记3--BYFN启动流程分析

    Hyperledger Fabric笔记3--BYFN启动流程分析 BYFN--构建你的第一个网络,该方案提供了一个示例Hyperledger Fabric网络,该网络由两个组织组成,每个组织都维护两 ...

  9. 【SA8295P 源码分析】02 - SA8295P 整包镜像分析

    [SA8295P 源码分析]02 - SA8295P 整包镜像分析 一.UFS LUNs 二.开机启动相关镜像介绍 三.QNX Host相关镜像介绍 四.Android GVM 相关镜像介绍 五.其他 ...

  10. RK3399快速上手 | 03-RK3399启动流程分析

    文章目录 一.Rockchip处理器通用启动流程 1. 启动路径 2. 启动阶段 3. 启动流程分析 3.1. 图示 3.2. 第一阶段 3.3. 第二阶段 3.4. 第三阶段 3.5. 第四阶段 3 ...

最新文章

  1. web 服务器-Nginx
  2. 史上最详细版Centos6安装详细教程
  3. [Struts]Cannot find bean in any scope之一解
  4. shell一段脚本的一点经验(实时文件流读写)
  5. 社区O2O全面遇冷,社区金融如何避免走入独特陷阱
  6. 如何处理 Hybris Accelerator css style 显示不正确的问题
  7. [蓝桥杯2017决赛]平方十位数-枚举+set去重
  8. java.net.URLEncode编码 与 URLDecode解码问题
  9. jieba分词_Jieba.el – 在Emacs中使用jieba中文分词
  10. Servlet Cookie 处理
  11. oracle服务器支持ipmi带外管理,ipmi带外管理
  12. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 xor (根号分治)
  13. Jenkins可持续集成
  14. 拓端tecdat|基于机器学习的印度肝脏病诊断分析
  15. linux下不是很完美的提高android虚拟机的启动速度
  16. GAN详解与PyTorch MINIST手写数字生成实战
  17. javascript常用校验器
  18. 05、ADS使用记录之集总参数匹配
  19. 中国脑计划颠覆性创新之路四,用脑科学预测互联网的未来发展趋势
  20. updating homebrew

热门文章

  1. MyDLNote-High-Resolution: CooGAN: 协同GAN网络,高分辨率面部属性的高效记忆框架
  2. Navicat-在创建函数时提示Access violation at address ... in module ‘navicat.exe‘
  3. java学习day10(Java基础)特殊类
  4. 学习笔记(1):Matlab小白入门必备教程-数据的基本运算
  5. Spring常见问题解决 - Required request body is missing
  6. Halcon之Variation Model
  7. obs显示从服务器断开连接,obs重新连接到服务器
  8. 如何改善物流行业项目管理?
  9. 7-11 机工士姆斯塔迪奥(PTA程序设计)
  10. index+match函数/一对多查找匹配,可以代替Vlookup函数的使用。