On 2026-10-14 14:45, Ahmad Fatoum wrote: > Hello Sascha, > > On 10/1/26 9:42 AM, Sascha Hauer wrote: > > rockchip_create_optee_fdt() builds a device tree with just the memory > > nodes, but fdt_create_empty_tree() sets its totalsize to the size of the > > whole scratch buffer, i.e. CONFIG_ARCH_ROCKCHIP_ATF_FDT_SIZE (384 KiB). > > > > TF-A and OP-TEE both call fdt_open_into() on the device tree, which > > copies totalsize bytes regardless of the actual content. TF-A does this > > with the MMU disabled and OP-TEE through an uncached mapping. On an > > RK3588 this takes 185 ms in TF-A and another 182 ms in OP-TEE. > > > > Pack the device tree so that totalsize matches its content. OP-TEE can > > still expand it in place, the scratch buffer keeps its size. > > While I don't object to the patch, for future reference it would be good > to point out what the implication is for fixups onto the device tree. > > Do both TF-A and OP-TEE apply fixups on this platforms? Are these fixups > no longer possible now?
TF-A doesn't apply any fixups. OP-TEE does, but it opens the device tree with fdt_open_into(blob, blob, CFG_DTB_MAX_SIZE), so it can expand as necessary up to CFG_DTB_MAX_SIZE. It just doesn't have to read so much from it initially. 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 |
