diff mbox

[12/15] hw/exynos4210.c: Add LAN support for SMDKC210.

Message ID 1323437682-28792-13-git-send-email-e.voevodin@samsung.com
State New
Headers show

Commit Message

Evgeny Voevodin Dec. 9, 2011, 1:34 p.m. UTC
SMDKC210 uses lan9215 chip, but lan9118 in 16-bit mode seems to
be enough.

Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>
---
 hw/exynos4210.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/hw/exynos4210.c b/hw/exynos4210.c
index 8d8a12c..5b18b68 100644
--- a/hw/exynos4210.c
+++ b/hw/exynos4210.c
@@ -26,6 +26,8 @@ 
 #include "sysemu.h"
 #include "sysbus.h"
 #include "arm-misc.h"
+#include "net.h"
+#include "devices.h"
 #include "exec-memory.h"
 #include "exynos4210.h"
 
@@ -224,6 +226,8 @@  static void exynos4210_init(ram_addr_t ram_size,
     SysBusDevice *busdev;
     ram_addr_t mem_size;
     int n;
+    NICInfo *nd;
+    int done_nic = 0;
 
     switch (board_type) {
     case BOARD_EXYNOS4210_NURI:
@@ -444,6 +448,20 @@  static void exynos4210_init(ram_addr_t ram_size,
         exynos4210_uart_create(addr, fifo_size, channel, NULL, uart_irq);
     }
 
+    /*** LAN adapter: this should be a 9215 but the 9118 is close enough ***/
+    if (board_type == BOARD_EXYNOS4210_SMDKC210) {
+        for (n = 0; n < nb_nics; n++) {
+            nd = &nd_table[n];
+
+            if (!done_nic && (!nd->model ||
+                    strcmp(nd->model, "lan9118") == 0)) {
+                dev = lan9118_init(nd, 0x05000000,
+                        qemu_irq_invert(irq_table[exynos4210_get_irq(37, 1)]));
+                qdev_prop_set_uint32(dev, "mode_16bit", 1);
+                done_nic = 1;
+            }
+        }
+    }
 
     /*** Load kernel ***/