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<address@hidden>
Message-Id:<address@hidden>
Reviewed-by: Peter Maydell<address@hidden>
---
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