Difference between revisions of "Unit LAN78XX"

From Ultibo.org
Jump to: navigation, search
Line 3,333: Line 3,333:
 
----
 
----
  
''To be documented''
+
 
 +
'''LAN78XX network'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PLAN78XXNetwork = ^TLAN78XXNetwork;</code>
 +
 
 +
<code>TLAN78XXNetwork = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Network Properties''
 +
|-
 +
| <code>Network:TNetworkDevice;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Driver Properties''
 +
|-
 +
| <code>ChipID:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ChipRevision:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PHYLock:TMutexHandle;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ReceiveRequestSize:LongWord;</code>
 +
| Size of each USB receive request buffer
 +
|-
 +
| <code>TransmitRequestSize:LongWord;</code>
 +
| Size of each USB transmit request buffer
 +
|-
 +
| <code>ReceiveEntryCount:LongWord;</code>
 +
| Number of entries in the receive queue
 +
|-
 +
| <code>TransmitEntryCount:LongWord;</code>
 +
| Number of entries in the transmit queue
 +
|-
 +
| <code>ReceivePacketCount:LongWord;</code>
 +
| Maximum number of packets per receive entry
 +
|-
 +
| <code>TransmitPacketCount:LongWord;</code>
 +
| Maximum number of packets per transmit entry
 +
|-
 +
|colspan="2"|''USB Properties''
 +
|-
 +
| <code>ReceiveRequest:PUSBRequest;</code>
 +
| USB request for packet receive data
 +
|-
 +
| <code>TransmitRequest:PUSBRequest;</code>
 +
| USB request for packet transmit data
 +
|-
 +
| <code>InterruptRequest:PUSBRequest;</code>
 +
| USB request for interrupt data
 +
|-
 +
| <code>ReceiveEndpoint:PUSBEndpointDescriptor;</code>
 +
| Bulk IN Endpoint
 +
|-
 +
| <code>TransmitEndpoint:PUSBEndpointDescriptor;</code>
 +
| Bulk OUT Endpoint
 +
|-
 +
| <code>InterruptEndpoint:PUSBEndpointDescriptor;</code>
 +
| Interrupt IN Endpoint
 +
|-
 +
| <code>PendingCount:LongWord;</code>
 +
| Number of USB requests pending for this network
 +
|-
 +
| <code>WaiterThread:TThreadId;</code>
 +
| Thread waiting for pending requests to complete (for network close)
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''LAN78XX statistics'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PLAN78XXStatistics = ^TLAN78XXStatistics;</code>
 +
 
 +
<code>TLAN78XXStatistics = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>RXFCSErrors:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>RXAlignmentErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXFragmentErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXJabberErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXUndersizeFrameErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXOversizeFrameErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXDroppedFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXUnicastByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXBroadcastByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXMulticastByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXUnicastFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXBroadcastFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXMulticastFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXPauseFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RX64ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RX65_127ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RX128_255ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RX256_511BytesFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RX512_1023ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RX1024_1518ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>RXGreater_1518ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EEERXLPITransitions:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EEERXLPITime:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXFCSErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXExcessDeferralErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXCarrierErrors:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXBadByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXSingleCollisions:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXMultipleCollisions:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXExcessive_collision:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXLateCollisions:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXUnicastByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXBroadcastByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXMulticastByteCount:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXUnicastFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXBroadcastFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXMulticastFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXPauseFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TX64ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TX65_127ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TX128_255ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TX256_511BytesFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TX512_1023ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TX1024_1518ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TXGreater_1518ByteFrames:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EEETXLPITransitions:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EEETXLPITime:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
 
----
 
----
  
''To be documented''
+
''None defined''
  
 
=== Function declarations ===
 
=== Function declarations ===

Revision as of 00:17, 17 April 2018

Return to Unit Reference


Description


Microchip LAN78xx USB Ethernet Driver unit

The Microchip LAN78xx is a USB 3.1 to 10/100/1000 Gigabit Ethernet bridge device which supports 10BASE-T, 100BASE-TX and 1000BASE-T. Both USB 2.0 High Speed and USB 3.1 Super Speed interfaces are supported using a pair of Bulk Endpoints and an Interrupt Endpoint for signalling status changes and other events. The Raspberry Pi 3B+ contains a variant of this device called a LAN7515 which is a combination device containing a LAN78xx Gigabit Ethernet controller and two 4 port USB 2.0 compatible hubs. The hubs will be detected and bound by the default USB Hub driver when they are enumerated by the USB core.

Constants



[Expand]
LAN78XX specific constants LAN78XX_*


[Expand]
LAN78XX USB vendor request LAN78XX_USB_VENDOR_*


[Expand]
LAN78XX interrupt endpoint status LAN78XX_INT_ENP_*


[Expand]
LAN78XX TX/RX packet alignment LAN78XX_*_PKT_ALIGNMENT


[Expand]
LAN78XX TX command A LAN78XX_TX_CMD_A_*


[Expand]
LAN78XX TX command B LAN78XX_TX_CMD_B_*


[Expand]
LAN78XX RX command A LAN78XX_RX_CMD_A_*


[Expand]
LAN78XX RX command B LAN78XX_RX_CMD_B_*


[Expand]
LAN78XX RX command C LAN78XX_RX_CMD_C_*


[Expand]
LAN78XX system control and status LAN78XX_NUMBER_*


[Expand]
LAN78XX device Id and revision LAN78XX_ID_REV_*


[Expand]
LAN78XX FGPA revision LAN78XX_FPGA_REV_*


[Expand]
LAN78XX interrupt status LAN78XX_INT_STS_*


[Expand]
LAN78XX hardware configuration LAN78XX_HW_CFG_*


[Expand]
LAN78XX power management control LAN78XX_PMT_CTL_*


[Expand]
LAN78XX general purpose IO configuration 0 register LAN78XX_GPIO_CFG0_*


[Expand]
LAN78XX general purpose IO configuration 1 register LAN78XX_GPIO_CFG1_*


[Expand]
LAN78XX general purpose IO wake enable and polarity LAN78XX_GPIO_WAKE_*


[Expand]
LAN78XX data port select LAN78XX_DP_SEL_*


[Expand]
LAN78XX data port command LAN78XX_DP_CMD_*


[Expand]
LAN78XX data port address LAN78XX_DP_ADDR_*


[Expand]
LAN78XX data port data LAN78XX_DP_DATA_*


[Expand]
LAN78XX EEPROM command LAN78XX_E2P_CMD_*


[Expand]
LAN78XX EEPROM data LAN78XX_E2P_DATA_*


[Expand]
LAN78XX BOS descriptor attribute LAN78XX_BOS_ATTR_*


[Expand]
LAN78XX SS descriptor attribute LAN78XX_SS_ATTR_*


[Expand]
LAN78XX HS descriptor attribute LAN78XX_HS_ATTR_*


[Expand]
LAN78XX FS descriptor attribute LAN78XX_FS_ATTR_*


[Expand]
LAN78XX string attribute register 0 LAN78XX_STR_ATTR0_*


[Expand]
LAN78XX string attribute register 1 LAN78XX_STR_ATTR1_*


[Expand]
LAN78XX flag attribute LAN78XX_STR_FLAG_*


[Expand]
LAN78XX USB configuration register 0 LAN78XX_USB_CFG0_*


[Expand]
LAN78XX USB configuration register 1 LAN78XX_USB_CFG1_*


[Expand]
LAN78XX USB configuration register 2 LAN78XX_USB_CFG2_*


[Expand]
LAN78XX burst cap LAN78XX_BURST_CAP_*


[Expand]
LAN78XX bulk IN delay LAN78XX_BULK_IN_*


[Expand]
LAN78XX interrupt endpoint control LAN78XX_INT_EP*


[Expand]
LAN78XX pipe control LAN78XX_PIPE_CTL_*


[Expand]
LAN78XX U1 exit latency LAN78XX_U1_LATENCY_*


[Expand]
LAN78XX U2 exit latency LAN78XX_U2_LATENCY_*


[Expand]
LAN78XX USB status LAN78XX_USB_STATUS_*


[Expand]
LAN78XX USB configuration register 3 LAN78XX_USB_CFG3_*


[Expand]
LAN78XX receive filtering engine control LAN78XX_RFE_CTL_*


[Expand]
LAN78XX VLAN type LAN78XX_VLAN_TYPE_*


[Expand]
LAN78XX FIFO controller RX FIFO control LAN78XX_FCT_RX_*


[Expand]
LAN78XX FIFO controller TX FIFO control LAN78XX_FCT_TX_*


[Expand]
LAN78XX FCT RX FIFO end LAN78XX_FCT_RX_FIFO_*


[Expand]
LAN78XX FCT TX FIFO end LAN78XX_FCT_TX_FIFO_*


[Expand]
LAN78XX FCT flow control threshold LAN78XX_FCT_FLOW_*


[Expand]
LAN78XX RX datapath storage LAN78XX_RX_DP_STOR*


[Expand]
LAN78XX TX datapath storage LAN78XX_TX_DP_STOR_*


[Expand]
LAN78XX LTM belt idle register 0 LAN78XX_LTM_BELT_IDLE0_*


[Expand]
LAN78XX LTM belt idle register 1 LAN78XX_LTM_BELT_IDLE1_*


[Expand]
LAN78XX LTM belt active register 0 LAN78XX_LTM_BELT_ACT0_*


[Expand]
LAN78XX LTM belt active register 1 LAN78XX_LTM_BELT_ACT1_*


[Expand]
LAN78XX LTM inactivity timer register 0 LAN78XX_LTM_INACTIVE0_*


[Expand]
LAN78XX LTM inactivity timer register 1 LAN78XX_LTM_INACTIVE1_*


[Expand]
LAN78XX MAC control LAN78XX_MAC_CR_*


[Expand]
LAN78XX MAC receive LAN78XX_MAC_RX_*


[Expand]
LAN78XX MAC transmit LAN78XX_MAC_TX_*


[Expand]
LAN78XX flow control LAN78XX_FLOW_*


[Expand]
LAN78XX random number seed value LAN78XX_RAND_SEED_*


[Expand]
LAN78XX error status LAN78XX_ERR_STS_*


[Expand]
LAN78XX MAC receive address high LAN78XX_RX_ADDRH_*


[Expand]
LAN78XX MAC receive address low LAN78XX_RX_ADDRL_*


[Expand]
LAN78XX MII access LAN78XX_MII_ACC_*


[Expand]
LAN78XX MII data LAN78XX_MII_DATA_*


[Expand]
LAN78XX MAC RGMII ID LAN78XX_MAC_RGMII_ID_*


[Expand]
LAN78XX EEE TX LPI request delay count LAN78XX_EEE_TX_LPI_REQ_*


[Expand]
LAN78XX EEE time wait TX system LAN78XX_EEE_TW_TX_*


[Expand]
LAN78XX EEE TX LPI automatic removal delay LAN78XX_EEE_TX_LPI_REM_*


[Expand]
LAN78XX wakeup control and status LAN78XX_WUCSR_*


[Expand]
LAN78XX wakeup source LAN78XX_WK_SRC_*


[Expand]
LAN78XX wakeup filter X configuration LAN78XX_WUF_CFG0_*


[Expand]
LAN78XX wakeup filter X byte mask LAN78XX_WUF_MASK_*


[Expand]
LAN78XX MAC address perfect filter LAN78XX_MAF_*


[Expand]
LAN78XX wakeup control and status register 2 LAN78XX_WUCSR2_*


[Expand]
LAN78XX NS1 IPV6 destination address LAN78XX_NS1_IPV6_ADDR_DEST_*


[Expand]
LAN78XX NS1 IPV6 source address LAN78XX_NS1_IPV6_ADDR_SRC_*


[Expand]
LAN78XX NS1 ICMPV6 address 0 register LAN78XX_NS1_ICMPV6_ADDR_*


[Expand]
LAN78XX NS1 ICMPV6 address 1 register LAN78XX_NS1_ICMPV6_ADDR1_*


[Expand]
LAN78XX NS2 IPV6 destination address LAN78XX_NS2_IPV6_ADDR_DEST_*


[Expand]
LAN78XX NS2 IPV6 source address LAN78XX_NS2_IPV6_ADDR_SRC_*


[Expand]
LAN78XX NS2 ICMPV6 address 0 register LAN78XX_NS2_ICMPV6_ADDR0_*


[Expand]
LAN78XX NS2 ICMPV6 address 1 register LAN78XX_NS2_ICMPV6_ADDR1_*


[Expand]
LAN78XX SYN IPV4 source address LAN78XX_SYN_IPV4_ADDR_SRC_*


[Expand]
LAN78XX SYN IPV4 destination address LAN78XX_SYN_IPV4_ADDR_DEST_*


[Expand]
LAN78XX SYN IPV4 TCP ports LAN78XX_SYN_IPV4_TCP_PORTS_*


[Expand]
LAN78XX SYN IPV6 source address LAN78XX_SYN_IPV6_ADDR_SRC_*


[Expand]
LAN78XX SYN IPV6 destination address LAN78XX_SYN_IPV6_ADDR_DEST_*


[Expand]
LAN78XX SYN IPV6 TCP ports LAN78XX_SYN_IPV6_TCP_PORTS_*


[Expand]
LAN78XX ARP sender protocol address LAN78XX_ARP_SPA_*


[Expand]
LAN78XX ARP target protocol address LAN78XX_ARP_TPA_*


[Expand]
LAN78XX PHY device identifier LAN78XX_PHY_DEV_ID_*


[Expand]
LAN78XX OTP LAN78XX_OTP_*


[Expand]
LAN78XX/LAN88XX interrupt mask LAN88XX_INT_MASK_*


[Expand]
LAN78XX/LAN88XX interrupt status LAN88XX_INT_STS_*


[Expand]
LAN78XX/LAN88XX extended page LAN88XX_EXT_PAGE_*


[Expand]
LAN78XX/LAN88XX extended mode control LAN88XX_EXT_MODE_CTRL_*


[Expand]
LAN78XX/LAN88XX MMD 3 LAN88XX_MMD3_*


Type definitions



LAN78XX network

[Expand]

PLAN78XXNetwork = ^TLAN78XXNetwork;

TLAN78XXNetwork = record

LAN78XX statistics

[Expand]

PLAN78XXStatistics = ^TLAN78XXStatistics;

TLAN78XXStatistics = record


Public variables


None defined

Function declarations


To be documented


Return to Unit Reference