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"
			"genroms/kvmvapic.bin"
			"etc/e820"
			"etc/boot-fail-wait"
			"etc/system-states"
			"etc/table-loader"
			"etc/acpi/rsdp"
			"etc/acpi/tables"
			"etc/smbios/smbios-tables"
			"etc/smbios/smbios-anchor"
			...

		In addition to the listing by unique selector key described
		above, the fw_cfg sysfs driver also attempts to build a tree
		of directories matching the path name components of fw_cfg
		blob names, ending in symlinks to the by_key entry for each
		"basename", as illustrated below (assume current directory is
		/sys/firmware)::

		    qemu_fw_cfg/by_name/bootorder -> ../by_key/38
		    qemu_fw_cfg/by_name/etc/e820 -> ../../by_key/35
		    qemu_fw_cfg/by_name/etc/acpi/rsdp -> ../../../by_key/41
		    ...

		Construction of the directory tree and symlinks is done on a
		"best-effort" basis, as there is no guarantee that components
		of fw_cfg blob names are always "well behaved". I.e., there is
		the possibility that a symlink (basename) will conflict with
		a dirname component of another fw_cfg blob, in which case the
		creation of the offending /sys/firmware/qemu_fw_cfg/by_name
		entry will be skipped.

		The authoritative list of entries will continue to be found
		under the /sys/firmware/qemu_fw_cfg/by_key directory.
