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: {{{}}} 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,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.