Device tree notes Sources: - https://www.kernel.org/doc/html/latest/devicetree/usage-model.html Interesting points: - Any string used in a 'compatible' property must be documented [...] in Documentation/devicetree/bindings. Details of evaluation - The 'compatible' property is compared with the dt_compat list in struct machine_desc. ARM: arch/arm/include/asm/mach/arch.h -> Most compatible is searched and returned. Or NULL if none is found. - Early configuration: * kernel parameters, such as boot args, and initrd-{start,end} reconnaissance * multiple early scans determine information on hardware - Device population * assuming that each node having a 'compatible' property is a device and assuming that any node at the root is directly attached to the processor bus -> Linux allocates a platform_device (optionally later a platform_driver) This documentation itself is quite confusing. Reading it requires to already know about some internals (e.g. name of data structures).