123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- 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>;
- };
- };
|