Hi, File eepro100.tar.bz2 (added to this mail) contains everything needed to add 3 new PCI network device (all similar to EEPRO100):
eepro100.patch: Makefile.target: added two binaries needed for EEPRO100 split entries for PCI network devices (1 line / entry, better merging with CVS) vl.h: added prototypes for EEPRO100 hw/pci.c: added new PCI network models: i82551, i82557b, i82559er hw/eepro100.c: EEPRO100 PCI network emulation hw/eeprom93xx.c, hw/eeprom93xx.h: EEPROM emulation, needed for EEPRO100 (and others) I just finished running these tests using a PC host running Debian GNU Linux: * compilation for all QEMU target architectures: ok * cross compilation (Windows) for all QEMU target architectures: ok * functional test: ok The last test was started like this: i386-softmmu/qemu -L pc-bios --net nic,model=i82559er --net tap /dev/hda --snapshot Networking was tested using ping and ssh connection from emulated system to host. I did not apply your patch, because I cannot test it (it needs a system with different endianess). Your feedback is welcome Stefan Ben Taylor wrote: > ---- Stefan Weil <[EMAIL PROTECTED]> wrote: >> Hello, >> >> these new ethernet drivers for QEMU are now available: >> >> Intel 8255x ("E100", "EEPRO100"): >> http://svn.berlios.de/wsvn/ar7-firmware/qemu/trunk/hw/eepro100.c?op=file > > Having been through this with the rlt8139.c driver, > > I can expect that the area around: > > static void nic_selective_reset(EEPRO100State * s) > { > size_t i; > uint16_t *eeprom_contents = eeprom93xx_data(s->eeprom); > //~ eeprom93xx_reset(s->eeprom); > memcpy(eeprom_contents, s->macaddr, 6); > > will need to change the memcpy to something like: > > s->macaddr[0] = eeprom_contents[0] || eeprom_contents[1]<<8; > s->macaddr[2] = eeprom_contents[2] || eeprom_contents[3]<<8; > s->macaddr[4] = eeprom_contents[4] || eeprom_contents[5]<<8; > > I'll try to give it whack tommorow. Do you have some glue on the > Makefile.target? > > Ben > > > Both drivers use a new EEPROM driver: > http://svn.berlios.de/wsvn/ar7-firmware/qemu/trunk/hw/eeprom93xx.c?op=file > http://svn.berlios.de/wsvn/ar7-firmware/qemu/trunk/hw/eeprom93xx.h?op=file > > This EEPROM driver can be shared by any other device which needs > an EEPROM, for example replace the driver for RTL8139 or add an > EEPROM to cirrus vga or other ethernet cards. > > I estimate the status of the EEPROM driver to be stable. > Fabrice, maybe this part can be integrated in QEMU head. > > Both ethernet drivers work with QEMU head and Linux on x86 host / guest, > but have known endianess issues (they will at least need fixes for big > endian hosts) and are experimental. I am still working on them. > > Feedback and bug fixes are welcome. > > Regards > Stefan
eepro100.tar.bz2
Description: Binary data