Hi Alexander, On Wed, Jan 29, 2025 at 09:10:58AM +0300, Alexander Shiyan wrote: > Hello All. > > The question arose whether it is possible to load an add-on into > devicetree, but NOT through an overlay, > i.e. as a full-fledged dtb? > Ideally, it should look like this: the main ENTRY_FUNCTION() loads the > base tree, then, > after initialization in device_initcall(), the board modification is > determined and the full devicetree > written for this variant is loaded. exchanging the device tree during runtime is not a good idea. Pointers from the old tree might still be in use. Also it's not easy to track which devices have been probed already and which have to be probed from the new tree. Exchanging the device tree might work at first, but opens the door for some bad surprises. Do you need the full device tree in barebox itself or just in the Kernel? If the latter I would just start the kernel with the full device tree and keep the original one in barebox. There are also some boards in the tree in which we use I2C EEPROM support in PBL, so we can pick the correct device tree from the start rather than starting with a base device tree. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |