1The chosen node 2--------------- 3 4The chosen node does not represent a real device, but serves as a place 5for passing data between firmware and the operating system, like boot 6arguments. Data in the chosen node does not represent the hardware. 7 8The following properties are recognized: 9 10 11kaslr-seed 12----------- 13 14This property is used when booting with CONFIG_RANDOMIZE_BASE as the 15entropy used to randomize the kernel image base address location. Since 16it is used directly, this value is intended only for KASLR, and should 17not be used for other purposes (as it may leak information about KASLR 18offsets). It is parsed as a u64 value, e.g. 19 20/ { 21 chosen { 22 kaslr-seed = <0xfeedbeef 0xc0def00d>; 23 }; 24}; 25 26Note that if this property is set from UEFI (or a bootloader in EFI 27mode) when EFI_RNG_PROTOCOL is supported, it will be overwritten by 28the Linux EFI stub (which will populate the property itself, using 29EFI_RNG_PROTOCOL). 30 31stdout-path 32----------- 33 34Device trees may specify the device to be used for boot console output 35with a stdout-path property under /chosen, as described in the Devicetree 36Specification, e.g. 37 38/ { 39 chosen { 40 stdout-path = "/serial@f00:115200"; 41 }; 42 43 serial@f00 { 44 compatible = "vendor,some-uart"; 45 reg = <0xf00 0x10>; 46 }; 47}; 48 49If the character ":" is present in the value, this terminates the path. 50The meaning of any characters following the ":" is device-specific, and 51must be specified in the relevant binding documentation. 52 53For UART devices, the preferred binding is a string in the form: 54 55 <baud>{<parity>{<bits>{<flow>}}} 56 57where 58 59 baud - baud rate in decimal 60 parity - 'n' (none), 'o', (odd) or 'e' (even) 61 bits - number of data bits 62 flow - 'r' (rts) 63 64For example: 115200n8r 65 66Implementation note: Linux will look for the property "linux,stdout-path" or 67on PowerPC "stdout" if "stdout-path" is not found. However, the 68"linux,stdout-path" and "stdout" properties are deprecated. New platforms 69should only use the "stdout-path" property. 70 71linux,booted-from-kexec 72----------------------- 73 74This property is set (currently only on PowerPC, and only needed on 75book3e) by some versions of kexec-tools to tell the new kernel that it 76is being booted by kexec, as the booting environment may differ (e.g. 77a different secondary CPU release mechanism) 78 79linux,usable-memory-range 80------------------------- 81 82This property (arm64 only) holds a base address and size, describing a 83limited region in which memory may be considered available for use by 84the kernel. Memory outside of this range is not available for use. 85 86This property describes a limitation: memory within this range is only 87valid when also described through another mechanism that the kernel 88would otherwise use to determine available memory (e.g. memory nodes 89or the EFI memory map). Valid memory may be sparse within the range. 90e.g. 91 92/ { 93 chosen { 94 linux,usable-memory-range = <0x9 0xf0000000 0x0 0x10000000>; 95 }; 96}; 97 98The main usage is for crash dump kernel to identify its own usable 99memory and exclude, at its boot time, any other memory areas that are 100part of the panicked kernel's memory. 101 102While this property does not represent a real hardware, the address 103and the size are expressed in #address-cells and #size-cells, 104respectively, of the root node. 105 106linux,elfcorehdr 107---------------- 108 109This property (currently used only on arm64) holds the memory range, 110the address and the size, of the elf core header which mainly describes 111the panicked kernel's memory layout as PT_LOAD segments of elf format. 112e.g. 113 114/ { 115 chosen { 116 linux,elfcorehdr = <0x9 0xfffff000 0x0 0x800>; 117 }; 118}; 119 120While this property does not represent a real hardware, the address 121and the size are expressed in #address-cells and #size-cells, 122respectively, of the root node. 123 124linux,initrd-start and linux,initrd-end 125--------------------------------------- 126 127These properties hold the physical start and end address of an initrd that's 128loaded by the bootloader. Note that linux,initrd-start is inclusive, but 129linux,initrd-end is exclusive. 130e.g. 131 132/ { 133 chosen { 134 linux,initrd-start = <0x82000000>; 135 linux,initrd-end = <0x82800000>; 136 }; 137}; 138