cdx_mcdi_write_msi(9)
π cdx_mcdi_write_msi(9)
okay bestie, welcome to the Kernel API Manual section for cdx_mcdi_write_msi β yes this is a real kernel function and yes it's giving main character energy β¨
πΈ NAME πΈ
cdx_mcdi_write_msi β write the MSI configuration for a CDX device π
Like, it literally writes MSI config. For a CDX device. That's the whole vibe. No cap.
β¨ SYNOPSIS β¨
int cdx_mcdi_write_msi (struct cdx_mcdi *cdx , u8 bus_num , u8 dev_num ,
u32 msi_vector , u64 msi_address , u32 msi_data );
int, bestie! it returns an int! and it takes six whole arguments, she's high maintenance but she slays π
π¦ ARGUMENTS π¦
cdxβ pointer to the MCDI interface. this is the whole handshake, the intro, the "hey girl hey" π«Άbus_numβ bus number. which bus we're on, periodt.dev_numβ device number. which device on that bus. iconic duo honestly.msi_vectorβ device-relative MSI vector number. π¨ must be< MSI_COUNTas reported for the device, so likeβ¦ check the count first, don't just yolo a number in there πmsi_addressβ the MSI address the hardware is gonna use. typically, on ARM systems this address gets translated by the IOMMU (if it's enabled), and it is the responsibility of the entity managing the IOMMU (APU kernel) to supply the correct IOVA here. so like, the IOVA is not our problem, it's the APU kernel's problem, iykyk πmsi_dataβ the MSI data the hardware is gonna use. on versal-net, only the lower 16-bits are used β the remaining bits are ignored and should be set to zero π so if you're on versal-net, high bits = set them to0, fr fr
π₯ RETURN π₯
0on success π<0on failure π
that's it. that's the return. binary queen.
π SEE ALSO π
- Kernel file
./drivers/cdx/controller/mcdi_functions.h cdx_mcdi_get_num_buses(9)cdx_mcdi_get_num_devs(9)cdx_mcdi_get_dev_config(9)cdx_mcdi_bus_enable(9)cdx_mcdi_bus_disable(9)cdx_mcdi_reset_device(9)cdx_mcdi_bus_master_enable(9)cdx_mcdi_msi_enable(9)
the whole friend group, honestly π§ the bus girlies, the dev girlies, the enable/disable girlies, the reset girlie, and cdx_mcdi_msi_enable(9) who is lowkey the closest cousin to this one π
ngl the one thing to actually remember:msi_vectorhas to be< MSI_COUNTfor the device, and on versal-net the top bits ofmsi_datago in as zero. that's the vibe check. don't fail it π
and that's a wrap on cdx_mcdi_write_msi(9) π this came out of ./drivers/cdx/controller, dated October 2026, and bestieβ¦ you ate that read. 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