UNION IONIC_DEV_INFO_REGS(9)
π union ionic_dev_info_regs(9) β the device info register format (read-only) π
okay so bestie, welcome to the Kernel API Manual, and today's main character is union ionic_dev_info_regs β the device info register format. it's read-only babes, so don't even think about writing to it. we're looking, not touching. πβ¨
πΈ SYNOPSIS πΈ
union ionic_dev_info_regs {
#define IONIC_DEVINFO_FWVERS_BUFLEN 32;
#define IONIC_DEVINFO_SERIAL_BUFLEN 32;
struct {
u32 signature;
u8 version;
u8 asic_type;
u8 asic_rev;
#define IONIC_FW_STS_F_RUNNING 0x01;
#define IONIC_FW_STS_F_GENERATION 0xF0;
u8 fw_status;
u32 fw_heartbeat;
char fw_version[IONIC_DEVINFO_FWVERS_BUFLEN];
char serial_num[IONIC_DEVINFO_SERIAL_BUFLEN];
u8 rsvd_pad1024[948];
struct ionic_hwstamp_regs hwstamp;
};
u32 words[512];
};
like, look at her. she's a union, she's got defines living inside her, she's got a nested anonymous struct β iconic behavior honestly. π
π Members π
{unnamed_struct}β anonymous. no name, no problem. she simply exists. π«Άsignatureβ the signature value, and it's0x44455649which spells out'DEVI'. not me getting emotional over a hex constant spelling a word πversionβ the current version of info. keep up bestie.asic_typeβ the Asic type.asic_revβ the Asic revision.fw_statusβ the firmware status. and listen, it's doing two jobs at once: bit 0 is1 = fw running, and bits 4-7 are the 4 bit generation number, which changes on fw restart. so like, one byte, two whole personalities. πfw_heartbeatβ the firmware heartbeat counter. it's alive!! she's thriving!! πfw_versionβ the firmware version.serial_numβ the serial number. every device's little name tag π·οΈrsvd_pad1024β reserved byte(s). it's just... reserved. sitting there. 948 bytes of "don't perceive me" πhwstampβ the hardware current timestamp registers. clock it β°wordsβ word access to struct contents,u32 words[512]of pure versatility. slay.
π¦ SEE ALSO π¦
the whole friend group, fr fr. first up, the kernel file herself: ./drivers/net/ethernet/pensando/ionic/ionic_if.h β everyone below lives there, iykyk.
struct ionic_admin_cmd(9)struct ionic_admin_comp(9)struct ionic_nop_cmd(9)struct ionic_nop_comp(9)struct ionic_dev_init_cmd(9)struct ionic_dev_init_comp(9)struct ionic_dev_reset_cmd(9)struct ionic_dev_reset_comp(9)struct ionic_dev_identify_cmd(9)struct ionic_dev_identify_comp(9)union ionic_drv_identity(9)enum ionic_dev_capability(9)union ionic_dev_identity(9)struct ionic_lif_identify_cmd(9)struct ionic_lif_identify_comp(9)enum ionic_lif_capability(9)enum ionic_logical_qtype(9)enum ionic_q_feature(9)enum ionic_rxq_feature(9)enum ionic_txq_feature(9)enum ionic_hwstamp_bits(9)struct ionic_lif_logical_qtype(9)enum ionic_lif_state(9)union ionic_lif_config(9)enum ionic_lif_rdma_cap_stats(9)union ionic_lif_identity(9)struct ionic_lif_init_cmd(9)struct ionic_lif_init_comp(9)struct ionic_q_identify_cmd(9)struct ionic_q_identify_comp(9)union ionic_q_identity(9)struct ionic_q_init_cmd(9)struct ionic_q_init_comp(9)struct ionic_txq_desc(9)struct ionic_txq_sg_elem(9)struct ionic_txq_sg_desc(9)struct ionic_txq_comp(9)struct ionic_rxq_desc(9)struct ionic_rxq_sg_elem(9)struct ionic_rxq_sg_desc(9)struct ionic_rxq_comp(9)enum ionic_pkt_class(9)struct ionic_q_control_cmd(9)enum ionic_phy_type(9)enum ionic_xcvr_state(9)enum ionic_port_type(9)enum ionic_port_admin_state(9)enum ionic_port_oper_status(9)enum ionic_port_fec_type(9)enum ionic_port_pause_type(9)enum ionic_port_loopback_mode(9)struct ionic_xcvr_status(9)union ionic_port_config(9)struct ionic_port_status(9)struct ionic_port_identify_cmd(9)struct ionic_port_identify_comp(9)struct ionic_port_init_cmd(9)struct ionic_port_init_comp(9)struct ionic_port_reset_cmd(9)struct ionic_port_reset_comp(9)enum ionic_stats_ctl_cmd(9)enum ionic_txstamp_mode(9)enum ionic_port_attr(9)struct ionic_port_setattr_cmd(9)struct ionic_port_setattr_comp(9)struct ionic_port_getattr_cmd(9)struct ionic_port_getattr_comp(9)struct ionic_lif_status(9)struct ionic_lif_reset_cmd(9)enum ionic_dev_attr(9)struct ionic_dev_setattr_cmd(9)struct ionic_dev_setattr_comp(9)struct ionic_dev_getattr_cmd(9)struct ionic_dev_getattr_comp(9)enum ionic_lif_attr(9)struct ionic_lif_setattr_cmd(9)struct ionic_lif_setattr_comp(9)struct ionic_lif_getattr_cmd(9)struct ionic_lif_getattr_comp(9)struct ionic_lif_setphc_cmd(9)struct ionic_rx_mode_set_cmd(9)struct ionic_rx_filter_add_cmd(9)struct ionic_rx_filter_add_comp(9)struct ionic_rx_filter_del_cmd(9)enum ionic_vf_link_status(9)struct ionic_vf_setattr_cmd(9)struct ionic_vf_getattr_cmd(9)struct ionic_vf_ctrl_cmd(9)struct ionic_vf_ctrl_comp(9)struct ionic_discover_cmb_cmd(9)struct ionic_discover_cmb_comp(9)union ionic_cmb_region(9)union ionic_discover_cmb_identity(9)struct ionic_qos_identify_cmd(9)struct ionic_qos_identify_comp(9)enum ionic_qos_class_type(9)enum ionic_qos_sched_type(9)union ionic_qos_config(9)union ionic_qos_identity(9)struct ionic_qos_init_cmd(9)struct ionic_qos_reset_cmd(9)struct ionic_qos_clear_stats_cmd(9)struct ionic_fw_download_cmd(9)enum ionic_fw_control_oper(9)struct ionic_fw_control_cmd(9)struct ionic_fw_control_comp(9)struct ionic_rdma_reset_cmd(9)struct ionic_rdma_queue_cmd(9)struct ionic_notifyq_event(9)struct ionic_link_change_event(9)struct ionic_reset_event(9)struct ionic_heartbeat_event(9)struct ionic_log_event(9)struct ionic_xcvr_event(9)union ionic_port_identity(9)struct ionic_port_info(9)struct ionic_lif_info(9)struct ionic_hwstamp_regs(9)union ionic_dev_cmd_regs(9)union ionic_dev_regs(9)struct ionic_doorbell(9)
like yeah. that's the whole squad. no cap, every single one of them π
quick vibe check: this page lives at./drivers/net/ethernet/pensand...and it's dated October 2026, and the manual isunion ionic_dev_info_regs(9)β so yeah, go read the whole ionic friend group, they all ate and left no crumbs. β¨ππ§π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms