全志H3启动分析,移植主线UBOOT

参考资源

启动流程

因为使用的是外扩SD卡,因此主要参考了这部分内容;Bootable SD card

SD卡Layout如下:

start

sector

size

usage0KB

0

8KB

未使用,主要用于存放分区表

8KB

16

32KB

Init SPL

40KB

80

-

U-Boot

SD卡的起始地址处放的是分区表MBR(占用512B)或者GPT(更多),为了保证SD卡还能用于其他目的,所以前8KB是不能用的;

8KB开始存放U-Boot-spl以及U-boot镜像;

后续未使用区域可以分成FAT分区 + 其他分区,FAT分区中存放linux kernel + DTB文件 + boot.scr,其他分区主要存放根文件系统,或者其他分区;

上边这些规定都是全志内部固化的流程,芯片上电后首先运行内部一段引导程序,然后按照一定的优先级去遍历emmc sd nand usb等看是否能引导程序,如果是SD/eMMC,则会在8KB的便宜除引导程序(uboot-spl),再引导uboot,uboot会从sd卡FAT分区内引导linux内核,解析boot.scr,获取bootcmd,再从其他分区加载根文件系统,至此结束。

编译链

使用linaro工具链即可

uboot编译

make CROSS_COMPILE=arm-linux-gnueabihf- _defconfig

make CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

make CROSS_COMPILE=arm-linux-gnueabihf-

我的板子和orangepi plus类似,1GB DDR3+8GB emmc;但是不幸是ddr沒有走等长线,如果是用orangepi plus的配置,则linux会运行失败,需要修改ddr3的频率,降低频率即可,或者直接使用友善之臂 nano-pi的配置。

SD制作

linux下 使用dd命令烧写uboot至8k偏移处。

使用blockdev命令进行分区,具体可参见:Bootable SD card 。

将boot.cmd转换为uboot可识别的boot.scr,并见boot.scr放于FAT分区:

mkimage -C none -A arm -T script -d boot.cmd boot.scr

将制作好的kernel和DTB放于FAT分区。

使用busybox构建根文件系统,或者直接使用第三方根文件系统,将此系统解压至sd卡的其他分区。

来源:oschina

链接:https://my.oschina.net/u/4232364/blog/3134751

全志h3linux移植教程,全志H3启动分析,移植主线UBOOT相关推荐

  1. 全志h3linux移植教程,全志H3_wifi模块移植说明文档V-SDK软件资料

    2. 模块介绍 目前H3 android4.4.2平台上已支持wifi模组有6款,本文档将以H3盒子原型机为例说明如何配置每款wifi模组. wifi 模组可分 USB 接口和 SDIO 接口两种类型 ...

  2. 荔枝派Zero | 全志V3s 开发教程(一) 烧录系统镜像的方法以及如何烧录主线Linux系统镜像

    荔枝派Zero | 全志V3s 开发教程(一) 荔枝派Zero的开发教程: http://zero.lichee.pro/系统开发/type.html 刚开始尝试编译Camdroid官方SDK,最终浪 ...

  3. 全志a64linux内核编译,全志A64 lichee编译脚本build.sh分析

    全志A64 lichee编译脚本build.sh分析 发布时间:2018-08-22 15:58, 浏览次数:269 , 标签: lichee build sh lichee目录下的./build.s ...

  4. 全志V3S荔枝派zero10分钟制作TF启动卡,主线Linux,主线u-boot(超过10分钟博主直播吃奥利奥!!!)

    一,初学者(比如我)刚拿到zero时,一定是一脸懵逼的,无从下手的,通过几篇代佬们写的文章+官网资料,了解了几种启动方式 1.Camdriod 官方SDK 2.主线Uboot + Bsp 内核 3.主 ...

  5. 基于STM32F4的CANOpen移植教程(超级详细)

    CANopen移植到STM32F4平台 前言 1 物品准备 2 相关软件安装 2.1 CAN上位机 2.2 对象字典生成工具objdictedit环境配置 3 将CANopen移植到STM32F407 ...

  6. 区块链教程Fabric1.0源代码分析scc(系统链码)

    区块链教程Fabric1.0源代码分析scc(系统链码),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁.回归理性,表面上看相关人才需求与身价似乎正在回落.但事实上,正是初期泡沫的渐退,让人们更 ...

  7. 兄弟连区块链教程Fabric1.0源代码分析Peer peer根命令入口及加载子命令一

    区块链教程Fabric1.0源代码分析Peer peer根命令入口及加载子命令,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁.回归理性,表面上看相关人才需求与身价似乎正在回落.但事实上,正是初 ...

  8. 区块链教程Fabric1.0源代码分析流言算法Gossip服务端二

    区块链教程Fabric1.0源代码分析流言算法Gossip服务端二 Fabric 1.0源代码笔记 之 gossip(流言算法) #GossipServer(Gossip服务端) 5.2.commIm ...

  9. iTop-4412精英版的u-boot-2017.11移植教程(三)

    (一)修改clock.c 经过上面两节的修改,我们发现还是有些问题,就是u-boot启动后会停留在MMC: ,其实这是由于在clock.c文件中关于mmc和lcd部分的结构体用错了 exynos4_g ...

最新文章

  1. C++中string查找和取子串和整形转化
  2. 机器学习算法库scikit-learn的安装
  3. AI:一个20年程序猿的学习资料大全—区块链/大数据/数据集/云计算/前沿大会资料——只有你不想要的,没有你找不到的
  4. mysql 按时间累计计算_精通MySQL索引背后的数据结构及算法原理
  5. html霓虹灯效果图,HTML5 SVG+CSS3霓虹灯文字边框动画特效
  6. java链表对象_用Java实现链表结构对象:单向无环链表
  7. ~~通过预处理逆元的方式求组合数
  8. a标签js阻止跳转_前端笔试知识点:阻止冒泡
  9. 【NOIP1999】【Luogu1020】导弹拦截
  10. Windows Server 2016-DHCP服务器审核日志大小调整
  11. 【RS|概念】辐射校正和几何纠正
  12. linux中mysql启动时遇到MySql server PID file cound not be found
  13. 企业如何架设代理服务器联接互联网
  14. Dreammaker水疗流行的Eclipse从他们的加州系列,审议
  15. flask爱家租房项目开发(十二)
  16. Excel VBA一行代码搞定分组排序
  17. 户外P10全彩LED显示屏一站式解决方案。
  18. Android 之路51---百度地图实现
  19. html 设置元素向左浮动
  20. eclipse项目出现红色叉叉解决方案

热门文章

  1. 解决socket粘包的两种low版模式 os.popen()和struct模块
  2. 使用ffmpeg裁剪和合并视频
  3. 基于JAVA的生产者消费者问题
  4. [Leetcode] single number 找单个数
  5. zzUbuntu安装配置Qt环境
  6. mysql的主从复制原理
  7. 为什么QQ传文件比MSN快 揭密背后原因
  8. 18.实现标准的Dispose模式
  9. SAP屏幕设计器专题:树控件的使用(九)
  10. Kinect 深度数据