On Wed, Dec 15, 2021 at 3:08 PM David Brazdil <dbrazdil@xxxxxxxxxx> wrote: > > Hi Rob, > > > > + dice_reserved: dice@12340000 { > > > + reg = <0x00 0x12340000 0x2000>; > > > + no-map; > > > + }; > > > + }; > > > + > > > + dice { > > > + compatible = "google,open-dice"; > > > + memory-region = <&dice_reserved>; > > > > There's no need for this indirection. Just add the compatible to the > > dice@12340000 node. You can bind drivers to /reserved-memory nodes. > > I have not found a way to make that work for kernel modules. Built-in > drivers can bind with RESERVEDMEM_OF_DECLARE, which puts an entry in > __reservedmem_of_table and __reserved_mem_init_node() iterates find it > there. A good case study might be CONFIG_TEGRA210_EMC, where the driver > itself can be a module but the rmem parsing is always built-in under > CONFIG_TEGRA210_EMC_TABLE. I don't think that's worth the trouble with > this driver. I forgot you have to add the compatible to reserved_mem_matches in drivers/of/platform.c. Rob