From nobody Sun Feb 8 23:41:00 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+86979+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+86979+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1645712927; cv=none; d=zohomail.com; s=zohoarc; b=XBeLhm/jIzrHOlia8fuLOPdfMEFJOtSewnuH0TXwd3NWPUdO5rO/dyIbRRhszBBF3T+xejXkvGLW4OLwAd56xBAMYlv1Y2W8pbDafculh/ek0IRQfWxGUTwLS/a4QbPVG/XM//hisFDtCX5kaWybeyoiUacoOJAI3QdSgFyLCnI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645712927; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=gsLyyq6Bkm9AEuUd3YBXeqjYFil/IKNOaGkZ2xLaatQ=; b=DN2a8Io+U/y8JcKVnGGJAgtj1+IeUaltKDmozZY+sUf0q8LC4zCePrw4uMhJL6ngjbOMT2NmH87diV4IWN1T9cglis/WwIJL1c6i4iWAHPW/UemZCiNWzbAheB0x5yP1be7aibjsIOxLOcB76tCIMzIFYTdhwvlkuMCiiPCWbKM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+86979+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1645712927882391.90099726855544; Thu, 24 Feb 2022 06:28:47 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id m3jjYY1788612xs0qkNtd9PX; Thu, 24 Feb 2022 06:28:47 -0800 X-Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web08.10910.1645712926893824814 for ; Thu, 24 Feb 2022 06:28:47 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10267"; a="252437765" X-IronPort-AV: E=Sophos;i="5.90,134,1643702400"; d="scan'208";a="252437765" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2022 06:28:46 -0800 X-IronPort-AV: E=Sophos;i="5.90,134,1643702400"; d="scan'208";a="506334950" X-Received: from kalebaul-mobl.ger.corp.intel.com (HELO sboeuf-mobl.home) ([10.252.24.105]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2022 06:28:44 -0800 From: "Boeuf, Sebastien" To: devel@edk2.groups.io Cc: jiewen.yao@intel.com, jordan.l.justen@intel.com, kraxel@redhat.com, sebastien.boeuf@intel.com Subject: [edk2-devel] [PATCH v3 2/7] OvmfPkg: Xen: Use a new fdf include for the PVH ELF header Date: Thu, 24 Feb 2022 15:28:21 +0100 Message-Id: <1812e28c757eccc6d8cae17e2f45c9ffe5bd12e1.1645712595.git.sebastien.boeuf@intel.com> In-Reply-To: References: MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,sebastien.boeuf@intel.com X-Gm-Message-State: tLwDmDOOhgX0mE2s2XkNzG65x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1645712927; bh=Y+IbBk3CoeH5l0x3aFOJVOIYL2UIi2sJ9TkZhqHVqm0=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=r1dDX6elcjl9Otq+K/AFs+b1trnyJPvvj/v8BjJ6/LAtKKOtxeiRuIDJ9BJuwo6q0nO wIJr0p3Lh5XxgeG842rzvzg3H+ZXRhhZO6i6TeH1IukPhfk8ubyT9Jk6FkzcDHi1S0rmj ilwoNSQXp2l0OHW5xHVd+WJIWWnR5+1ZJQo= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1645712928914100001 Content-Type: text/plain; charset="utf-8" From: Sebastien Boeuf Instead of having the PVH ELF header part of the fdf file directly, we move it to a dedicated include file. This is the first step in automating the generation of the header. Signed-off-by: Sebastien Boeuf Acked-by: Gerd Hoffmann --- OvmfPkg/OvmfXen.fdf | 57 ++------------------------------ OvmfPkg/XenElfHeader.fdf.inc | 64 ++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 55 deletions(-) create mode 100644 OvmfPkg/XenElfHeader.fdf.inc diff --git a/OvmfPkg/OvmfXen.fdf b/OvmfPkg/OvmfXen.fdf index a6acf3b835..2e67db5d32 100644 --- a/OvmfPkg/OvmfXen.fdf +++ b/OvmfPkg/OvmfXen.fdf @@ -31,61 +31,8 @@ NumBlocks =3D $(FW_BLOCKS) !if $(FD_SIZE_IN_KB) =3D=3D 4096 0x00000000|0x00040000 !endif -DATA =3D { - # - # This hex array have been generated by OvmfPkg/OvmfXenElfHeaderGenerato= r.c - # and copied manually. - # - # ELF file header - 0x7f, 0x45, 0x4c, 0x46, # e_ident[0..3]: Magic number - 0x01, # File class: 32-bit objects - 0x01, # Data encoding: 2's complement, little endian - 0x01, # File version - 0x03, # OS ABI identification: Object uses GNU ELF extensions - 0x00, # ABI version - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # e_ident[EI_PAD...] - 0x02, 0x00, # e_type =3D Executable file - 0x03, 0x00, # e_machine =3D Intel 80386 - 0x01, 0x00, 0x00, 0x00, # e_version - 0xd0, 0xff, 0x2f, 0x00, # e_entry: Entry point virtual address - 0x34, 0x00, 0x00, 0x00, # e_phoff: Program header table file offset - 0x00, 0x00, 0x00, 0x00, # e_shoff: Section header table file offset - 0x00, 0x00, 0x00, 0x00, # e_flags: Processor-specific flags - 0x34, 0x00, # e_ehsize: ELF header size - 0x20, 0x00, # e_phentsize: Program header table entry size - 0x02, 0x00, # e_phnum: Program header table entry count - 0x00, 0x00, # e_shentsize: Section header table entry size - 0x00, 0x00, # e_shnum: Section header table entry count - 0x00, 0x00, # e_shstrndx - - # ELF Program segment headers - # - Load segment - 0x01, 0x00, 0x00, 0x00, # p_type =3D Loadable program segment - 0x00, 0x00, 0x00, 0x00, # p_offset - 0x00, 0x00, 0x10, 0x00, # p_vaddr: Segment virtual address - 0x00, 0x00, 0x10, 0x00, # p_paddr: Segment physical address - 0x00, 0x00, 0x20, 0x00, # p_filesz: Segment size in file - 0x00, 0x00, 0x20, 0x00, # p_memsz: Segment size in memory - 0x07, 0x00, 0x00, 0x00, # p_flags =3D Segment is executable | writable |= readable - 0x00, 0x00, 0x00, 0x00, # p_align - # - ELFNOTE segment - 0x04, 0x00, 0x00, 0x00, # p_type =3D PT_NOTE - 0x74, 0x00, 0x00, 0x00, # p_offset =3D point to XEN_ELFNOTE_PHYS32_ENTRY= below - 0x74, 0x00, 0x10, 0x00, - 0x74, 0x00, 0x10, 0x00, - 0x14, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, # p_flags =3D Segment is readable - 0x00, 0x00, 0x00, 0x00, - - # XEN_ELFNOTE_PHYS32_ENTRY - 0x04, 0x00, 0x00, 0x00, # name size - 0x04, 0x00, 0x00, 0x00, # desc size - 0x12, 0x00, 0x00, 0x00, # type =3D XEN_ELFNOTE_PHYS32_ENTRY - 0x58, 0x65, 0x6e, 0x00, # name =3D "Xen" - 0xd0, 0xff, 0x2f, 0x00, # desc: PVH entry point - 0x00 -} + +!include XenElfHeader.fdf.inc =20 !if ($(FD_SIZE_IN_KB) =3D=3D 1024) || ($(FD_SIZE_IN_KB) =3D=3D 2048) 0x0000e000|0x00001000 diff --git a/OvmfPkg/XenElfHeader.fdf.inc b/OvmfPkg/XenElfHeader.fdf.inc new file mode 100644 index 0000000000..dbc1305d25 --- /dev/null +++ b/OvmfPkg/XenElfHeader.fdf.inc @@ -0,0 +1,64 @@ +## @file +# FDF include file that defines a PVH ELF header. +# +# Copyright (c) 2022, Intel Corporation. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +DATA =3D { + # + # This hex array have been generated by OvmfPkg/OvmfXenElfHeaderGenerato= r.c + # and copied manually. + # + # ELF file header + 0x7f, 0x45, 0x4c, 0x46, # e_ident[0..3]: Magic number + 0x01, # File class: 32-bit objects + 0x01, # Data encoding: 2's complement, little endian + 0x01, # File version + 0x03, # OS ABI identification: Object uses GNU ELF extensions + 0x00, # ABI version + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # e_ident[EI_PAD...] + 0x02, 0x00, # e_type =3D Executable file + 0x03, 0x00, # e_machine =3D Intel 80386 + 0x01, 0x00, 0x00, 0x00, # e_version + 0xd0, 0xff, 0x2f, 0x00, # e_entry: Entry point virtual address + 0x34, 0x00, 0x00, 0x00, # e_phoff: Program header table file offset + 0x00, 0x00, 0x00, 0x00, # e_shoff: Section header table file offset + 0x00, 0x00, 0x00, 0x00, # e_flags: Processor-specific flags + 0x34, 0x00, # e_ehsize: ELF header size + 0x20, 0x00, # e_phentsize: Program header table entry size + 0x02, 0x00, # e_phnum: Program header table entry count + 0x00, 0x00, # e_shentsize: Section header table entry size + 0x00, 0x00, # e_shnum: Section header table entry count + 0x00, 0x00, # e_shstrndx + + # ELF Program segment headers + # - Load segment + 0x01, 0x00, 0x00, 0x00, # p_type =3D Loadable program segment + 0x00, 0x00, 0x00, 0x00, # p_offset + 0x00, 0x00, 0x10, 0x00, # p_vaddr: Segment virtual address + 0x00, 0x00, 0x10, 0x00, # p_paddr: Segment physical address + 0x00, 0x00, 0x20, 0x00, # p_filesz: Segment size in file + 0x00, 0x00, 0x20, 0x00, # p_memsz: Segment size in memory + 0x07, 0x00, 0x00, 0x00, # p_flags =3D Segment is executable | writable |= readable + 0x00, 0x00, 0x00, 0x00, # p_align + # - ELFNOTE segment + 0x04, 0x00, 0x00, 0x00, # p_type =3D PT_NOTE + 0x74, 0x00, 0x00, 0x00, # p_offset =3D point to XEN_ELFNOTE_PHYS32_ENTRY= below + 0x74, 0x00, 0x10, 0x00, + 0x74, 0x00, 0x10, 0x00, + 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, # p_flags =3D Segment is readable + 0x00, 0x00, 0x00, 0x00, + + # XEN_ELFNOTE_PHYS32_ENTRY + 0x04, 0x00, 0x00, 0x00, # name size + 0x04, 0x00, 0x00, 0x00, # desc size + 0x12, 0x00, 0x00, 0x00, # type =3D XEN_ELFNOTE_PHYS32_ENTRY + 0x58, 0x65, 0x6e, 0x00, # name =3D "Xen" + 0xd0, 0xff, 0x2f, 0x00, # desc: PVH entry point + 0x00 +} --=20 2.32.0 --------------------------------------------------------------------- Intel Corporation SAS (French simplified joint stock company) Registered headquarters: "Les Montalets"- 2, rue de Paris,=20 92196 Meudon Cedex, France Registration Number: 302 456 199 R.C.S. NANTERRE Capital: 4,572,000 Euros This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#86979): https://edk2.groups.io/g/devel/message/86979 Mute This Topic: https://groups.io/mt/89365706/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-