34#ifndef __DEV_NET_NS_GIGE_HH__
35#define __DEV_NET_NS_GIGE_HH__
44#include "params/NSGigE.hh"
Dummy class to keep the Python class hierarchy in sync with the C++ object hierarchy.
EtherDevBaseParams Params
const std::string & name() const
Return port name (for DPRINTF).
NSGigEInt(const std::string &name, NSGigE *d)
virtual bool recvPacket(EthPacketPtr pkt)
NS DP83820 Ethernet device model.
uint32_t txDescCnt
count of bytes remaining in the current descriptor
uint32_t rxPktBytes
num of bytes in the current packet being drained from rxDataFifo
void eepromKick()
Advance the EEPROM state machine Called on rising edge of EEPROM clock bit in MEAR.
bool CRDD
Current Receive Descriptor Done.
EEPROMState eepromState
EEPROM State Machine.
bool rxFilterEnable
receive address filter
bool txHalt
halt the tx state machine after next packet
EventFunctionWrapper rxDmaWriteEvent
RxState rxState
rx State Machine
void devIntrClear(uint32_t interrupts)
void drainResume() override
Resume execution after a successful drain.
Tick writeConfig(PacketPtr pkt) override
This is to write to the PCI general configuration registers.
EventFunctionWrapper txDmaReadEvent
ns_desc32 txDesc32
DescCaches.
EventFunctionWrapper txEvent
void transmit()
Retransmit event.
void cpuIntrPost(Tick when)
EventFunctionWrapper * intrEvent
Tick read(PacketPtr pkt) override
This reads the device registers, which are detailed in the NS83820 spec sheet.
EventFunctionWrapper txDmaWriteEvent
EEPROMState
EEPROM State Machine States.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
bool CTDD
Current Transmit Descriptor Done.
bool recvPacket(EthPacketPtr packet)
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
bool ioEnable
pci settings
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
EventFunctionWrapper rxDmaReadEvent
void devIntrPost(uint32_t interrupts)
Interrupt management.
EventFunctionWrapper rxKickEvent
Addr rxFragPtr
ptr to the next byte in current fragment
Addr txFragPtr
ptr to the next byte in the current fragment
dp_regs regs
device register file
bool rxFilter(const EthPacketPtr &packet)
void serialize(CheckpointOut &cp) const override
Serialize an object.
uint32_t rxDescCnt
count of bytes remaining in the current descriptor
TxState
Transmit State Machine states.
bool rxHalt
halt the rx state machine after current packet
RxState
Receive State Machine States.
bool cpuIntrPending() const
NSGigE(const Params ¶ms)
EthPacketPtr txPacket
various helper vars
EventFunctionWrapper txKickEvent
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Ports are used to interface objects to each other.
Base Ethernet Device declaration.
const Params & params() const
const uint8_t EEPROM_SIZE
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
const PortID InvalidPortID
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.
const uint16_t FHASH_SIZE
const uint16_t FHASH_ADDR
const uint8_t EEPROM_PMATCH2_ADDR
const uint8_t EEPROM_PMATCH0_ADDR
const uint8_t EEPROM_READ
const uint8_t EEPROM_PMATCH1_ADDR
std::shared_ptr< EthPacketData > EthPacketPtr
Ethernet device register definitions for the National Semiconductor DP83820 Ethernet controller.
Ethernet device registers.
uint8_t perfectMatch[ETH_ADDR_LEN]
for perfect match memory.
uint8_t filterHash[FHASH_SIZE]
for hash table memory.