Home
last modified time | relevance | path

Searched refs:firmware (Results 1 – 25 of 1258) sorted by relevance

12345678910>>...51

/Linux-v5.4/drivers/gpu/drm/tegra/
Dfalcon.c59 const struct firmware *firmware) in falcon_copy_firmware_image() argument
61 u32 *firmware_vaddr = falcon->firmware.vaddr; in falcon_copy_firmware_image()
67 for (i = 0; i < firmware->size / sizeof(u32); i++) in falcon_copy_firmware_image()
68 firmware_vaddr[i] = le32_to_cpu(((u32 *)firmware->data)[i]); in falcon_copy_firmware_image()
72 falcon->firmware.size, DMA_TO_DEVICE); in falcon_copy_firmware_image()
79 falcon->firmware.size, DMA_TO_DEVICE); in falcon_copy_firmware_image()
80 dma_unmap_single(falcon->dev, daddr, falcon->firmware.size, in falcon_copy_firmware_image()
86 struct falcon_fw_bin_header_v1 *bin = (void *)falcon->firmware.vaddr; in falcon_parse_firmware_image()
102 if (bin->size > falcon->firmware.size) { in falcon_parse_firmware_image()
107 os = falcon->firmware.vaddr + bin->os_header_offset; in falcon_parse_firmware_image()
[all …]
/Linux-v5.4/Documentation/driver-api/firmware/
Dfirmware_cache.rst5 When Linux resumes from suspend some device drivers require firmware lookups to
7 firmware lookups are not possible, during this short period of time firmware
9 the root filesystem for firmware delays user experience with device
10 functionality. In order to support these requirements the firmware
11 infrastructure implements a firmware cache for device drivers for most API
14 The firmware cache makes using certain firmware API calls safe during a device
16 the firmware by themselves for dealing with firmware loss during system resume.
18 The firmware cache works by requesting for firmware prior to suspend and
19 caching it in memory. Upon resume device drivers using the firmware API will
20 have access to the firmware immediately, without having to wait for the root
[all …]
Drequest_firmware.rst5 You would typically load firmware and then load it into your device somehow.
6 The typical firmware work flow is reflected below::
12 Synchronous firmware requests
15 Synchronous firmware requests will wait until the firmware is found or until
38 Asynchronous firmware requests
41 Asynchronous firmware requests allow driver code to not have to wait
42 until the firmware or an error is returned. Function callbacks are
43 provided so that when the firmware or an error is found the driver is
55 Some devices have an optimization in place to enable the firmware to be
57 author must ensure the firmware is still available on resume from suspend,
[all …]
Dbuilt-in-fw.rst2 Built-in firmware
5 Firmware can be built-in to the kernel, this means building the firmware
6 into vmlinux directly, to enable avoiding having to look for firmware from
7 the filesystem. Instead, firmware can be looked for inside the kernel
8 directly. You can enable built-in firmware using the kernel configuration
14 There are a few reasons why you might want to consider building your firmware
19 want to stuff the firmware into the boot initramfs.
22 able to make use of built-in firmware:
24 * Legalese - firmware is non-GPL compatible
25 * Some firmware may be optional
[all …]
Dfallback-mechanisms.rst6 filesystem lookup on the root filesystem or when the firmware simply cannot be
8 configuration options related to supporting the firmware fallback mechanism are:
10 * CONFIG_FW_LOADER_USER_HELPER: enables building the firmware fallback
15 enable the kobject uevent fallback mechanism on all firmware API calls
21 manually load the firmware. Read below for more details.
31 Justifying the firmware fallback mechanism
40 * Races upon resume from suspend. This is resolved by the firmware cache, but
41 the firmware cache is only supported if you use uevents, and its not
46 * The firmware provides very unique device specific data tailored for
67 In order to help device drivers upload firmware using a fallback mechanism
[all …]
Dlookup-order.rst5 Different functionality is available to enable firmware to be found.
6 Below is chronological order of how firmware will be looked for once
7 a driver issues a firmware API call.
9 * The ''Built-in firmware'' is checked first, if the firmware is present we
11 * The ''Firmware cache'' is looked at next. If the firmware is found we
15 * If no firmware has been found and the fallback mechanism was enabled
17 is issued or the custom firmware loading is relied upon for firmware
/Linux-v5.4/drivers/base/firmware_loader/
DKconfig8 This enables the firmware loading facility in the kernel. The kernel
9 will first look for built-in firmware, if it has any. Next, it will
10 look for the requested firmware in a series of filesystem paths:
13 o /lib/firmware/updates/UTS_RELEASE
14 o /lib/firmware/updates
15 o /lib/firmware/UTS_RELEASE
16 o /lib/firmware
20 need firmware.
25 enable built-in firmware (CONFIG_EXTRA_FIRMWARE).
33 string "Build named firmware blobs into the kernel binary"
[all …]
/Linux-v5.4/sound/pci/asihpi/
Dhpidspcd.c18 const struct firmware *firmware; member
26 const struct firmware *firmware; in hpi_dsp_code_open() local
35 err = request_firmware(&firmware, fw_name, &dev->dev); in hpi_dsp_code_open()
37 if (err || !firmware) { in hpi_dsp_code_open()
42 if (firmware->size < sizeof(header)) { in hpi_dsp_code_open()
46 memcpy(&header, firmware->data, sizeof(header)); in hpi_dsp_code_open()
50 || (header.size != firmware->size)) { in hpi_dsp_code_open()
53 header.size, firmware->size); in hpi_dsp_code_open()
79 dsp_code->pvt->firmware = firmware; in hpi_dsp_code_open()
86 release_firmware(firmware); in hpi_dsp_code_open()
[all …]
/Linux-v5.4/Documentation/networking/device_drivers/netronome/
Dnfp.rst27 The NFP4000 and NFP6000 devices require application specific firmware
28 to function. Application firmware can be located either on the host file system
29 or in the device flash (if supported by management firmware).
32 config etc. They should be placed in `/lib/firmware/netronome` directory to
33 load firmware from the host file system.
36 `linux-firmware.git` repository.
41 Recent versions of management firmware supports loading application
42 firmware from flash when the host driver gets probed. The firmware loading
45 Devlink or ethtool can be used to update the application firmware on the device
47 command. Users need to take care to write the correct firmware image for the
[all …]
/Linux-v5.4/Documentation/ABI/testing/
Dsysfs-firmware-efi-esrt1 What: /sys/firmware/efi/esrt/
5 (ESRT), a catalog of firmware for which can be updated with
10 What: /sys/firmware/efi/esrt/fw_resource_count
15 What: /sys/firmware/efi/esrt/fw_resource_count_max
20 really only useful to the system firmware itself.
22 What: /sys/firmware/efi/esrt/fw_resource_version
25 Description: The version of the ESRT structure provided by the firmware.
27 What: /sys/firmware/efi/esrt/entries/entry$N/
32 example: /sys/firmware/efi/esrt/entries/entry0/
34 What: /sys/firmware/efi/esrt/entries/entry$N/fw_type
[all …]
Dsysfs-firmware-memmap1 What: /sys/firmware/memmap/
5 On all platforms, the firmware provides a memory map which the
10 However, on most architectures that firmware-provided memory
16 kexec needs the raw firmware-provided memory map to setup the
19 that reason, /sys/firmware/memmap is an interface that provides
22 The structure is as follows: Under /sys/firmware/memmap there
25 /sys/firmware/memmap/0
26 /sys/firmware/memmap/1
27 /sys/firmware/memmap/2
28 /sys/firmware/memmap/3
[all …]
Dsysfs-firmware-gsmi1 What: /sys/firmware/gsmi
5 Some servers used internally at Google have firmware
13 these firmware callbacks. Currently, this functionality
19 /sys/firmware/gsmi/vars:
22 underlying implementation as /sys/firmware/efi/vars.
23 See Documentation/ABI/*/sysfs-firmware-efi-vars
27 /sys/firmware/gsmi/append_to_eventlog - write-only:
30 the firmware to be timestamped and appended to
32 interpreted by the firmware and may change from
36 firmware call.
[all …]
/Linux-v5.4/drivers/gpu/drm/i915/gvt/
Dfirmware.c83 void *firmware; in expose_firmware_sysfs() local
89 firmware = vzalloc(size); in expose_firmware_sysfs()
90 if (!firmware) in expose_firmware_sysfs()
93 h = firmware; in expose_firmware_sysfs()
102 p = firmware + h->cfg_space_offset; in expose_firmware_sysfs()
107 memcpy(gvt->firmware.cfg_space, p, info->cfg_space_size); in expose_firmware_sysfs()
109 p = firmware + h->mmio_offset; in expose_firmware_sysfs()
114 memcpy(gvt->firmware.mmio, p, info->mmio_size); in expose_firmware_sysfs()
117 h->crc32 = crc32_le(0, firmware + crc32_start, size - crc32_start); in expose_firmware_sysfs()
120 firmware_attr.private = firmware; in expose_firmware_sysfs()
[all …]
/Linux-v5.4/include/linux/
Dfirmware.h12 struct firmware { struct
43 int request_firmware(const struct firmware **fw, const char *name,
45 int firmware_request_nowarn(const struct firmware **fw, const char *name,
50 void (*cont)(const struct firmware *fw, void *context));
51 int request_firmware_direct(const struct firmware **fw, const char *name,
53 int request_firmware_into_buf(const struct firmware **firmware_p,
56 void release_firmware(const struct firmware *fw);
58 static inline int request_firmware(const struct firmware **fw, in request_firmware()
65 static inline int firmware_request_nowarn(const struct firmware **fw, in firmware_request_nowarn()
75 void (*cont)(const struct firmware *fw, void *context)) in request_firmware_nowait()
[all …]
/Linux-v5.4/drivers/bluetooth/
Dbcm203x.c155 const struct firmware *firmware; in bcm203x_probe() local
176 if (request_firmware(&firmware, "BCM2033-MD.hex", &udev->dev) < 0) { in bcm203x_probe()
182 BT_DBG("minidrv data %p size %zu", firmware->data, firmware->size); in bcm203x_probe()
184 size = max_t(uint, firmware->size, 4096); in bcm203x_probe()
189 release_firmware(firmware); in bcm203x_probe()
194 memcpy(data->buffer, firmware->data, firmware->size); in bcm203x_probe()
197 data->buffer, firmware->size, bcm203x_complete, data); in bcm203x_probe()
199 release_firmware(firmware); in bcm203x_probe()
201 if (request_firmware(&firmware, "BCM2033-FW.bin", &udev->dev) < 0) { in bcm203x_probe()
208 BT_DBG("firmware data %p size %zu", firmware->data, firmware->size); in bcm203x_probe()
[all …]
Dath3k.c206 const struct firmware *firmware) in ath3k_load_firmware() argument
211 int count = firmware->size; in ath3k_load_firmware()
223 memcpy(send_buf, firmware->data, FW_HDR_SIZE); in ath3k_load_firmware()
241 memcpy(send_buf, firmware->data + sent, size); in ath3k_load_firmware()
303 const struct firmware *firmware) in ath3k_load_fwfile() argument
310 count = firmware->size; in ath3k_load_fwfile()
319 memcpy(send_buf, firmware->data, size); in ath3k_load_fwfile()
341 memcpy(send_buf, firmware->data + sent, size); in ath3k_load_fwfile()
394 const struct firmware *firmware; in ath3k_load_patch() local
419 ret = request_firmware(&firmware, filename, &udev->dev); in ath3k_load_patch()
[all …]
/Linux-v5.4/drivers/media/usb/as102/
Das102_fw.c93 const struct firmware *firmware) { in as102_firmware_upload() argument
104 for (total_read_bytes = 0; total_read_bytes < firmware->size; ) { in as102_firmware_upload()
109 (u8 *) (firmware->data + total_read_bytes), in as102_firmware_upload()
120 if (total_read_bytes == firmware->size) { in as102_firmware_upload()
158 const struct firmware *firmware = NULL; in as102_fw_upload() local
180 errno = request_firmware(&firmware, fw1, &dev->dev); in as102_fw_upload()
188 errno = as102_firmware_upload(bus_adap, cmd_buf, firmware); in as102_fw_upload()
197 release_firmware(firmware); in as102_fw_upload()
198 firmware = NULL; in as102_fw_upload()
204 errno = request_firmware(&firmware, fw2, &dev->dev); in as102_fw_upload()
[all …]
/Linux-v5.4/drivers/net/wireless/marvell/libertas/
Dfirmware.c16 const struct firmware *helper, const struct firmware *mainfw) in lbs_fw_loaded()
32 void (*cb)(const struct firmware *fw, void *context)) in do_load_firmware()
45 static void main_firmware_cb(const struct firmware *firmware, void *context) in main_firmware_cb() argument
49 if (!firmware) { in main_firmware_cb()
56 lbs_fw_loaded(priv, 0, priv->helper_fw, firmware); in main_firmware_cb()
61 release_firmware (firmware); in main_firmware_cb()
64 static void helper_firmware_cb(const struct firmware *firmware, void *context) in helper_firmware_cb() argument
68 if (!firmware) { in helper_firmware_cb()
76 priv->helper_fw = firmware; in helper_firmware_cb()
80 lbs_fw_loaded(priv, 0, firmware, NULL); in helper_firmware_cb()
[all …]
/Linux-v5.4/Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/
Dfirmware.txt1 * Uploaded QE firmware
3 If a new firmware has been uploaded to the QE (usually by the
4 boot loader), then a 'firmware' child node should be added to the QE
5 node. This node provides information on the uploaded firmware that
9 - id: The string name of the firmware. This is taken from the 'id'
10 member of the qe_firmware structure of the uploaded firmware.
12 firmware they want is already present.
14 firmware binary. It is a 64-bit number represented
16 - virtual-traps: The virtual traps, taken from the firmware binary.
20 firmware {
/Linux-v5.4/Documentation/devicetree/bindings/input/touchscreen/
Draspberrypi,firmware-ts.txt1 Raspberry Pi firmware based 7" touchscreen
5 - compatible: "raspberrypi,firmware-ts"
8 - firmware: Reference to RPi's firmware device node
17 firmware: firmware-rpi {
18 compatible = "raspberrypi,bcm2835-firmware";
22 compatible = "raspberrypi,firmware-ts";
/Linux-v5.4/Documentation/devicetree/bindings/firmware/xilinx/
Dxlnx,zynqmp-firmware.txt5 The zynqmp-firmware node describes the interface to platform firmware.
6 ZynqMP has an interface to communicate with secure firmware. Firmware
7 driver provides an interface to firmware APIs. Interface APIs can be
14 - compatible: Must contain: "xlnx,zynqmp-firmware"
15 - method: The method of calling the PM-API firmware layer.
24 firmware {
25 zynqmp_firmware: zynqmp-firmware {
26 compatible = "xlnx,zynqmp-firmware";
/Linux-v5.4/drivers/usb/misc/
Disight_firmware.c39 const struct firmware *firmware; in isight_firmware_load() local
47 if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) { in isight_firmware_load()
53 ptr = firmware->data; in isight_firmware_load()
65 while (ptr+4 <= firmware->data+firmware->size) { in isight_firmware_load()
79 if (ptr+llen > firmware->data+firmware->size) { in isight_firmware_load()
111 release_firmware(firmware); in isight_firmware_load()
/Linux-v5.4/drivers/soc/fsl/qe/
Dqe.c447 int qe_upload_firmware(const struct qe_firmware *firmware) in qe_upload_firmware() argument
456 if (!firmware) { in qe_upload_firmware()
461 hdr = &firmware->header; in qe_upload_firmware()
478 if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) { in qe_upload_firmware()
484 calc_size += (firmware->count - 1) * sizeof(struct qe_microcode); in qe_upload_firmware()
486 for (i = 0; i < firmware->count; i++) in qe_upload_firmware()
493 be32_to_cpu(firmware->microcode[i].count); in qe_upload_firmware()
502 crc = be32_to_cpu(*(__be32 *)((void *)firmware + calc_size)); in qe_upload_firmware()
503 if (crc != crc32(0, firmware, calc_size)) { in qe_upload_firmware()
511 if (!firmware->split) in qe_upload_firmware()
[all …]
/Linux-v5.4/Documentation/devicetree/bindings/soc/fsl/cpm_qe/
Dqe.txt26 - fsl,firmware-phandle:
27 Usage: required only if there is no fsl,qe-firmware child node
29 Definition: Points to a firmware node (see "QE Firmware Node" below)
30 that contains the firmware that should be uploaded for this QE.
31 The compatible property for the firmware node should say,
32 "fsl,qe-firmware".
137 This node defines a firmware binary that is embedded in the device tree, for
138 the purpose of passing the firmware from bootloader to the kernel, or from
141 The firmware node itself contains the firmware binary contents, a compatible
142 property, and any firmware-specific properties. The node should be placed
[all …]
/Linux-v5.4/drivers/remoteproc/
Dremoteproc_internal.h57 int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware *fw);
58 u32 rproc_elf_get_boot_addr(struct rproc *rproc, const struct firmware *fw);
59 int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw);
60 int rproc_elf_load_rsc_table(struct rproc *rproc, const struct firmware *fw);
62 const struct firmware *fw);
67 int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw) in rproc_fw_sanity_check()
76 u32 rproc_get_boot_addr(struct rproc *rproc, const struct firmware *fw) in rproc_get_boot_addr()
85 int rproc_load_segments(struct rproc *rproc, const struct firmware *fw) in rproc_load_segments()
93 static inline int rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) in rproc_parse_fw()
114 const struct firmware *fw) in rproc_find_loaded_rsc_table()

12345678910>>...51