On 06/02/2017 07:20 PM, Laszlo Ersek wrote:
On 06/02/17 18:30, Michael S. Tsirkin wrote:
On Fri, Jun 02, 2017 at 05:45:21PM +0200, Laszlo Ersek wrote:
Hi,
this message is cross-posted to three lists (qemu, seabios, edk2). I'll follow up with three patch series, one series for each project. I'll cross-post all of the patches as well, but I'll add the project name in the "bag of tags" in the subject lines.
The QEMU series introduces two extensions to the ALLOCATE firmware linker/loader command.
One extension is a new allocation zone, with value 3, for allowing the firmware to allocate the fw_cfg blobs in 64-bit address space.
Seems to make sense. I guess it's safe to do this if no pointers to this table are 32 bit, right?
That's right. For example, the TCPA patch (6 of 7) in the QEMU series does this, because the ACPI_BUILD_TPMLOG_FILE is only referenced by a 64-bit pointer.
Is there a chance we'll ever be able to use this on PC assuming the need to support 32 bit guests?
Well, sticking with the TCPA example, if an ACPI table defines *only* an 8-byte pointer to some memory area, that seems to preclude support for 32-bit guests already, generally speaking, no?
I just tested this, giving 8G of memory to a VM and running i386 Fedora in it. The memory allocated for the TCPA log seems to be in 32bit memory, so not out of reach of i386 guests. I guess it's important what the firmware does with it, whether it strictly follows the 64bit and allocates memory as far up as possible or provides compatibility. SeaBIOS (1.10.0) seems to do the right thing.
Stefan