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.txt"
		in the QEMU source tree.

		**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.
