ksz8463_driver.c
void nicNotifyLinkChange(NetInterface *interface)
Process link state change notification.
Definition: nic.c:559
uint32_t ksz8463GetLinkSpeed(NetInterface *interface, uint8_t port)
Get link speed.
Definition: ksz8463_driver.c:563
void ksz8463FlushDynamicFdbTable(NetInterface *interface, uint8_t port)
Flush dynamic MAC table.
Definition: ksz8463_driver.c:1204
error_t ksz8463GetDynamicFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the dynamic MAC table.
Definition: ksz8463_driver.c:1115
void ksz8463EventHandler(NetInterface *interface)
KSZ8463 event handler.
Definition: ksz8463_driver.c:283
#define KSZ8463_IACR_TABLE_SEL_DYNAMIC_MAC
Definition: ksz8463_driver.h:749
error_t ksz8463Init(NetInterface *interface)
KSZ8463 Ethernet switch initialization.
Definition: ksz8463_driver.c:91
error_t ksz8463AddStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Add a new entry to the static MAC table.
Definition: ksz8463_driver.c:855
void ksz8463SetAgingTime(NetInterface *interface, uint32_t agingTime)
Set aging time for dynamic filtering entries.
Definition: ksz8463_driver.c:790
KSZ8463 3-port Ethernet switch driver.
__weak_func void ksz8463InitHook(NetInterface *interface)
KSZ8463 custom configuration.
Definition: ksz8463_driver.c:183
const uint8_t ksz8463IngressTailTag[3]
Tail tag rules (host to KSZ8463)
Definition: ksz8463_driver.c:77
uint16_t ksz8463ReadSwitchReg(NetInterface *interface, uint16_t address)
Read switch register.
Definition: ksz8463_driver.c:1393
void ksz8463FlushStaticFdbTable(NetInterface *interface)
Flush static MAC table.
Definition: ksz8463_driver.c:1075
void ksz8463EnableRsvdMcastTable(NetInterface *interface, bool_t enable)
Enable reserved multicast table.
Definition: ksz8463_driver.c:842
const SwitchDriver ksz8463SwitchDriver
KSZ8463 Ethernet switch driver.
Definition: ksz8463_driver.c:45
error_t ethPadFrame(NetBuffer *buffer, size_t *length)
Ethernet frame padding.
Definition: ethernet_misc.c:147
error_t ksz8463TagFrame(NetInterface *interface, NetBuffer *buffer, size_t *offset, NetTxAncillary *ancillary)
Add tail tag to Ethernet frame.
Definition: ksz8463_driver.c:408
void ksz8463EnableMldSnooping(NetInterface *interface, bool_t enable)
Enable MLD snooping.
Definition: ksz8463_driver.c:830
uint16_t ksz8463ReadPhyReg(NetInterface *interface, uint8_t port, uint8_t address)
Read PHY register.
Definition: ksz8463_driver.c:1289
size_t netBufferGetLength(const NetBuffer *buffer)
Get the actual length of a multi-part buffer.
Definition: net_mem.c:297
#define KSZ8463_SGCR8_FLUSH_DYNAMIC_MAC_TABLE
Definition: ksz8463_driver.h:812
void ksz8463DumpPhyReg(NetInterface *interface, uint8_t port)
Dump PHY registers for debugging purpose.
Definition: ksz8463_driver.c:1315
bool_t ksz8463GetLinkState(NetInterface *interface, uint8_t port)
Get link state.
Definition: ksz8463_driver.c:519
#define KSZ8463_SGCR3_SW_HOST_PORT_HALF_DUPLEX_MODE
Definition: ksz8463_driver.h:706
error_t netBufferAppend(NetBuffer *dest, const void *src, size_t length)
Append data a multi-part buffer.
Definition: net_mem.c:604
#define KSZ8463_CIDER_FAMILY_ID_DEFAULT
Definition: ksz8463_driver.h:668
void ksz8463WriteSwitchReg(NetInterface *interface, uint16_t address, uint16_t data)
Write switch register.
Definition: ksz8463_driver.c:1339
SwitchPortState ksz8463GetPortState(NetInterface *interface, uint8_t port)
Get port state.
Definition: ksz8463_driver.c:727
error_t ksz8463DeleteStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Remove an entry from the static MAC table.
Definition: ksz8463_driver.c:950
void ksz8463DumpSwitchReg(NetInterface *interface)
Dump switch registers for debugging purpose.
Definition: ksz8463_driver.c:1449
void ksz8463SetUnknownMcastFwdPorts(NetInterface *interface, bool_t enable, uint32_t forwardPorts)
Set forward ports for unknown multicast packets.
Definition: ksz8463_driver.c:1251
error_t ksz8463GetStaticFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the static MAC table.
Definition: ksz8463_driver.c:1009
void osSetEvent(OsEvent *event)
Set the specified event object to the signaled state.
Definition: os_port_chibios.c:202
void ksz8463EnableIgmpSnooping(NetInterface *interface, bool_t enable)
Enable IGMP snooping.
Definition: ksz8463_driver.c:802
NicDuplexMode ksz8463GetDuplexMode(NetInterface *interface, uint8_t port)
Get duplex mode.
Definition: ksz8463_driver.c:617
void ksz8463SetPortState(NetInterface *interface, uint8_t port, SwitchPortState state)
Set port state.
Definition: ksz8463_driver.c:671
error_t ksz8463UntagFrame(NetInterface *interface, uint8_t **frame, size_t *length, NetRxAncillary *ancillary)
Decode tail tag from incoming Ethernet frame.
Definition: ksz8463_driver.c:467
TCP/IP stack core.
#define KSZ8463_SGCR8_FLUSH_STATIC_MAC_TABLE
Definition: ksz8463_driver.h:813
#define KSZ8463_IACR_TABLE_SEL_STATIC_MAC
Definition: ksz8463_driver.h:747
Helper functions for Ethernet.
void ksz8463WritePhyReg(NetInterface *interface, uint8_t port, uint8_t address, uint16_t data)
Write PHY register.
Definition: ksz8463_driver.c:1266
Debugging facilities.
#define KSZ8463_TAIL_TAG_NORMAL_ADDR_LOOKUP
Definition: ksz8463_driver.h:65