mv88e6060_driver.c
void nicNotifyLinkChange(NetInterface *interface)
Process link state change notification.
Definition: nic.c:559
#define MV88E6060_ATU_OPERATION_ATU_BUSY
Definition: mv88e6060_driver.h:511
#define MV88E6060_SWITCH_ID_DEVICE_ID
Definition: mv88e6060_driver.h:432
NicDuplexMode mv88e6060GetDuplexMode(NetInterface *interface, uint8_t port)
Get duplex mode.
Definition: mv88e6060_driver.c:598
#define MV88E6060_PORT_VLAN_MAP_DB_NUM
Definition: mv88e6060_driver.h:450
#define MV88E6060_PORT_VLAN_MAP_VLAN_TABLE
Definition: mv88e6060_driver.h:451
#define MV88E6060_ATU_DATA_ENTRY_STATE
Definition: mv88e6060_driver.h:530
uint16_t mv88e6060ReadSmiReg(NetInterface *interface, uint8_t deviceAddr, uint8_t regAddr)
Read SMI register.
Definition: mv88e6060_driver.c:1426
void mv88e6060SetAgingTime(NetInterface *interface, uint32_t agingTime)
Set aging time for dynamic filtering entries.
Definition: mv88e6060_driver.c:740
uint16_t mv88e6060ReadSwitchPortReg(NetInterface *interface, uint8_t port, uint8_t address)
Read switch port register.
Definition: mv88e6060_driver.c:1562
uint16_t mv88e6060ReadPhyReg(NetInterface *interface, uint8_t port, uint8_t address)
Read PHY register.
Definition: mv88e6060_driver.c:1482
void mv88e6060SetPortState(NetInterface *interface, uint8_t port, SwitchPortState state)
Set port state.
Definition: mv88e6060_driver.c:637
void mv88e6060EnableIgmpSnooping(NetInterface *interface, bool_t enable)
Enable IGMP snooping.
Definition: mv88e6060_driver.c:768
const uint32_t mv88e6060IngressTrailer[6]
Ingress trailer (CPU to 88E6060)
Definition: mv88e6060_driver.c:77
__weak_func void mv88e6060InitHook(NetInterface *interface)
88E6060 custom configuration
Definition: mv88e6060_driver.c:209
error_t mv88e6060GetDynamicFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the dynamic MAC table.
Definition: mv88e6060_driver.c:1137
error_t mv88e6060DeleteStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Remove an entry from the static MAC table.
Definition: mv88e6060_driver.c:918
error_t mv88e6060UntagFrame(NetInterface *interface, uint8_t **frame, size_t *length, NetRxAncillary *ancillary)
Decode egress trailer from incoming Ethernet frame.
Definition: mv88e6060_driver.c:480
error_t mv88e6060AddStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Add a new entry to the static MAC table.
Definition: mv88e6060_driver.c:834
#define MV88E6060_ATU_DATA_ENTRY_STATE_INVALID
Definition: mv88e6060_driver.h:531
void mv88e6060WriteSwitchPortReg(NetInterface *interface, uint8_t port, uint8_t address, uint16_t data)
Write switch port register.
Definition: mv88e6060_driver.c:1536
uint16_t mv88e6060ReadSwitchGlobalReg(NetInterface *interface, uint8_t address)
Read switch global register.
Definition: mv88e6060_driver.c:1609
void mv88e6060WriteSmiReg(NetInterface *interface, uint8_t deviceAddr, uint8_t regAddr, uint16_t data)
Write SMI register.
Definition: mv88e6060_driver.c:1400
void mv88e6060SetUnknownMcastFwdPorts(NetInterface *interface, bool_t enable, uint32_t forwardPorts)
Set forward ports for unknown multicast packets.
Definition: mv88e6060_driver.c:1385
error_t mv88e6060TagFrame(NetInterface *interface, NetBuffer *buffer, size_t *offset, NetTxAncillary *ancillary)
Add ingress trailer to Ethernet frame.
Definition: mv88e6060_driver.c:425
#define MV88E6060_PORT_ASSOC_VECTOR_PAV
Definition: mv88e6060_driver.h:461
void mv88e6060EventHandler(NetInterface *interface)
88E6060 event handler
Definition: mv88e6060_driver.c:309
void mv88e6060WriteSwitchGlobalReg(NetInterface *interface, uint8_t address, uint16_t data)
Write switch global register.
Definition: mv88e6060_driver.c:1593
#define MV88E6060_ATU_OPERATION_ATU_OP_FLUSH_UNLOCKED
Definition: mv88e6060_driver.h:515
88E6060 6-port Ethernet switch driver
#define MV88E6060_PORT_CTRL_PORT_STATE_DISABLED
Definition: mv88e6060_driver.h:444
#define MV88E6060_ATU_DATA_ENTRY_STATE_LOCKED_MGMT
Definition: mv88e6060_driver.h:534
#define MV88E6060_PORT_CTRL_PORT_STATE_FORWARDING
Definition: mv88e6060_driver.h:447
const SwitchDriver mv88e6060SwitchDriver
88E6060 Ethernet switch driver
Definition: mv88e6060_driver.c:45
error_t ethPadFrame(NetBuffer *buffer, size_t *length)
Ethernet frame padding.
Definition: ethernet_misc.c:147
void mv88e6060WritePhyReg(NetInterface *interface, uint8_t port, uint8_t address, uint16_t data)
Write PHY register.
Definition: mv88e6060_driver.c:1457
size_t netBufferGetLength(const NetBuffer *buffer)
Get the actual length of a multi-part buffer.
Definition: net_mem.c:297
#define MV88E6060_PORT_VLAN_MAP_VLAN_TABLE_PORT5
Definition: mv88e6060_driver.h:457
#define MV88E6060_ATU_OPERATION_ATU_OP_GET_NEXT_DB
Definition: mv88e6060_driver.h:517
void mv88e6060FlushDynamicFdbTable(NetInterface *interface, uint8_t port)
Flush dynamic MAC table.
Definition: mv88e6060_driver.c:1289
#define MV88E6060_PORT_CTRL_INGRESS_MODE
Definition: mv88e6060_driver.h:441
void mv88e6060EnableIrq(NetInterface *interface)
Enable interrupts.
Definition: mv88e6060_driver.c:289
#define MV88E6060_ATU_CTRL_AGE_TIME_DEFAULT
Definition: mv88e6060_driver.h:508
#define MV88E6060_ATU_DATA_ENTRY_STATE_LOCKED_MULTICAST
Definition: mv88e6060_driver.h:532
void mv88e6060EnableMldSnooping(NetInterface *interface, bool_t enable)
Enable MLD snooping.
Definition: mv88e6060_driver.c:780
error_t netBufferAppend(NetBuffer *dest, const void *src, size_t length)
Append data a multi-part buffer.
Definition: net_mem.c:604
void mv88e6060DisableIrq(NetInterface *interface)
Disable interrupts.
Definition: mv88e6060_driver.c:299
error_t mv88e6060Init(NetInterface *interface)
88E6060 Ethernet switch initialization
Definition: mv88e6060_driver.c:94
SwitchPortState mv88e6060GetPortState(NetInterface *interface, uint8_t port)
Get port state.
Definition: mv88e6060_driver.c:688
void osSetEvent(OsEvent *event)
Set the specified event object to the signaled state.
Definition: os_port_chibios.c:202
void mv88e6060DumpPhyReg(NetInterface *interface, uint8_t port)
Dump PHY registers for debugging purpose.
Definition: mv88e6060_driver.c:1511
void mv88e6060FlushStaticFdbTable(NetInterface *interface)
Flush static MAC table.
Definition: mv88e6060_driver.c:1102
#define MV88E6060_ATU_DATA_ENTRY_STATE_LOCKED_UNICAST
Definition: mv88e6060_driver.h:533
#define MV88E6060_PORT_CTRL_PORT_STATE
Definition: mv88e6060_driver.h:443
#define MV88E6060_PORT_CTRL_PORT_STATE_LEARNING
Definition: mv88e6060_driver.h:446
TCP/IP stack core.
uint32_t mv88e6060GetLinkSpeed(NetInterface *interface, uint8_t port)
Get link speed.
Definition: mv88e6060_driver.c:559
error_t mv88e6060GetStaticFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the static MAC table.
Definition: mv88e6060_driver.c:975
#define MV88E6060_ATU_OPERATION_ATU_OP_LOAD_PURGE
Definition: mv88e6060_driver.h:516
#define MV88E6060_PORT_CTRL_PORT_STATE_BLOCKING
Definition: mv88e6060_driver.h:445
void mv88e6060EnableRsvdMcastTable(NetInterface *interface, bool_t enable)
Enable reserved multicast table.
Definition: mv88e6060_driver.c:792
Helper functions for Ethernet.
bool_t mv88e6060GetLinkState(NetInterface *interface, uint8_t port)
Get link state.
Definition: mv88e6060_driver.c:527
#define MV88E6060_SWITCH_ID_DEVICE_ID_DEFAULT
Definition: mv88e6060_driver.h:433
Debugging facilities.