qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: multicast and the eepro100 driver


From: Bjørn Mork
Subject: [Qemu-devel] Re: multicast and the eepro100 driver
Date: Tue, 18 Dec 2007 15:44:41 +0100
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.1 (gnu/linux)

Stefan Weil <address@hidden> writes:

> eepro100.c is my work, so maybe I can help you.
>
> First of all: there exists a newer version of eepro100.c which
> fixes some bugs of the CVS version and largely improves
> support for big endian hosts and targets. Get it from
> http://svn.berlios.de/wsvn/ar7-firmware/qemu/trunk/hw/eepro100.c?op=file&rev=0&sc=0
>
> I am still working on this new version, because support for big endian
> hosts is still untested.
>
> If you define macro DEBUG_EEPRO100 in eepro100.c, you will get
> debugging messages which show the frames sent and received.
>
> Multicast frames should be received, but I never tested this,
> so maybe there is a bug, and I know that I did not implement
> all functions needed for multicast.

Hello,

I just tried your new version of eepro100.c and can confirm that
multicast reception does work with this version.  Found one bug (which
does not prevent it from working):  The length of the multicast list
seems have a byte/number confusion.  I get:



EE100   set_multicast_list      multicast list, 0 entries
EE100   set_multicast_list      multicast list, 0 entries
EE100   set_multicast_list      multicast list, 6 entries
EE100   set_multicast_list      multicast entry  01 00 5e 00 00 01
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast list, 12 entries
EE100   set_multicast_list      multicast entry  01 00 5e 00 00 01
EE100   set_multicast_list      multicast entry  01 00 5e 00 00 06
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast list, 18 entries
EE100   set_multicast_list      multicast entry  01 00 5e 00 00 01
EE100   set_multicast_list      multicast entry  01 00 5e 00 00 05
EE100   set_multicast_list      multicast entry  01 00 5e 00 00 06
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00
EE100   set_multicast_list      multicast entry  00 00 00 00 00 00

This patch fixes this:

--- /home/bjorn/tmp/eepro100.c  2007-12-18 14:52:48.000000000 +0100
+++ /usr/local/src/qemu-0.9.0+20070816/hw/eepro100.c    2007-12-18 
15:37:40.000000000 +0100
@@ -905,7 +903,7 @@
             TRACE(OTHER, logout("configuration: %s\n", 
nic_dump(&s->configuration[0], 16)));
             break;
         case CmdMulticastList:
-            set_multicast_list(s, s->tx.tbd_array_addr & BITS(13, 0));
+            set_multicast_list(s, (s->tx.tbd_array_addr & BITS(13, 0)) / 6);
             break;
         case CmdTx:
             tx_command(s);


Thanks for your work on this!



Bjørn
-- 
How can you say that old people are inherently superior to unborn
people





reply via email to

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