Note: 我的S5PV210板子的磁盘是emmc版本,不是nandflash版本。

1.  SD卡内烧录uboot镜像,然后作为启动盘来启动emmc中的内核镜像和根文件系统。

只要破坏emmc内的uboot镜像,就可以使其从sd2启动 (因为emmc内没了完整的uboot,自然就无法启动内核)

然后使用SD卡烧录的工具软件在SD卡内烧录uboot镜像,启动盘就制作好了。

有了启动盘,就可以把uboot程序跑起来,

而uboot的作用是支持多种方式升级内核,例如tftp升级、SD卡升级,等等。

2.  Uboot 下使用tftp 升级内核

先设置好三个环境变量

uboot内去ping PC windows主机

登录uboot后,网线连接板子与PC机,PC主机windows上ipconfig,以太网适配器有可能会显示:媒体已断开连接。实际上不要紧的,板子仍然可以ping通PC机windows的。
我们需要windows的IP地址。
要获取windows的IP地址,网线连接好,让板子先进到linux系统,再在windows上ipconfig就可以看到IP地址了(以太网适配器 以太网),然后重新进入uboot去ping。

只要ping后显示host 是alive的信息即表示ping成功。

3. 保证能ping通后,执行下载或烧录(或叫升级也行)新的内核

实测该tftp升级内核命令是搬移到内存DDR去,而不是磁盘emmc去。测试方法是搬移到DDR的内核镜像,在整机断电后重启就会失效。

之后执行bootm 30008000 或者 bootm 30008000 zImage

PS:bootm由boot和m构成,这里m指的就是memory,即ddr内存,

所以当使用bootm时,若ddr中没有内核镜像,则会启动失败。

启动新内核成功。

然后遗憾的是现在还不能称之为升级新内核成功,因为只要现在的板子一断电,重新上电,uboot自动加载的内核依然是emmc内的旧内核。而我们已有的tftp只是把内核从PC主机上搬到了Linux板子上的DDR里,并没有覆盖写入到板载emmc的旧内核的位置。

我们可以通过uboot内的mmc或者movi指令来将DDR内的内核烧写到emmc内去。

重新进入uboot,

在uboot内执行help movi, 可以了解下movi命令的用法

和之前一样,先用tftp把zImage搬到DDR

现在,即使整机断电重启,启动的内核也是新的内核了。

看到这里可能会有疑问,为什么在执行movi命令时,也不指定将DDR里的kernel烧写到emmc的哪个起始地址去呢?

因为uboot里面有个分区表,uboot的分区表和内核的分区表是一样的,已经记录了磁盘emmc内的分区信息了。所以我们在使用movi命令烧写kernel时就不需要再指定emmc的地址了。

换句话说: uboot内部知道kernel分区在磁盘emmc中的具体地址,而我们命令中只需要告诉现在烧写进去的是kernel这个分区即可

3.  将emmc上的kernel镜像加载到DDR,如下图所示

4.  九鼎SD卡升级介绍

进入uboot

既然uboot已经启动了,uboot程序已经在跑了,这时候就可以把出SD卡拔出来,

然后创建个x210文件夹,里面放置uboot、内核、根文件系统镜像。

插上SD卡,执行上图该命令,应该就可以一次性完成升级uboot、内核和根文件系统镜像了。

九鼎科技相关文档如下图

.

