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).