| 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. |
| |
| The following properties are recognized: |
| |
| |
| kaslr-seed |
| ----------- |
| |
| This property is used when booting with CONFIG_RANDOMIZE_BASE as the |
| entropy used to randomize the kernel image base address location. Since |
| it is used directly, this value is intended only for KASLR, and should |
| not be used for other purposes (as it may leak information about KASLR |
| offsets). It is parsed as a u64 value, e.g. |
| |
| / { |
| chosen { |
| kaslr-seed = <0xfeedbeef 0xc0def00d>; |
| }; |
| }; |
| |
| Note that if this property is set from UEFI (or a bootloader in EFI |
| mode) when EFI_RNG_PROTOCOL is supported, it will be overwritten by |
| the Linux EFI stub (which will populate the property itself, using |
| EFI_RNG_PROTOCOL). |
| |
| stdout-path |
| ----------- |
| |
| Device trees may specify the device to be used for boot console output |
| with a stdout-path property under /chosen, as described in the Devicetree |
| Specification, 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,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. |
| |
| linux,initrd-start and linux,initrd-end |
| --------------------------------------- |
| |
| These properties hold the physical start and end address of an initrd that's |
| loaded by the bootloader. Note that linux,initrd-start is inclusive, but |
| linux,initrd-end is exclusive. |
| e.g. |
| |
| / { |
| chosen { |
| linux,initrd-start = <0x82000000>; |
| linux,initrd-end = <0x82800000>; |
| }; |
| }; |