付録A Hermit-Atについて

Hermit-Atとは、Atmark Techno製品のブートローダーに採用している高機能ダウンローダー/ブートローダーです。フラッシュメモリの書き換えや、Linuxカーネル起動オプションの設定等、様々な機能があります。ここでは、代表的な機能について説明します。

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

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

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

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

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

+OK

A.1. setenvとclearenv

Linuxカーネル起動オプションを設定するコマンドです。setenvで設定されたパラメータは、Linuxカーネル起動時に渡されます。clearenvを実行すると、設定がクリアされます。このパラメータは、フラッシュメモリに保存され再起動後も設定は有効となります。

構文:setenv [起動オプション]...
説明:カーネル起動オプションを設定します。オプションを指定せずに実行すると、現在の設定を表示します。

構文:clearenv
説明:設定されているオプションをクリアします。

図A.1 setenvとclearenv


A.1.1. setenv/clearenv使用例

hermit> setenv console=ttymxc0
hermit> setenv
1: console=ttymxc0

hermit> clearenv

図A.2 setenvとclearenvの使用例


A.1.2. Linux起動オプション

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

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

A.2. frob

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

表A.2 frobコマンド

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

A.3. memmap

フラッシュメモリのリージョン情報を表示するコマンドです。

構文:memmap

図A.3 memmap


A.3.1. 使用例

hermit> memmap
0xa0000000:0xa0ffffff FLA all bf:8K bl:4x32K/l,127x128K/l
0xa0000000:0xa001ffff FLA bootloader bf:8K bl:4x32K/l
0xa0020000:0xa021ffff FLA kernel bf:8K bl:16x128K
0xa0220000:0xa0fdffff FLA userland bf:8K bl:110x128K
0xa0fe0000:0xa0ffffff FLA config bf:8K bl:1x128K
0x80000000:0x83ffffff RAM dram-1

図A.4 memmapの使用例


A.4. erase

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

構文:erase [アドレス]

図A.5 erase


A.4.1. 使用例

hermit> erase 0xa0fe0000

図A.6 eraseの使用例


A.5. tftpdl

TFTPプロトコルを使用してTFTPサーバーからファイルをダウンロードし、フラッシュメモリの書き換えを行うコマンドです。

構文:tftpdl [クライアントIPアドレス] [サーバーIPアドレス] [オプション]...
説明:指定された内容に基づきTFTPダウンロードを行い、フラッシュメモリに書き込みます。

図A.7 tftpdl


表A.3 tftpdlオプション

オプション説明
--region=filepathregionに書き込むファイルをfilepathで指定します。
--fake実際にフラッシュメモリの書き込みを行わないモードになります。

A.5.1. 使用例

hermit> tftpdl 192.168.10.10 192.168.10.1 --kernel=linux.bin.gz

Client: 192.168.10.10
Server: 192.168.10.1
Region(kernel): linux.bin.gz

initializing net-device...OK
Filename : linux.bin.gz
..........................................................................
..........................................................................
..................................
Filesize : 1841551

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

completed!!

図A.8 tftpdlの使用例


A.6. setclock

CPUコアクロックを設定するコマンドです。hermit-at v1.1.20以降をベースに生成したブートローダイメージで使用可能です。この設定はフラッシュメモリに保存され、再起動後も設定は有効になります。

[警告]

Armadillo-500 CPUモジュールに搭載しているプロセッサのリビジョンにより、CPUコアクロックの最高値が異なります。setclockコマンドでCPUコアクロックの最高値を越える設定を行わないようご注意ください。

CPUモジュール型番CPUコアクロックプロセッサ
名称シリコンリビジョン
A5001-U00-B最高400MHzFreescale i.MX31LRev.1.2

A5001-U00-C

A5001-U00Z-C

Rev.2.0

A5027-U00-C

A5027-U00Z-C

Freescale i.MX31
A5067-U00Z-D最高532MHzRev.2.0.1
構文:setclock 400
説明:CPUコアクロックを400MHzに設定します。

構文:setclock 532
説明:CPUコアクロックを532MHzに設定します。

構文:setclock
説明:現在のCPUコアクロックを表示します。

図A.9 setclock


A.6.1. 使用例

hermit> setclock 400
hermit> setclock
clock: 400

図A.10 seclockの使用例


[ティップ]

hermit-at v1.1.22以降をベースに生成したブートローダイメージを使用している場合は、ブートローダの起動時にもCPUコアクロックの最大値と現在のCPUコアクロックを表示します。

Hermit-At v1.1.22 (Armadillo-500 400MHz) compiled at 18:38:05, Feb  1 2010
説明:A5027-U00-Cを使用し、setclockコマンドでCPUコアクロックを設定していない場合の表示。

Hermit-At v1.1.22 (Armadillo-500 400@532MHz) compiled at 18:38:05, Feb  1 2010
説明:A5067-U00Z-Dを使用し、setclockコマンドでCPUコアクロックを400MHzに設定している場合の表示。