Hi Rob, On Fri, 13 Jan 2023 at 13:58, Simon Glass <sjg@xxxxxxxxxxxx> wrote: > > U-Boot has some particular challenges with device tree and devices: > > - U-Boot has multiple build phases, such as a Secondary Program Loader > (SPL) phase which typically runs in a pre-SDRAM environment where code > and data space are limited. In particular, there may not be enough > space for the full device tree blob. U-Boot uses various automated > techniques to reduce the size from perhaps 40KB to 3KB. It is not > always possible to handle these tags entirely at build time, since > U-Boot proper must have the full device tree, even though we do not > want it to process all nodes until after relocation. > - Some U-Boot phases needs to run before the clocks are properly set up, > where the CPU may be running very slowly. Therefore it is important to > bind only those devices which are actually needed in that phase > - U-Boot uses lazy initialisation for its devices, with 'bind' and > 'probe' being separate steps. Even if a device is bound, it is not > actually probed until it is used. This is necessary to keep the boot > time reasonable, e.g. to under a second [..] Unfortunately I still don't have the hang of this schema validation. I would like to do this: $ dtc -O dtb -o test.dtb test/bootphases.dts && tools/dt-validate -m test.dtb test.dtb: /some-device: failed to match any schema with compatible: ['vendor,soc1-ip'] but I don't get any errors when I manage test/bootphases.dts e.g. with misnamed properties. I thought I had this working, but that was back in November. What am I doing wrong? Regards, Simon