バイナリも入ってるけど32bit用っぽくて使えなかった
そして結構はまったので書いてみた
・dreamplug - DreamPlug - Google Project Hosting
まず現在のバージョン
U-Boot 2011.06-02334-g8f495d9-dirty (May 31 2011 - 02:06:26) Marvell-DreamPlug SoC: Kirkwood 88F6281_A0 CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz DRAM: 512 MiB SF: Detected MX25L1606 with page size 256, total 1 MiB In: serial Out: serial Err: serial Net: egiga0, egiga1 88E1116 Initialized on egiga0 88E1116 Initialized on egiga1 Hit any key to stop autoboot: 0 Marvell>>
ここから最新のU-Bootをもらってくる
(PDFもあるから確認しておくといい)
dream_burn_uboot_v10_Aug-28-2012.tar.gzを展開して
dream_burn_uboot/sheevaplug/openocd.binaries/bin/ へ移動
ここにopenocdのバイナリと設定ファイル(target/board/dreamplug.cfg)
U-Boot(u-boot、u-boot.kwb)が置いてある
まずバイナリが32bit用でシステムの64bitのライブラリにリンクしようとして
そのままでは使うことができなかった、なので使用しない
あとこの設定ファイルもくせものでそのままでは動かなかった
前回の記事で作成したファイルに同梱の設定を抜き出して追記する
前回の設定+抜き出した下記の部分を含んだファイルをtarget/board/dreamplug.cfg2とする
proc dreamplug_burn_uboot { } { # load u-Boot into RAM and execute it sheevaplug_init load_image ./u-boot load_image u-boot.kwb 0x6400000 # load_image u-boot.kwb 0x900000 resume 0x00600000 }
まず1つ目の端末でU-Bootに入っておく
# screen /dev/ttyUSB0 115200 U-Boot 2011.06-02334-g8f495d9-dirty (May 31 2011 - 02:06:26) Marvell-DreamPlug SoC: Kirkwood 88F6281_A0 CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz DRAM: 512 MiB SF: Detected MX25L1606 with page size 256, total 1 MiB In: serial Out: serial Err: serial Net: egiga0, egiga1 88E1116 Initialized on egiga0 88E1116 Initialized on egiga1 Hit any key to stop autoboot: 0 Marvell>>
次に2つ目の端末でOpenOCDを起動する
PDFの通りだけどファイル名を新しく作ったものにすること
# openocd -f target/board/dreamplug.cfg2 -c init -c dreamplug_burn_uboot Open On-Chip Debugger 0.5.0 (2012-10-07-07:04) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxygen/bugs.html Info : only one transport option; autoselect 'jtag' 2000 kHz Warn : Interface already configured, ignoring Error: already specified ft2232_layout sheevaplug 2000 kHz trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain adapter_nsrst_delay: 200 jtag_ntrst_delay: 200 dcc downloads are enabled Warn : use 'feroceon.cpu' as target identifier, not '0' dreamplug_burn_uboot Info : clock speed 2000 kHz Info : JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2) Info : Embedded ICE version 0 Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit target state: halted target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x000000d3 pc: 0xffff0000 MMU: disabled, D-Cache: disabled, I-Cache: disabled 149712 bytes written at address 0x00600000 downloaded 149712 bytes in 1.204238s (121.407 KiB/s) 216676 bytes written at address 0x06400000 downloaded 216676 bytes in 1.704923s (124.110 KiB/s)
この時再起動されて新しいU-Bootがアップロードされるので1つ目の端末ですかさずEnterを押す
現段階では書き込まれていないようで何度上記のコマンドを実行してもアップデートされることはなかった
printenvを実行してみると以下のようになっているのでbootを実行すれば書き換わる
U-Boot 2011.06-02334-g8f495d9-dirty (Mar 01 2011 - 20:36:44) Marvell-DreamPlug SoC: Kirkwood 88F6281_A0 DRAM: 512 MiB SF: Detected MX25L1606 with page size 256, total 1 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: egiga0, egiga1 88E1121 Initialized on egiga0 88E1121 Initialized on egiga1 Hit any key to stop autoboot: 0 Marvell>> printenv bootcmd=sf probe 0; sf erase 0x0 0x100000; sf write 0x6400000 0x0 0xd0000; bootdelay=3 baudrate=115200 x_bootcmd_ethernet=ping 192.168.2.1 x_bootcmd_usb=usb start x_bootcmd_kernel=fatload usb 0 0x6400000 uImage x_bootargs=console=ttyS0,115200 x_bootargs_root root=/dev/sda2 rootdelay=10 stdin=serial stdout=serial stderr=serial ethaddr=xx:xx:xx:xx:xx:xx ethact=egiga0 eth1addr=xx:xx:xx:xx:xx:xx Environment size: 396/4092 bytes Marvell>>
bootを実行して実際にU-Bootを書き換えて再起動する
Marvell>> boot SF: Detected MX25L1606 with page size 256, total 1 MiB 1024 KiB MX25L1606 at 0:0 is now current device Marvell>> reset resetting ... U-Boot 2011.06 (Oct 15 2011 - 02:02:08) Marvell-DreamPlug SoC: Kirkwood 88F6281_A0 DRAM: 512 MiB SF: Detected MX25L1606 with page size 256, total 1 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: egiga0, egiga1 88E1121 Initialized on egiga0 88E1121 Initialized on egiga1 Hit any key to stop autoboot: 0 Marvell>>
Warningが出ているのでデフォルトで設定を上書きしておく
Marvell>> saveenv Saving Environment to SPI Flash... Erasing SPI flash...Writing to SPI flash...done Marvell>> reset resetting ... U-Boot 2011.06 (Oct 15 2011 - 02:02:08) Marvell-DreamPlug SoC: Kirkwood 88F6281_A0 DRAM: 512 MiB SF: Detected MX25L1606 with page size 256, total 1 MiB In: serial Out: serial Err: serial Net: egiga0, egiga1 88E1121 Initialized on egiga0 88E1121 Initialized on egiga1 Hit any key to stop autoboot: 0 Marvell>>
以上でアップデートが完了する
しかしファイル名がAug-28-2012なのに
なんでアップデート後のバージョンがOct 15 2011なんだ?
0 件のコメント:
コメントを投稿