第8章 Hermit-Atについて

Mike Touloumtzis氏がメンテナンスを行っている高機能ダウンローダ/ブートローダ「Hermit」に、Atmark Technoがオリジナルのカスタマイズ、製品の対応を行い派生させたダウンローダ/ブートローダです。

従来のHermitでは、Rawソケットを使用したEthernet対応が実装されていますが、Hermit-Atでは、UDP/IPを実装しTFTPによるフラッシュメモリの書き換えや、Linux起動オプションの動的変更等に対応しています。

本章では、Hermit-Atに実装されている一部の機能について説明します。

8.1. setenvとclearenv

Linux起動オプションを動的に変更させるコマンドです。

8.1.1. setenv

setenvは、指定された起動オプションを、フラッシュメモリへ書き込みます。Hermit-AtがLinuxを起動させる時に自動的にフラッシュメモリから起動オプションを読み込み、設定します。

構文:setenv [起動オプション]...
hermit> setenv console=ttyAM0,115200 
hermit>
hermit> setenv
1: console=ttyAM0,115200

図 8.1. setenv実行例


8.1.2. clearenv

構文:clearenv
hermit> clearenv

図 8.2. clearenv実行例


8.1.3. Linux起動オプション

表 8.1. よく使用されるLinux起動オプション

オプション説明
consoleシリアルコンソールが使用するデバイスを指示します。
rootルートファイルシステム関連の設定を指示します。
noinitrdカーネルが起動した後に initrd データがどうなるのかを指示します。
nfsrootNFSを使用する場合に、ルートファイルシステムの場所やNFSオプションを指示します。

8.2. frob

指定したアドレスのデータを読み込む、又は変更することができるモードに移行するコマンドです。

表 8.2. frobコマンド

構文説明
peek [addr]指定されたアドレスから32bitのデータを読み出します。
peek8 [addr]指定されたアドレスから8bitのデータを読み出します。
peek16 [addr]指定されたアドレスから16bitのデータを読み出します。
poke [addr] [value]指定されたアドレスに32bitのデータを書き込みます。
poke8 [addr] [value]指定されたアドレスに8bitのデータを書き込みます。
poke16 [addr] [value]指定されたアドレスに16bitのデータを書き込みます。

8.3. tftpdl

TFTPプロトコルを使用し、フラッシュメモリの書き換えを行うコマンド[6]です。

構文:tftpdl [クライアントIPaddr] [TFTPサーバーIPaddr] [オプション[7]]
オプション説明
--bootloader=[filepath]bootloader領域のイメージファイルを指定します。
--kernel=[filepath]kernel領域のイメージファイルを指定します。
--userland=[filepath]userland領域のイメージファイルを指定します。
--fakeフラッシュメモリへの書き込みを行いません。
hermit> tftpdl 192.168.10.147 192.168.10.140
         --kernel=a300/linux-a300.bin.gz
Client IPaddr   : 192.168.10.147
Server IPaddr   : 192.168.10.140
Kernel file     : a300/linux-a300.bin.gz

initializing net-device...OK
Filename : a300/linux-a300.bin.gz
.......................................................................
.......................................................................
.......................................................................
.......................................................................
..
Filesize : 1644592

programing: kernel
##########################

completed!!

hermit>

図 8.3. tftpdl実行例


8.4. erase

フラッシュメモリの消去を行うコマンドです。

構文:erase [addr]

"addr"には、フラッシュメモリの物理アドレスを指定します。入力したアドレスはイレースブロックに自動的にアラインされます。フラッシュメモリの物理アドレスは、項3.2. 「メモリマップ」を参照してください。

[警告]

IPL領域(0x50000000 - 0x50001fff)は、消去できません。

hermit> erase 0x507f0000

図 8.4. config領域の消去




[6] 紙面の都合上、折り返して表現しています。

[7] 一度に複数のオプションを指定することも可能です。