[SeaBIOS] [Qemu-devel] allocation zone extensions for the firmware linker/loader

Stefan Berger stefanb at linux.vnet.ibm.com
Sat Jun 3 16:26:27 CEST 2017


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




More information about the SeaBIOS mailing list