S5PV210 ARM-cortexA8设备变砖刷机(uboot,kernel,文件系统)步骤+SD启动uboot+fastboot/dnw使用方法

2020-5-24学习验证整理

一.S5PV210设备变砖刷机步骤:

dnw(先以usb方式将uboot烧录到内存中,让我们能进boot部署系统)+fastboot(进入uboot后进行分区操作,进入fastboot模式,之后在win下以usb方式将uboot,kernel,文件系统进行烧录)


1.安装dnw驱动


①win10禁用数字签名
②按钮拨到SB启动,长按power键,在设备管理器中找到未识别的驱动,安装驱动dnw_driver_win7-64


2.window下烧录


连接micor usb线,板子按钮拨到SB启动,长按power键
DNW软件,configuration>options设置下载地址d0020010(是裸机程序下载地址,sram)(区域是sram,该地址上电后可运行)。
USB Port>Transmit选择下载的文件x210_usb.bin(初始化dram,目的是将uboot放入dram启动)
按照②③步骤DNW配置下载地址23e00000(dram中),USB下载uboot.bin(大于内部sram 96k,所以无法直接把他放到sarm中上电自启)
这时串口会有uboot启动的打印信息,回车进入uboot,此时可以松开power键。

fdisk -c 0进行分区
操作:
x210 # fdisk -c 0
fdisk is completed

partion #    size(MB)     block start #    block count    partition_Id
   1           258            22374          529518          0x83
   2           258           551892          529518          0x83
   3           101          1081410          208824          0x83
   4          3084          1290234         6316926          0x83
输入fastboot(相当于进入fastboot模式,此时win才能发现是否安装驱动,如果没安装驱动,此时设备管理器中会弹出未安装的驱动程序,更新其驱动程序x210_android_driver
在DOS下进入fastboot.exe所在目录,执行fastboot devices 能够找到设备信息说明安装成功)
操作:
x210 # fastboot
[Partition table on MoviNAND]
ptn 0 name='bootloader' start=0x0 len=N/A (use hard-coded info. (cmd: movi))
ptn 1 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 2 name='ramdisk' start=N/A len=0x300000(~3072KB) (use hard-coded info. (cmd: movi))
ptn 3 name='config' start=0xAECC00 len=0x1028DC00(~264759KB)
ptn 4 name='system' start=0x10D7A800 len=0x1028DC00(~264759KB)
ptn 5 name='cache' start=0x21008400 len=0x65F7000(~104412KB)
ptn 6 name='userdata' start=0x275FF400 len=0xC0C6FC00(~3158463KB)
在DOS下进入fastboot.exe所在目录,执行
fastboot flash bootloader xxxxx
fastboot flash kernel xxxxx
fastboot flash system xxxxx
fastboot -w

上面的 "xxxxx" 指的是对应镜像所在路径。注意路径名,分区名称,我自己烧录的时候就是搞错了分区名称,导致启动不起来

 以刷linux-qt为例:
E:\Software\zhu_software\fastboot下放置我的fastboot.exe
E:\Software\zhu_software\fastboot\linux+QT4.8下放置我的烧机文件uboot.bin,zImage-qt,rootfs_qt4.ext3
fastboot flash bootloader .\linux+QT4.8\uboot.bin
fastboot flash kernel .\linux+QT4.8\zImage-qt
fastboot flash system .\linux+QT4.8\rootfs_qt4.ext3
fastboot -w
fastboot reboot
将拨码开关拨到emmc启动,就可以从inand启动了
进入linux用户名root, 密码123456

以刷android4.0.4为例:
fastboot flash bootloader .\android4.0.4\uboot.bin
fastboot flash kernel .\android4.0.4\zImage-android  烧linux kernel
fastboot flash system .\android4.0.4\x210.img 烧android rom
fastboot -w (试了一下,这个不敲也可以,应该是上面烧录时直接写入inand了)
将拨码开关拨到emmc启动,就可以从inand启动了

2.fastboot


fastboot是uboot中用来快速下载镜像的一个命令,fastboot同时还是一个windows上的软件。
    fastboot下载时要注意1:fastboot是使用USB线进行数据传输的,所以fastboot执行之前要先连接开发板和主机之间的usb线。
    fastboot下载时要注意2:需要安装驱动。
fastboot常用命令:
    fastboot devices        命令用来查看当前连接的设备。(我们开发板看到的是:SMDKC110-01)
    fastboot flash xxx        命令用来烧录的
    fastboot reboot        命令用来重启系统


