ksz9567_driver.c
void nicNotifyLinkChange(NetInterface *interface)
Process link state change notification.
Definition: nic.c:601
#define KSZ9567_ALU_TABLE_ENTRY2_PORT6_FORWARD
Definition: ksz9567_driver.h:1570
NicDuplexMode ksz9567GetDuplexMode(NetInterface *interface, uint8_t port)
Get duplex mode.
Definition: ksz9567_driver.c:748
bool_t ksz9567GetLinkState(NetInterface *interface, uint8_t port)
Get link state.
Definition: ksz9567_driver.c:609
#define KSZ9567_PORTn_XMII_CTRL0_SPEED_10_100
Definition: ksz9567_driver.h:1870
uint32_t ksz9567GetLinkSpeed(NetInterface *interface, uint8_t port)
Get link speed.
Definition: ksz9567_driver.c:648
#define KSZ9567_STATIC_TABLE_ENTRY1_VALID
Definition: ksz9567_driver.h:1585
error_t ksz9567DeleteStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Remove an entry from the static MAC table.
Definition: ksz9567_driver.c:1209
#define KSZ9567_PORTn_XMII_CTRL1_IF_TYPE_RGMII
Definition: ksz9567_driver.h:1879
__weak_func void ksz9567EventHandler(NetInterface *interface)
KSZ9567 event handler.
Definition: ksz9567_driver.c:364
#define KSZ9567_PORTn_XMII_CTRL1_RGMII_ID_EG
Definition: ksz9567_driver.h:1876
#define KSZ9567_TAIL_TAG_NORMAL_ADDR_LOOKUP
Definition: ksz9567_driver.h:66
#define KSZ9567_STATIC_MCAST_TABLE_CTRL_ACTION
Definition: ksz9567_driver.h:1554
#define KSZ9567_SWITCH_LUE_CTRL0_HASH_OPTION_CRC
Definition: ksz9567_driver.h:1350
#define KSZ9567_PORTn_XMII_CTRL1_RGMII_ID_IG
Definition: ksz9567_driver.h:1875
#define KSZ9567_GLOBAL_PORT_MIRROR_SNOOP_CTRL_MLD_SNOOP_EN
Definition: ksz9567_driver.h:1473
#define KSZ9567_PORTn_OP_CTRL0_TAIL_TAG_EN
Definition: ksz9567_driver.h:1848
void ksz9567EnableMldSnooping(NetInterface *interface, bool_t enable)
Enable MLD snooping.
Definition: ksz9567_driver.c:1028
KSZ9567 7-port Gigabit Ethernet switch driver.
#define KSZ9567_TAIL_TAG_PORT_BLOCKING_OVERRIDE
Definition: ksz9567_driver.h:67
__weak_func void ksz9567Tick(NetInterface *interface)
KSZ9567 timer handler.
Definition: ksz9567_driver.c:266
#define KSZ9567_SWITCH_LUE_CTRL1_FLUSH_MSTP_ENTRIES
Definition: ksz9567_driver.h:1357
#define KSZ9567_ALU_TABLE_ENTRY2_PORT_FORWARD
Definition: ksz9567_driver.h:1568
void ksz9567WritePhyReg(NetInterface *interface, uint8_t port, uint8_t address, uint16_t data)
Write PHY register.
Definition: ksz9567_driver.c:1634
#define KSZ9567_MMDACR_FUNC_DATA_NO_POST_INC
Definition: ksz9567_driver.h:1045
uint8_t ksz9567ReadSwitchReg8(NetInterface *interface, uint16_t address)
Read switch register (8 bits)
Definition: ksz9567_driver.c:1862
#define KSZ9567_ALU_TABLE_CTRL_START_FINISH
Definition: ksz9567_driver.h:1540
error_t ksz9567AddStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Add a new entry to the static MAC table.
Definition: ksz9567_driver.c:1087
#define KSZ9567_ALU_TABLE_ENTRY2_PORT3_FORWARD
Definition: ksz9567_driver.h:1573
SwitchPortState ksz9567GetPortState(NetInterface *interface, uint8_t port)
Get port state.
Definition: ksz9567_driver.c:913
#define KSZ9567_PORTn_MSTP_STATE_RECEIVE_EN
Definition: ksz9567_driver.h:1945
#define KSZ9567_UNKONWN_MULTICAST_CTRL_FWD
Definition: ksz9567_driver.h:1411
#define KSZ9567_PORTn_XMII_CTRL1_SPEED_1000
Definition: ksz9567_driver.h:1874
uint32_t ksz9567ReadSwitchReg32(NetInterface *interface, uint16_t address)
Read switch register (32 bits)
Definition: ksz9567_driver.c:2047
#define KSZ9567_SWITCH_LUE_CTRL2_FLUSH_OPTION_DYNAMIC
Definition: ksz9567_driver.h:1369
uint16_t ksz9567ReadSwitchReg16(NetInterface *interface, uint16_t address)
Read switch register (16 bits)
Definition: ksz9567_driver.c:1953
#define KSZ9567_STATIC_MCAST_TABLE_CTRL_TABLE_SELECT
Definition: ksz9567_driver.h:1553
void ksz9567WriteSwitchReg16(NetInterface *interface, uint16_t address, uint16_t data)
Write switch register (16 bits)
Definition: ksz9567_driver.c:1909
#define KSZ9567_SWITCH_LUE_CTRL0_AGE_COUNT_DEFAULT
Definition: ksz9567_driver.h:1346
#define KSZ9567_STATIC_MCAST_TABLE_CTRL
Definition: ksz9567_driver.h:218
error_t ksz9567GetStaticFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the static MAC table.
Definition: ksz9567_driver.c:1289
#define KSZ9567_SWITCH_MAC_CTRL0_FRAME_LEN_CHECK_EN
Definition: ksz9567_driver.h:1436
const uint16_t ksz9567IngressTailTag[8]
Tail tag rules (host to KSZ9567)
Definition: ksz9567_driver.c:77
#define KSZ9567_SWITCH_LUE_CTRL0_RESERVED_MCAST_LOOKUP_EN
Definition: ksz9567_driver.h:1347
error_t ethPadFrame(NetBuffer *buffer, size_t *length)
Ethernet frame padding.
Definition: ethernet_misc.c:145
#define KSZ9567_PORTn_XMII_CTRL0_DUPLEX
Definition: ksz9567_driver.h:1868
#define KSZ9567_ALU_TABLE_ENTRY2_PORT4_FORWARD
Definition: ksz9567_driver.h:1572
#define KSZ9567_GLOBAL_PORT_MIRROR_SNOOP_CTRL_IGMP_SNOOP_EN
Definition: ksz9567_driver.h:1471
#define KSZ9567_SWITCH_LUE_CTRL2_FLUSH_OPTION
Definition: ksz9567_driver.h:1367
#define KSZ9567_PORTn_ETH_PHY_REG(port, addr)
Definition: ksz9567_driver.h:943
void ksz9567EnableRsvdMcastTable(NetInterface *interface, bool_t enable)
Enable reserved multicast table.
Definition: ksz9567_driver.c:1058
size_t netBufferGetLength(const NetBuffer *buffer)
Get the actual length of a multi-part buffer.
Definition: net_mem.c:297
#define KSZ9567_GLOBAL_PORT_MIRROR_SNOOP_CTRL
Definition: ksz9567_driver.h:205
__weak_func NicDuplexMode ksz9567GetPort7DuplexMode(NetInterface *interface)
Get port 7 duplex mode.
Definition: ksz9567_driver.c:842
void ksz9567WriteSwitchReg8(NetInterface *interface, uint16_t address, uint8_t data)
Write switch register (8 bits)
Definition: ksz9567_driver.c:1819
#define KSZ9567_STATIC_TABLE_ENTRY2_PORT_FORWARD
Definition: ksz9567_driver.h:1594
#define KSZ9567_SWITCH_OP_START_SWITCH
Definition: ksz9567_driver.h:1336
void ksz9567FlushDynamicFdbTable(NetInterface *interface, uint8_t port)
Flush dynamic MAC table.
Definition: ksz9567_driver.c:1542
#define KSZ9567_UNKONWN_MULTICAST_CTRL_FWD_MAP
Definition: ksz9567_driver.h:1412
#define KSZ9567_SWITCH_LUE_CTRL1_FLUSH_ALU_TABLE
Definition: ksz9567_driver.h:1356
#define KSZ9567_PORTn_MSTP_STATE_TRANSMIT_EN
Definition: ksz9567_driver.h:1944
void ksz9567SetAgingTime(NetInterface *interface, uint32_t agingTime)
Set aging time for dynamic filtering entries.
Definition: ksz9567_driver.c:977
uint16_t ksz9567ReadPhyReg(NetInterface *interface, uint8_t port, uint8_t address)
Read PHY register.
Definition: ksz9567_driver.c:1668
#define KSZ9567_ALU_TABLE_ENTRY2_PORT2_FORWARD
Definition: ksz9567_driver.h:1574
#define KSZ9567_UNKONWN_MULTICAST_CTRL_FWD_MAP_ALL
Definition: ksz9567_driver.h:1420
void ksz9567EnableIgmpSnooping(NetInterface *interface, bool_t enable)
Enable IGMP snooping.
Definition: ksz9567_driver.c:998
void ksz9567SetPortState(NetInterface *interface, uint8_t port, SwitchPortState state)
Set port state.
Definition: ksz9567_driver.c:856
#define KSZ9567_PORTn_XMII_CTRL1_IF_TYPE
Definition: ksz9567_driver.h:1878
#define KSZ9567_MMD_LED_MODE_RESERVED_DEFAULT
Definition: ksz9567_driver.h:1111
uint16_t ksz9567ReadSgmiiReg(NetInterface *interface, uint32_t address)
Read SGMII register.
Definition: ksz9567_driver.c:1802
void ksz9567WriteSwitchReg32(NetInterface *interface, uint16_t address, uint32_t data)
Write switch register (32 bits)
Definition: ksz9567_driver.c:2001
void ksz9567WriteSgmiiReg(NetInterface *interface, uint32_t address, uint16_t data)
Write SGMII register.
Definition: ksz9567_driver.c:1784
#define KSZ9567_STATIC_TABLE_ENTRY2_OVERRIDE
Definition: ksz9567_driver.h:1592
error_t netBufferAppend(NetBuffer *dest, const void *src, size_t length)
Append data a multi-part buffer.
Definition: net_mem.c:604
void ksz9567SetUnknownMcastFwdPorts(NetInterface *interface, bool_t enable, uint32_t forwardPorts)
Set forward ports for unknown multicast packets.
Definition: ksz9567_driver.c:1589
#define KSZ9567_ALU_TABLE_ENTRY2_PORT7_FORWARD
Definition: ksz9567_driver.h:1569
void ksz9567WriteMmdReg(NetInterface *interface, uint8_t port, uint8_t devAddr, uint16_t regAddr, uint16_t data)
Write MMD register.
Definition: ksz9567_driver.c:1730
#define KSZ9567_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT6
Definition: ksz9567_driver.h:1418
__weak_func void ksz9567InitHook(NetInterface *interface)
KSZ9567 custom configuration.
Definition: ksz9567_driver.c:256
__weak_func bool_t ksz9567GetPort7LinkState(NetInterface *interface)
Get port 7 link state.
Definition: ksz9567_driver.c:816
void osSetEvent(OsEvent *event)
Set the specified event object to the signaled state.
Definition: os_port_chibios.c:202
error_t ksz9567Init(NetInterface *interface)
KSZ9567 Ethernet switch initialization.
Definition: ksz9567_driver.c:96
#define KSZ9567_STATIC_MCAST_TABLE_CTRL_TABLE_INDEX
Definition: ksz9567_driver.h:1551
void ksz9567DumpPhyReg(NetInterface *interface, uint8_t port)
Dump PHY registers for debugging purpose.
Definition: ksz9567_driver.c:1704
void ksz9567FlushStaticFdbTable(NetInterface *interface)
Flush static MAC table.
Definition: ksz9567_driver.c:1386
const SwitchDriver ksz9567SwitchDriver
KSZ9567 Ethernet switch driver.
Definition: ksz9567_driver.c:45
#define KSZ9567_UNKONWN_MULTICAST_CTRL
Definition: ksz9567_driver.h:159
#define KSZ9567_ALU_TABLE_CTRL_ACTION_SEARCH
Definition: ksz9567_driver.h:1548
#define KSZ9567_ALU_TABLE_CTRL_VALID_ENTRY_OR_SEARCH_END
Definition: ksz9567_driver.h:1542
#define KSZ9567_SWITCH_LUE_CTRL3_AGE_PERIOD_DEFAULT
Definition: ksz9567_driver.h:1376
TCP/IP stack core.
error_t ksz9567UntagFrame(NetInterface *interface, uint8_t **frame, size_t *length, NetRxAncillary *ancillary)
Decode tail tag from incoming Ethernet frame.
Definition: ksz9567_driver.c:557
#define KSZ9567_STATIC_MCAST_TABLE_CTRL_START_FINISH
Definition: ksz9567_driver.h:1552
#define KSZ9567_ALU_TABLE_ENTRY2_PORT1_FORWARD
Definition: ksz9567_driver.h:1575
error_t ksz9567GetDynamicFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the dynamic MAC table.
Definition: ksz9567_driver.c:1435
uint16_t ksz9567ReadMmdReg(NetInterface *interface, uint8_t port, uint8_t devAddr, uint16_t regAddr)
Read MMD register.
Definition: ksz9567_driver.c:1758
#define KSZ9567_ALU_TABLE_ENTRY2_PORT5_FORWARD
Definition: ksz9567_driver.h:1571
#define KSZ9567_MMD_LED_MODE_LED_MODE_TRI_COLOR_DUAL
Definition: ksz9567_driver.h:1108
#define KSZ9567_PORTn_MSTP_STATE_LEARNING_DIS
Definition: ksz9567_driver.h:1946
Helper functions for Ethernet.
__weak_func uint32_t ksz9567GetPort7LinkSpeed(NetInterface *interface)
Get port 7 link speed.
Definition: ksz9567_driver.c:829
error_t ksz9567TagFrame(NetInterface *interface, NetBuffer *buffer, size_t *offset, NetTxAncillary *ancillary)
Add tail tag to Ethernet frame.
Definition: ksz9567_driver.c:498
Debugging facilities.
