On Fri, 4 Jul 2025 at 17:57, Jackson Donaldson <jackson88...@gmail.com> wrote: > > This commit adds TRNG to max78000_soc > > Signed-off-by: Jackson Donaldson > --- > hw/arm/max78000_soc.c | 12 +++++++++++- > include/hw/arm/max78000_soc.h | 2 ++ > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/max78000_soc.c b/hw/arm/max78000_soc.c > index eddd9616f0..074fb1da8b 100644 > --- a/hw/arm/max78000_soc.c > +++ b/hw/arm/max78000_soc.c > @@ -43,6 +43,8 @@ static void max78000_soc_initfn(Object *obj) > TYPE_MAX78000_UART); > } > > + object_initialize_child(obj, "trng", &s->trng, TYPE_MAX78000_TRNG); > + > s->sysclk = qdev_init_clock_in(DEVICE(s), "sysclk", NULL, NULL, 0); > } > > @@ -51,6 +53,7 @@ static void max78000_soc_realize(DeviceState *dev_soc, > Error **errp) > MAX78000State *s = MAX78000_SOC(dev_soc); > MemoryRegion *system_memory = get_system_memory(); > DeviceState *dev, *gcrdev, *armv7m; > + g_autofree char *trng_link = NULL; > SysBusDevice *busdev; > Error *err = NULL; > int i; > @@ -126,6 +129,14 @@ static void max78000_soc_realize(DeviceState *dev_soc, > Error **errp) > > max78000_uart_irq[i])); > } > > + dev = DEVICE(&s->trng); > + sysbus_realize(SYS_BUS_DEVICE(dev), errp); > + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0x4004d000); > + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(armv7m, 4)); > + > + trng_link = g_strdup("trng"); > + object_property_set_link(OBJECT(gcrdev), trng_link, OBJECT(dev), &err);
This string is constant, so you can just pass it in: object_property_set_link(OBJECT(gcrdev), "trng", ...) rather than having a local variable and allocating memory. > + > dev = DEVICE(&s->gcr); > sysbus_realize(SYS_BUS_DEVICE(dev), errp); > sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0x40000000); thanks -- PMM