本章では、ブートローダーの起動モードや利用することができる機能について説明します。
電源投入時の"SDBOOT_EN"ピンの状態によりブートローダーイメージを選択することができます。"SDBOOT_EN"ピンの状態がLowであればフラッシュメモリのbootloaderパーティションに書き込まれているブートローダーが起動し、"SDBOOT_EN"ピンの状態がHighであればSDカードの第1パーティションのブートローダーイメージ(/sdboot.bin)が起動します。Armadillo-840のデフォルト状態では、"SDBOOT_EN"ピンはLow(GNDに10kΩプルダウン)となっており、フラッシュメモリに書き込まれているブートローダーが起動します。
表10.1 SDBOOT_ENピンとブートローダーイメージの対応
SDBOOT_EN | ブートローダーイメージ |
---|
Low(0V) | フラッシュメモリのbootloaderパーティション |
High(3.3V) | SDカードの第1パーティションの/sdboot.bin |
"SDBOOT_EN"ピンはArmadillo-840のJP2に接続されており、ジャンパーのオープン/ショートによりブートローダーイメージを選択することができます。
表10.2 Armadillo-840のJP2によるブートローダーイメージの選択
JP2 | ブートローダーイメージ |
---|
オープン | フラッシュメモリのbootloaderパーティション |
ショート | SDカードの第1パーティションの/sdboot.bin |
ブートローダーが起動すると"HERMIT_EN_N"ピンの状態により2つのモードのどちらかに遷移します。
表10.3 ブートローダー起動モード
起動モードの種別 | HERMIT_EN_N | 説明 |
---|
OS自動起動モード | High(3.3V) | 電源投入後、自動的にLinuxカーネルを起動させます。 |
保守モード | Low(0V) | 各種設定が可能なHermit-Atコマンドプロンプトが起動します。 |
"HERMIT_EN_N"ピンはArmadillo-840のJP1と開発用USBシリアル変換アダプタに接続されています。JP1をオープンすると"HERMIT_EN_N"ピンの状態はHigh、ショートとすると"HERMIT_EN_N"ピンの状態はLowとなります。開発用USBシリアル変換アダプタではスライドスイッチに接続されており、基板内側にスライドさせると"HERMIT_EN_N"ピンの状態はHigh、外側にスライドさせると"HERMIT_EN_N"ピンの状態はLowとなります。
JP1と開発用USBシリアル変換アダプタのスライドスイッチの組み合わせにより、どの起動モードとなるかを表10.4「ブートローダー起動モードスイッチ」に示します。
表10.4 ブートローダー起動モードスイッチ
Armadillo-840 JP1 | 開発用USBシリアル変換アダプタ スライドスイッチ | 起動モード |
---|
オープン | 内側 | OS自動起動モード |
オープン | 外側 | 保守モード |
ショート | 内側 | 保守モード |
ショート | 外側 | 保守モード |
Hermit-Atの保守モードでは、Linuxカーネルの起動オプションの設定やフラッシュメモリの書き換えなどを行うことできます。
保守モードで利用できるコマンドは、表10.5「保守モードコマンド一覧」に示します。
表10.5 保守モードコマンド一覧
コマンド | 説明 |
---|
tftpdl erase program download | フラッシュメモリを書き換える場合に使用します |
memmap | フラッシュメモリのメモリマップを表示します |
setbootdevice setenv clearenv | OSの起動設定をする場合に使用します |
boot tftpboot | OSを起動する場合に使用します |
mac | MACアドレスを表示します |
frob | 簡易的にメモリアクセスする場合に使用します |
md5sum | メモリ空間のMD5サム値を表示する場合に使用します |
info | ハードウェアの情報を表示します |
version | ブートローダーのバージョンを表示します |
各コマンドのヘルプを表示するには図10.1「hermitコマンドのヘルプを表示」のようにします。
| |
---|
tftpdlおよびtftpbootは、TFTPプロトコルを使用してTFTPサーバーからイメージファイルをダウンロードします。デフォルトのデータブロックサイズが512Byteであるため、イメージファイルの最大サイズがブロック番号の桁溢れが発生しない33554431Byte(32MByte - 1Byte)に制限されます。これよりもサイズの大きいイメージファイルをダウンロードする場合は、"--blksize"オプションを利用してデータブロックサイズを増やす必要があります。
"--blksize"オプションには、IPフラグメンテーションが起きないデータブロックサイズを指定する必要があります。
|
ブートローダーおよびLinuxカーネルのコンソールを指定するには、後述するLinuxカーネル起動オプションを設定する場合のsetenvコマンドで行います。Linuxカーネル起動オプションのconsoleパラメータは、ブートローダーのコンソールにも影響する仕組みとなっています。
コンソール指定子とそれに対応するログ表示先/保守モードプロンプト出力先を表10.6「コンソール指定子とログ出力先」に示します。
表10.6 コンソール指定子とログ出力先
コンソール指定子 | OS自動起動モード時のログ出力先 | 保守モードプロンプト出力先[] |
---|
ttySC2 | Armadillo-840: CON4 | Armadillo-840: CON4 |
none | なし | Armadillo-840: CON4 |
その他(tty1等) | 指定するコンソール[] | Armadillo-840: CON3 |
10.3.2. Linuxカーネルイメージの指定方法
ブートローダーがOSを起動させる場合、フラッシュメモリに書き込まれたLinuxカーネルイメージか、SDカード内に保存されているイメージファイルを指定することができます。
Linuxカーネルイメージを指定するには、"setbootdevice"コマンドを使用します。表10.7「Linuxカーネルイメージ指定子」に示す指定子を設定することができます。
表10.7 Linuxカーネルイメージ指定子
指定子 | Linuxカーネルイメージの配置場所 |
---|
flash | フラッシュメモリのkernelパーティションに書き込まれたイメージ |
mmcblk0p1 | SDカードのパーティション1に保存されている/boot/linux.bin.gzファイル "p1"はパーティションを示しており、"p2"とするとパーティション2のファイルを指定可能 |
10.3.3. Linuxカーネル起動オプションの指定方法
Linuxカーネルには様々な起動オプションがあります。詳しくは、Linuxの解説書や、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/kernel-parameters.txt)を参照してください。
ここではArmadillo-840で使用することができる、代表的な起動オプションを表10.8「Linuxカーネルの起動オプションの一例」に紹介します。
表10.8 Linuxカーネルの起動オプションの一例
オプション指定子 | 説明 |
---|
console= |
起動ログなどが出力されるイニシャルコンソールを指定します。
次の例では、コンソールにttySC2を、ボーレートに115200を指定しています。
|
root= |
ルートファイルシステムが構築されているデバイスを指定します。
デバイスにはLinuxカーネルが認識した場合のデバイスを指定します。
次の例では、デバイスにSDカードの第2パーティションを指定しています。
|
rootwait |
"root="で指定したデバイスが利用可能になるまでルートファイルシステムのマウントを遅らせます。
|
noinitrd |
initrdを利用しないことを明示します。
|
mem |
Linuxカーネルが利用可能なメモリの量を指定します。RAMの一部を専用メモリとして利用したい場合などに設定します。
|