Re: [edk2] [PATCH 3/3] OvmfPkg: AcpiPlatformDxe: don't rely on unstable QEMU interface

Subject: Re: [edk2] [PATCH 3/3] OvmfPkg: AcpiPlatformDxe: don't rely on unstable QEMU interface

From: Laszlo Ersek <>

To: Jordan Justen <>

Date: 2014-06-12 19:05:29

On 05/27/14 13:18, Laszlo Ersek wrote:
> On 05/24/14 09:39, Jordan Justen wrote:
>> On Tue, May 20, 2014 at 3:52 PM, Laszlo Ersek  wrote:
>>> The fw_cfg file "etc/acpi/tables" is not a stable guest interface -- QEMU
>>> could rename it in the future, and/or introduce additional fw_cfg files
>>> with ACPI payload. Only the higher-level "etc/table-loader" file is
>>> considered stable, which contains a sequence of loader/linker commands, to
>>> be executed by the firmware.
>> I'm not sure I understand the term 'link' being used in this context.
> Linking in this context means setting pointers in one fw_cfg file to
> another (incrementing the prior, fw_cfg file-relative (==offset) value
> of the pointer with the base address of the target file, thereby making
> the pointer absolute).
> The word "link" is used as in "linked list"; tables in the fw_cfg files
> are linked (connected) together by pointers. I think "linked list" is
> common term, but I'm not a native speaker.
> Also, more technically, relocation of object files (updating target
> addresses based on relocation entries) is part of what a binary linker
> does, and a very similar thing happens here. QEMU_LOADER_ADD_POINTER is
> actually a relocation entry, and when the client code processes them
> (which this patchset doesn't do, but SeaBIOS does), it is "linking".
>> Executed sounds a bit odd too.
>> Essentially fw-cfg allows OVMF to read some blobs from QEMU and plop
>> them down in guest memory.
> Linking is important in SeaBIOS and it is part of the interface, we just
> process the data a bit differently (without interpreting the
> QEMU_LOADER_ADD_POINTER ("linker") commands), because the full interface
> doesn't match OVMF very well.
>> So, loading, tables, blobs and maybe
>> interpret are terms that make sense to me. But I think link and
>> execute are confusing (to say the least).
> I can replace "execute" with "interpret". And, although I think "link"
> is appropriate as far as the command proper goes, it's just one word in
> the commit message and I can simply remove it.
>> Something like a network interface 'link' status makes sense, and is
>> well known in that context.
> Other than this, do you find the code acceptable? (I'm asking to
> determine the scope of changes in v2 -- just commit msg wording or code
> tweaks too.)



HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
edk2-devel mailing list