u32 maccfg1; /* mac configuration reg. 1 */
u32 maccfg2; /* mac configuration reg. 2 */
u32 ipgifg; /* interframe gap reg. */
u32 hafdup; /* half-duplex reg. */
u8 res1[0x10];
u8 miimng[0x18]; /* MII management structure moved to _mii.h */
u32 ifctl; /* interface control reg */
u32 ifstat; /* interface statux reg */
u32 macstnaddr1; /* mac station address part 1 reg */
u32 macstnaddr2; /* mac station address part 2 reg */
u8 res2[0x8];
u32 uempr; /* UCC Ethernet Mac parameter reg */
u32 utbipar; /* UCC tbi address reg */
u16 uescr; /* UCC Ethernet statistics control reg */
u8 res3[0x180 - 0x15A];
u32 tx64; /* Total number of frames (including bad frames)transmittedthatwereexactlyofthe minimallength(64foruntagged,68for tagged,orwithlengthexactlyequaltothe
parameter MINLength */
u32 tx127; /* Total number of frames (including bad frames)transmittedthatwerebetween MINLength(IncludingFCSlength==4)and127
octets */
u32 tx255; /* Total number of frames (including bad frames)transmittedthatwerebetween128
(Including FCS length==4) and 255 octets */
u32 rx64; /* Total number of frames received including badframesthatwereexactlyofthemninimal
length (64 bytes) */
u32 rx127; /* Total number of frames (including bad frames)receivedthatwerebetweenMINLength
(Including FCS length==4) and 127 octets */
u32 rx255; /* Total number of frames (including bad frames)receivedthatwerebetween128
(Including FCS length==4) and 255 octets */
u32 txok; /* Total number of octets residing in frames thatwhereinvolvedinsuccessful
transmission */
u16 txcf; /* Total number of PAUSE control frames
transmitted by this MAC */
u8 res4[0x2];
u32 tmca; /* Total number of frames that were transmitted successfullywiththegroupaddressbitset
that are not broadcast frames */
u32 tbca; /* Total number of frames transmitted successfullythathaddestinationaddress
field equal to the broadcast address */
u32 rxfok; /* Total number of frames received OK */
u32 rxbok; /* Total number of octets received OK */
u32 rbyt; /* Total number of octets received including octetsinbadframes.Mustbeimplementedin HWbecauseitincludesoctetsinframesthat
never even reach the UCC */
u32 rmca; /* Total number of frames that were received successfullywiththegroupaddressbitset
that are not broadcast frames */
u32 rbca; /* Total number of frames received successfully thathaddestinationaddressequaltothe
broadcast address */
u32 scar; /* Statistics carry register */
u32 scam; /* Statistics caryy mask register */
u8 res5[0x200 - 0x1c4];
} __packed;
/* Send Queue Queue-Descriptor */ struct ucc_geth_send_queue_qd {
u32 bd_ring_base; /* pointer to BD ring base address */
u8 res0[0x8];
u32 last_bd_completed_address;/* initialize to last entry in BD ring */
u8 res1[0x30];
} __packed;
struct ucc_geth_scheduler {
u16 cpucount0; /* CPU packet counter */
u16 cpucount1; /* CPU packet counter */
u16 cecount0; /* QE packet counter */
u16 cecount1; /* QE packet counter */
u16 cpucount2; /* CPU packet counter */
u16 cpucount3; /* CPU packet counter */
u16 cecount2; /* QE packet counter */
u16 cecount3; /* QE packet counter */
u16 cpucount4; /* CPU packet counter */
u16 cpucount5; /* CPU packet counter */
u16 cecount4; /* QE packet counter */
u16 cecount5; /* QE packet counter */
u16 cpucount6; /* CPU packet counter */
u16 cpucount7; /* CPU packet counter */
u16 cecount6; /* QE packet counter */
u16 cecount7; /* QE packet counter */
u32 weightstatus[NUM_TX_QUEUES]; /* accumulated weight factor */
u32 rtsrshadow; /* temporary variable handled by QE */
u32 time; /* temporary variable handled by QE */
u32 ttl; /* temporary variable handled by QE */
u32 mblinterval; /* max burst length interval */
u16 nortsrbytetime; /* normalized value of byte time in tsr units */
u8 fracsiz; /* radix 2 log value of denom. of
NorTSRByteTime */
u8 res0[1];
u8 strictpriorityq; /* Strict Priority Mask register */
u8 txasap; /* Transmit ASAP register */
u8 extrabw; /* Extra BandWidth register */
u8 oldwfqmask; /* temporary variable handled by QE */
u8 weightfactor[NUM_TX_QUEUES]; /**< weight factor for queues */
u32 minw; /* temporary variable handled by QE */
u8 res1[0x70 - 0x64];
} __packed;
struct ucc_geth_tx_firmware_statistics_pram {
u32 sicoltx; /* single collision */
u32 mulcoltx; /* multiple collision */
u32 latecoltxfr; /* late collision */
u32 frabortduecol; /* frames aborted due to transmit collision */
u32 frlostinmactxer; /* frames lost due to internal MAC error transmissionthatarenotcountedonany
other counter */
u32 carriersenseertx; /* carrier sense error */
u32 frtxok; /* frames transmitted OK */
u32 txfrexcessivedefer; /* frames with defferal time greater than
specified threshold */
u32 txpkts256; /* total packets (including bad) between 256
and 511 octets */
u32 txpkts512; /* total packets (including bad) between 512
and 1023 octets */
u32 txpkts1024; /* total packets (including bad) between 1024
and 1518 octets */
u32 txpktsjumbo; /* total packets (including bad) between 1024
and MAXLength octets */
} __packed;
struct ucc_geth_rx_firmware_statistics_pram {
u32 frrxfcser; /* frames with crc error */
u32 fraligner; /* frames with alignment error */
u32 inrangelenrxer; /* in range length error */
u32 outrangelenrxer; /* out of range length error */
u32 frtoolong; /* frame too long */
u32 runt; /* runt */
u32 verylongevent; /* very long event */
u32 symbolerror; /* symbol error */
u32 dropbsy; /* drop because of BD not ready */
u8 res0[0x8];
u32 mismatchdrop; /* drop because of MAC filtering (e.g. address
or type mismatch) */
u32 underpkts; /* total frames less than 64 octets */
u32 pkts256; /* total frames (including bad) between 256 and
511 octets */
u32 pkts512; /* total frames (including bad) between 512 and
1023 octets */
u32 pkts1024; /* total frames (including bad) between 1024
and 1518 octets */
u32 pktsjumbo; /* total frames (including bad) between 1024
and MAXLength octets */
u32 frlossinmacer; /* frames lost because of internal MAC error
that is not counted in any other counter */
u32 pausefr; /* pause frames */
u8 res1[0x4];
u32 removevlan; /* total frames that had their VLAN tag removed
*/
u32 replacevlan; /* total frames that had their VLAN tag
replaced */
u32 insertvlan; /* total frames that had their VLAN tag
inserted */
} __packed;
struct ucc_geth_tx_global_pram {
u16 temoder;
u8 res0[0x38 - 0x02];
u32 sqptr; /* a base pointer to send queue memory region */
u32 schedulerbasepointer; /* a base pointer to scheduler memory
region */
u32 txrmonbaseptr; /* base pointer to Tx RMON statistics counter */
u32 tstate; /* tx internal state. High byte contains
function code */
u8 iphoffset[TX_IP_OFFSET_ENTRY_MAX];
u32 vtagtable[0x8]; /* 8 4-byte VLAN tags */
u32 tqptr; /* a base pointer to the Tx Queues Memory
Region */
u8 res2[0x78 - 0x74];
u64 snums_en;
u32 l2l3baseptr; /* top byte consists of a few other bit fields */
u16 mtu[8];
u8 res3[0xa8 - 0x94];
u32 wrrtablebase; /* top byte is reserved */
u8 res4[0xc0 - 0xac];
} __packed;
/* structure representing Extended Filtering Global Parameters in PRAM */ struct ucc_geth_exf_global_pram {
u32 l2pcdptr; /* individual address filter, high */
u8 res0[0x10 - 0x04];
} __packed;
struct ucc_geth_rx_global_pram {
u32 remoder; /* ethernet mode reg. */
u32 rqptr; /* base pointer to the Rx Queues Memory Region*/
u32 res0[0x1];
u8 res1[0x20 - 0xC];
u16 typeorlen; /* cutoff point less than which, type/len field
is considered length */
u8 res2[0x1];
u8 rxgstpack; /* acknowledgement on GRACEFUL STOP RX command*/
u32 rxrmonbaseptr; /* base pointer to Rx RMON statistics counter */
u8 res3[0x30 - 0x28];
u32 intcoalescingptr; /* Interrupt coalescing table pointer */
u8 res4[0x36 - 0x34];
u8 rstate; /* rx internal state. High byte contains
function code */
u8 res5[0x46 - 0x37];
u16 mrblr; /* max receive buffer length reg. */
u32 rbdqptr; /* base pointer to RxBD parameter table
description */
u16 mflr; /* max frame length reg. */
u16 minflr; /* min frame length reg. */
u16 maxd1; /* max dma1 length reg. */
u16 maxd2; /* max dma2 length reg. */
u32 ecamptr; /* external CAM address */
u32 l2qt; /* VLAN priority mapping table. */
u32 l3qt[0x8]; /* IP priority mapping table. */
u16 vlantype; /* vlan type */
u16 vlantci; /* default vlan tci */
u8 addressfiltering[64]; /* address filtering data structure */
u32 exfGlobalParam; /* base address for extended filtering global
parameters */
u8 res6[0x100 - 0xC4]; /* Initialize to zero */
} __packed;
/* GETH Tx firmware statistics structure, used when calling
UCC_GETH_GetStatistics. */ struct ucc_geth_tx_firmware_statistics {
u32 sicoltx; /* single collision */
u32 mulcoltx; /* multiple collision */
u32 latecoltxfr; /* late collision */
u32 frabortduecol; /* frames aborted due to transmit collision */
u32 frlostinmactxer; /* frames lost due to internal MAC error transmissionthatarenotcountedonany
other counter */
u32 carriersenseertx; /* carrier sense error */
u32 frtxok; /* frames transmitted OK */
u32 txfrexcessivedefer; /* frames with defferal time greater than
specified threshold */
u32 txpkts256; /* total packets (including bad) between 256
and 511 octets */
u32 txpkts512; /* total packets (including bad) between 512
and 1023 octets */
u32 txpkts1024; /* total packets (including bad) between 1024
and 1518 octets */
u32 txpktsjumbo; /* total packets (including bad) between 1024
and MAXLength octets */
} __packed;
/* GETH Rx firmware statistics structure, used when calling
UCC_GETH_GetStatistics. */ struct ucc_geth_rx_firmware_statistics {
u32 frrxfcser; /* frames with crc error */
u32 fraligner; /* frames with alignment error */
u32 inrangelenrxer; /* in range length error */
u32 outrangelenrxer; /* out of range length error */
u32 frtoolong; /* frame too long */
u32 runt; /* runt */
u32 verylongevent; /* very long event */
u32 symbolerror; /* symbol error */
u32 dropbsy; /* drop because of BD not ready */
u8 res0[0x8];
u32 mismatchdrop; /* drop because of MAC filtering (e.g. address
or type mismatch) */
u32 underpkts; /* total frames less than 64 octets */
u32 pkts256; /* total frames (including bad) between 256 and
511 octets */
u32 pkts512; /* total frames (including bad) between 512 and
1023 octets */
u32 pkts1024; /* total frames (including bad) between 1024
and 1518 octets */
u32 pktsjumbo; /* total frames (including bad) between 1024
and MAXLength octets */
u32 frlossinmacer; /* frames lost because of internal MAC error
that is not counted in any other counter */
u32 pausefr; /* pause frames */
u8 res1[0x4];
u32 removevlan; /* total frames that had their VLAN tag removed
*/
u32 replacevlan; /* total frames that had their VLAN tag
replaced */
u32 insertvlan; /* total frames that had their VLAN tag
inserted */
} __packed;
/* GETH hardware statistics structure, used when calling
UCC_GETH_GetStatistics. */ struct ucc_geth_hardware_statistics {
u32 tx64; /* Total number of frames (including bad frames)transmittedthatwereexactlyofthe minimallength(64foruntagged,68for tagged,orwithlengthexactlyequaltothe
parameter MINLength */
u32 tx127; /* Total number of frames (including bad frames)transmittedthatwerebetween MINLength(IncludingFCSlength==4)and127
octets */
u32 tx255; /* Total number of frames (including bad frames)transmittedthatwerebetween128
(Including FCS length==4) and 255 octets */
u32 rx64; /* Total number of frames received including badframesthatwereexactlyofthemninimal
length (64 bytes) */
u32 rx127; /* Total number of frames (including bad frames)receivedthatwerebetweenMINLength
(Including FCS length==4) and 127 octets */
u32 rx255; /* Total number of frames (including bad frames)receivedthatwerebetween128
(Including FCS length==4) and 255 octets */
u32 txok; /* Total number of octets residing in frames thatwhereinvolvedinsuccessful
transmission */
u16 txcf; /* Total number of PAUSE control frames
transmitted by this MAC */
u32 tmca; /* Total number of frames that were transmitted successfullywiththegroupaddressbitset
that are not broadcast frames */
u32 tbca; /* Total number of frames transmitted successfullythathaddestinationaddress
field equal to the broadcast address */
u32 rxfok; /* Total number of frames received OK */
u32 rxbok; /* Total number of octets received OK */
u32 rbyt; /* Total number of octets received including octetsinbadframes.Mustbeimplementedin HWbecauseitincludesoctetsinframesthat
never even reach the UCC */
u32 rmca; /* Total number of frames that were received successfullywiththegroupaddressbitset
that are not broadcast frames */
u32 rbca; /* Total number of frames received successfully thathaddestinationaddressequaltothe
broadcast address */
} __packed;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.