/linux-6.12.1/drivers/base/firmware_loader/ |
D | main.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * main.c - Multi purpose firmware loading support 7 * Please see Documentation/driver-api/firmware/ for more information. 26 #include <linux/firmware.h> 44 #include "firmware.h" 48 MODULE_DESCRIPTION("Multi purpose firmware loading support"); 59 * Names of firmware images which have been cached successfully 61 * helper can trace which firmware images have been cached 75 const char *name; member 80 const char *name; member [all …]
|
D | fallback.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include "firmware.h" 15 * firmware fallback mechanism 19 * use small loading timeout for caching devices' firmware because all these 20 * firmware images have been loaded successfully at lease once, also system is 21 * ready for completing firmware loading now. The maximum size of firmware in 57 if (kill_all || !fw_priv->need_uevent) in kill_pending_fw_fallback_reqs() 68 * fw_load_sysfs_fallback() - load a firmware via the sysfs fallback mechanism 69 * @fw_sysfs: firmware sysfs information for the firmware to load 72 * In charge of constructing a sysfs fallback interface for firmware loading. [all …]
|
/linux-6.12.1/include/linux/ |
D | firmware.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 13 struct firmware { struct 17 /* firmware loader private fields */ argument 22 * enum fw_upload_err - firmware upload error codes argument 25 * @FW_UPLOAD_ERR_TIMEOUT: SW timed out on handshake with HW/firmware 28 * @FW_UPLOAD_ERR_INVALID_SIZE: invalid firmware image size 30 * @FW_UPLOAD_ERR_WEAROUT: FLASH device is approaching wear-out, wait & retry 31 * @FW_UPLOAD_ERR_FW_INVALID: invalid firmware file 49 void *priv; /* firmware loader private fields */ 53 * struct fw_upload_ops - device specific operations to support firmware upload [all …]
|
D | remoteproc.h | 18 * * Neither the name Texas Instruments nor the names of its 47 * struct resource_table - firmware resource table header 55 * If needed, the remote processor firmware should contain this table 61 * is expected, where the firmware requests a resource, and once allocated, 81 * struct fw_rsc_hdr - firmware resource entry header 95 * enum fw_resource_type - types of resource entries 99 * @RSC_DEVMEM: request to iommu_map a memory-based peripheral. 126 #define FW_RSC_ADDR_ANY (-1) 129 * struct fw_rsc_carveout - physically contiguous memory request 135 * @name: human-readable name of the requested memory region [all …]
|
/linux-6.12.1/drivers/base/firmware_loader/builtin/ |
D | main.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Builtin firmware support */ 4 #include <linux/firmware.h> 5 #include "../firmware.h" 11 char *name; member 19 static bool fw_copy_to_prealloc_buf(struct firmware *fw, in fw_copy_to_prealloc_buf() 24 if (size < fw->size) in fw_copy_to_prealloc_buf() 26 memcpy(buf, fw->data, fw->size); in fw_copy_to_prealloc_buf() 31 * firmware_request_builtin() - load builtin firmware 32 * @fw: pointer to firmware struct [all …]
|
/linux-6.12.1/tools/testing/selftests/firmware/ |
D | fw_fallback.sh | 2 # SPDX-License-Identifier: GPL-2.0 4 # to load firmware it can't find on disk itself. We must request a firmware 7 set -e 23 local name="$1" 27 echo -n "$name" >"$DIR"/trigger_request & 31 while [ ! -e "$DIR"/"$name"/loading ]; do 33 timeout=$(( $timeout - 1 )) 34 if [ "$timeout" -eq 0 ]; then 35 echo "$0: firmware interface never appeared" >&2 40 echo 1 >"$DIR"/"$name"/loading [all …]
|
D | fw_filesystem.sh | 2 # SPDX-License-Identifier: GPL-2.0 3 # This validates that the kernel will load firmware out of its list of 4 # firmware locations on disk. Since the user helper does similar work, 7 set -e 14 RUN_XZ="xz -C crc32 --lzma2=dict=2MiB" 15 RUN_ZSTD="zstd -q" 26 echo 1 >/sys/class/firmware/timeout 34 if [ ! -e "$DIR"/trigger_async_request ]; then 44 # Request a firmware that doesn't exist, it should fail. 45 if echo -n "nope-$NAME" >"$DIR"/trigger_request 2> /dev/null; then [all …]
|
D | fw_upload.sh | 2 # SPDX-License-Identifier: GPL-2.0 3 # This validates the user-initiated fw upload mechanism of the firmware 4 # loader. It verifies that one or more firmware devices can be created 7 set -e 13 errors="hw-error 15 device-busy 16 invalid-file-size 17 read-write-error 18 flash-wearout" 19 error_abort="user-abort" [all …]
|
/linux-6.12.1/rust/kernel/ |
D | firmware.rs | 1 // SPDX-License-Identifier: GPL-2.0 3 //! Firmware abstraction 5 //! C header: [`include/linux/firmware.h`](srctree/include/linux/firmware.h) 15 unsafe extern "C" fn(*mut *const bindings::firmware, *const i8, *mut bindings::device) -> i32, 19 fn request() -> Self { in request() 23 fn request_nowarn() -> Self { in request_nowarn() 28 /// Abstraction around a C `struct firmware`. 30 /// This is a simple abstraction around the C firmware API. Just like with the C API, firmware can 31 /// be requested. Once requested the abstraction provides direct access to the firmware buffer as 32 /// `&[u8]`. The firmware is released once [`Firmware`] is dropped. [all …]
|
/linux-6.12.1/drivers/base/ |
D | property.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * property.c - Unified device property interface. 23 return IS_ENABLED(CONFIG_OF) && dev->of_node ? in __dev_fwnode() 24 of_fwnode_handle(dev->of_node) : dev->fwnode; in __dev_fwnode() 30 return IS_ENABLED(CONFIG_OF) && dev->of_node ? in __dev_fwnode_const() 31 of_fwnode_handle(dev->of_node) : dev->fwnode; in __dev_fwnode_const() 36 * device_property_present - check if a property of a device is present 38 * @propname: Name of the property 40 * Check if property @propname is present in the device firmware description. 51 * fwnode_property_present - check if a property of a firmware node is present [all …]
|
/linux-6.12.1/drivers/net/wireless/marvell/libertas/ |
D | firmware.c | 1 // SPDX-License-Identifier: GPL-2.0-only 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() 23 priv->fw_callback(priv, ret, helper, mainfw); in lbs_fw_loaded() 25 spin_lock_irqsave(&priv->driver_lock, flags); in lbs_fw_loaded() 26 priv->fw_callback = NULL; in lbs_fw_loaded() 27 wake_up(&priv->fw_waitq); in lbs_fw_loaded() 28 spin_unlock_irqrestore(&priv->driver_lock, flags); in lbs_fw_loaded() [all …]
|
/linux-6.12.1/drivers/media/usb/dvb-usb/ |
D | dvb-usb-firmware.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* dvb-usb-firmware.c is part of the DVB USB library. 4 * Copyright (C) 2004-6 Patrick Boettcher (patrick.boettcher@posteo.de) 5 * see dvb-usb-init.c for copyright information. 7 * This file contains functions for downloading the firmware to Cypress FX 1 and 2 based devices. 9 * FIXME: This part does actually not belong to dvb-usb, but to the usb-subsystem. 11 #include "dvb-usb-common.h" 17 const char *name; /* name of the usb controller */ member 18 u16 cpu_cs_register; /* needs to be restarted, when the firmware has been downloaded. */ 22 { .id = DEVICE_SPECIFIC, .name = "Device specific", .cpu_cs_register = 0 }, [all …]
|
/linux-6.12.1/Documentation/ABI/testing/ |
D | sysfs-firmware-qemu_fw_cfg | 1 What: /sys/firmware/qemu_fw_cfg/ 6 sun4*, ppc/mac) are provisioned with a firmware configuration 8 provide configuration data to the guest firmware. Starting 11 useful as an out-of-band, asynchronous mechanism for providing 14 The authoritative guest-side hardware interface documentation 17 https://qemu-project.gitlab.io/qemu/specs/fw_cfg.html 29 /sys/firmware/qemu_fw_cfg/ 33 /sys/firmware/qemu_fw_cfg/rev 41 /sys/firmware/qemu_fw_cfg/by_key/32 42 /sys/firmware/qemu_fw_cfg/by_key/33 [all …]
|
/linux-6.12.1/Documentation/admin-guide/acpi/ |
D | ssdt-overlays.rst | 1 .. SPDX-License-Identifier: GPL-2.0 7 In order to support ACPI open-ended hardware configurations (e.g. development 8 boards) we need a way to augment the ACPI configuration provided by the firmware 13 recompiling the firmware image with updated ACPI tables, neither is practical: 15 access to firmware tools which are often not publicly available. 18 way to augment firmware ACPI configuration is by dynamically loading 33 Name (_HID, "BMA222E") 34 Name (RBUF, ResourceTemplate () 59 ASL Optimizing Compiler version 20140214-64 [Mar 29 2014] 60 Copyright (c) 2000 - 2014 Intel Corporation [all …]
|
/linux-6.12.1/Documentation/driver-api/firmware/ |
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 44 * Firmware is not accessible through typical means: 47 * The firmware provides very unique device specific data tailored for [all …]
|
/linux-6.12.1/lib/ |
D | test_firmware.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * This module provides an interface to trigger and test firmware loading. 5 * It is designed to be used for basic evaluation of the firmware loading 6 * subsystem (for example when validating firmware verification). It lacks 8 * unless explicitly requested by name. 17 #include <linux/firmware.h> 32 #define TEST_FIRMWARE_NAME "test-firmware.bin" 39 static const struct firmware *test_firmware; 46 const struct firmware *fw; 47 const char *name; member [all …]
|
/linux-6.12.1/drivers/pmdomain/bcm/ |
D | raspberrypi-power.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <dt-bindings/power/raspberrypi-power.h> 14 #include <soc/bcm2835/raspberrypi-firmware.h> 17 * Firmware indices for the old power domains interface. Only a few 48 * Asks the firmware to enable or disable power on a specific power 55 bool old_interface = rpi_domain->old_interface; in rpi_firmware_set_power() 59 packet.domain = rpi_domain->domain; in rpi_firmware_set_power() 62 ret = rpi_firmware_property(rpi_domain->fw, old_interface ? in rpi_firmware_set_power() 67 dev_err(&domain->dev, "Failed to set %s to %u (%d)\n", in rpi_firmware_set_power() 70 dev_dbg(&domain->dev, "Set %s to %u\n", in rpi_firmware_set_power() [all …]
|
/linux-6.12.1/drivers/staging/greybus/Documentation/firmware/ |
D | firmware-management | 2 Firmware Management 3 ------------------- 7 Interface-Manifest 8 ------------------ 10 All firmware packages on the Modules or Interfaces are managed by a special 11 Firmware Management Protocol. To support Firmware Management by the AP, the 12 Interface Manifest shall at least contain the Firmware Management Bundle and a 13 Firmware Management Protocol CPort within it. 16 required to manage firmware packages. 18 For example, this is how the Firmware Management part of the Interface Manifest [all …]
|
/linux-6.12.1/drivers/gpu/drm/nouveau/nvkm/core/ |
D | firmware.c | 23 #include <core/firmware.h> 30 const char *name, int ver, const struct firmware **pfw) in nvkm_firmware_load_name() argument 35 snprintf(path, sizeof(path), "%s%s", base, name); in nvkm_firmware_load_name() 45 const char *name, int ver, struct nvkm_blob *blob) in nvkm_firmware_load_blob() argument 47 const struct firmware *fw; in nvkm_firmware_load_blob() 50 ret = nvkm_firmware_load_name(subdev, base, name, ver, &fw); in nvkm_firmware_load_blob() 52 blob->data = kmemdup(fw->data, fw->size, GFP_KERNEL); in nvkm_firmware_load_blob() 53 blob->size = fw->size; in nvkm_firmware_load_blob() 55 if (!blob->data) in nvkm_firmware_load_blob() 56 return -ENOMEM; in nvkm_firmware_load_blob() [all …]
|
/linux-6.12.1/sound/soc/intel/avs/ |
D | avs.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright(c) 2021-2022 Intel Corporation 14 #include <linux/firmware.h> 18 #include <sound/soc-component.h> 36 * struct avs_dsp_ops - Platform-specific DSP operations 51 int (* const load_basefw)(struct avs_dev *, struct firmware *); 52 int (* const load_lib)(struct avs_dev *, struct firmware *, u32); 64 ((adev)->spec->dsp_ops->op(adev, ## __VA_ARGS__)) 76 ((adev)->spec->attributes & AVS_PLATATTR_##attr) 97 const char *name; member [all …]
|
/linux-6.12.1/Documentation/networking/devlink/ |
D | devlink-info.rst | 1 .. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 7 The ``devlink-info`` mechanism enables device drivers to report device 8 (hardware and firmware) information in a standard, extensible fashion. 10 The original motivation for the ``devlink-info`` API was twofold: 12 - making it possible to automate device and firmware management in a fleet 13 of machines in a vendor-independent fashion (see also 14 :ref:`Documentation/networking/devlink/devlink-flash.rst <devlink_flash>`); 15 - name the per component FW versions (as opposed to the crowded ethtool 18 ``devlink-info`` supports reporting multiple types of objects. Reporting driver 19 versions is generally discouraged - here, and via any other Linux API. [all …]
|
/linux-6.12.1/drivers/platform/x86/ |
D | touchscreen_dmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 24 /* The EFI embedded-fw code expects this to be the first member! */ 33 PROPERTY_ENTRY_U32("touchscreen-size-x", 1850), 34 PROPERTY_ENTRY_U32("touchscreen-size-y", 1280), 35 PROPERTY_ENTRY_BOOL("touchscreen-inverted-y"), 36 PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"), 37 PROPERTY_ENTRY_BOOL("silead,home-button"), 38 PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-archos-101-cesium-educ.fw"), 48 PROPERTY_ENTRY_U32("touchscreen-size-x", 1850), 49 PROPERTY_ENTRY_U32("touchscreen-size-y", 1280), [all …]
|
/linux-6.12.1/drivers/gpu/drm/ |
D | drm_edid_load.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 drm_edid_load.c: use a built-in EDID data set or load it via the firmware 10 #include <linux/firmware.h> 24 "Do not probe monitor, use specified EDID blob from /lib/firmware instead."); 26 static const struct drm_edid *edid_load(struct drm_connector *connector, const char *name) in edid_load() argument 28 const struct firmware *fw = NULL; in edid_load() 32 err = request_firmware(&fw, name, connector->dev->dev); in edid_load() 34 drm_err(connector->dev, in edid_load() 35 "[CONNECTOR:%d:%s] Requesting EDID firmware \"%s\" failed (err=%d)\n", in edid_load() 36 connector->base.id, connector->name, in edid_load() [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/remoteproc/ |
D | ti,pru-rproc.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/remoteproc/ti,pru-rproc.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Suman Anna <s-anna@ti.com> 13 Each Programmable Real-Time Unit and Industrial Communication Subsystem 14 (PRU-ICSS or PRUSS) has two 32-bit load/store RISC CPU cores called 15 Programmable Real-Time Units (PRUs), each represented by a node. Each PRU 17 use the Data RAMs present within the PRU-ICSS for code execution. 27 corresponding PRU-ICSS node. Each node can optionally be rendered inactive by [all …]
|
/linux-6.12.1/drivers/staging/greybus/ |
D | fw-download.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Greybus Firmware Download Protocol Driver. 9 #include <linux/firmware.h> 14 #include "firmware.h" 18 /* Timeout, in jiffies, within which fetch or release firmware must be called */ 25 char name[FW_NAME_SIZE]; member 26 const struct firmware *fw; 30 /* Timeout, in jiffies, within which the firmware shall download */ 48 dev_dbg(fw_req->fw_download->parent, "firmware %s released\n", in fw_req_release() 49 fw_req->name); in fw_req_release() [all …]
|