ユーザ用ツール

サイト用ツール


mae3xx_ope:firmware_update:start

ファームウェアの更新

本体ファームウェアの更新

bootloaderからの更新

FATでフォーマットされたSDカードにファームウェアファイルをコピーして挿入し、電源を投入します。
自動起動待ちのプロンプトが表示されたら即Enterキーを入力し、自動起動を停止させます。

barebox 2013.12.0-00316-g4095a93 #487 Thu Mar 6 15:54:40 JST 2014


Board: plum-ma[512MiB]
nand: ONFI param page 0 valid
nand: ONFI flash detected
nand: NAND device: Manufacturer ID: 0x01, Chip ID: 0xda (AMD/Spansion S34ML02G1), 256MiB, page size: 2048, OOB 
size: 64
omap-hsmmc omap4-hsmmc0: registered as omap4-hsmmc0
mci0: registered disk0
m25p80 m25p800: m25p16 (2048 Kbytes)
i2c-omap i2c-am33xx0: bus 0 rev0.11 at 100 kHz
cpsw cpsw0: detected phy mask 0xc
mdio_bus: miibus0: probed
eth0: got preset MAC address: D0:FF:50:B2:4A:90
malloc space: 0x8e000000 -> 0x9dffffff (size 256 MiB)
Reset is caused by "Warm Reset".
envfs: wrong magic on /dev/env0
no valid environment found on /dev/env0. Using default environment
running /env/bin/init...
* mounting /dev/disk0.0 to /boot (filesystem type: fat)
* mounting /dev/disk0.1 to /mnt/mmc1 (filesystem type: ext4)
ext4 ext40: EXT2 rev 1, inode_size 256
UBI: attaching mtd0 to ubi0
UBI: scanning is finished
registering /dev/ubi0
registering kernel.0 as /dev/ubi0.kernel.0
registering kernel.1 as /dev/ubi0.kernel.1
registering initramfs.0 as /dev/ubi0.initramfs.0
registering initramfs.1 as /dev/ubi0.initramfs.1
registering kmod.0 as /dev/ubi0.kmod.0
registering kmod.1 as /dev/ubi0.kmod.1
registering rootfs.0 as /dev/ubi0.rootfs.0
registering rootfs.1 as /dev/ubi0.rootfs.1
registering opt as /dev/ubi0.opt
registering overlay as /dev/ubi0.overlay
UBI: attached mtd0 (name "nand0.UBI", size 255 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
UBI: VID header offset: 512 (aligned 512), data offset: 2048
UBI: good PEBs: 2040, bad PEBs: 0, corrupted PEBs: 0
UBI: user volume: 10, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 10/7, WL threshold: 4096, image sequence number: 7535
UBI: available PEBs: 0, total reserved PEBs: 2040, PEBs reserved for bad PEB handling: 40

Hit m for menu or any other key to stop autoboot:  1

type exit to get to the menu
barebox@plum-ma[512MiB]:/ 


SDカードは自動的に /boot にマウントされます。
SDカードにコピーしたファームウェアファイルを指定して “firmup” コマンドを実行します。

引数は下記のとおりです。Linux 起動前でファイルシステムが mount されていないため、明示的にエリア (0 or 1) を指定することもできます。
指定しない場合、古いファームウェアが入っているエリアが自動選択されます。

barebox@plum-ma[512MiB]:/ firmup 
usage: firmup [firmware_file] <0|1>
barebox@plum-ma[512MiB]:/
barebox@plum-ma[512MiB]:/ firmup /boot/firmware.img 
### MA-E3xx series firmware updater
firm area to write: 1
firm_dual:          1
* image file for "kernel" found.
  copying kernel image to /dev/ubi0.kernel.1 ...
* image file for "kmod" found.
  copying kmod image to /dev/ubi0.kmod.1 ...
* image file for "initramfs" found.
  copying initramfs image to /dev/ubi0.initramfs.1 ...
* image file for "rootfs" found.
  copying rootfs image to /dev/ubi0.rootfs.1 ...
* image file for "dtb" found.
  erasing /dev/spi.dtb.1 ...
  copying dtb(DeviceTree) image to /dev/spi.dtb.1 ...
* image file for "barebox.bin" found.
  erasing /dev/spi.barebox ...
  copying barebox image to /dev/spi.barebox ...
  erasing barebox environments (/dev/env0) ...
update finished.

これで完了です。
新しいファームウェアで起動できます。

barebox@plum-ma[512MiB]:/ boot
booting nand
firm_kind0: 1
firm_area0: 1
dipsw:      0
[5] boot with latest firmware succeeded.
bootm.image:           /dev/ubi0.kernel.1
bootm.oftree:          /dev/spi.dtb.1
bootm.initrd:          /dev/ubi0.initramfs.1
bootargs.dyn.root:     root=AREA=1 aufs=tmpfs
bootargs.dyn.watchdog: omap_wdt.start_at_boot=1 omap_wdt.timer_margin=120
bootargs.dyn.console:  console=ttyO0,115200
boot_info:             0x11
bootargs.dyn.cleanboot 
i2c0: timed out on polling for open i2c message handling
[3] ioctl(RTC_RD_TIME) failed, Connection timed out
   Image Name:   Linux-3.14.0-rc5+
   Created:      2014-03-06   0:35:27 UTC
   OS:           Linux
   Architecture: ARM
   Type:         Kernel Image
   Compression:  uncompressed
   Data Size:    3292080 Bytes = 3.1 MiB
   Load Address: 80008000
   Entry Point:  80008000

Loading OS U-Boot uImage '/dev/ubi0.kernel.1'
Loading devicetree from '/dev/spi.dtb.1'
plum_of_fixup: eXternal I/O board's ID is 0x03, fixup device-tree...
commandline: ubi.mtd=0 mtdoops.mtddev=OOPS mtdoops.record_size=8192 zswap.enabled=1  root=AREA=1 aufs=tmpfs omap_wdt.start_at_boot=1
omap_wdt.timer_margin=120 console=ttyO0,115200 
booting kernel with devicetree
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
・・・・


Linuxからの更新

sftpなどでファームウェアを実機に転送するなどして、ファイルを準備します。
root権限で “firmup” コマンドを実行します。

root@plum:~# firmup /tmp/firmware.img 
### MA-E3xx series firmware update utility (for 2-area firmware).
Updating AREA: 0 ...
* image file for kernel found.
  writing "kernel" image to /dev/mtdblock2 ... succeeded.
* image file for kmod found.
  writing "kmod" image to /dev/mtdblock6 ... succeeded.
* image file for initramfs found.
  writing "initramfs" image to /dev/mtdblock4 ... succeeded.
* image file for rootfs found.
  writing "rootfs" image to /dev/mtdblock8 ... succeeded.
* DTB file found.
  writing "dtb" image to /dev/mtd15 ... succeeded.
* Bootloader file found.
  writing "barebox.bin" image to /dev/mtd13 ... succeeded.
Succeeded.

これで完了です。
次回から、更新したファームウェアの面で起動します。


firmup コマンドについて

Linux で動作する firmup コマンドの書式は下記のとおりとなっています。

user1@plum:~$ sudo firmup --help
[sudo] password for user1: 
### MA-E3xx series firmware update utility (for 2-area firmware).
usage: firmup <firmware_file> [0|1|c|o]
  update area selection:
    0/1 : area0/area1
     c  : current
     o  : other
user1@plum:~$ 


アップデートするファームウェアファイルの形式によっては、ファームアップ対象のエリアを明示的に指定することができます。

エリア指定 アップデート対象
0 エリア0
1 エリア1
c 現在使用中のエリア
o 現在使用中でない方のエリア

ルートファイルシステムの更新を含まない場合に限り、更新する対象のエリアを指定することが可能です。
ルートファイルシステムの更新を含む場合、更新対象は現在使用中でないエリアに限られます。


LTE Module ファームウェアの更新

ファームウェア更新をサポートしている LTE Module1) は、Linux 上でファームウェアの更新が可能です。
ここ からファームウェアのファイルをダウンロードし、firmup コマンドで本体ファームウェア更新と同じように実行してください。


1)
現時点では、AMTelecom 製 AMM570/AMP520 がサポートしています
mae3xx_ope/firmware_update/start.txt · 最終更新: 2020/08/12 08:21 by admin