On 22/09/2021 16:01, Roger Pau Monné wrote:
> On Tue, Sep 21, 2021 at 09:18:05AM +0200, Jan Beulich wrote:
>> --- a/xen/include/public/arch-x86/hvm/start_info.h
>> +++ b/xen/include/public/arch-x86/hvm/start_info.h
>> @@ -33,7 +33,7 @@
>> * | magic | Contains the magic value XEN_HVM_START_MAGIC_VALUE
>> * | | ("xEn3" with the 0x80 bit of the "E" set).
>> * 4 +----------------+
>> - * | version | Version of this structure. Current version is 1.
>> New
>> + * | version | Version of this structure. Current version is 2.
>> New
>> * | | versions are guaranteed to be backwards-compatible.
>> * 8 +----------------+
>> * | flags | SIF_xxx flags.
>> @@ -55,7 +55,15 @@
>> * | | if there is no memory map being provided. Only
>> * | | present in version 1 and newer of the structure.
>> * 52 +----------------+
>> - * | reserved | Version 1 and newer only.
>> + * | vga_info.offset| Offset of struct dom0_vga_console_info from base of
> I'm not sure we are supposed to reference external structures like
> that. We took a lot of care to not depend on other headers, and to
> make this as agnostic as possible (IIRC KVM is also capable of using
> the PVH entry point natively, and hence depends on this header).
Absolutely correct. C is not an acceptable ABI description.
Furthermore, dom0_vga_console_info is a bad ABI to start with, as
demonstrated by the multiple problems we've had extending it in the past.
The MB1/2 framebuffer information would be a rather better example to
follow, but we'll surely need to pass the EDID string too (at least in
the case that there aren't EFI runtime services to use).
~Andrew