Lines Matching +full:supported +full:- +full:buses
44 flattened-tree representation of the system's hardware based on the
49 --- the Device Tree Compiler --- that turns a simple text
55 This flattened-tree approach is now the only supported method of
57 to make it the only supported method for all \texttt{powerpc}
67 Among other boot-time services, OF maintains a device tree that
75 buses\footnote{Well, mostly. There are a few special exceptions.}.
76 Each node contains \emph{properties}, name--value pairs that give
86 meant that the various 32-bit \ppc embedded ports have required a
90 CONFIG-dependent hacks in drivers to override normal probe logic with
92 itself, such CONFIG-dependent hacks make it hard to build a single
95 Until relatively recently, the only 64-bit \ppc machines without OF
96 were legacy (pre-POWER5\R) iSeries\R machines. iSeries machines often
104 even re-using OF's memory. So, when \kexec comes to boot another
159 \multicolumn{1}{r}{\textbf{Offset}}& \multicolumn{1}{c}{\textbf{Contents}} \\\cline{2-2}
160 \texttt{0x00} & \texttt{0xd00dfeed} & magic number \\\cline{2-2}
161 \texttt{0x04} & \emph{totalsize} \\\cline{2-2}
162 \texttt{0x08} & \emph{off\_struct} & \\\cline{2-2}
163 \texttt{0x0C} & \emph{off\_strs} & \\\cline{2-2}
164 \texttt{0x10} & \emph{off\_rsvmap} & \\\cline{2-2}
165 \texttt{0x14} & \emph{version} \\\cline{2-2}
166 \texttt{0x18} & \emph{last\_comp\_ver} & \\\cline{2-2}
167 \texttt{0x1C} & \emph{boot\_cpu\_id} & \tge v2 only\\\cline{2-2}
168 \texttt{0x20} & \emph{size\_strs} & \tge v3 only\\\cline{2-2}
169 \multicolumn{1}{r}{\vdots} & \multicolumn{1}{c}{\vdots} & \\\cline{2-2}
171 + \texttt{0x04} & ...& table \\\cline{2-2}
173 + \texttt{0x0C} & ...& \\\cline{2-2}
174 \vdots & \multicolumn{1}{c|}{\vdots} & \\\cline{2-2}
175 & \texttt{0x00000000}- & end marker\\
176 & \texttt{00000000} & \\\cline{2-2}
177 & \texttt{0x00000000}- & \\
178 & \texttt{00000000} & \\\cline{2-2}
179 \multicolumn{1}{r}{\vdots} & \multicolumn{1}{c}{\vdots} & \\\cline{2-2}
183 \vdots & \multicolumn{1}{c|}{\vdots} & \\\cline{2-2}
185 \multicolumn{1}{r}{\vdots} & \multicolumn{1}{c}{\vdots} & \\\cline{2-2}
186 \emph{off\_struct} & \dtbeginnode & structure block \\\cline{2-2}
187 + \texttt{0x04} & \texttt{'/' ~0~ ~0~ ~0~} & root node\\\cline{2-2}
188 + \texttt{0x08} & \dtprop & \\\cline{2-2}
189 + \texttt{0x0C} & \texttt{0x00000005} & ``\texttt{model}''\\\cline{2-2}
190 + \texttt{0x10} & \texttt{0x00000008} & \\\cline{2-2}
192 + \texttt{0x18} & \texttt{'a' 'r' 'd' ~0~} & \\\cline{2-2}
193 \vdots & \multicolumn{1}{c|}{\vdots} & \\\cline{2-2}
194 & \texttt{\dtendnode} \\\cline{2-2}
195 & \texttt{\dtend} \\\cline{2-2}
196 \multicolumn{1}{r}{\vdots} & \multicolumn{1}{c}{\vdots} & \\\cline{2-2}
200 \label{fig:blob-layout}
204 \texttt{linuxppc64-dev} mailing list in \cite{noof1}. The format has
209 Figure \ref{fig:blob-layout} shows the layout of the blob of data
222 null-terminated strings appended together, which are referenced from
226 introduced with a 32-bit \dtbeginnode tag, followed by the node's name
227 as a null-terminated string, padded to a 32-bit boundary. Then
236 Each property, after the \dtprop, has a 32-bit value giving an offset
241 property value (as a 32-bit value) and then the data itself padded to
242 a 32-bit boundary.
259 for the PCI host bridges; the kernel will scan the buses thus
266 describe various buses in the device tree (for example,
267 \cite{IEEE1275-pci} describe how to represent PCI devices). The
269 bindings for many modern buses and devices. In particular, embedded
270 specific devices such as the various System-on-Chip buses are not
271 covered. We intend to create new bindings for such buses, in keeping
273 System-on-Chip bus was included in \cite{noof5} a revision of
278 32-bit integer that uniquely identifies the node\footnote{In practice
283 generally have an \texttt{interrupt-parent} property giving the
321 /memreserve/ 0x20000000-0x21FFFFFF;
326 #address-cells = <2>;
327 #size-cells = <2>;
330 #address-cells = <1>;
331 #size-cells = <0>;
335 clock-frequency = <5f5e1000>;
336 timebase-frequency = <1FCA055>;
337 linux,boot-cpu;
338 i-cache-size = <10000>;
339 d-cache-size = <8000>;
362 interrupt-controller =
401 \S\ref{sec:format}. This mode is useful for checking a pre-existing
404 layout of \texttt{/proc/device-tree} (roughly, a directory for each
439 tree in a vaguely C-like form. Figure \ref{fig:dts} shows an
451 value is the given string, including terminating NULL. C-style
454 property value is made up of a list of 32-bit ``cells'', each given
464 \texttt{interrupt-controller} property referring to the interrupt
499 \texttt{\#address-cells} and \texttt{\#size-cells} properties. It
500 checks that properties such as \texttt{interrupt-parent} contain a
516 The flattened device tree has always been the only supported way to
519 supported way to boot any merged \texttt{powerpc} kernel, 32-bit or
520 64-bit. In fact, the old \texttt{ppc} architecture exists mainly just
535 \texttt{-f} parameter that forces \dtc to generate an output tree
541 board-specific purpose. For example, many of Apple's device trees
547 (for example, multiple identical ethernet controllers or PCI buses)
555 \bibliography{dtc-paper}
577 platforms smoother and more maintainable than in the 32-bit PowerPC