[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Multiple Ethernet interfaces for Gumstix connex (NetDUO-mmc

From: John W
Subject: [Qemu-devel] Multiple Ethernet interfaces for Gumstix connex (NetDUO-mmc)
Date: Thu, 3 Jan 2008 17:03:24 -0800 (PST)

QEMU Development Team,

I've been playing with the latest snapshot of the QEMU
stuff (qemu-snapshot-2008-01-03_05.tar.bz2) to play
with the Gumstix Connex machine (the latest stable
version 0.9.0 doesn't seem to have the Gumstix connex

I noticed that this architecture supports only one
ethernet (SMC91C111).  I would like to emulate
something like a NetDUO-MMC
where the PXA255a can utilize two SMC91C111 devices
via GPIO.

Running the following only allows me to only use eth0:

./arm-softmmu/qemu-system-arm -M connex -pflash
~/flash -nographic \
-net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no\
-net nic,vlan=1 -net tap,vlan=1,ifname=tap1,script=no

Eth0 on the virtualized gumstix can receive and
transmit information with the tap0 host interface.  On
the other hand eth1 is never even discovered by the
Linux kernel.  Upon eth1 not being recognized, I
started digging into the code.

I modified the code inside hw/gumstix.c to add the
following line:

address@hidden qemu-snapshot-2008-01-03_05]$ svn diff
Index: hw/gumstix.c
--- hw/gumstix.c        (revision 1259)
+++ hw/gumstix.c        (working copy)
@@ -78,7 +78,10 @@

     /* Interrupt line of NIC is connected to GPIO
line 36 */
     smc91c111_init(&nd_table[0], 0x04000300,
+                  pxa2xx_gpio_in_get(cpu->gpio)[36]);
+    smc91c111_init(&nd_table[1], 0x08000300,
+                  pxa2xx_gpio_in_get(cpu->gpio)[37]);

 static void verdex_init(int ram_size, int

As for the arguments, I noticed the three following
1.  nd_table[1] gets initialized in vl.c when parsing
the arguments.
2.  0x08000300 I got based on looking at a real
gumstix with a a NetDUO-mmc. 
# cat /proc/iomem
04000300-040fffff : smc91x-regs
  04000300-0400030f : smc91x
08000300-080fffff : smc91x-regs
  08000300-0800030f : smc91x
20000000-2fffffff : PCMCIA socket 0
  20000000-23ffffff : io
  28000000-2bffffff : attribute
  2c000000-2fffffff : memory
40301680-403016a3 : pxa2xx-i2c.0
40400000-40400083 : pxa2xx-i2s
40600000-4060ffff : pxa2xx-udc
41100000-41100fff : pxa2xx-mci
44000000-4400ffff : pxa2xx-fb
a0000000-a3ffffff : System RAM
  a0018000-a015b0c7 : Kernel text
  a015c000-a019a877 : Kernel data

3.  gpio line 37, I took a stab in the dark.

With this change, eth0 seemed to continue to work

As for Eth1:
1.  The Linux Kernel seemed to ALSO recognize eth1.
(example: ifconfig eth1 seemed to work fine)

2.  Sending packets out the eth1 interface seemed
"okay", since I could run tcpdump on the tap1 host
interface and see packets coming from the virtualized
Connex eth1.  

3.  Unfortunately, the eth1 device seems to have
problems receiving packets due to some Interrupt
conflict.  I seem to get a number of the following
NETDEV WATCHDOG: eth1: transmit timed out

I was wondering if:
1. Anyone else out there was working on adding support
for another Ethernet interface for the Gumstix connex
(or Gumstix verdex)
2. Anyone could suggest some information on trying to
add in another Ethernet interface.


John M. Woo

Never miss a thing.  Make Yahoo your home page. 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]