第9章 Hermit-Atについて

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

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

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

[ティップ]Hermit-ATのモード

Hermit-ATには、2つのモードがあります。コマンドプロンプトを表示して対話的に動作する「対話モード」と、Hermit-ATダウンローダと通信するための「バッチモード」です。バッチモードではコマンドプロンプトの表示や入力した文字の表示を行いませんが、コマンドの実行は可能です。

起動直後のHermit-ATは必ず対話モードになっています。対話モードからバッチモードに移行するにはチルダ「~」を、バッチモードから対話モードに移行するにはエクスクラメーションマーク「!」を入力します。

Hermit-ATダウンローダと通信を行った場合は、バッチモードに移行します。これは通信を確立するためにHermit-ATダウンローダがチルダを送信するためです。

対話モードからバッチモードに移行したり、バッチモード中に入力したコマンドが成功した場合などは以下のように表示されます。

+OK

9.1. setenvとclearenv

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

9.1.1. setenv

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

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

図9.1 setenv実行例


9.1.2. clearenv

構文:clearenv
hermit> clearenv

図9.2 clearenv実行例


9.1.3. Linux起動オプション

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

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

9.2. frob

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

表9.2 frobコマンド

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

9.3. tftpdl

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

構文:tftpdl [クライアントIPaddr] [TFTPサーバーIPaddr] [オプション[10]]
オプション説明
--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>

図9.3 tftpdl実行例


9.4. erase

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

構文:erase [addr]

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

[警告]

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

hermit> erase 0x507f0000

図9.4 config領域の消去




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

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