diff options
author | Jean-Christophe Dubois <jcd@tribudubois.net> | 2016-05-30 19:26:14 +0200 |
---|---|---|
committer | Jason Wang <jasowang@redhat.com> | 2016-06-02 10:42:46 +0800 |
commit | 517b5e9a175fe7d47cc0fab6c2310241fd33c115 (patch) | |
tree | 3df03725a2f876f68b8fe883a85f68e67b596d5a /hw/arm | |
parent | a699b410d7120dd67bc6c9beae44868780866f09 (diff) | |
download | qemu-517b5e9a175fe7d47cc0fab6c2310241fd33c115.zip qemu-517b5e9a175fe7d47cc0fab6c2310241fd33c115.tar.gz qemu-517b5e9a175fe7d47cc0fab6c2310241fd33c115.tar.bz2 |
Add ENET device to i.MX6 SOC.
This adds the ENET device to the i.MX6 SOC.
This was tested by booting Linux on an Qemu i.MX6 instance and accessing
the internet from the linux guest.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw/arm')
-rw-r--r-- | hw/arm/fsl-imx6.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index a5331bf..0c00e7a 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -105,6 +105,10 @@ static void fsl_imx6_init(Object *obj) snprintf(name, NAME_SIZE, "spi%d", i + 1); object_property_add_child(obj, name, OBJECT(&s->spi[i]), NULL); } + + object_initialize(&s->eth, sizeof(s->eth), TYPE_IMX_ENET); + qdev_set_parent_bus(DEVICE(&s->eth), sysbus_get_default()); + object_property_add_child(obj, "eth", OBJECT(&s->eth), NULL); } static void fsl_imx6_realize(DeviceState *dev, Error **errp) @@ -381,6 +385,19 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp) spi_table[i].irq)); } + object_property_set_bool(OBJECT(&s->eth), true, "realized", &err); + if (err) { + error_propagate(errp, err); + return; + } + sysbus_mmio_map(SYS_BUS_DEVICE(&s->eth), 0, FSL_IMX6_ENET_ADDR); + sysbus_connect_irq(SYS_BUS_DEVICE(&s->eth), 0, + qdev_get_gpio_in(DEVICE(&s->a9mpcore), + FSL_IMX6_ENET_MAC_IRQ)); + sysbus_connect_irq(SYS_BUS_DEVICE(&s->eth), 1, + qdev_get_gpio_in(DEVICE(&s->a9mpcore), + FSL_IMX6_ENET_MAC_1588_IRQ)); + /* ROM memory */ memory_region_init_rom_device(&s->rom, NULL, NULL, NULL, "imx6.rom", FSL_IMX6_ROM_SIZE, &err); |