/Linux-v4.19/drivers/gpu/drm/tegra/ |
D | falcon.c | 62 const struct firmware *firmware) in falcon_copy_firmware_image() argument 64 u32 *firmware_vaddr = falcon->firmware.vaddr; in falcon_copy_firmware_image() 70 for (i = 0; i < firmware->size / sizeof(u32); i++) in falcon_copy_firmware_image() 71 firmware_vaddr[i] = le32_to_cpu(((u32 *)firmware->data)[i]); in falcon_copy_firmware_image() 75 falcon->firmware.size, DMA_TO_DEVICE); in falcon_copy_firmware_image() 82 falcon->firmware.size, DMA_TO_DEVICE); in falcon_copy_firmware_image() 83 dma_unmap_single(falcon->dev, daddr, falcon->firmware.size, in falcon_copy_firmware_image() 89 struct falcon_fw_bin_header_v1 *bin = (void *)falcon->firmware.vaddr; in falcon_parse_firmware_image() 105 if (bin->size > falcon->firmware.size) { in falcon_parse_firmware_image() 110 os = falcon->firmware.vaddr + bin->os_header_offset; in falcon_parse_firmware_image() [all …]
|
/Linux-v4.19/Documentation/driver-api/firmware/ |
D | firmware_cache.rst | 5 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 …]
|
D | request_firmware.rst | 5 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 …]
|
D | built-in-fw.rst | 2 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 …]
|
D | fallback-mechanisms.rst | 6 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 …]
|
D | lookup-order.rst | 5 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-v4.19/sound/pci/asihpi/ |
D | hpidspcd.c | 29 const struct firmware *firmware; member 37 const struct firmware *firmware; in hpi_dsp_code_open() local 46 err = request_firmware(&firmware, fw_name, &dev->dev); in hpi_dsp_code_open() 48 if (err || !firmware) { in hpi_dsp_code_open() 53 if (firmware->size < sizeof(header)) { in hpi_dsp_code_open() 57 memcpy(&header, firmware->data, sizeof(header)); in hpi_dsp_code_open() 61 || (header.size != firmware->size)) { in hpi_dsp_code_open() 64 header.size, firmware->size); in hpi_dsp_code_open() 90 dsp_code->pvt->firmware = firmware; in hpi_dsp_code_open() 97 release_firmware(firmware); in hpi_dsp_code_open() [all …]
|
/Linux-v4.19/drivers/base/firmware_loader/ |
D | Kconfig | 7 This enables the firmware loading facility in the kernel. The kernel 8 will first look for built-in firmware, if it has any. Next, it will 9 look for the requested firmware in a series of filesystem paths: 12 o /lib/firmware/updates/UTS_RELEASE 13 o /lib/firmware/updates 14 o /lib/firmware/UTS_RELEASE 15 o /lib/firmware 19 need firmware. 24 enable built-in firmware (CONFIG_EXTRA_FIRMWARE). 29 string "Build named firmware blobs into the kernel binary" [all …]
|
/Linux-v4.19/Documentation/ABI/testing/ |
D | sysfs-firmware-efi-esrt | 1 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 …]
|
D | sysfs-firmware-memmap | 1 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 …]
|
D | sysfs-firmware-gsmi | 1 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-v4.19/drivers/gpu/drm/i915/gvt/ |
D | firmware.c | 82 void *firmware; in expose_firmware_sysfs() local 88 firmware = vzalloc(size); in expose_firmware_sysfs() 89 if (!firmware) in expose_firmware_sysfs() 92 h = firmware; in expose_firmware_sysfs() 101 p = firmware + h->cfg_space_offset; in expose_firmware_sysfs() 106 memcpy(gvt->firmware.cfg_space, p, info->cfg_space_size); in expose_firmware_sysfs() 108 p = firmware + h->mmio_offset; in expose_firmware_sysfs() 113 memcpy(gvt->firmware.mmio, p, info->mmio_size); in expose_firmware_sysfs() 116 h->crc32 = crc32_le(0, firmware + crc32_start, size - crc32_start); in expose_firmware_sysfs() 119 firmware_attr.private = firmware; in expose_firmware_sysfs() [all …]
|
/Linux-v4.19/include/linux/ |
D | firmware.h | 12 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-v4.19/drivers/bluetooth/ |
D | bcm203x.c | 170 const struct firmware *firmware; in bcm203x_probe() local 191 if (request_firmware(&firmware, "BCM2033-MD.hex", &udev->dev) < 0) { in bcm203x_probe() 197 BT_DBG("minidrv data %p size %zu", firmware->data, firmware->size); in bcm203x_probe() 199 size = max_t(uint, firmware->size, 4096); in bcm203x_probe() 204 release_firmware(firmware); in bcm203x_probe() 209 memcpy(data->buffer, firmware->data, firmware->size); in bcm203x_probe() 212 data->buffer, firmware->size, bcm203x_complete, data); in bcm203x_probe() 214 release_firmware(firmware); in bcm203x_probe() 216 if (request_firmware(&firmware, "BCM2033-FW.bin", &udev->dev) < 0) { in bcm203x_probe() 223 BT_DBG("firmware data %p size %zu", firmware->data, firmware->size); in bcm203x_probe() [all …]
|
D | ath3k.c | 219 const struct firmware *firmware) in ath3k_load_firmware() argument 224 int count = firmware->size; in ath3k_load_firmware() 236 memcpy(send_buf, firmware->data, FW_HDR_SIZE); in ath3k_load_firmware() 254 memcpy(send_buf, firmware->data + sent, size); in ath3k_load_firmware() 316 const struct firmware *firmware) in ath3k_load_fwfile() argument 323 count = firmware->size; in ath3k_load_fwfile() 332 memcpy(send_buf, firmware->data, size); in ath3k_load_fwfile() 354 memcpy(send_buf, firmware->data + sent, size); in ath3k_load_fwfile() 407 const struct firmware *firmware; in ath3k_load_patch() local 432 ret = request_firmware(&firmware, filename, &udev->dev); in ath3k_load_patch() [all …]
|
/Linux-v4.19/drivers/media/usb/as102/ |
D | as102_fw.c | 102 const struct firmware *firmware) { in as102_firmware_upload() argument 113 for (total_read_bytes = 0; total_read_bytes < firmware->size; ) { in as102_firmware_upload() 118 (u8 *) (firmware->data + total_read_bytes), in as102_firmware_upload() 129 if (total_read_bytes == firmware->size) { in as102_firmware_upload() 167 const struct firmware *firmware = NULL; in as102_fw_upload() local 189 errno = request_firmware(&firmware, fw1, &dev->dev); in as102_fw_upload() 197 errno = as102_firmware_upload(bus_adap, cmd_buf, firmware); in as102_fw_upload() 206 release_firmware(firmware); in as102_fw_upload() 207 firmware = NULL; in as102_fw_upload() 213 errno = request_firmware(&firmware, fw2, &dev->dev); in as102_fw_upload() [all …]
|
/Linux-v4.19/drivers/net/wireless/marvell/libertas/ |
D | firmware.c | 15 const struct firmware *helper, const struct firmware *mainfw) in lbs_fw_loaded() 31 void (*cb)(const struct firmware *fw, void *context)) in do_load_firmware() 44 static void main_firmware_cb(const struct firmware *firmware, void *context) in main_firmware_cb() argument 48 if (!firmware) { in main_firmware_cb() 55 lbs_fw_loaded(priv, 0, priv->helper_fw, firmware); in main_firmware_cb() 60 release_firmware (firmware); in main_firmware_cb() 63 static void helper_firmware_cb(const struct firmware *firmware, void *context) in helper_firmware_cb() argument 67 if (!firmware) { in helper_firmware_cb() 75 priv->helper_fw = firmware; in helper_firmware_cb() 79 lbs_fw_loaded(priv, 0, firmware, NULL); in helper_firmware_cb() [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/ |
D | firmware.txt | 1 * 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-v4.19/drivers/remoteproc/ |
D | remoteproc_internal.h | 57 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); 65 int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw) in rproc_fw_sanity_check() 74 u32 rproc_get_boot_addr(struct rproc *rproc, const struct firmware *fw) in rproc_get_boot_addr() 83 int rproc_load_segments(struct rproc *rproc, const struct firmware *fw) in rproc_load_segments() 91 static inline int rproc_parse_fw(struct rproc *rproc, const struct firmware *fw) in rproc_parse_fw() 101 const struct firmware *fw) in rproc_find_loaded_rsc_table()
|
/Linux-v4.19/Documentation/devicetree/bindings/soc/fsl/cpm_qe/ |
D | qe.txt | 25 - fsl,firmware-phandle: 26 Usage: required only if there is no fsl,qe-firmware child node 28 Definition: Points to a firmware node (see "QE Firmware Node" below) 29 that contains the firmware that should be uploaded for this QE. 30 The compatible property for the firmware node should say, 31 "fsl,qe-firmware". 126 This node defines a firmware binary that is embedded in the device tree, for 127 the purpose of passing the firmware from bootloader to the kernel, or from 130 The firmware node itself contains the firmware binary contents, a compatible 131 property, and any firmware-specific properties. The node should be placed [all …]
|
/Linux-v4.19/drivers/usb/misc/ |
D | isight_firmware.c | 39 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-v4.19/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_ucode.c | 251 int amdgpu_ucode_validate(const struct firmware *fw) in amdgpu_ucode_validate() 339 if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP || in amdgpu_ucode_init_single_fw() 416 if (!adev->firmware.fw_size) { in amdgpu_ucode_init_bo() 422 err = amdgpu_bo_create_kernel(adev, adev->firmware.fw_size, PAGE_SIZE, in amdgpu_ucode_init_bo() 424 &adev->firmware.fw_buf, in amdgpu_ucode_init_bo() 425 &adev->firmware.fw_buf_mc, in amdgpu_ucode_init_bo() 426 &adev->firmware.fw_buf_ptr); in amdgpu_ucode_init_bo() 433 memset(adev->firmware.fw_buf_ptr, 0, adev->firmware.fw_size); in amdgpu_ucode_init_bo() 439 if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) { in amdgpu_ucode_init_bo() 441 adev->firmware.max_ucodes = AMDGPU_UCODE_ID_MAXIMUM - 3; in amdgpu_ucode_init_bo() [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/gpio/ |
D | raspberrypi,firmware-gpio.txt | 3 The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware. The 4 firmware exposes a mailbox interface that allows the ARM core to control the 8 firmware node. 12 - compatible : Should be "raspberrypi,firmware-gpio" 21 firmware: firmware-rpi { 22 compatible = "raspberrypi,bcm2835-firmware"; 26 compatible = "raspberrypi,firmware-gpio";
|
/Linux-v4.19/drivers/soc/qcom/ |
D | mdt_loader.c | 48 ssize_t qcom_mdt_get_size(const struct firmware *fw) in qcom_mdt_get_size() 77 static int __qcom_mdt_load(struct device *dev, const struct firmware *fw, in __qcom_mdt_load() 78 const char *firmware, int pas_id, void *mem_region, in __qcom_mdt_load() argument 85 const struct firmware *seg_fw; in __qcom_mdt_load() 103 fw_name_len = strlen(firmware); in __qcom_mdt_load() 107 fw_name = kstrdup(firmware, GFP_KERNEL); in __qcom_mdt_load() 211 int qcom_mdt_load(struct device *dev, const struct firmware *fw, in qcom_mdt_load() 212 const char *firmware, int pas_id, void *mem_region, in qcom_mdt_load() argument 216 return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys, in qcom_mdt_load() 234 int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw, in qcom_mdt_load_no_init() [all …]
|
/Linux-v4.19/Documentation/leds/ |
D | leds-lp55xx.txt | 62 LP55xx common driver supports the firmware interface. 73 run_engine : Start program which is loaded via the firmware interface 74 firmware : Load program data 82 echo 1 > /sys/class/firmware/lp5521/loading 83 echo "4000600040FF6000" > /sys/class/firmware/lp5521/data 84 echo 0 > /sys/class/firmware/lp5521/loading 90 echo 1 > /sys/class/firmware/lp55231/loading 91 echo "9d0740ff7e0040007e00a0010000" > /sys/class/firmware/lp55231/data 92 echo 0 > /sys/class/firmware/lp55231/loading 101 echo 1 > /sys/class/firmware/lp5521/loading [all …]
|