On 2019/10/23 下午4:42, Sven Schnelle wrote:
This adds the basic functionality to emulate a Tulip NIC. Implemented are: - RX and TX functionality - Perfect Frame Filtering - Big/Little Endian descriptor support - 93C46 EEPROM support - LXT970 PHY Not implemented, mostly because i had no OS using these functions: - Imperfect frame filtering - General Purpose Timer - Transmit automatic polling - Boot ROM support - SIA interface - Big/Little Endian data buffer conversion Successfully tested with the following Operating Systems: - MSDOS with Microsoft Network Client 3.0 and DEC ODI drivers - HPPA Linux - Windows XP - HP-UX Signed-off-by: Sven Schnelle<sv...@stackframe.org> Message-Id:<20191022155413.4619-1-sv...@stackframe.org> Reviewed-by: Peter Maydell<peter.mayd...@linaro.org> --- Changes in v3: - fix whitespace - fix format string in read/write functions Changes in v2: - changed tulip_desc_{read,write} to take a struct descriptor * and no longer use a single pci DMA write, instead write one struct member at a time. - fix _tulip_receive function name - fix reset function and provide tulip_qdev_reset() for dc->reset. - no longer write registers in the default case in tulip_write() - set .impl.min_access_size and .impl.max_access_size MAINTAINERS | 6 + hw/net/Kconfig | 5 + hw/net/Makefile.objs | 1 + hw/net/trace-events | 14 + hw/net/tulip.c | 1029 ++++++++++++++++++++++++++++++++++++++ hw/net/tulip.h | 267 ++++++++++ include/hw/pci/pci_ids.h | 1 + 7 files changed, 1323 insertions(+) create mode 100644 hw/net/tulip.c create mode 100644 hw/net/tulip.h diff --git a/MAINTAINERS b/MAINTAINERS
Applied. Thanks