九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像的更多相关文章

  1. 为Qemu aarch32开发板添加sd卡

    Qemu: 2.8.0 开发板: vexpress 1.制作sd卡镜像 2.分区 sudo losetup /dev/loop0 fs_vexpress_1G.img sudo fdisk /dev/ ...

  2. RK3399/NanoPC-T4开发板低级格式化SD卡,恢复SD卡和TF卡 方法

    恢复SD卡和TF卡 方法:Windows下运行:HDDLLF.4.40.exe执行Low-Level format然后拔插,重新插在win10下提示格式化,则执行格式化操作,即可恢复. 应用场合:使用 ...

  3. 用SD卡下载uboot、linux内核和文件系统

    1. 移植mtd-utils: a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/b) 交叉编译mtd-utilsi   修改Make ...

  4. Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建

    /*********************************************************************************** * * linux 3.5,U ...

  5. 6410开发板sd卡启动时烧写u-boot.bin以及u-boot-spl-16k.bin步骤

    参考文档:<SMDK6410_IROM_APPLICATION NOTE_REV 1.00>(可以从这里下载到> 参考博客:Tekkaman的博文<u-boot-2010.09 ...

  6. s5p6818 从SD卡启动程序(制作SD启动卡)

    背景: 最近在学习uboot,其中有一步很重要的任务就是需要实现uboot 的验证,没有办法验证uboot是不是自己做的,那么整个开发就会收到阻碍.另外,从公司现在开发的板子来看,uboot从sd卡启 ...

  7. 【团购活动】接口最全最好用的S5PV210开发板Sate210-F 开发板开始团购活动了,一起学习linux!

    接口最全最好用的S5PV210开发板Sate210-F 开发板开始团购活动了,一起学习linux!http://bbs.eeworld.com.cn/forum.php?mod=viewthread& ...

  8. Exynos4412从SD卡启动的简单网络文件系统制作

    Exynos4412从SD卡启动的简单网络文件系统制作 1. 简介 嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootf ...

  9. 制作SD卡启动自己编译的uboot.bin

    README for FriendlyARM Tiny4412 -----------------------------------------------------1. Build uboot ...

随机推荐

  1. [LeetCode]662. Maximum Width of Binary Tree判断树的宽度

    public int widthOfBinaryTree(TreeNode root) { /* 层序遍历+记录完全二叉树的坐标,左孩子2*i,右孩子2*i+1 而且要有两个变量,一个记录本层节点数, ...

  2. STL小结

    \(\mathcal{STL}(\mathcal{Standard\ Template\ Library})\) \(queue\) (队列): 这是一种先进先出的数据结构. 主要操作: 操作 功能 ...

  3. Java基础--接口回调(接口 对象名 = new 类名)理解

    接口 对象名1 = new 类名和类名 对象名2 = new 类名的区别是什么? 实例 /** *Person.java 接口 */ public interface Person { void in ...

  4. 音视频入门-19-使用giflib处理GIF图片

    * 音视频入门文章目录 * GIFLIB The GIFLIB project 上一篇 [手动生成一张GIF图片], 自己生成了一张 GIF 动态图 rainbow.gif. 下面,使用 GIFLIB ...

  5. transmission protocol

    传输层主要定义了主机应用程序间端到端的连通性,它一般包含四项基本功能 . 将应用层发往网络层的数据分段或将网络层发往应用层的数据段合并 建立端到端的链接,主要是建立逻辑连接以传送数据流 将数据段从一台 ...

  6. MySql中的有条件插入 insert where

    假设现在我们有这样的需求:当数据库中不存在满足条件的记录时,可以插入一条记录,否则程序退出.该怎么实现? 1年以上工作经验的人应该都能立即想到:去检查一下库里有没有记录,没有就插入,有就结束. int ...

  7. #2020征文-开发板# 用鸿蒙开发AI应用(五)HDF 驱动补光灯

    目录: 前言 硬件准备 HDF 驱动开发 总结 前言上一篇,我们在鸿蒙上运行了第一个程序,这一篇我们来编写一个驱动开启摄像头的红外补光灯,顺便熟悉一下鸿蒙上的 HDF 驱动开发. 硬件准备先查一下原理 ...

  8. Tomcat-8.5.23 基于域名和端口的虚拟主机

    下载tomcat yum install java -y cd /opt/ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.23/b ...

  9. 一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

    1. 问题起因 通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死.master一直报错,经过一系列操作后,导致RIT异常. 2. 异 ...

  10. springBoot实现redis分布式锁

    参考:https://blog.csdn.net/weixin_44634197/article/details/108308395 .. 使用redis的set命令带NX(not exist)参数实 ...