| /Linux-v5.4/drivers/gpu/drm/tegra/ | 
| D | falcon.c | 8 #include <linux/firmware.h>59 				       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()
 70 	/* ensure that caches are flushed and falcon can see the firmware */  in falcon_copy_firmware_image()
 72 			       falcon->firmware.size, DMA_TO_DEVICE);  in falcon_copy_firmware_image()
 75 		dev_err(falcon->dev, "failed to map firmware: %d\n", err);  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()
 [all …]
 
 | 
| /Linux-v5.4/drivers/base/firmware_loader/ | 
| D | Kconfig | 2 menu "Firmware loader"5 	tristate "Firmware loading facility" if EXPERT
 8 	  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.
 [all …]
 
 | 
| D | main.c | 3  * main.c - Multi purpose firmware loading support24 #include <linux/firmware.h>
 41 #include "firmware.h"
 45 MODULE_DESCRIPTION("Multi purpose firmware loading support");
 56 	 * Names of firmware images which have been cached successfully
 58 	 * helper can trace which firmware images have been cached
 94 /* Builtin firmware support */
 101 static void fw_copy_to_prealloc_buf(struct firmware *fw,  in fw_copy_to_prealloc_buf()
 109 static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,  in fw_get_builtin_firmware()
 127 static bool fw_is_builtin_firmware(const struct firmware *fw)  in fw_is_builtin_firmware()
 [all …]
 
 | 
| /Linux-v5.4/Documentation/networking/device_drivers/netronome/ | 
| D | nfp.rst | 13 - `Acquiring Firmware`_24 Acquiring Firmware
 27 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).
 31 Firmware files on the host filesystem contain card type (`AMDA-*` string), media
 32 config etc.  They should be placed in `/lib/firmware/netronome` directory to
 33 load firmware from the host file system.
 35 Firmware for basic NIC operation is available in the upstream
 36 `linux-firmware.git` repository.
 [all …]
 
 | 
| /Linux-v5.4/Documentation/driver-api/firmware/ | 
| D | firmware_cache.rst | 2 Firmware cache5 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
 [all …]
 
 | 
| D | fallback-mechanisms.rst | 6 filesystem lookup on the root filesystem or when the firmware simply cannot be8 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
 44 * Firmware is not accessible through typical means:
 46         * The firmware provides very unique device specific data tailored for
 [all …]
 
 | 
| D | built-in-fw.rst | 2 Built-in firmware5 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
 18 * Firmware is needed for accessing the boot device, and the user doesn't
 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
 [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::
 8 	 if(request_firmware(&fw_entry, $FIRMWARE, device) == 0)
 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
 [all …]
 
 | 
| /Linux-v5.4/drivers/net/wireless/marvell/libertas/ | 
| D | firmware.c | 3  * Firmware loading and handling functions.7 #include <linux/firmware.h>
 16 	const struct firmware *helper, const struct firmware *mainfw)  in lbs_fw_loaded()
 20 	lbs_deb_fw("firmware load complete, code %d\n", ret);  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()
 50 		/* Failed to find firmware: try next table entry */  in main_firmware_cb()
 55 	/* Firmware found! */  in main_firmware_cb()
 56 	lbs_fw_loaded(priv, 0, priv->helper_fw, firmware);  in main_firmware_cb()
 [all …]
 
 | 
| /Linux-v5.4/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/gsmi5 		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/media/usb/as102/ | 
| D | as102_fw.c | 11 #include <linux/firmware.h>38  * Parse INTEL HEX firmware file to extract address and data.
 48 		pr_err("invalid firmware file\n");  in parse_hex_line()
 93 				 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
 172 	/* allocate buffer to store firmware upload command and data */  in as102_fw_upload()
 179 	/* request kernel to locate firmware file: part1 */  in as102_fw_upload()
 [all …]
 
 | 
