STRUCT IWL_SHARED_MEM_CFG_V2(9)
β¨ struct iwl_shared_mem_cfg_v2 β Shared memory configuration information β¨
okay bestie, so this is a page straight out of the Kernel API Manual (yes, the kernel has lore π
) and it's all about struct iwl_shared_mem_cfg_v2 β the shared memory configuration information. it's giving "where is everything and how big is it" energy, and honestly? iconic. let's get into it π«Ά
πΈ SYNOPSIS πΈ
like, here's the whole vibe. exact, verbatim, no cap:
struct iwl_shared_mem_cfg_v2 {
__le32 shared_mem_addr;
__le32 shared_mem_size;
__le32 sample_buff_addr;
__le32 sample_buff_size;
__le32 txfifo_addr;
__le32 txfifo_size[TX_FIFO_MAX_NUM_9000];
__le32 rxfifo_size[RX_FIFO_MAX_NUM];
__le32 page_buff_addr;
__le32 page_buff_size;
__le32 rxfifo_addr;
__le32 internal_txfifo_addr;
__le32 internal_txfifo_size[TX_FIFO_INTERNAL_MAX_NUM];
};
π Members π
okay so each field, one by one, no skipping, we're doing this properly π
shared_mem_addrβ the shared memory addr. heads up: on pre 8000 HW this is set to0x0, because MARBH isn't accessible. so it's a cute little zero, not a real address πshared_mem_sizeβ the shared memory size. straightforward, we love her β¨sample_buff_addrβ the internal sample (mon/adc) buff addr. again, pre 8000 HW sets this to0x0, since it's accessible only via DBGM RDAT. so like... zero again, but for a reason πsample_buff_sizeβ the internal sample buff size. matching size for the matching buff, periodt.txfifo_addrβ start addr of TXF0 (excluding the context table 0.5KB). and yep, pre 8000 HW sets it to0x0because it's not accessible. three for three on the zeros πtxfifo_sizeβ size of TXF0 ... TXF7. that's the whole lineup bestie, all eight π₯rxfifo_sizeβ the RXF1, RXF2 sizes. and sooooo important: if there is no RXF2, it'll have a value of0. not undefined, not a mystery β literally0. write that down πpage_buff_addrβ used by UMAC and performance debug (page miss analysis). when paging is not supported, this should be0. shoulder be zero is the vibe πpage_buff_sizeβ size ofpage_buff_addr. yes it's literally named after its sister field, they're a matching set πrxfifo_addrβ Start address of rxFifo. capital S, keeping it exactly as given πΈinternal_txfifo_addrβ start address of internalFifo. lowercase s this time. we don't question the casing, we just respect it π§internal_txfifo_sizeβ internal fifos' size. plural fifos, plural sizes, all together now π
π NOTE π
on firmware that don't have IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG set, the last 3 members don't exist.
okay this is the one to actually remember bestie. no cap: if that capability flag isn't there, those last three members are just not a thing on your firmware. so don't go reading them and acting surprised when the vibe check fails ππ
the last three, for the record, are rxfifo_addr, internal_txfifo_addr, and internal_txfifo_size. guard your access, please π«Ά
π¦ SEE ALSO π¦
the whole extended friend group, all of them, in order, exactly as listed β go say hi π
- Kernel file
./drivers/net/wireless/intel/iwlwifi/fw/api/debug.h enum iwl_debug_cmds(9)struct iwl_error_resp(9)struct iwl_shared_mem_lmac_cfg(9)struct iwl_shared_mem_cfg(9)struct iwl_mfuart_load_notif_v1(9)struct iwl_mfuart_load_notif(9)struct iwl_mfu_assert_dump_notif(9)enum iwl_marker_id(9)struct iwl_marker(9)struct iwl_marker_rsp(9)struct iwl_dbg_mem_access_cmd(9)struct iwl_dbg_mem_access_rsp(9)struct iwl_dbg_suspend_resume_cmd(9)struct iwl_buf_alloc_frag(9)struct iwl_buf_alloc_cmd(9)struct iwl_dram_info(9)struct iwl_dbgc1_info(9)struct iwl_dbg_host_event_cfg_cmd(9)struct iwl_dbg_dump_complete_cmd(9)struct iwl_tas_status_per_mac(9)struct iwl_tas_status_resp(9)enum iwl_tas_dyna_status(9)enum iwl_tas_statically_disabled_reason(9)enum iwl_fw_dbg_config_cmd_type(9)struct iwl_fw_dbg_config_cmd(9)
like, that's a whole group chat right there and every single one of them made the list π
π sign-off π
and that's the page!! sourced from ./drivers/net/wireless/intel/i... (yes it's truncated, that's how it's printed, she's mysterious like that π
), dated October 2026, living under the Kernel API Manual. go forth and configure your shared memory, bestie β you're gonna slay πβ¨π¦
π¦ 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