Signed-off-by: Grant Likely <grant.lik...@secretlab.ca> --- hw/smc91c111.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/hw/smc91c111.c b/hw/smc91c111.c index b7398c9..300d209 100644 --- a/hw/smc91c111.c +++ b/hw/smc91c111.c @@ -721,8 +721,28 @@ static int smc91c111_init1(SysBusDevice *dev) return 0; } +#ifdef CONFIG_FDT +#include <libfdt.h> +static int smc91c111_fdt_populate(SysBusDevice *dev, void *fdt, int offset) +{ + smc91c111_state *s = FROM_SYSBUS(smc91c111_state, dev); + int rc; + + rc = fdt_setprop_string(fdt, offset, "compatible", "smc,91c111"); + if (rc < 0) + return rc; + + rc = fdt_setprop(fdt, offset, "local-mac-address", s->conf.macaddr.a, + sizeof(s->conf.macaddr.a)); + return 0; +} +#endif + static SysBusDeviceInfo smc91c111_info = { .init = smc91c111_init1, +#ifdef CONFIG_FDT + .fdt_populate = smc91c111_fdt_populate, +#endif .qdev.name = "smc91c111", .qdev.size = sizeof(smc91c111_state), .qdev.props = (Property[]) {