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. Qt学习笔记-支持Gif动画显示

    写QT程序时遇到个问题,本机编译完成的应用程序的Gif正常显示,但移到开发板上,gif无法显示,最后发现是其实是插件的关系. 在编译安装的路径中有一个 plugins/imageformats 里面是 ...

  2. FPT: Feature Pyramid Transfomer

    导言: 本文介绍了一个在空间和尺度上全活跃特征交互(fully active feature interaction across both space and scales)的特征金字塔transf ...

  3. Java学习日报8.6

    <构建之法:现代软件工程>读后感 比起一般的教学类书籍,这本书更像是一本传记小说,作者邹欣以自己或者说一些典型的软件工程师为例子,详细介绍了一个软件工程师的工作内容,全书给我的感觉就是以一 ...

  4. RocketMQ踩坑记

    一.前言 现在的主流消息队列基本都是kafka.RabbitMQ和RocketMQ,只有了解各自的优缺点才能在不同的场景选择合适的MQ,对比图如下: MQ对比图 本篇文章主要介绍我自己在跑官方demo ...

  5. java 多态 向上造型

    最近在读java 编程思想,在读多态一章时,遇到了一个问题,在此记录一下. 1 package main.demo; 2 3 class Super{ 4 public int filed =0; 5 ...

  6. Django中一种常见的setting与账密保存/读取方式

    前言 在查看别人Django代码的时候,发现很多的manager文件都是类似于 #!/usr/bin/env python import os import sys if __name__ == '_ ...

  7. [RTMP] 国内各大视频直播CDN厂商推流抢流行为分析

    背景 当存在一个推流客户端正在向rtmp://xxx.com/live/yyy推流时,又有另外一个推流客户端同时对这个地址进行推流,会发生什么呢? 查阅了 Adobe RTMP Spec 发现规范本身 ...

  8. 【JavaWeb】XML 文件

    XML 文件 简介 XML 是可拓展的标记性语言. XML 的主要作用: 用来保存数据,且这些数据具有自我描述性: 作为项目或模块的配置文件: 作为网络数据传输的格式,但是现在以 JSON 格式为主. ...

  9. Ossec 安装并配置邮件通知

    Ossec 安装并配置邮件通知 目录 Ossec 安装并配置邮件通知 1. 介绍 2. 软硬件环境 3. 安装步骤 3.1 Server 3.2 Agent 3.3 配置邮件通知 4. 参考资料 1. ...

  10. requests顺序执行实现

    多步请求封装,执行完一个用例 def requests(self,step_info): request_type =step_info['请求方式'] if request_type==" ...