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 machine).
I noticed that this architecture supports only one ethernet (SMC91C111). I would like to emulate something like a NetDUO-MMC (http://gumstix.com/store/catalog/product_info.php?products_id=156), where the PXA255a can utilize two SMC91C111 devices via GPIO. Example: 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: [EMAIL PROTECTED] qemu-snapshot-2008-01-03_05]$ svn diff hw/gumstix.c 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]); + 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 vga_ram_size, As for the arguments, I noticed the three following items: 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 perfectly. 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 errors: 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) OR 2. Anyone could suggest some information on trying to add in another Ethernet interface. Thanks, John M. Woo ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs