@@ -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[]) {
Signed-off-by: Grant Likely <grant.likely@secretlab.ca> --- hw/smc91c111.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-)