第10章 ブートローダー仕様

この章では、ブートローダーの起動モードや利用することができる機能について説明します。

10.1. ブートローダーイメージの選択

電源投入時の"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

10.2. ブートローダー起動モード

ブートローダーが起動すると"HERMIT_EN_N"ピンの状態により2つのモードのどちらかに遷移します。

表10.3 ブートローダー起動モード

起動モードの種別HERMIT_EN_N説明
OS自動起動モードHigh(3.3V)電源投入後、自動的にLinuxカーネルを起動させます。
保守モードLow(0V)各種設定が可能なHermit-Atコマンドプロンプトが起動します。

Armadillo-810 カメラモデルでは、"HERMIT_EN_N"ピンは拡張ボード01 (Aコネクタ用)と開発用USBシリアル変換アダプタに接続されています。拡張ボード01 (Aコネクタ用)では、JP1に接続されており、JP1をオープンすると"HERMIT_EN_N"ピンの状態はHigh、JP1をショートとすると"HERMIT_EN_N"ピンの状態はLowとなります。開発用USBシリアル変換アダプタではスライドスイッチに接続されており、基板内側にスライドさせると"HERMIT_EN_N"ピンの状態はHigh、外側にスライドさせると"HERMIT_EN_N"ピンの状態はLowとなります。

拡張ボード01 (Aコネクタ用)のJP1と開発用USBシリアル変換アダプタのスライドスイッチの組み合わせにより、どの起動モードとなるかを表10.4「ブートローダー起動モードスイッチ」に示します。

表10.4 ブートローダー起動モードスイッチ

拡張ボード01 (Aコネクタ用)

JP1

開発用USBシリアル変換アダプタ

スライドスイッチ

起動モード
オープン内側OS自動起動モード
オープン外側保守モード
ショート内側保守モード
ショート外側保守モード

10.3. ブートローダーの機能

Hermit-Atの保守モードでは、Linuxカーネルの起動オプションの設定やフラッシュメモリの書き換えなどを行うことできます。

保守モードで利用できるコマンドは、表10.5「保守モードコマンド一覧」に示します。

表10.5 保守モードコマンド一覧

コマンド説明

erase

program

download

フラッシュメモリを書き換える場合に使用します
memmapフラッシュメモリのメモリマップを表示します

setbootdevice

setenv

clearenv

OSの起動設定をする場合に使用します
bootOSを起動する場合に使用します
frob簡易的にメモリアクセスする場合に使用します
md5sumメモリ空間のMD5サム値を表示する場合に使用します
infoハードウェアの情報を表示します
versionブートローダーのバージョンを表示します

各コマンドのヘルプを表示するには図10.1「hermitコマンドのヘルプを表示」のようにします。

hermit> help [コマンド]

図10.1 hermitコマンドのヘルプを表示


10.3.1. コンソールの指定方法

ブートローダーおよびLinuxカーネルのコンソールを指定するには、後述するLinuxカーネル起動オプションを設定する場合のsetenvコマンドで行います。Linuxカーネル起動オプションのconsoleパラメータは、ブートローダーのコンソールにも影響する仕組みとなっています。

コンソール指定子とそれに対応するログ表示先/保守モードプロンプト出力先を表10.6「コンソール指定子とログ出力先」に示します。

表10.6 コンソール指定子とログ出力先

コンソール指定子OS自動起動モード時のログ出力先保守モードプロンプト出力先[a]
ttySC2CON3CON3
ttySC8CON2CON2
noneなしCON3
その他(tty1等)指定するコンソール[b]CON3

[a] ブートローダーの再起動後に反映されます

[b] ブートローダーのログは出力されません


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を指定しています。

console=ttySC2,115200
root=

ルートファイルシステムが構築されているデバイスを指定します。

デバイスにはLinuxカーネルが認識した場合のデバイスを指定します。

次の例では、デバイスにSDカードの第2パーティションを指定しています。

root=/dev/mmcblk0p2
rootwait

"root="で指定したデバイスが利用可能になるまでルートファイルシステムのマウントを遅らせます。

noinitrd

initrdを利用しないことを明示します。

mem

Linuxカーネルが利用可能なメモリの量を指定します。

RAMの一部を専用メモリとして利用したい場合などに設定します。