2014-11-28 01:56:05 +08:00
|
|
|
The chosen node
|
|
|
|
---------------
|
|
|
|
|
|
|
|
The chosen node does not represent a real device, but serves as a place
|
|
|
|
for passing data between firmware and the operating system, like boot
|
|
|
|
arguments. Data in the chosen node does not represent the hardware.
|
|
|
|
|
|
|
|
|
|
|
|
stdout-path property
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Device trees may specify the device to be used for boot console output
|
|
|
|
with a stdout-path property under /chosen, as described in ePAPR, e.g.
|
|
|
|
|
|
|
|
/ {
|
|
|
|
chosen {
|
|
|
|
stdout-path = "/serial@f00:115200";
|
|
|
|
};
|
|
|
|
|
|
|
|
serial@f00 {
|
|
|
|
compatible = "vendor,some-uart";
|
|
|
|
reg = <0xf00 0x10>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
If the character ":" is present in the value, this terminates the path.
|
|
|
|
The meaning of any characters following the ":" is device-specific, and
|
|
|
|
must be specified in the relevant binding documentation.
|
|
|
|
|
|
|
|
For UART devices, the preferred binding is a string in the form:
|
|
|
|
|
|
|
|
<baud>{<parity>{<bits>{<flow>}}}
|
|
|
|
|
|
|
|
where
|
|
|
|
|
|
|
|
baud - baud rate in decimal
|
|
|
|
parity - 'n' (none), 'o', (odd) or 'e' (even)
|
|
|
|
bits - number of data bits
|
|
|
|
flow - 'r' (rts)
|
|
|
|
|
|
|
|
For example: 115200n8r
|
|
|
|
|
|
|
|
Implementation note: Linux will look for the property "linux,stdout-path" or
|
|
|
|
on PowerPC "stdout" if "stdout-path" is not found. However, the
|
|
|
|
"linux,stdout-path" and "stdout" properties are deprecated. New platforms
|
|
|
|
should only use the "stdout-path" property.
|
2015-10-07 11:48:19 +08:00
|
|
|
|
|
|
|
linux,booted-from-kexec
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
This property is set (currently only on PowerPC, and only needed on
|
|
|
|
book3e) by some versions of kexec-tools to tell the new kernel that it
|
|
|
|
is being booted by kexec, as the booting environment may differ (e.g.
|
|
|
|
a different secondary CPU release mechanism)
|
2017-04-03 10:26:06 +08:00
|
|
|
|
|
|
|
linux,usable-memory-range
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
This property (arm64 only) holds a base address and size, describing a
|
|
|
|
limited region in which memory may be considered available for use by
|
|
|
|
the kernel. Memory outside of this range is not available for use.
|
|
|
|
|
|
|
|
This property describes a limitation: memory within this range is only
|
|
|
|
valid when also described through another mechanism that the kernel
|
|
|
|
would otherwise use to determine available memory (e.g. memory nodes
|
|
|
|
or the EFI memory map). Valid memory may be sparse within the range.
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
/ {
|
|
|
|
chosen {
|
|
|
|
linux,usable-memory-range = <0x9 0xf0000000 0x0 0x10000000>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
The main usage is for crash dump kernel to identify its own usable
|
|
|
|
memory and exclude, at its boot time, any other memory areas that are
|
|
|
|
part of the panicked kernel's memory.
|
|
|
|
|
|
|
|
While this property does not represent a real hardware, the address
|
|
|
|
and the size are expressed in #address-cells and #size-cells,
|
|
|
|
respectively, of the root node.
|
|
|
|
|
|
|
|
linux,elfcorehdr
|
|
|
|
----------------
|
|
|
|
|
|
|
|
This property (currently used only on arm64) holds the memory range,
|
|
|
|
the address and the size, of the elf core header which mainly describes
|
|
|
|
the panicked kernel's memory layout as PT_LOAD segments of elf format.
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
/ {
|
|
|
|
chosen {
|
|
|
|
linux,elfcorehdr = <0x9 0xfffff000 0x0 0x800>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
While this property does not represent a real hardware, the address
|
|
|
|
and the size are expressed in #address-cells and #size-cells,
|
|
|
|
respectively, of the root node.
|