1.

1.1. 目的と範囲

コンピュータシステムを初期化して起動するために、さまざまなソフトウェアコンポーネントが相互作用します。 ファームウェアは、オペレーティングシステム、ブートローダー、ハイパーバイザーなどのソフトウェアに制御を渡す前に、システムハードウェアの低レベルの初期化を実行する場合があります。 次に、ブートローダーとハイパーバイザーは、制御をロードしてオペレーティングシステムに転送できます。 標準の一貫したインターフェイスと規則により、これらのソフトウェアコンポーネント間の相互作用が容易になります。 このドキュメントでは、ブートプログラム という用語は、システム状態を初期化し、 クライアントプログラム と呼ばれる別のソフトウェアコンポーネントを実行するソフトウェアコンポーネントを総称して指すために使用されます。 ブートプログラムの例には、ファームウェア、ブートローダー、ハイパーバイザーが含まれます。 クライアントプログラムの例には、ブートローダー、ハイパーバイザー、オペレーティングシステム、および専用プログラムが含まれます。 ソフトウェアの一部は、クライアントプログラムとブートプログラム(ハイパーバイザーなど)の両方である可能性があります。

本仕様書、 Devicetree Specification (DTSpec) は、様々なシステムの開発を容易にする最小システム要件と組み合わせて、クライアントプログラムインターフェイス定義への完全なブートプログラムを提供します。

本仕様書は、組み込みシステムの要件を対象としています。 組み込みシステムは通常、固定された特定の一連のタスクを実行するようにカスタム設計されたシステムハードウェア、オペレーティングシステム、およびアプリケーションソフトウェアで構成されます。 これは、さまざまなソフトウェアやI/Oデバイスを使用してユーザーがカスタマイズできるように設計された汎用コンピューターとは異なります。 組み込みシステムのその他の特性には、次のものがあります。

  • I/Oデバイスの固定セット、おそらくアプリケーション用に高度にカスタマイズされたもの

  • サイズとコストに最適化されたシステムボード

  • 限られたユーザーインターフェイス

  • 限られたメモリや限られた不揮発性ストレージなどのリソースの制約

  • リアルタイム制約

  • Linux、リアルタイムオペレーティングシステム、カスタムまたは独自のオペレーティングシステムなど、さまざまなオペレーティングシステムの使用

本文書の構成

  • 第 1 章 では、 DTSpec で指定されているアーキテクチャを紹介します。

  • 第 2 章 では、デバイスツリーの概念を紹介し、その論理構造と標準プロパティについて説明しています。

  • 第 3 章 では、 DTSpec 準拠のデバイスツリーに必要なデバイスノードの基本セットの定義を指定します。

  • 第 4 章 では、特定のクラスのデバイスおよび特定のデバイスタイプのデバイスバインディングについて説明しています。

  • 第 5 章 では、デバイスツリーのDTBエンコーディングを指定します。

  • 第 6 章 では、DTSソース言語を指定します。

本文書で使用されている規則

shall (するものとする) という言葉は、標準に準拠するために厳密に従う必要があり、そこからの逸脱が許されない必須要件を示すために使用されます (shallis equals to は同等です)。

should (すべきである) という言葉は、他の可能性に言及したり除外したりすることなく、いくつかの可能性の中で特に適切なものとして推奨されることを示すために使用されます。 または、特定の行動方針が望ましいが、必ずしも必要ではないこと。または、(否定形で)特定の一連の行動が推奨されていないが、禁止されていないこと(shouldis recommended that は同等です)。

may (してもよい) という言葉は、規格の範囲内で許容される一連の行動を示すために使用されます (mayis permitted は同等です)。

デバイスツリー構造の例は、デバイスツリー構文形式 で頻繁に示されます。 この構文の概要については、 6 章 を参照してください。

1.2. IEEE™ 1275 と ePAPR の関係

DTSpec is loosely related to the IEEE 1275 Open Firmware standard—IEEE Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices [IEEE1275].