二.SD卡启动uboot方法(x210v3开发板SD卡烧写教程.pdf)


我们板子默认是从SD通道0,也就是是iNand启动
破坏iNand中的bootloader以从SD2启动
我板子烧录的是linux,所以用这个命令:
    busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync(利用linux下dd命令,if是输入,of输出到,bs=512 是512字节,seek=1第一个扇区)
    sync   启动后串口输出SD checksum Error,这个SD是SD通道0校验错误。
    解释:这句话的意思就是说把板载的iNand的第一个扇区用全0来填充,其实就是擦除它,这样我们板载的iNand的bootloader的开始第1个扇区就被破坏了。将来启动时iROM还是会先从iNand中读取前16KB,然后计算校验和。这时候因为有1个扇区被擦掉了,所以校验和不通过,所以启动失败(会从SD2去执行2nd启动)。
    注意:破坏板载iNand的bootloader后,不插外部SD卡,启动时串口得到:SD checksum Error
1.3.4.1、制作启动SD卡(其实就是烧录uboot到SD卡中)
    有2种烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;另一种是在linux中用dd命令。
    本节介绍第一种(比较简单)
    制作完SD后将SD卡插入开发板SD2通道(注意不是SD3),然后开机就可以进入uboot界面了。在uboot开机自动启动倒数3秒之内迅速按下电脑回车键,打断自动启动。(否则会自动启动iNand中的android)

此时如果依然想从iNand中启动uboot,那就进入SD2启动的uboot下,执行fastboot进入fastboot模式,再win的DOS下进入fastboot.exe所在目录,通过fastboot进行uboot的下载,下载成功后,把SD2拿掉,设备启动时就是从iNand中启动,由于我们并未破坏内核和文件系统,此时启动正常。
也可以

 

————————————上面这些刷机步骤我觉得挺好用,下面这些是另外一种方法,我并未尝试,应该也是可行的,目前还用不到,以后能用到再来试试吧——————————————————


1.3.10补充-linux下使用dd命令刷写uboot
1.3.10.1、SD卡连接入linux中
    首先得搞清楚:一个USB设备插到电脑后,要么可以在Windows中识别,此时不能在虚拟机linux中识别;要么能在linux中识别,但是在windows中又不见了。默认的一般都是连在Windows中的,所以linux是找不到的。
    如果你需要将该设备连接到linux中,需要在VMware软件的菜单“虚拟机 -> 可移动设备”中点选该设备,选择连接
    
    连接进linux中,在命令行中:ls /dev/sd*查看,和之前对比,就知道我们的SD卡在linux中的设备编号了。一般是/dev/sdb
    也有可能是sdc或者其他。我们后面的实验是基于这个设备号是/dev/sdb的,如果不是,后面的实验要相应做修改。
1.3.10.2、制作SD启动卡
    执行 ./nand_fusing.sh /dev/sdb
1.3.10.3、使用SD卡启动
    先确定开发板是从SD卡启动的
    然后确定板子内的iNand中的uboot是被破坏的,不能启动的。
    SD卡插入SD2通道,启动即可。启动后(看有没必要fdisk -c 0来分区)使用fastboot继续刷机。

1.3.12.补充-linux下dnw软件的使用
1.3.12.1、linux下dnw获取
(1)源码包获取
(2)编译和安装
1.3.12.2、开发板连接到linux下
(1)开发板设置USB启动,开机,windows设备管理器中提示发现新硬件
(2)VMware菜单:虚拟机->可移动设备->Samsung S5PC110 SEC Test B/D,点击连接
(3)成功连接后现象:1、Windows下设备管理器没了;2、ls /dev/secbulk0 设备节点自动出现
1.3.12.3、使用dnw进行下载uboot.bin
(1)dnw -a 0xd0020010 x210_usb.bin
(2)dnw -a 0x23e00000 uboot.bin
成功标志:SecureCRT中成功看到了uboot的启动信息,并且进入了uboot命令行。

1.3.12.4、uboot启动后的刷机注意事项
(1)正确的uboot启动后一定要先fdisk -c 0进行分区,然后再fastboot
(2)uboot的参数中bootcmd和bootargs一定要正确。
set bootcmd 'movi read kernel 30008000; bootm 30008000'
set bootargs console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3

 

你可能感兴趣的:(uboot和系统移植)