cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

chosen.txt (4046B)


      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 holds a base address and size, describing a limited region in
     83which memory may be considered available for use by the kernel. Memory outside
     84of 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 holds the memory range, the address and the size, of the elf
    110core header which mainly describes the panicked kernel's memory layout as
    111PT_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};