Stefan Weil <[EMAIL PROTECTED]> 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