The original IEEE 1275 specification and its derivatives such as CHRP [CHRP] and PAPR [PAPR] address problems of general purpose computers, such as how a single version of an operating system can work on several different computers within the same family and the problem of loading an operating system from user-installed I/O devices.

Because of the nature of embedded systems, some of these problems faced by open, general purpose computers do not apply. Notable features of the IEEE 1275 specification that are omitted from the DTSpec include:

  • Plug-in device drivers

  • FCode

  • The programmable Open Firmware user interface based on Forth

  • FCode debugging

  • Operating system debugging

What is retained from IEEE 1275 are concepts from the devicetree architecture by which a boot program can describe and communicate system hardware information to a client program, thus eliminating the need for the client program to have hard-coded descriptions of system hardware.

This specification partially supersedes the ePAPR [EPAPR] specification. ePAPR documents how devicetree is used by the Power ISA, and covers both general concepts, as well as Power ISA specific bindings. The text of this document was derived from ePAPR, but either removes architecture specific bindings, or moves them into an appendix.

1.3. 32ビットおよび64ビットのサポート

DTSpec は32ビットと64ビットの両方のアドレス指定機能を備えたCPUをサポートします。 該当する場合、 DTSpec のセクションは32ビットおよび64ビットアドレス指定の要件または考慮事項について説明します。

1.4. 用語定義

AMP

非対称型マルチプロセッシング。 コンピューターで使用可能なCPUはグループに分割され、それぞれが個別のオペレーティングシステムイメージを実行します。 CPUは同一である場合とそうでない場合があります。

ブートCPU

ブートプログラムがクライアントプログラムのエントリポイントに指示する最初のCPU。

Book III-E

Embedded Environment. Section of the Power ISA defining supervisor instructions and related facilities used in embedded Power processor implementations.

ブートプログラム

システム状態を初期化し、クライアントプログラムと呼ばれる別のソフトウェアコンポーネントを実行するソフトウェアコンポーネントを一般的に指すために使用されます。 ブートプログラムの例には、ファームウェア、ブートローダー、およびハイパーバイザーが含まれます。

クライアントプログラム

通常、アプリケーションまたはオペレーティングシステムソフトウェアを含むプログラム。 クライアントプログラムの例としては、ブートローダー、ハイパーバイザー、オペレーティングシステム、専用プログラムなどがあります。

cell

32ビットで構成される情報の単位。

DMA

ダイレクトメモリアクセス

DTB

デバイスツリーブロブ。 デバイスツリーのコンパクトなバイナリ表現。

DTC

デバイスツリーコンパイラ。 DTSファイルからDTBファイルを作成するために使用されるオープンソースツール。

DTS

デバイスツリー構文。 DTCによって消費されるデバイスツリーのテキスト表現。 付録Aデバイスツリーソースフォーマット(バージョン1)を参照してください。

effective address

Memory address as computed by processor storage access or branch instruction.

physical address

Address used by the processor to access external device, typically a memory controller.

Power ISA

Power Instruction Set Architecture.

interrupt specifier

割り込みを説明するプロパティ値。 通常、割り込み番号と感度、トリガーメカニズムを指定する情報が含まれています。

secondary CPU

CPUs other than the boot CPU that belong to the client program are considered secondary CPUs.

SMP

対称マルチプロセッシング。 2つ以上の同一のCPUがメモリとIOを共有し、単一のオペレーティングシステムで動作できるコンピュータアーキテクチャ。

SoC

チップ上のシステム。 1つまたは複数のCPUコアと他の多数の周辺機器を統合する単一のコンピューターチップ。

unit address

親ノードのアドレス空間でノードのアドレスを指定するノード名の部分。

quiescent CPU

静止CPUは、他のCPUの通常の動作に干渉できない状態にあり、静止CPUを有効または再度有効にする明示的な方法を除いて、他の実行中のCPUの通常の動作の影響を受けることもありません。