fw_cfg: Adopt /opt/RFQDN convention
FW CFG's primary user is QEMU, which uses it to expose configuration information (in the widest sense) to Firmware. Thus the name FW CFG. FW CFG can also be used by others for their own purposes. QEMU is merely acting as transport then. Names starting with opt/ are reserved for such uses. There is no provision, however, to guide safe sharing among different such users. Fix that, loosely following QMP precedence: names should start with opt/RFQDN/, where RFQDN is a reverse fully qualified domain name you control. Based on a more ambitious patch from Michael Tsirkin. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Gabriel L. Somlo <somlo@cmu.edu> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Gabriel Somlo <somlo@cmu.edu> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
ef5d5641f5
commit
63d3145aad
@ -210,29 +210,27 @@ the following syntax:
|
|||||||
|
|
||||||
-fw_cfg [name=]<item_name>,file=<path>
|
-fw_cfg [name=]<item_name>,file=<path>
|
||||||
|
|
||||||
where <item_name> is the fw_cfg item name, and <path> is the location
|
Or
|
||||||
on the host file system of a file containing the data to be inserted.
|
|
||||||
|
|
||||||
Small enough items may be provided directly as strings on the command
|
|
||||||
line, using the syntax:
|
|
||||||
|
|
||||||
-fw_cfg [name=]<item_name>,string=<string>
|
-fw_cfg [name=]<item_name>,string=<string>
|
||||||
|
|
||||||
The terminating NUL character of the content <string> will NOT be
|
See QEMU man page for more documentation.
|
||||||
included as part of the fw_cfg item data, which is consistent with
|
|
||||||
the absence of a NUL terminator for items inserted via the file option.
|
|
||||||
|
|
||||||
Both <item_name> and, if applicable, the content <string> are passed
|
Using item_name with plain ASCII characters only is recommended.
|
||||||
through by QEMU without any interpretation, expansion, or further
|
|
||||||
processing. Any such processing (potentially performed e.g., by the shell)
|
|
||||||
is outside of QEMU's responsibility; as such, using plain ASCII characters
|
|
||||||
is recommended.
|
|
||||||
|
|
||||||
NOTE: Users *SHOULD* choose item names beginning with the prefix "opt/"
|
Item names beginning with "opt/" are reserved for users. QEMU will
|
||||||
when using the "-fw_cfg" command line option, to avoid conflicting with
|
never create entries with such names unless explicitly ordered by the
|
||||||
item names used internally by QEMU. For instance:
|
user.
|
||||||
|
|
||||||
-fw_cfg name=opt/my_item_name,file=./my_blob.bin
|
To avoid clashes among different users, it is strongly recommended
|
||||||
|
that you use names beginning with opt/RFQDN/, where RFQDN is a reverse
|
||||||
|
fully qualified domain name you control. For instance, if SeaBIOS
|
||||||
|
wanted to define additional names, the prefix "opt/org.seabios/" would
|
||||||
|
be appropriate.
|
||||||
|
|
||||||
Similarly, QEMU developers *SHOULD NOT* use item names prefixed with
|
For historical reasons, "opt/ovmf/" is reserved for OVMF firmware.
|
||||||
"opt/" when inserting items programmatically, e.g. via fw_cfg_add_file().
|
|
||||||
|
Prefix "opt/org.qemu/" is reserved for QEMU itself.
|
||||||
|
|
||||||
|
Use of names not beginning with "opt/" is potentially dangerous and
|
||||||
|
entirely unsupported. QEMU will warn if you try.
|
||||||
|
@ -2864,18 +2864,32 @@ ETEXI
|
|||||||
|
|
||||||
DEF("fw_cfg", HAS_ARG, QEMU_OPTION_fwcfg,
|
DEF("fw_cfg", HAS_ARG, QEMU_OPTION_fwcfg,
|
||||||
"-fw_cfg [name=]<name>,file=<file>\n"
|
"-fw_cfg [name=]<name>,file=<file>\n"
|
||||||
" add named fw_cfg entry from file\n"
|
" add named fw_cfg entry with contents from file\n"
|
||||||
"-fw_cfg [name=]<name>,string=<str>\n"
|
"-fw_cfg [name=]<name>,string=<str>\n"
|
||||||
" add named fw_cfg entry from string\n",
|
" add named fw_cfg entry with contents from string\n",
|
||||||
QEMU_ARCH_ALL)
|
QEMU_ARCH_ALL)
|
||||||
STEXI
|
STEXI
|
||||||
|
|
||||||
@item -fw_cfg [name=]@var{name},file=@var{file}
|
@item -fw_cfg [name=]@var{name},file=@var{file}
|
||||||
@findex -fw_cfg
|
@findex -fw_cfg
|
||||||
Add named fw_cfg entry from file. @var{name} determines the name of
|
Add named fw_cfg entry with contents from file @var{file}.
|
||||||
the entry in the fw_cfg file directory exposed to the guest.
|
|
||||||
|
|
||||||
@item -fw_cfg [name=]@var{name},string=@var{str}
|
@item -fw_cfg [name=]@var{name},string=@var{str}
|
||||||
Add named fw_cfg entry from string.
|
Add named fw_cfg entry with contents from string @var{str}.
|
||||||
|
|
||||||
|
The terminating NUL character of the contents of @var{str} will not be
|
||||||
|
included as part of the fw_cfg item data. To insert contents with
|
||||||
|
embedded NUL characters, you have to use the @var{file} parameter.
|
||||||
|
|
||||||
|
The fw_cfg entries are passed by QEMU through to the guest.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
@example
|
||||||
|
-fw_cfg name=opt/com.mycompany/blob,file=./my_blob.bin
|
||||||
|
@end example
|
||||||
|
creates an fw_cfg entry named opt/com.mycompany/blob with contents
|
||||||
|
from ./my_blob.bin.
|
||||||
|
|
||||||
ETEXI
|
ETEXI
|
||||||
|
|
||||||
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
|
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
|
||||||
|
Loading…
Reference in New Issue
Block a user