uboot for zaurus的安装引导分析

简介: skykiker2009/5/31   本文简单分析uboot for zaurus(即pdaXrom r198版的uboot)的安装和引导过程。其中涉及到Zaurus的OK刷机模式,关于该模式的说明请参考我的另一篇文章《Zaurus的4种操作模式详解》。
skykiker
2009/5/31

   本文简单分析uboot for zaurus(即pdaXrom r198版的uboot)的安装和引导过程。其中涉及到Zaurus的OK刷机模式,关于该模式的说明请参考我的另一篇文章《Zaurus的4种操作模式详解》。

1.安装uboot和Emergency System
  前提是你的系统中装的是Sharp原装的bootloader,否则以下方法不适用你。
先下载pdaXrom r198版带的uboot。
http://distro.ibiblio.org/pub/linux/distributions/pdaxrom/download/r198/c1000-c3x00/pdaXrom-1.1.0r198-Kathrin-akita-uboot.zip

解压后有下面5个文件,将它们放到SD/CF卡的根目录,进入OK模式,执行"升级"就可以将uboot和Emergency System安装的Zaurus机器上了。
updater.sh
updater.pro
u-boot.bin
emergenc.img
autoboot.sh

上面有一个updater.pro的文本文件,应该就是升级程序updater.sh的配置文件。
updater.sh:
U-BOOT  ,BIN,0x00000000,320
EMERGENC,IMG,0x00060000,5376

从这个配置文件不难看出:升级后uboot被放在NAND开头的320K位置,Emergency System从后面的384k(即0x00060000)开始,占用5376K空间。
uboot安装后,覆盖了zaurus上Sharp原装的bootloader,这2个bootloader是不兼容的,所以做完这一步Zaurus原来的系统就挂了。不过不用担心,可以用uboot安装新的系统上去。

2.安装kernal和rootfs
 安装kernal和rootfs的方法如下:
   1) 拔掉Zaurus的交流适配器,同时取出电池
   2) 将新的kernal和rootfs复制到SD卡或CF卡的根目录
可以从下面的地址获取pdaXrom 1.1.0 r198的安装文件。
http://distro.ibiblio.org/pub/linux/distributions/pdaxrom/download/r198/c1000-c3x00/pdaXrom-1.1.0r198-Kathrin-akita-current.zip

解压后有下面几个文件。
kernel.img
rootfs.img
autoboot.sh

   3) 按住键盘上的Ok键后装上电池或者插上电源适配器,注意不要松开Ok键
记住现在是用刚才安装的uboot引导系统,uboot启动时会检查OK键有没有按下去,如果按了则引导Emergency System(在NAND的0x00060000位置),否则引导通常的Linux内核(在NAND的0x005a0000位置)。实现参照uboot的源代码。
include/configs/akita.h:
#define    CONFIG_BOOTCOMMAND                        \
    "if testkey 101 ; "                        \
    "then "                                \
        "nand read.logical 0xa1000000 0x00060000 0x00540000; "        \
        "setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/ram rw fbcon=rotate:1 ramdisk_size=8192; " \
        "bootm; "                        \
    "else "                                \
        "nand read 0xa1000000 0x005a0000 0x00160000; "        \
        "setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mtdblock5 rootfstype=jffs2 fbcon=rotate:1; " \
        "bootm; "                        \
    "fi"

   4) 按住Ok键10秒左右后,系统会进入Emergency System,进入这个系统后可以松开Ok键
进入Emergency System后,会自动执行脚本autoboot.sh。autoboot.sh将kernel.img和rootfs.img分别安装到mtd1和mtd5分区。
autoboot.sh:
...
nandlogical /dev/mtd1 WRITE 0x5a0000 0x160000 kernel.img
...
nandwrite /dev/mtd2 rootfs.img
...
   5) 系统询问安装问题时,回答y,按下Enter键后,安装开始
   6) 安装完成后,系统会自动启动
这个时候,uboot就会跳转到刚写到NAND 0x5a0000处的kernel.img引导pdaXrom系统。只要你不在加电时按OK键。

  安装完后NAND的结构可参考uboot的源代码
include/configs/akita.h:
#define MTDPARTS_DEFAULT    "mtdparts=laze-0:256k(U-Boot)ro,128k(U-BootEnv),5376k(Emergency),1408k(Kernel),-(JFFS2)"

相关文章
|
3月前
|
安全 Linux Android开发
【ATF】bootloader与安全相关启动分析
【ATF】bootloader与安全相关启动分析
47 0
|
3月前
|
监控 网络协议 算法
【Linux】引导流程
【Linux】引导流程
29 0
|
Linux Go 开发工具
uboot引导vxworks6.9(T4240) 启动
uboot引导vxworks6.9(T4240) 启动
306 0
uboot引导vxworks6.9(T4240) 启动
uboot引导vxworks--t2080调试记录
uboot引导vxworks--t2080调试记录
372 0
uboot引导vxworks--t2080调试记录
|
存储 内存技术
uboot命令体系
uboot命令体系
160 0
|
Linux 数据安全/隐私保护 编解码