| /Linux-v5.4/scripts/ | 
| D | extract_xc3028.pl | 19 #		cp xc3028-v24.fw /lib/firmware20 #		cp xc3028-v27.fw /lib/firmware
 33 		die "This firmware requires the md5sum command - see http://www.gnu.org/software/coreutils/\n";
 163 	# Firmware 0, type: BASE FW   F8MHZ (0x00000003), id: (0000000000000000), size: 6635
 172 	# Firmware 1, type: BASE FW   F8MHZ MTS (0x00000007), id: (0000000000000000), size: 6635
 181 	# Firmware 2, type: BASE FW   FM (0x00000401), id: (0000000000000000), size: 6525
 190 	# Firmware 3, type: BASE FW   FM INPUT1 (0x00000c01), id: (0000000000000000), size: 6539
 199 	# Firmware 4, type: BASE FW   (0x00000001), id: (0000000000000000), size: 6633
 208 	# Firmware 5, type: BASE FW   MTS (0x00000005), id: (0000000000000000), size: 6617
 217 	# Firmware 6, type: STD FW    (0x00000000), id: PAL/BG A2/A (0000000100000007), size: 161
 [all …]
 
 | 
| /Linux-v5.4/Documentation/devicetree/bindings/soc/fsl/cpm_qe/ | 
| D | qe.txt | 26 - 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".
 135 * QE Firmware Node
 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
 [all …]
 
 | 
| /Linux-v5.4/drivers/soc/qcom/ | 
| D | mdt_loader.c | 12 #include <linux/firmware.h>36  * @fw:		firmware object for the mdt file
 38  * Returns size of the loaded firmware blob, or -EINVAL on failure.
 40 ssize_t qcom_mdt_get_size(const struct firmware *fw)  in qcom_mdt_get_size()
 71  * @fw:		firmware of mdt header or mbn
 74  * The mechanism that performs the authentication of the loading firmware
 79  * In the case of split firmware the hash is found directly following the ELF
 86 void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len)  in qcom_mdt_read_metadata()
 129 static int __qcom_mdt_load(struct device *dev, const struct firmware *fw,  in __qcom_mdt_load()
 130 			   const char *firmware, int pas_id, void *mem_region,  in __qcom_mdt_load()  argument
 [all …]
 
 | 
| /Linux-v5.4/drivers/usb/misc/ | 
| D | isight_firmware.c | 3  * Driver for loading USB isight firmware9  * need firmware to be loaded beforehand. After firmware loading, the device
 13  * The firmware is non-free and must be extracted by the user. Tools to do this
 16  * The isight firmware loading was reverse engineered by Johannes Berg
 22 #include <linux/firmware.h>
 39 	const struct firmware *firmware;  in isight_firmware_load()  local
 47 	if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) {  in isight_firmware_load()
 48 		printk(KERN_ERR "Unable to load isight firmware\n");  in isight_firmware_load()
 53 	ptr = firmware->data;  in isight_firmware_load()
 60 		       "Failed to initialise isight firmware loader\n");  in isight_firmware_load()
 [all …]
 
 | 
| /Linux-v5.4/drivers/hid/intel-ish-hid/ | 
| D | ishtp-fw-loader.c | 3  * ISH-TP client driver for ISH firmware loading8 #include <linux/firmware.h>
 15 /* Number of times we attempt to load the firmware before giving up */
 23  * ISH Shim firmware loader reserves 4 Kb buffer in SRAM. The buffer is
 25  * firmware loader. Reason for the odd size of 3968 bytes? Each IPC
 34  * LOADER_CMD_XFER_QUERY	Query the Shim firmware loader for
 36  * LOADER_CMD_XFER_FRAGMENT	Transfer one firmware image fragment at a
 38  *				multiple times until the entire firmware
 40  * LOADER_CMD_START		Start executing the main firmware.
 53  * ISH firmware max delay for one transmit failure is 1 Hz,
 [all …]
 
 | 
| /Linux-v5.4/drivers/scsi/fnic/ | 
| D | fcpio.h | 25  * communication by the host driver to the fcp firmware.81  * Header status codes from the firmware
 87 	 * If a request to the firmware is rejected, the original request
 97 	 * Once a request is processed, the firmware will usually return
 118  * to mark commands with a unique tag.  When the firmware responds to
 121  * The only firmware requests that will use the rx_id/ox_id fields instead
 163  * The header for an fcpio request, whether from the firmware or from the
 199  * fcpio_icmnd_16: host -> firmware request
 247  * fcpio_icmnd_32: host -> firmware request
 275  * fcpio_itmf: host -> firmware request
 [all …]
 
 | 
