digital西行庵 wiki  Index  Search  Changes  PageRank  RSS  Login

Update U-Boot by SheevaPlug oneself

ページを編集するにはログインが必要です。

SheevaPlugのU-BootでU-Bootをアップデートしてみる

Linux で出来るのはあたりまえすぎる。

今回はWindowsXPをtftpサーバに仕立て上げてやってみよう。

TFTPDver1.01をインストールする

TFTPサーバプログラム TFTPD ver1.01 (さとさん

ダウンロードして解凍して実行。tftpで公開するフォルダを設定するだけ。

U-Bootの最新版をダウンロード・解凍

SheevaPlug_U-Boot1.2

デスクトップ上に「SheevaPlug1.2」フォルダを生成し、そこにダウンロード。 同じ場所に解凍。

TFTPDver1.01の設定ウインドゥを開き、アクセスパスに「C:\Documents and Settings\XXXX\デスクトップ\SheevaPlug1.2\SheevaPlug_U-Boot\U-Boot - Image」を設定。

SheevaPlug U-Boot に入って
ブート中に、Enterをキーインして、U-Bootプロンプトを出す。

ipアドレスをセットして、saveenv。

ipaddr は、SheevaPlug。serverip は、WindowsXp/tftpマシン。

Marvell>> set ipaddr 192.168.1.222
Marvell>> set serverip 192.168.1.2
Marvell>> set netmask 255.255.255.0
Marvell>> saveenv

念の為、Envを保存しておきましょう。(端末ログのファイル化か、コピペで)

Marvell>> printenv
baudrate=115200
loads_echo=0
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethaddr=00:50:43:fc:27:1a
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
arcNumber=2097
serverip=192.168.1.2
ipaddr=192.168.1.222
bootargs_root=root=/dev/mtdblock2 ro
cesvcid=ULULULULULULPPULULULULULDA
bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000
bootargs=rootfstype=jffs2 console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=192.168.1.222:192.168.1.2:192.168.1.2:255.255.255.0:DB88FXX81:eth0:none
stdin=serial
stdout=serial
stderr=serial
console=console=ttyS0,115200 mtdparts=nand_mtd:0x100000@0(uboot)ro,0x0@0x100000(uImage),0x1ff00000@0x100000(rootfs)rw
mainlineLinux=yes
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes

Environment size: 1432/131068 bytes
Marvell>>

いよいよ、U-Bootの更新。途中、Envの書き換えの可否を尋ねてくる。「n」と答えておこう。当然、Envの初期化を行いたい場合は「y」である。

Marvell>> bubt u-boot-rd88f6281Sheevaplug_400db_nand.bin
Using egiga0 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.222
Filename 'u-boot-rd88f6281Sheevaplug_400db_nand.bin'.
Load address: 0x2000000
Loading: ################################################################
         ###########################
done
Bytes transferred = 470808 (72f18 hex)

**Warning**
If U-Boot Endiannes is going to change (LE->BE or BE->LE), Then Env parameters should be overriden..
Override Env parameters? (y/n) n
Erase 0 - 655360 ...
Copy to Nand Flash...
done
Marvell>> reset
   :
   :
   :
Marvell>> version

U-Boot 1.1.4 (Apr  9 2009 - 12:23:12) Marvell version: 3.4.16

ちなみに、初期Env

Marvell>> printenv
baudrate=115200
loads_echo=0
ipaddr=10.4.50.165
serverip=10.4.50.5
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
console=console=ttyS0,115200 mtdparts=nand_mtd:0x100000@0(uboot)ro,0x0@0x100000(uImage),0x1ff00000@0x100000(rootfs)rw
mainlineLinux=no
CASset=min
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
MALLOC_len=1
ethprime=egiga0
netbsd_en=no
vxworks_en=no
bootargs_root=root=/dev/nfs rw
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
bootcmd=tftpboot 0x2000000 $(image_name);setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig);  bootm 0x2000000;
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
bootdelay=3
disaMvPnp=no
ethaddr=00:50:43:69:05:15
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
enaAutoRecovery=yes
ethact=egiga0

Environment size: 1295/131068 bytes
Marvell>>

このように初期化してしまったら、スタンドアロンで立ち上げる為には、最低限、以下の設定をしなければならない。

注1:bootargs, mainlineLinux, arcNumber は、Kernel 2.6.30 用の設定。

注2:各IP/MACアドレスは、各自の環境に読み替える様に。

注3:bootcmd のシングルクォーテーションは忘れずに。

Marvell>> setenv ipaddr 192.168.1.222
Marvell>> setenv serverip 192.168.1.2
Marvell>> setenv ethaddr 00:50:43:01:CA:BB
Marvell>> setenv cesvcid ULULULULULULPPULULULULULDA
Marvell>> setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
Marvell>> setenv bootargs rootfstype=jffs2 console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImae),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=192.168.1.222:192.168.1.2:192.168.1.1:255.255.255.0:DB88FXX81:eth0:none
Marvell>> setenv mainlineLinux yes
Marvell>> setenv arcNumber 2097
Marvell>> saveenv
Marvell>> reset
Last modified:2009/08/09 08:54:20
Keyword(s):
References: