Documentation/ABI/testing/sysfs-firmware-qemu_fw_cfg

Source file repositories/reference/linux-study-clean/Documentation/ABI/testing/sysfs-firmware-qemu_fw_cfg

File Facts

System
Linux kernel
Corpus path
Documentation/ABI/testing/sysfs-firmware-qemu_fw_cfg
Extension
[no extension]
Size
3914 bytes
Lines
104
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: Documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

What:		/sys/firmware/qemu_fw_cfg/
Date:		August 2015
Contact:	Gabriel Somlo <somlo@cmu.edu>
Description:
		Several different architectures supported by QEMU (x86, arm,
		sun4*, ppc/mac) are provisioned with a firmware configuration
		(fw_cfg) device, originally intended as a way for the host to
		provide configuration data to the guest firmware. Starting
		with QEMU v2.4, arbitrary fw_cfg file entries may be specified
		by the user on the command line, which makes fw_cfg additionally
		useful as an out-of-band, asynchronous mechanism for providing
		configuration data to the guest userspace.

		The authoritative guest-side hardware interface documentation
		to the fw_cfg device can be found in "docs/specs/fw_cfg.rst"
		in the QEMU source tree, or online at:
		https://qemu-project.gitlab.io/qemu/specs/fw_cfg.html

		**SysFS fw_cfg Interface**

		The fw_cfg sysfs interface described in this document is only
		intended to display discoverable blobs (i.e., those registered
		with the file directory), as there is no way to determine the
		presence or size of "legacy" blobs (with selector keys between
		0x0002 and 0x0018) programmatically.

		All fw_cfg information is shown under:

			/sys/firmware/qemu_fw_cfg/

		The only legacy blob displayed is the fw_cfg device revision:

			/sys/firmware/qemu_fw_cfg/rev

		**Discoverable fw_cfg blobs by selector key**

		All discoverable blobs listed in the fw_cfg file directory are
		displayed as entries named after their unique selector key
		value, e.g.:

			/sys/firmware/qemu_fw_cfg/by_key/32
			/sys/firmware/qemu_fw_cfg/by_key/33
			/sys/firmware/qemu_fw_cfg/by_key/34
			...

		Each such fw_cfg sysfs entry has the following values exported
		as attributes:

		====	  ====================================================
		name	  The 56-byte nul-terminated ASCII string used as the
			  blob's 'file name' in the fw_cfg directory.
		size	  The length of the blob, as given in the fw_cfg
			  directory.
		key	  The value of the blob's selector key as given in the
			  fw_cfg directory. This value is the same as used in
			  the parent directory name.
		raw	  The raw bytes of the blob, obtained by selecting the
			  entry via the control register, and reading a number
			  of bytes equal to the blob size from the data
			  register.
		====	  ====================================================

		**Listing fw_cfg blobs by file name**

		While the fw_cfg device does not impose any specific naming
		convention on the blobs registered in the file directory,
		QEMU developers have traditionally used path name semantics
		to give each blob a descriptive name. For example::

			"bootorder"

Annotation

Implementation Notes