| /Linux-v5.4/drivers/gpu/drm/i915/gvt/ | 
| D | firmware.c | 31 #include <linux/firmware.h>83 	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()
 [all …]
 
 | 
| /Linux-v5.4/drivers/bluetooth/ | 
| D | bcm203x.c | 4  *  Broadcom Blutonium firmware driver20 #include <linux/firmware.h>
 131 			BT_ERR("Firmware loading failed");  in bcm203x_complete()
 155 	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()
 [all …]
 
 | 
| /Linux-v5.4/drivers/net/wireless/intersil/orinoco/ | 
| D | fw.c | 1 /* Firmware file reading and download helpers7 #include <linux/firmware.h>
 17 /* End markers (for Symbol firmware only) */
 78 	/* TODO: consider adding a checksum or CRC to the firmware format */  in validate_fw()
 83 static inline const struct firmware *
 95 /* Download either STA or AP firmware into the card. */
 105 	const struct firmware *fw_entry;  in orinoco_dl_firmware()
 109 	const char *firmware;  in orinoco_dl_firmware()  local
 119 		firmware = fw->ap_fw;  in orinoco_dl_firmware()
 121 		firmware = fw->sta_fw;  in orinoco_dl_firmware()
 [all …]
 
 | 
| /Linux-v5.4/Documentation/leds/ | 
| D | leds-lp55xx.rst | 58 ( Firmware Interface )66 LP55xx common driver supports the firmware interface.
 82 	Start program which is loaded via the firmware interface
 83 firmware:
 93 	echo 1 > /sys/class/firmware/lp5521/loading
 94 	echo "4000600040FF6000" > /sys/class/firmware/lp5521/data
 95 	echo 0 > /sys/class/firmware/lp5521/loading
 103 	echo 1 > /sys/class/firmware/lp55231/loading
 104 	echo "9d0740ff7e0040007e00a0010000" > /sys/class/firmware/lp55231/data
 105 	echo 0 > /sys/class/firmware/lp55231/loading
 [all …]
 
 | 
| /Linux-v5.4/drivers/staging/greybus/Documentation/firmware/ | 
| D | firmware.c | 3  * Sample code to test firmware-management protocol37 …printf("\nUsage: ./firmware <gb-fw-mgmt-X (default: gb-fw-mgmt-0)> <interface: 0, backend: 1 (defa…  in usage()
 44 	/* Get Interface Firmware Version */  in update_intf_firmware()
 45 	printf("Get Interface Firmware Version\n");  in update_intf_firmware()
 49 		printf("Failed to get interface firmware version: %s (%d)\n",  in update_intf_firmware()
 54 	printf("Interface Firmware tag (%s), major (%d), minor (%d)\n",  in update_intf_firmware()
 58 	/* Try Interface Firmware load over Unipro */  in update_intf_firmware()
 59 	printf("Loading Interface Firmware\n");  in update_intf_firmware()
 71 		printf("Failed to load interface firmware: %s (%d)\n", fwdev,  in update_intf_firmware()
 83 	printf("Interface Firmware (%s) Load done: major: %d, minor: %d, status: %d\n",  in update_intf_firmware()
 [all …]
 
 | 
| /Linux-v5.4/drivers/firmware/ | 
| D | Kconfig | 7 menu "Firmware Drivers"37 	  enabled or disabled via the SCP firmware
 70 	  enabled or disabled via the SCP firmware
 77 	  standard for registering callbacks from the platform firmware
 102     bool "Add firmware-provided memory map to sysfs" if EXPERT
 105       Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap.
 109       See also Documentation/ABI/testing/sysfs-firmware-memmap.
 116 	  If your firmware supplies the PCDP table, and you want to
 120 	  If your firmware supplies the HCDP table, and you want to
 152 	  under /sys/firmware/dmi when this option is enabled and
 [all …]
 
 |