The chosen node --------------- The chosen node does not represent a real device, but serves as a place for passing data like which serial device to used to print the logs etc stdout-path property -------------------- Device trees may specify the device to be used for boot console output with a stdout-path property under /chosen. Example ------- / { chosen { stdout-path = "/serial@f00:115200"; }; serial@f00 { compatible = "vendor,some-uart"; reg = <0xf00 0x10>; }; }; tick-timer property ------------------- In a system there are multiple timers, specify which timer to be used as the tick-timer. Earlier it was hardcoded in the timer driver now since device tree has all the timer nodes. Specify which timer to be used as tick timer. Example ------- / { chosen { tick-timer = "/timer2@f00"; }; timer2@f00 { compatible = "vendor,some-timer"; reg = <0xf00 0x10>; }; }; u-boot,bootcount-device property -------------------------------- In a DM-based system, the bootcount may be stored in a device known to the DM framework (e.g. in a battery-backed SRAM area within a RTC device) managed by a device conforming to UCLASS_BOOTCOUNT. If multiple such devices are present in a system concurrently, then the u-boot,bootcount-device property can select the preferred target. Example ------- / { chosen { u-boot,bootcount-device = &bootcount-rv3029; }; bootcount-rv3029: bootcount@0 { compatible = "u-boot,bootcount-rtc"; rtc = &rv3029; offset = <0x38>; }; i2c2 { rv3029: rtc@56 { compatible = "mc,rv3029"; reg = <0x56>; }; }; }; u-boot,spl-boot-order property ------------------------------ In a system using an SPL stage and having multiple boot sources (e.g. SPI NOR flash, on-board eMMC and a removable SD-card), the boot device may be probed by reading the image and verifying an image signature. If the SPL is configured through the device-tree, the boot-order can be configured with the spl-boot-order property under the /chosen node. Each list element of the property should specify a device to be probed in the order they are listed: references (i.e. implicit paths), a full path or an alias is expected for each entry. A special specifier "same-as-spl" can be used at any position in the boot-order to direct U-Boot to insert the device the SPL was booted from there. Whether this is indeed inserted or silently ignored (if it is not supported on any given SoC/board or if the boot-device is not available to continue booting from) is implementation-defined. Note that if "same-as-spl" expands to an actual node for a given board, the corresponding node may appear multiple times in the boot-order (as there currently exists no mechanism to suppress duplicates from the list). Example ------- / { chosen { u-boot,spl-boot-order = "same-as-spl", &sdmmc, "/sdhci@fe330000"; }; }; u-boot,spl-boot-device property ------------------------------- This property is a companion-property to the u-boot,spl-boot-order and will be injected automatically by the SPL stage to notify a later stage of where said later stage was booted from. You should not define this property yourself in the device-tree, as it may be overwritten without warning. firmware-loader property ------------------------ Multiple file system firmware loader nodes could be defined in device trees for multiple storage type and their default partition, then a property "firmware-loader" can be used to pass default firmware loader node(default storage type) to the firmware loader driver. Example ------- / { chosen { firmware-loader = &fs_loader0; }; fs_loader0: fs-loader@0 { u-boot,dm-pre-reloc; compatible = "u-boot,fs-loader"; phandlepart = <&mmc 1>; }; };