/Linux-v5.15/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> 43 #include "firmware.h" 47 MODULE_DESCRIPTION("Multi purpose firmware loading support"); 58 * Names of firmware images which have been cached successfully 60 * helper can trace which firmware images have been cached 74 const char *name; member 79 const char *name; member [all …]
|
D | fallback.c | 1 // SPDX-License-Identifier: GPL-2.0 15 #include "firmware.h" 18 * firmware fallback mechanism 38 * use small loading timeout for caching devices' firmware because all these 39 * firmware images have been loaded successfully at lease once, also system is 40 * ready for completing firmware loading now. The maximum size of firmware in 80 struct firmware *fw; 102 struct fw_priv *fw_priv = fw_sysfs->fw_priv; in fw_load_abort() 117 if (!fw_priv->need_uevent || !only_kill_custom) in kill_pending_fw_fallback_reqs() 130 * timeout_store() - set number of seconds to wait for firmware [all …]
|
/Linux-v5.15/include/linux/ |
D | firmware.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 12 struct firmware { struct 16 /* firmware loader private fields */ argument 24 char *name; member 34 #define DECLARE_BUILTIN_FIRMWARE(name, blob) \ argument 35 DECLARE_BUILTIN_FIRMWARE_SIZE(name, &(blob), sizeof(blob)) 37 #define DECLARE_BUILTIN_FIRMWARE_SIZE(name, blob, size) \ argument 39 __used __section(".builtin_fw") = { name, blob, size } 42 int request_firmware(const struct firmware **fw, const char *name, 44 int firmware_request_nowarn(const struct firmware **fw, const char *name, [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-v5.15/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 23 echo 1 >/sys/class/firmware/timeout 31 if [ ! -e "$DIR"/trigger_async_request ]; then 41 # Request a firmware that doesn't exist, it should fail. 42 if echo -n "nope-$NAME" >"$DIR"/trigger_request 2> /dev/null; then 43 echo "$0: firmware shouldn't have loaded" >&2 46 if diff -q "$FW" /dev/test_firmware >/dev/null ; then [all …]
|
/Linux-v5.15/drivers/gpu/drm/nouveau/nvkm/core/ |
D | firmware.c | 23 #include <core/firmware.h> 27 const char *name, int ver, const struct firmware **pfw) in nvkm_firmware_load_name() argument 32 snprintf(path, sizeof(path), "%s%s", base, name); in nvkm_firmware_load_name() 42 const char *name, int ver, struct nvkm_blob *blob) in nvkm_firmware_load_blob() argument 44 const struct firmware *fw; in nvkm_firmware_load_blob() 47 ret = nvkm_firmware_load_name(subdev, base, name, ver, &fw); in nvkm_firmware_load_blob() 49 blob->data = kmemdup(fw->data, fw->size, GFP_KERNEL); in nvkm_firmware_load_blob() 50 blob->size = fw->size; in nvkm_firmware_load_blob() 52 if (!blob->data) in nvkm_firmware_load_blob() 53 return -ENOMEM; in nvkm_firmware_load_blob() [all …]
|
/Linux-v5.15/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-v5.15/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> 31 #define TEST_FIRMWARE_NAME "test-firmware.bin" 36 static const struct firmware *test_firmware; 42 const struct firmware *fw; 43 const char *name; member [all …]
|
/Linux-v5.15/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() 29 * device_property_present - check if a property of a device is present 31 * @propname: Name of the property 33 * Check if property @propname is present in the device firmware description. 42 * fwnode_property_present - check if a property of a firmware node is present 43 * @fwnode: Firmware node whose property to check 44 * @propname: Name of the property [all …]
|
/Linux-v5.15/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-v5.15/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 28 /sys/firmware/qemu_fw_cfg/ 32 /sys/firmware/qemu_fw_cfg/rev 40 /sys/firmware/qemu_fw_cfg/by_key/32 41 /sys/firmware/qemu_fw_cfg/by_key/33 42 /sys/firmware/qemu_fw_cfg/by_key/34 [all …]
|
D | sysfs-firmware-sgi_uv | 1 What: /sys/firmware/sgi_uv/ 5 The /sys/firmware/sgi_uv directory contains information 8 Under that directory are a number of read-only attributes:: 18 is used to select arch-dependent addresses and features. 50 The /sys/firmware/sgi_uv directory also contains two directories:: 56 a UV Hub visible to the BIOS. Each hub object's name is appended by a 57 unique ordinal value (ex. /sys/firmware/sgi_uv/hubs/hub_5) 59 Each hub object directory contains a number of read-only attributes:: 63 name 69 If a cnode value is not applicable, the value returned will be -1. [all …]
|
/Linux-v5.15/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-v5.15/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-v5.15/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 …]
|
D | devlink-flash.rst | 1 .. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 9 The ``devlink-flash`` API allows updating device firmware. It replaces the 10 older ``ethtool-flash`` mechanism, and doesn't require taking any 13 $ devlink dev flash pci/0000:05:00.0 file flash-boot.bin 15 Note that the file name is a path relative to the firmware loading path 16 (usually ``/lib/firmware/``). Drivers may send status updates to inform 22 The ``devlink-flash`` command allows optionally specifying a mask indicating 26 .. list-table:: List of overwrite mask bits 29 * - Name 30 - Description [all …]
|
D | nfp.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 .. list-table:: Generic parameters implemented 15 * - Name 16 - Mode 17 * - ``fw_load_policy`` 18 - permanent 19 * - ``reset_dev_on_drv_probe`` 20 - permanent 27 .. list-table:: devlink info versions implemented 30 * - Name [all …]
|
D | bnxt.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 .. list-table:: Generic parameters implemented 15 * - Name 16 - Mode 17 * - ``enable_sriov`` 18 - Permanent 19 * - ``ignore_ari`` 20 - Permanent 21 * - ``msix_vec_per_pf_max`` 22 - Permanent [all …]
|
/Linux-v5.15/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-v5.15/drivers/soc/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 packet.domain = rpi_domain->domain; in rpi_firmware_set_power() 57 return rpi_firmware_property(rpi_domain->fw, in rpi_firmware_set_power() 58 rpi_domain->old_interface ? in rpi_firmware_set_power() 81 int xlate_index, const char *name) in rpi_common_init_power_domain() argument 83 struct rpi_power_domain *dom = &rpi_domains->domains[xlate_index]; in rpi_common_init_power_domain() [all …]
|
/Linux-v5.15/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-v5.15/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 …]
|
/Linux-v5.15/drivers/platform/x86/ |
D | touchscreen_dmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 21 /* The EFI embedded-fw code expects this to be the first member! */ 30 PROPERTY_ENTRY_U32("touchscreen-size-x", 1665), 31 PROPERTY_ENTRY_U32("touchscreen-size-y", 1140), 32 PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"), 33 PROPERTY_ENTRY_BOOL("silead,home-button"), 34 PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-chuwi-hi8.fw"), 44 PROPERTY_ENTRY_U32("touchscreen-size-x", 1728), 45 PROPERTY_ENTRY_U32("touchscreen-size-y", 1148), 46 PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"), [all …]
|
/Linux-v5.15/drivers/remoteproc/ |
D | remoteproc_core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 * Ohad Ben-Cohen <ohad@wizery.com> 12 * Suman Anna <s-anna@ti.com> 26 #include <linux/dma-map-ops.h> 27 #include <linux/dma-mapping.h> 28 #include <linux/dma-direct.h> /* XXX: pokes into bus_dma_range */ 29 #include <linux/firmware.h> 98 return -ENOSYS; in rproc_iommu_fault() 104 struct device *dev = rproc->dev.parent; in rproc_enable_iommu() 107 if (!rproc->has_iommu) { in rproc_enable_iommu() [all …]
|