@@ -26,6 +26,7 @@
#include "sysbus.h"
#include "arm-misc.h"
#include "loader.h"
+#include "virtio-mmio.h"
#include "exynos4210.h"
#define EXYNOS4210_CHIPID_ADDR 0x10000000
@@ -62,6 +63,11 @@
/* Display controllers (FIMD) */
#define EXYNOS4210_FIMD0_BASE_ADDR 0x11C00000
+/* VirtIO BLK */
+#define EXYNOS4210_VIRTIO_BLK_BASE_ADDR 0x10AD0000
+/* VirtIO NET */
+#define EXYNOS4210_VIRTIO_NET_BASE_ADDR 0x10AC0000
+
static uint8_t chipid_and_omr[] = { 0x11, 0x02, 0x21, 0x43,
0x09, 0x00, 0x00, 0x00 };
@@ -105,6 +111,7 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
unsigned long mem_size;
DeviceState *dev;
SysBusDevice *busdev;
+ BusState *virtio_bus;
for (n = 0; n < EXYNOS4210_NCPUS; n++) {
s->env[n] = cpu_init("cortex-a9");
@@ -296,5 +303,10 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
s->irq_table[exynos4210_get_irq(11, 2)],
NULL);
+ virtio_bus = virtio_mmio_bus_init();
+ virtio_mmio_create_transport(virtio_bus, EXYNOS4210_VIRTIO_BLK_BASE_ADDR,
+ s->irq_table[exynos4210_get_irq(37, 3)]);
+ virtio_mmio_create_transport(virtio_bus, EXYNOS4210_VIRTIO_NET_BASE_ADDR,
+ s->irq_table[exynos4210_get_irq(37, 2)]);
return s;
}
NB: This is for test purposes only. Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com> --- hw/exynos4210.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)