この章では、ブートローダーの起動モードや利用することができる機能について説明します。
電源投入時の"SDBOOT_EN"ピンの状態によりブートローダーイメージを選択することができます。"SDBOOT_EN"ピンの状態がLowであればフラッシュメモリのbootloaderパーティションに書き込まれているブートローダーが起動し、"SDBOOT_EN"ピンの状態がHighであればSDカードの第1パーティションのブートローダーイメージ(/sdboot.bin)が起動します。Armadillo-810のデフォルト状態では、"SDBOOT_EN"ピンはLow(GNDに10kΩプルダウン)となっており、フラッシュメモリに書き込まれているブートローダーが起動します。
表10.1 SDBOOT_ENピンとブートローダーイメージの対応
SDBOOT_EN | ブートローダーイメージ |
---|
Low(0V) | フラッシュメモリのbootloaderパーティション |
High(3.3V) | SDカードの第1パーティションの/sdboot.bin |
Armadillo-810カメラモデル開発セットでは、"SDBOOT_EN"ピンは拡張ボード01 (Aコネクタ用)のJP3に接続されており、ジャンパーのオープン/ショートによりブートローダーイメージを選択することができます。
表10.2 拡張ボード01 (Aコネクタ用)のJP3によるブートローダーイメージの選択
JP3 | ブートローダーイメージ |
---|
オープン | フラッシュメモリのbootloaderパーティション |
ショート | SDカードの第1パーティションの/sdboot.bin |
ブートローダーが起動すると"HERMIT_EN*"ピンの状態により2つのモードのどちらかに遷移します。
表10.3 ブートローダー起動モード
起動モードの種別 | HERMIT_EN* | 説明 |
---|
OS自動起動モード | High(3.3V) | 電源投入後、自動的にLinuxカーネルを起動させます。 |
保守モード | Low(0V) | 各種設定が可能なHermit-Atコマンドプロンプトが起動します。 |
Armadillo-810 カメラモデル開発セットでは、"HERMIT_EN*"ピンは拡張ボード01 (Aコネクタ用)と開発用USBシリアル変換アダプタに接続されています。拡張ボード01 (Aコネクタ用)では、JP1に接続されており、JP1をオープンすると"HERMIT_EN*"ピンの状態はHigh、JP1をショートとすると"HERMIT_EN*"ピンの状態はLowとなります。開発用USBシリアル変換アダプタではスライドスイッチに接続されており、基板内側にスライドさせると"HERMIT_EN*"ピンの状態はHigh、外側にスライドさせると"HERMIT_EN*"ピンの状態はLowとなります。
拡張ボード01 (Aコネクタ用)のJP1と開発用USBシリアル変換アダプタのスライドスイッチの組み合わせにより、どの起動モードとなるかを表10.4「ブートローダー起動モードスイッチ」に示します。
表10.4 ブートローダー起動モードスイッチ
拡張ボード01 (Aコネクタ用) JP1 | 開発用USBシリアル変換アダプタ スライドスイッチ | 起動モード |
---|
オープン | 内側 | OS自動起動モード |
オープン | 外側 | 保守モード |
ショート | 内側 | 保守モード |
ショート | 外側 | 保守モード |
Hermit-Atの保守モードでは、Linuxカーネルの起動オプションの設定やフラッシュメモリの書き換えなどを行うことできます。
保守モードで利用できるコマンドは、表10.5「保守モードコマンド一覧」に示します。
表10.5 保守モードコマンド一覧
コマンド | 説明 |
---|
erase program download | フラッシュメモリを書き換える場合に使用します |
memmap | フラッシュメモリのメモリマップを表示します |
setbootdevice setenv clearenv | OSの起動設定をする場合に使用します |
boot | OSを起動する場合に使用します |
frob | 簡易的にメモリアクセスする場合に使用します |
md5sum | メモリ空間のMD5サム値を表示する場合に使用します |
info | ハードウェアの情報を表示します |
version | ブートローダーのバージョンを表示します |
各コマンドのヘルプを表示するには図10.1「hermitコマンドのヘルプを表示」のようにします。
ブートローダーおよびLinuxカーネルのコンソールを指定するには、後述するLinuxカーネル起動オプションを設定する場合のsetenvコマンドで行います。Linuxカーネル起動オプションのconsoleパラメータは、ブートローダーのコンソールにも影響する仕組みとなっています。
コンソール指定子とそれに対応するログ表示先/保守モードプロンプト出力先を表10.6「コンソール指定子とログ出力先」に示します。
表10.6 コンソール指定子とログ出力先
コンソール指定子 | OS自動起動モード時のログ出力先 | 保守モードプロンプト出力先[] |
---|
ttySC2 | CON3 | CON3 |
ttySC8 | CON2 | CON2 |
none | なし | CON3 |
その他(tty1等) | 指定するコンソール[] | 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-810で使用することができる、代表的な起動オプションを表10.8「Linuxカーネルの起動オプションの一例」に紹介します。
表10.8 Linuxカーネルの起動オプションの一例
オプション指定子 | 説明 |
---|
console= |
起動ログなどが出力されるイニシャルコンソールを指定します。
次の例では、コンソールにttySC2を、ボーレートに115200を指定しています。
|
root= |
ルートファイルシステムが構築されているデバイスを指定します。
デバイスにはLinuxカーネルが認識した場合のデバイスを指定します。
次の例では、デバイスにSDカードの第2パーティションを指定しています。
|
rootwait |
"root="で指定したデバイスが利用可能になるまでルートファイルシステムのマウントを遅らせます。
|
noinitrd |
initrdを利用しないことを明示します。
|