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