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.

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)

linux,crashkernel-base
linux,crashkernel-size
----------------------
These properties are set (on PowerPC and arm64) during kdump to tell
use-space tools, like kexec-tools, the base address of the crash-dump
kernel's reserved area of memory and the size. e.g.

/ {
	chosen {
		linux,crashkernel-base = <0x9 0xf0000000>;
		linux,crashkernel-size = <0x0 0x10000000>;
	};
};

linux,usable-memory-range
-------------------------

This property is set (currently only on arm64) during kdump to tell
the crash-dump kernel the base address of its reserved area of memory,
and the size. e.g.

/ {
	chosen {
		linux,usable-memory-range = <0x9 0xf0000000 0x0 0x10000000>;
	};
};

Please note that, if this property is present, any memory regions under
"memory" nodes will be ignored.

linux,elfcorehdr
----------------

This property is set (currently only on arm64) during kdump to tell
the crash-dump kernel the address and size of the elfcorehdr that describes
the old kernel's memory as an elf file. This memory must reside within
the area described by 'linux,usable-memory-range'. e.g.

/ {
	chosen {
		linux,usable-memory = <0x9 0xf0000000 0x0 0x10000000>;
		linux,elfcorehdr = <0x9 0xfffff000 0x0 0x800>;
	};
};
