STRUCT IOSM_MMIO(9)
π STRUCT IOSM_MMIO π
okay so bestie, welcome to the struct iosm_mmio(9) page from the Kernel API Manual β this is the whole entire vibe of an MMIO region that's been mapped to the doorbell scratchpad. yes, doorbell scratchpad. iconic name, no notes. π
β¨ SYNOPSIS β¨
like, here's the whole struct, bestie, exactly as it lives:
struct iosm_mmio {
unsigned char __iomem *base;
struct device *dev;
struct mmio_offset offset;
phys_addr_t context_info_addr;
unsigned int chip_info_version;
unsigned int chip_info_size;
u32 mux_protocol;
u8 has_ul_flow_credit:1, has_slp_no_prot:1, has_mcr_support:1;
};
look at those bitfields at the end, living their best space-efficient life. we love a :1. π«Ά
πΈ MEMBERS πΈ
baseβ the base address of the MMIO region. this is the main character address, fr fr. πdevβ pointer to the device structure. gotta know which device we're talking to, obviously. πoffsetβ the start offset. where the story begins. β¨context_info_addrβ physical base address of the context info structure. physical, not virtual, don't get it twisted. πchip_info_versionβ version of the chip info structure. iykyk. π¦chip_info_sizeβ size of the chip info structure. yes it has a size, everything has a size. πmux_protocolβ the mux protocol. that's it, that's the whole description, slay for being concise. βhas_ul_flow_creditβ Ul flow credit support. it's a1-bit yes/no situation. πhas_slp_no_protβ device sleep no protocol support. also one bit, also doing its thing. πΈhas_mcr_supportβ usage of mcr support. one bit, one job, ate. π₯
π¦ SEE ALSO π¦
the kernel file lives at ./drivers/net/wwan/iosm/iosm_ipc_mmio.h, and honestly the friend group here is:
ipc_mmio_init(9)ipc_mmio_set_psi_addr_and_size(9)ipc_mmio_set_contex_info_addr(9)ipc_mmio_get_cp_version(9)ipc_mmio_get_rom_exit_code(9)ipc_mmio_get_exec_stage(9)ipc_mmio_get_ipc_state(9)ipc_mmio_copy_chip_info(9)ipc_mmio_config(9)ipc_mmio_update_cp_capability(9)
go read them, bestie, they're literally all part of the same saga. π
ngl, thecontexspelling inipc_mmio_set_contex_info_addr(9)is exactly how it's written up there β do not "fix" it, that's canon. π
okay that's the whole page, mwah π β brought to you by the source tree at ./drivers/net/wwan/iosm, dated October 2026, filed under struct iosm_mmio(9) in the Kernel API Manual. go forth and doorbell-scratchpad responsibly. π§π
π¦ 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