drivers/net/ethernet/freescale/ucc_geth.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/freescale/ucc_geth.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/freescale/ucc_geth.h- Extension
.h- Size
- 45547 bytes
- Lines
- 1232
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/kernel.hlinux/list.hlinux/phylink.hlinux/if_ether.hsoc/fsl/qe/immap_qe.hsoc/fsl/qe/qe.hsoc/fsl/qe/ucc.hsoc/fsl/qe/ucc_fast.h
Detected Declarations
struct ucc_gethstruct ucc_geth_thread_data_txstruct ucc_geth_thread_data_rxstruct ucc_geth_send_queue_qdstruct ucc_geth_send_queue_mem_regionstruct ucc_geth_thread_tx_pramstruct ucc_geth_thread_rx_pramstruct ucc_geth_schedulerstruct ucc_geth_tx_firmware_statistics_pramstruct ucc_geth_rx_firmware_statistics_pramstruct ucc_geth_rx_interrupt_coalescing_entrystruct ucc_geth_rx_interrupt_coalescing_tablestruct ucc_geth_rx_prefetched_bdsstruct ucc_geth_rx_bd_queues_entrystruct ucc_geth_tx_global_pramstruct ucc_geth_exf_global_pramstruct ucc_geth_rx_global_pramstruct ucc_geth_init_pramstruct ucc_geth_82xx_enet_addressstruct ucc_geth_82xx_address_filtering_pramstruct ucc_geth_tx_firmware_statisticsstruct ucc_geth_rx_firmware_statisticsstruct ucc_geth_hardware_statisticsstruct enet_addr_containerstruct ucc_geth_tad_paramsstruct phylinkstruct phylink_configstruct ucc_geth_infostruct ucc_geth_privateenum enet_addr_typeenum ucc_geth_enet_address_recognition_locationenum ucc_geth_vlan_operation_taggedenum ucc_geth_vlan_operation_non_taggedenum ucc_geth_qos_modeenum ucc_geth_statistics_gathering_modeenum ucc_geth_maccfg2_pad_and_crc_modeenum ucc_geth_flow_control_modeenum ucc_geth_num_of_threadsenum ucc_geth_num_of_station_addresses
Annotated Snippet
struct ucc_geth {
struct ucc_fast uccf;
u8 res0[0x100 - sizeof(struct ucc_fast)];
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) transmitted that were exactly of the
minimal length (64 for un tagged, 68 for
tagged, or with length exactly equal to the
parameter MINLength */
u32 tx127; /* Total number of frames (including bad
frames) transmitted that were between
MINLength (Including FCS length==4) and 127
octets */
u32 tx255; /* Total number of frames (including bad
frames) transmitted that were between 128
(Including FCS length==4) and 255 octets */
u32 rx64; /* Total number of frames received including
bad frames that were exactly of the mninimal
length (64 bytes) */
u32 rx127; /* Total number of frames (including bad
frames) received that were between MINLength
(Including FCS length==4) and 127 octets */
u32 rx255; /* Total number of frames (including bad
frames) received that were between 128
(Including FCS length==4) and 255 octets */
u32 txok; /* Total number of octets residing in frames
that where involved in successful
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
successfully with the group address bit set
that are not broadcast frames */
u32 tbca; /* Total number of frames transmitted
successfully that had destination address
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
octets in bad frames. Must be implemented in
HW because it includes octets in frames that
never even reach the UCC */
u32 rmca; /* Total number of frames that were received
successfully with the group address bit set
that are not broadcast frames */
u32 rbca; /* Total number of frames received successfully
that had destination address equal to the
broadcast address */
u32 scar; /* Statistics carry register */
u32 scam; /* Statistics caryy mask register */
u8 res5[0x200 - 0x1c4];
} __packed;
/* UCC GETH TEMODR Register */
#define TEMODER_TX_RMON_STATISTICS_ENABLE 0x0100 /* enable Tx statistics
*/
#define TEMODER_SCHEDULER_ENABLE 0x2000 /* enable scheduler */
#define TEMODER_IP_CHECKSUM_GENERATE 0x0400 /* generate IPv4
checksums */
#define TEMODER_PERFORMANCE_OPTIMIZATION_MODE1 0x0200 /* enable performance
optimization
enhancement (mode1) */
#define TEMODER_RMON_STATISTICS 0x0100 /* enable tx statistics
*/
#define TEMODER_NUM_OF_QUEUES_SHIFT (15-15) /* Number of queues <<
shift */
/* UCC GETH TEMODR Register */
#define REMODER_RX_RMON_STATISTICS_ENABLE 0x00001000 /* enable Rx
statistics */
#define REMODER_RX_EXTENDED_FEATURES 0x80000000 /* enable
extended
features */
#define REMODER_VLAN_OPERATION_TAGGED_SHIFT (31-9 ) /* vlan operation
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/list.h`, `linux/phylink.h`, `linux/if_ether.h`, `soc/fsl/qe/immap_qe.h`, `soc/fsl/qe/qe.h`, `soc/fsl/qe/ucc.h`, `soc/fsl/qe/ucc_fast.h`.
- Detected declarations: `struct ucc_geth`, `struct ucc_geth_thread_data_tx`, `struct ucc_geth_thread_data_rx`, `struct ucc_geth_send_queue_qd`, `struct ucc_geth_send_queue_mem_region`, `struct ucc_geth_thread_tx_pram`, `struct ucc_geth_thread_rx_pram`, `struct ucc_geth_scheduler`, `struct ucc_geth_tx_firmware_statistics_pram`, `struct ucc_geth_rx_firmware_statistics_pram`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.