ボードサポートパッケージ - 百科事典

エンブリッドシステムでは、ボードサポートパッケージ(BSP)は、ハードウェア固有のブートローダ、デバイスドライバー、時にはオペレーティングシステムのカーネル、他のルーチンを含むソフトウェアレイヤです。これにより、特定のエンブリッドオペレーティングシステム(例えばリアルタイムオペレーティングシステム(RTOS))が特定のハードウェア環境(マザーボード)で機能し、エンブリッドオペレーティングシステムと統合されます。ボードサポートパッケージは通常、SoCメーカー(例えばクアルコム)によって提供され、OEMによって変更できます。

ソフトウェア
特定のエンブリッドオペレーティングシステムをサポートしたいサードパーティーのハードウェア開発者は、そのエンブリッドオペレーティングシステムが彼らのプラットフォームで動作するようにするBSPを作成する必要があります。多くの場合、エンブリッドオペレーティングシステムのイメージ(BSP、ソフトウェアライセンス、ハードウェアサポートを含む)はハードウェアベンダーによってパッケージ化されます。
BSPは一般的にカスタマイズ可能で、ユーザーはハードウェアおよびソフトウェアオプションの選択に基づいて構築に含めるべきドライバーとルーチンを指定できます。例えば、特定のシングルボードコンピュータはいくつかの周辺チップとペアリングされることがあります;その場合、BSPにはサポートされる周辺チップのドライバーが含まれるかもしれません;BSPイメージを構築する際には、ユーザーはハードウェアの選択に基づいて含めるべき周辺ドライバーを指定します。
一部のサプライヤーは、ルートファイルシステム、エンブリッドシステムでプログラムを実行するためのツールチェーン、およびBSPとともにデバイスを構成するユーティリティも提供しています。多くのエンブリッドオペレーティングシステムプロバイダーは、新しいハードウェアプラットフォームにエンブリッドオペレーティングシステムを設定するためのテンプレートBSP、開発者サポート、テストスイートを提供しています。
さらに、BSPは以下の操作を行うことが期待されます:

プロセッサを初期化
ボードを初期化
RAMを初期化
セグメントを構成
フラッシュからOSをロードおよび実行

歴史
BSPという用語は、1981年にVersatile Real-Time Executive(VRTX)の開発者であるHunter & Readyが、VRTXを特定のハードウェアプラットフォームで実行するために必要なハードウェア依存ソフトウェアを説明するために初めて使用されました。1980年代以降、業界全体で広く使用されています。現在、ほぼすべてのRTOSプロバイダーがBSPという用語を使用しています。
現代のシステムでは、この用語は単一のプロセッサだけでなく、全体のマザーボードを対象とするパッケージにまで拡張されています。


Wind River SystemsのARM Integrator 920Tシングルボードコンピュータ向けボードサポートパッケージには、以下のような要素が含まれています:

config.hファイル:ROM_SIZEやRAM_HIGH_ADRSなどの定数を定義する。
Makefile:フラッシュメモリにプログラムするVxWorks ROMイメージのバイナリバージョンを定義する。
ブートROMファイル:ボードのブートラインパラメータを定義する。
target.refファイル:スイッチやジャンパーの設定、割り込みレベル、オフセットバイアスなどのボード固有情報を説明する。
VxWorksイメージ。
様々なCファイル、例えば:
flashMem.c:ボードのフラッシュメモリのデバイスドライバー
pciIomapShow.c:PCIバスのマッピングファイル
primeCellSio.c:TTYドライバー
sysLib.c:このボード固有のシステム依存ルーチン
romInit.s:ボードのROM初期化モジュール;ROMから始まるイメージのエントリーコードを含む
Windows CEやAndroidもBSPを使用しています。

参考情報
BIOS
UEFI