The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/chosen.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 9f44b59e4585e999ce8f8640e1fd2918


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.