drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h- Extension
.h- Size
- 36600 bytes
- Lines
- 1039
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/net/intel/libie/adminq.h
Detected Declarations
struct ixgbe_aci_cmd_get_exp_errstruct ixgbe_aci_cmd_disable_rxenstruct ixgbe_aci_cmd_get_phy_capsstruct ixgbe_aci_cmd_get_phy_caps_datastruct ixgbe_aci_cmd_set_phy_cfgstruct ixgbe_aci_cmd_set_phy_cfg_datastruct ixgbe_aci_cmd_restart_anstruct ixgbe_aci_cmd_get_link_statusstruct ixgbe_aci_cmd_get_link_status_datastruct ixgbe_aci_cmd_set_event_maskstruct ixgbe_aci_cmd_link_topo_paramsstruct ixgbe_aci_cmd_link_topo_addrstruct ixgbe_aci_cmd_get_link_topostruct ixgbe_aci_cmd_get_link_topo_pinstruct ixgbe_aci_cmd_set_port_id_ledstruct ixgbe_aci_cmd_sff_eepromstruct ixgbe_aci_cmd_nvmstruct ixgbe_aci_cmd_nvm_checksumstruct ixgbe_aci_cmd_nvm_pkg_datastruct ixgbe_aci_cmd_nvm_pass_comp_tblstruct ixgbe_aci_cmd_nvm_comp_tblstruct ixgbe_link_statusstruct ixgbe_hw_capsstruct ixgbe_orom_civd_infostruct ixgbe_hw_func_capsstruct ixgbe_hw_dev_capsstruct ixgbe_aci_eventstruct ixgbe_aci_infostruct ixgbe_orom_infostruct ixgbe_nvm_infostruct ixgbe_netlist_infostruct ixgbe_bank_infostruct ixgbe_flash_infoenum ixgbe_aci_opcenum ixgbe_bank_selectenum ixgbe_flash_bank
Annotated Snippet
struct ixgbe_aci_cmd_get_exp_err {
__le32 reason;
#define IXGBE_ACI_EXPANDED_ERROR_NOT_PROVIDED 0xFFFFFFFF
__le32 identifier;
u8 rsvd[8];
};
/* FW update timeout definitions are in milliseconds */
#define IXGBE_NVM_TIMEOUT 180000
/* Disable RXEN (direct 0x000C) */
struct ixgbe_aci_cmd_disable_rxen {
u8 lport_num;
u8 reserved[15];
};
/* Get PHY capabilities (indirect 0x0600) */
struct ixgbe_aci_cmd_get_phy_caps {
u8 lport_num;
u8 reserved;
__le16 param0;
/* 18.0 - Report qualified modules */
#define IXGBE_ACI_GET_PHY_RQM BIT(0)
/* 18.1 - 18.3 : Report mode
* 000b - Report topology capabilities, without media
* 001b - Report topology capabilities, with media
* 010b - Report Active configuration
* 011b - Report PHY Type and FEC mode capabilities
* 100b - Report Default capabilities
*/
#define IXGBE_ACI_REPORT_MODE_M GENMASK(3, 1)
#define IXGBE_ACI_REPORT_TOPO_CAP_NO_MEDIA 0
#define IXGBE_ACI_REPORT_TOPO_CAP_MEDIA BIT(1)
#define IXGBE_ACI_REPORT_ACTIVE_CFG BIT(2)
#define IXGBE_ACI_REPORT_DFLT_CFG BIT(3)
__le32 reserved1;
__le32 addr_high;
__le32 addr_low;
};
/* This is #define of PHY type (Extended):
* The first set of defines is for phy_type_low.
*/
#define IXGBE_PHY_TYPE_LOW_100BASE_TX BIT_ULL(0)
#define IXGBE_PHY_TYPE_LOW_100M_SGMII BIT_ULL(1)
#define IXGBE_PHY_TYPE_LOW_1000BASE_T BIT_ULL(2)
#define IXGBE_PHY_TYPE_LOW_1000BASE_SX BIT_ULL(3)
#define IXGBE_PHY_TYPE_LOW_1000BASE_LX BIT_ULL(4)
#define IXGBE_PHY_TYPE_LOW_1000BASE_KX BIT_ULL(5)
#define IXGBE_PHY_TYPE_LOW_1G_SGMII BIT_ULL(6)
#define IXGBE_PHY_TYPE_LOW_2500BASE_T BIT_ULL(7)
#define IXGBE_PHY_TYPE_LOW_2500BASE_X BIT_ULL(8)
#define IXGBE_PHY_TYPE_LOW_2500BASE_KX BIT_ULL(9)
#define IXGBE_PHY_TYPE_LOW_5GBASE_T BIT_ULL(10)
#define IXGBE_PHY_TYPE_LOW_5GBASE_KR BIT_ULL(11)
#define IXGBE_PHY_TYPE_LOW_10GBASE_T BIT_ULL(12)
#define IXGBE_PHY_TYPE_LOW_10G_SFI_DA BIT_ULL(13)
#define IXGBE_PHY_TYPE_LOW_10GBASE_SR BIT_ULL(14)
#define IXGBE_PHY_TYPE_LOW_10GBASE_LR BIT_ULL(15)
#define IXGBE_PHY_TYPE_LOW_10GBASE_KR_CR1 BIT_ULL(16)
#define IXGBE_PHY_TYPE_LOW_10G_SFI_AOC_ACC BIT_ULL(17)
#define IXGBE_PHY_TYPE_LOW_10G_SFI_C2C BIT_ULL(18)
#define IXGBE_PHY_TYPE_LOW_25GBASE_T BIT_ULL(19)
#define IXGBE_PHY_TYPE_LOW_25GBASE_CR BIT_ULL(20)
#define IXGBE_PHY_TYPE_LOW_25GBASE_CR_S BIT_ULL(21)
#define IXGBE_PHY_TYPE_LOW_25GBASE_CR1 BIT_ULL(22)
#define IXGBE_PHY_TYPE_LOW_25GBASE_SR BIT_ULL(23)
#define IXGBE_PHY_TYPE_LOW_25GBASE_LR BIT_ULL(24)
#define IXGBE_PHY_TYPE_LOW_25GBASE_KR BIT_ULL(25)
#define IXGBE_PHY_TYPE_LOW_25GBASE_KR_S BIT_ULL(26)
#define IXGBE_PHY_TYPE_LOW_25GBASE_KR1 BIT_ULL(27)
#define IXGBE_PHY_TYPE_LOW_25G_AUI_AOC_ACC BIT_ULL(28)
#define IXGBE_PHY_TYPE_LOW_25G_AUI_C2C BIT_ULL(29)
#define IXGBE_PHY_TYPE_LOW_MAX_INDEX 29
/* The second set of defines is for phy_type_high. */
#define IXGBE_PHY_TYPE_HIGH_10BASE_T BIT_ULL(1)
#define IXGBE_PHY_TYPE_HIGH_10M_SGMII BIT_ULL(2)
#define IXGBE_PHY_TYPE_HIGH_2500M_SGMII BIT_ULL(56)
#define IXGBE_PHY_TYPE_HIGH_100M_USXGMII BIT_ULL(57)
#define IXGBE_PHY_TYPE_HIGH_1G_USXGMII BIT_ULL(58)
#define IXGBE_PHY_TYPE_HIGH_2500M_USXGMII BIT_ULL(59)
#define IXGBE_PHY_TYPE_HIGH_5G_USXGMII BIT_ULL(60)
#define IXGBE_PHY_TYPE_HIGH_10G_USXGMII BIT_ULL(61)
#define IXGBE_PHY_TYPE_HIGH_MAX_INDEX 61
struct ixgbe_aci_cmd_get_phy_caps_data {
__le64 phy_type_low; /* Use values from IXGBE_PHY_TYPE_LOW_* */
__le64 phy_type_high; /* Use values from IXGBE_PHY_TYPE_HIGH_* */
u8 caps;
#define IXGBE_ACI_PHY_EN_TX_LINK_PAUSE BIT(0)
Annotation
- Immediate include surface: `linux/net/intel/libie/adminq.h`.
- Detected declarations: `struct ixgbe_aci_cmd_get_exp_err`, `struct ixgbe_aci_cmd_disable_rxen`, `struct ixgbe_aci_cmd_get_phy_caps`, `struct ixgbe_aci_cmd_get_phy_caps_data`, `struct ixgbe_aci_cmd_set_phy_cfg`, `struct ixgbe_aci_cmd_set_phy_cfg_data`, `struct ixgbe_aci_cmd_restart_an`, `struct ixgbe_aci_cmd_get_link_status`, `struct ixgbe_aci_cmd_get_link_status_data`, `struct ixgbe_aci_cmd_set_event_mask`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.