On 01/24/17 23:17, Kevin O'Connor wrote:
On Fri, Jan 20, 2017 at 02:33:14PM -0800,
From: Ben Warren <ben(a)skyportsystems.com>
This patch set adds the capability to write to QEMU across the DMA link and
adds a higher-level command to allocate a fw_cfg file and write its address
back to another, writeable fw_cfg file.
The initial use case is for Windows VM
Generation ID, where QEMU needs to change the contents of fw_cfg
data at runtime, while still having BIOS allocate and manage the memory.
Thanks. The patches look fine to me. If no one else comments, I'll
commit when ALLOCATE_RET_ADDR is accepted in QEMU.
Thanks -- we're presently discussing that patch:
I think an update will be necessary for the SeaBIOS series. The fw_cfg
file that is supposed to receive the allocation address -- that is, the
"address file" --, for the allocated / downloaded fw_cfg file, should
*not* itself be allocated / downloaded.
In the current version of the SeaBIOS series, qemu_cfg_write_file()
takes a "struct romfile_s *file" parameter, for identifying the fw_cfg
file to write to. And patch #2 locates that file with romfile_loader_find().
However, romfile_loader_find() should *not* know about the address file
-- romfile_loader_find() can locate files which have been allocated /
downloaded, but the address file is not such a file.
Instead, the 2nd parameter of qemu_cfg_write_file() should be determined
by calling romfile_find(), with the name of the address file. This will
locate the right entry simply from the fw_cfg file directory. (See
qemu_cfg_init() -> qemu_romfile_add() -> romfile_add().)
Sorry about pointing this out somewhat late, but I got around reviewing
Ben's QEMU series only this dawn.