d02d11f8ae
The RK3399 does not have any boot selection pins and the BootROM probes the boot interfaces using the following boot-order: 1. SPI 2. eMMC (sdhci in DTS) 3. SD card (sdmmc in DTS) 4. USB loader For ease of deployment, the SPL stage should mirror the boot order of the ROM and use the same probing order (assuming that valid images can be detected by SPL) unless instructed otherwise. The boot-order can then be configured via the 'u-boot,spl-boot-order' property in the chosen-node of the DTS. While this approach is easily extensible to other boards, it is only implemented for the RK3399 for now, as the large SRAM on the RK3399 makes this easy to fit the needed infrastructure into SPL and our production setup already runs with DM, OF_CONTROL and BLK in SPL. The new boot-order property is expected to be used in conjunction with FIT images (and all legacy image formats disabled via Kconfig). A boot-sequence with probing and fallthroughs from SPI via eMMC to SD card (i.e. &spiflash, &sdhci, &sdmmc) has been validated on the RK3399-Q7. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com> Tested-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Simon Glass <sjg@chromium.org>
66 lines
1.6 KiB
Plaintext
66 lines
1.6 KiB
Plaintext
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,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.
|
|
|
|
Example
|
|
-------
|
|
/ {
|
|
chosen {
|
|
u-boot,spl-boot-order = &sdmmc, "/sdhci@fe330000";
|
|
};
|
|
};
|