Lines Matching +full:fpga +full:- +full:region
1 In-kernel API for FPGA Programming
5 --------
7 The in-kernel API for FPGA programming is a combination of APIs from
8 FPGA manager, bridge, and regions. The actual function used to
9 trigger FPGA programming is fpga_region_program_fpga().
12 the FPGA manager and bridges. It will:
14 * lock the region's mutex
15 * lock the mutex of the region's FPGA manager
16 * build a list of FPGA bridges if a method has been specified to do so
18 * program the FPGA using info passed in :c:expr:`fpga_region->info`.
19 * re-enable the bridges
22 The struct fpga_image_info specifies what FPGA image to program. It is
26 How to program an FPGA using a region
27 -------------------------------------
29 When the FPGA region driver probed, it was given a pointer to an FPGA manager
30 driver so it knows which manager to use. The region also either has a list of
34 #include <linux/fpga/fpga-mgr.h>
35 #include <linux/fpga/fpga-region.h>
41 * First, alloc the struct with information about the FPGA image to
46 return -ENOMEM;
49 info->flags = FPGA_MGR_PARTIAL_RECONFIG;
52 * Indicate where the FPGA image is. This is pseudo-code; you're
57 info->sgt = [your scatter gather table]
61 info->buf = [your image buffer]
62 info->count = [image buffer size]
66 info->firmware_name = devm_kstrdup(dev, firmware_name,
71 /* Add info to region and do the programming */
72 region->info = info;
73 ret = fpga_region_program_fpga(region);
76 region->info = NULL;
82 /* Now enumerate whatever hardware has appeared in the FPGA. */
84 API for programming an FPGA
85 ---------------------------
87 * fpga_region_program_fpga() - Program an FPGA
88 * fpga_image_info() - Specifies what FPGA image to program
89 * fpga_image_info_alloc() - Allocate an FPGA image info struct
90 * fpga_image_info_free() - Free an FPGA image info struct
92 .. kernel-doc:: drivers/fpga/fpga-region.c
95 FPGA Manager flags
97 .. kernel-doc:: include/linux/fpga/fpga-mgr.h
98 :doc: FPGA Manager flags
100 .. kernel-doc:: include/linux/fpga/fpga-mgr.h
103 .. kernel-doc:: drivers/fpga/fpga-mgr.c
106 .. kernel-doc:: drivers/fpga/fpga-mgr.c