^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) DeviceTree Booting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) There is one single 32bit entry point to the kernel at code32_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) the decompressor (the real mode entry point goes to the same 32bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) entry point once it switched into protected mode). That entry point
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) supports one calling convention which is documented in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Documentation/x86/boot.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) The physical pointer to the device-tree block is passed via setup_data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) which requires at least boot protocol 2.09.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) The type filed is defined as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define SETUP_DTB 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) This device-tree is used as an extension to the "boot page". As such it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) does not parse / consider data which is already covered by the boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) page. This includes memory size, reserved ranges, command line arguments
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) or initrd address. It simply holds information which can not be retrieved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) otherwise like interrupt routing or a list of devices behind an I2C bus.