drivers/net/ethernet/freescale/fman/fman_dtsec.c
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/freescale/fman/fman_dtsec.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/freescale/fman/fman_dtsec.c- Extension
.c- Size
- 43384 bytes
- Lines
- 1503
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
fman_dtsec.hfman.hmac.hlinux/slab.hlinux/bitrev.hlinux/io.hlinux/delay.hlinux/phy.hlinux/crc32.hlinux/of_mdio.hlinux/mii.hlinux/netdevice.h
Detected Declarations
struct dtsec_regsstruct dtsec_cfgstruct fman_macfunction set_dfltsfunction set_mac_addressfunction initfunction set_bucketfunction check_init_parametersfunction get_exception_flagfunction dtsec_get_max_frame_lengthfunction dtsec_isrfunction dtsec_1588_isrfunction free_init_resourcesfunction dtsec_pcs_get_statefunction dtsec_pcs_configfunction dtsec_pcs_an_restartfunction graceful_startfunction graceful_stopfunction dtsec_enablefunction dtsec_disablefunction dtsec_accept_rx_pause_framesfunction dtsec_mac_configfunction dtsec_link_upfunction dtsec_link_downfunction dtsec_modify_mac_addressfunction dtsec_add_hash_mac_addressfunction dtsec_set_allmultifunction dtsec_set_tstampfunction dtsec_del_hash_mac_addressfunction list_for_eachfunction dtsec_set_promiscuousfunction dtsec_set_exceptionfunction dtsec_initfunction dtsec_freefunction dtsec_initialization
Annotated Snippet
struct dtsec_regs {
/* dTSEC General Control and Status Registers */
u32 tsec_id; /* 0x000 ETSEC_ID register */
u32 tsec_id2; /* 0x004 ETSEC_ID2 register */
u32 ievent; /* 0x008 Interrupt event register */
u32 imask; /* 0x00C Interrupt mask register */
u32 reserved0010[1];
u32 ecntrl; /* 0x014 E control register */
u32 ptv; /* 0x018 Pause time value register */
u32 tbipa; /* 0x01C TBI PHY address register */
u32 tmr_ctrl; /* 0x020 Time-stamp Control register */
u32 tmr_pevent; /* 0x024 Time-stamp event register */
u32 tmr_pemask; /* 0x028 Timer event mask register */
u32 reserved002c[5];
u32 tctrl; /* 0x040 Transmit control register */
u32 reserved0044[3];
u32 rctrl; /* 0x050 Receive control register */
u32 reserved0054[11];
u32 igaddr[8]; /* 0x080-0x09C Individual/group address */
u32 gaddr[8]; /* 0x0A0-0x0BC Group address registers 0-7 */
u32 reserved00c0[16];
u32 maccfg1; /* 0x100 MAC configuration #1 */
u32 maccfg2; /* 0x104 MAC configuration #2 */
u32 ipgifg; /* 0x108 IPG/IFG */
u32 hafdup; /* 0x10C Half-duplex */
u32 maxfrm; /* 0x110 Maximum frame */
u32 reserved0114[10];
u32 ifstat; /* 0x13C Interface status */
u32 macstnaddr1; /* 0x140 Station Address,part 1 */
u32 macstnaddr2; /* 0x144 Station Address,part 2 */
struct {
u32 exact_match1; /* octets 1-4 */
u32 exact_match2; /* octets 5-6 */
} macaddr[15]; /* 0x148-0x1BC mac exact match addresses 1-15 */
u32 reserved01c0[16];
u32 tr64; /* 0x200 Tx and Rx 64 byte frame counter */
u32 tr127; /* 0x204 Tx and Rx 65 to 127 byte frame counter */
u32 tr255; /* 0x208 Tx and Rx 128 to 255 byte frame counter */
u32 tr511; /* 0x20C Tx and Rx 256 to 511 byte frame counter */
u32 tr1k; /* 0x210 Tx and Rx 512 to 1023 byte frame counter */
u32 trmax; /* 0x214 Tx and Rx 1024 to 1518 byte frame counter */
u32 trmgv;
/* 0x218 Tx and Rx 1519 to 1522 byte good VLAN frame count */
u32 rbyt; /* 0x21C receive byte counter */
u32 rpkt; /* 0x220 receive packet counter */
u32 rfcs; /* 0x224 receive FCS error counter */
u32 rmca; /* 0x228 RMCA Rx multicast packet counter */
u32 rbca; /* 0x22C Rx broadcast packet counter */
u32 rxcf; /* 0x230 Rx control frame packet counter */
u32 rxpf; /* 0x234 Rx pause frame packet counter */
u32 rxuo; /* 0x238 Rx unknown OP code counter */
u32 raln; /* 0x23C Rx alignment error counter */
u32 rflr; /* 0x240 Rx frame length error counter */
u32 rcde; /* 0x244 Rx code error counter */
u32 rcse; /* 0x248 Rx carrier sense error counter */
u32 rund; /* 0x24C Rx undersize packet counter */
u32 rovr; /* 0x250 Rx oversize packet counter */
u32 rfrg; /* 0x254 Rx fragments counter */
u32 rjbr; /* 0x258 Rx jabber counter */
u32 rdrp; /* 0x25C Rx drop */
u32 tbyt; /* 0x260 Tx byte counter */
u32 tpkt; /* 0x264 Tx packet counter */
u32 tmca; /* 0x268 Tx multicast packet counter */
u32 tbca; /* 0x26C Tx broadcast packet counter */
u32 txpf; /* 0x270 Tx pause control frame counter */
u32 tdfr; /* 0x274 Tx deferral packet counter */
u32 tedf; /* 0x278 Tx excessive deferral packet counter */
u32 tscl; /* 0x27C Tx single collision packet counter */
u32 tmcl; /* 0x280 Tx multiple collision packet counter */
u32 tlcl; /* 0x284 Tx late collision packet counter */
u32 txcl; /* 0x288 Tx excessive collision packet counter */
u32 tncl; /* 0x28C Tx total collision counter */
u32 reserved0290[1];
u32 tdrp; /* 0x294 Tx drop frame counter */
u32 tjbr; /* 0x298 Tx jabber frame counter */
u32 tfcs; /* 0x29C Tx FCS error counter */
u32 txcf; /* 0x2A0 Tx control frame counter */
u32 tovr; /* 0x2A4 Tx oversize frame counter */
u32 tund; /* 0x2A8 Tx undersize frame counter */
u32 tfrg; /* 0x2AC Tx fragments frame counter */
u32 car1; /* 0x2B0 carry register one register* */
u32 car2; /* 0x2B4 carry register two register* */
u32 cam1; /* 0x2B8 carry register one mask register */
u32 cam2; /* 0x2BC carry register two mask register */
u32 reserved02c0[848];
};
/* struct dtsec_cfg - dTSEC configuration
* Transmit half-duplex flow control, under software control for 10/100-Mbps
* half-duplex media. If set, back pressure is applied to media by raising
Annotation
- Immediate include surface: `fman_dtsec.h`, `fman.h`, `mac.h`, `linux/slab.h`, `linux/bitrev.h`, `linux/io.h`, `linux/delay.h`, `linux/phy.h`.
- Detected declarations: `struct dtsec_regs`, `struct dtsec_cfg`, `struct fman_mac`, `function set_dflts`, `function set_mac_address`, `function init`, `function set_bucket`, `function check_init_parameters`, `function get_exception_flag`, `function dtsec_get_max_frame_length`.
- 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.