STRUCT FPGA_IMAGE_INFO(9)
π struct fpga_image_info(9) β like, the whole Kernel API Manual, but make it make sense
okay bestie, buckle up π this is a page from the Kernel API Manual and it's all about struct fpga_image_info β the little struct that holds every single thing anyone needs to know about one (1) FPGA image. it's giving "ID card for your bitstream" and honestly? iconic.
β¨ NAME β¨
struct fpga_image_info β information specific to an FPGA image π¦
like, all the info. every field. this is the whole personality of your FPGA image in one struct.
πΈ SYNOPSIS πΈ
here's the struct in all its glory, copied exactly so you can trust me:
struct fpga_image_info {
u32 flags;
u32 enable_timeout_us;
u32 disable_timeout_us;
u32 config_complete_timeout_us;
char *firmware_name;
struct sg_table *sgt;
const char *buf;
size_t count;
size_t header_size;
size_t data_size;
int region_id;
struct device *dev;
#ifdef CONFIG_OF;
struct device_node *overlay;
#endif;
};
no cap, that #ifdef CONFIG_OF; is literally how it's written. don't come for me, I'm just the messenger π
π Members π
okay so each of these is a field, and here's what each one is actually doing with its life:
flagsβ boolean flags, as defined above. yes, "above" β that's what it says. little booleans doing little boolean things β¨enable_timeout_usβ the maximum time to enable traffic through the bridge, in microseconds (uSec). that's your "pls turn on bestie" deadline πΈdisable_timeout_usβ the maximum time to disable traffic through the bridge, in microseconds (uSec). same vibe, but for turning it off π¦config_complete_timeout_usβ the maximum time for the FPGA to switch to operating status, and it happens in thewrite_completeop. so this is the "are we there yet" timer, fr fr β³firmware_nameβ the name of the FPGA image firmware file π your file's @ handle, basicallysgtβ a scatter/gather table containing the FPGA image. fancy and fragmented, we love her πbufβ a contiguous buffer containing the FPGA image. the non-fragmented sister π«Άcountβ the size ofbuf. literally just how big it is πheader_sizeβ the size of the image header. yes, there's a header, it's got a size, moving on π§data_sizeβ the size of the image data to be sent to the device. if you don't specify it, the whole image gets used. and heads up: the header may be skipped in either case π that's a real caveat, not me being dramaticregion_idβ the id of the target region. which region? this region. you're welcome πdevβ the device that owns this. every struct needs a parent, periodt πoverlayβ the Device Tree overlay. only exists whenCONFIG_OFis defined, so don't come looking for her otherwise π
π₯ SEE ALSO π₯
go read these next, bestie, they're all in the kernel file ./include/linux/fpga/fpga-mgr.h and they're all part of the same friend group:
enum fpga_mgr_states(9)FPGA Manager flags(9)struct fpga_compat_id(9)struct fpga_manager_info(9)struct fpga_manager_ops(9)struct fpga_manager(9)
main character energy all around, honestly π
β lowkey reminder: this page lives at ./include/linux/fpga in the source tree, so if you need the real tea, that's where it is π
and that's the whole page!! tysm for reading, ily, go compile something π this was struct fpga_image_info(9) from October 2026, sourced from ./include/linux/fpga β mwah πβ¨
π¦ 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