From nobody Fri May 17 10:44:17 2024 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+86912+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+86912+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1645635356; cv=none; d=zohomail.com; s=zohoarc; b=kVgjKiFnmxKeAzBR5BZkWaWfVYInPV/x+6zzLh40HikdN7QyXgPGP+Q4NusBU54EeS/M8hqxar/keFQ22dJvgCkoazhXjubA3zHu38kxDlz/659qSZXONX66RoMq/44XGrmD8fFriKAhS+mqi7jNh4/fMN83UlOAND8pjYVIJ6Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645635356; 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=koiahtD9QPfn4MlCMjvxMzMohCmrVMYLxvGnwxx2Grc=; b=ksTcZwSAVQC1qomf5feHa7tbGcKoe/1KGx/+mF1YF8ZkeaOBAaby6+eLh3FR4sprRKEcgnCZJOy7RdrHW1V91MFz7BXzIoKlpPGNfVpw7504o9W1JLD8qlAwkEMdKa7wOvHxVezZlz2RLGcYOGed8CE/pS3ybwlEVeYjPa2LQtc= 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+86912+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 1645635356270489.9888060722973; Wed, 23 Feb 2022 08:55:56 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id JcxlYY1788612x8jP8LnkWkD; Wed, 23 Feb 2022 08:55:55 -0800 X-Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web11.10267.1645635350141524745 for ; Wed, 23 Feb 2022 08:55:50 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10267"; a="232642668" X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="232642668" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:51:52 -0800 X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="505986316" X-Received: from lobrie3x-mobl4.ger.corp.intel.com (HELO sboeuf-mobl.home) ([10.252.24.99]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:51:49 -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 v2 1/5] OvmfPkg: Make the Xen ELF header generator more flexible Date: Wed, 23 Feb 2022 17:51:26 +0100 Message-Id: <28aafabd6d684650e526fbc42a28cef2c90a9e86.1645634879.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: L7ZdVpBPkehu3wgfyKvrLYzrx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1645635355; bh=mBCXKEFB9fpBsJRzSKpQeZgTsU3PR8eGoR5b9di391A=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=oMlaybsQV0XTXqHswOxtrt98DPpm2cR6wT7pframOvDN9rDBG6todmFmOrxRuXtR4Pt wbhzAXkezbD1LIUKnUwTu1Jj2BOUoesmhgOFDMrF1Dv4FZDxd5Lk/9bojV7zA/EBJutcQ am7BuJgF6MuhMXuJohT1Q9eGF7hY4NfQMCU= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1645635357301100003 Content-Type: text/plain; charset="utf-8" From: Sebastien Boeuf Adding some flexibility to the program so that other targets can use it if needed. An optional size parameter is added so that we can provide the expected blob size of the generated binary. A global define is added so that we can choose at build time if we want to use 32-bit or 64-bit bases structures. The default behavior isn't modified. Signed-off-by: Sebastien Boeuf Acked-by: Gerd Hoffmann --- OvmfPkg/OvmfXenElfHeaderGenerator.c | 63 ++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/OvmfPkg/OvmfXenElfHeaderGenerator.c b/OvmfPkg/OvmfXenElfHeader= Generator.c index 489060cdad..a054c77cda 100644 --- a/OvmfPkg/OvmfXenElfHeaderGenerator.c +++ b/OvmfPkg/OvmfXenElfHeaderGenerator.c @@ -12,6 +12,7 @@ #include "elf.h" #include "stdio.h" #include "stddef.h" +#include "stdlib.h" =20 void print_hdr ( @@ -38,7 +39,8 @@ typedef struct { =20 int main ( - void + int argc, + char *argv[] ) { /* FW_SIZE */ @@ -47,23 +49,46 @@ main ( uint32_t ovmf_base_address =3D 0x00100000; /* Xen PVH entry point */ uint32_t ovmfxen_pvh_entry_point =3D ovmf_base_address + ovmf_blob_size= - 0x30; - size_t offset_into_file =3D 0; + size_t offset_into_file =3D 0; + char *endptr, *str; + long param; + + /* Parse the size parameter */ + if (argc > 1) { + str =3D argv[1]; + param =3D strtol (str, &endptr, 10); + if (endptr !=3D str) { + ovmf_blob_size =3D (size_t)param; + } + } =20 /* ELF file header */ + #ifdef PVH64 + Elf64_Ehdr hdr =3D { + #else Elf32_Ehdr hdr =3D { - .e_ident =3D ELFMAG, - .e_type =3D ET_EXEC, - .e_machine =3D EM_386, - .e_version =3D EV_CURRENT, - .e_entry =3D ovmfxen_pvh_entry_point, - .e_flags =3D R_386_NONE, - .e_ehsize =3D sizeof (hdr), + #endif + .e_ident =3D ELFMAG, + .e_type =3D ET_EXEC, + .e_machine =3D EM_386, + .e_version =3D EV_CURRENT, + .e_entry =3D ovmfxen_pvh_entry_point, + .e_flags =3D R_386_NONE, + .e_ehsize =3D sizeof (hdr), + #ifdef PVH64 + .e_phentsize =3D sizeof (Elf64_Phdr), + #else .e_phentsize =3D sizeof (Elf32_Phdr), + #endif }; =20 offset_into_file +=3D sizeof (hdr); =20 - hdr.e_ident[EI_CLASS] =3D ELFCLASS32; + #ifdef PVH64 + hdr.e_ident[EI_CLASS] =3D ELFCLASS64; + #else + hdr.e_ident[EI_CLASS] =3D ELFCLASS32; + #endif hdr.e_ident[EI_DATA] =3D ELFDATA2LSB; hdr.e_ident[EI_VERSION] =3D EV_CURRENT; hdr.e_ident[EI_OSABI] =3D ELFOSABI_LINUX; @@ -71,14 +96,22 @@ main ( hdr.e_phoff =3D sizeof (hdr); =20 /* program header */ + #ifdef PVH64 + Elf64_Phdr phdr_load =3D { + #else Elf32_Phdr phdr_load =3D { + #endif .p_type =3D PT_LOAD, .p_offset =3D 0, /* load everything */ .p_paddr =3D ovmf_base_address, .p_filesz =3D ovmf_blob_size, .p_memsz =3D ovmf_blob_size, .p_flags =3D PF_X | PF_W | PF_R, + #ifdef PVH64 + .p_align =3D 4, + #else .p_align =3D 0, + #endif }; =20 phdr_load.p_vaddr =3D phdr_load.p_paddr; @@ -98,12 +131,20 @@ main ( sizeof (xen_elfnote_phys32_entry) - offsetof (xen_elfnote_phys32_entry, desc), }; - Elf32_Phdr phdr_note =3D { + #ifdef PVH64 + Elf64_Phdr phdr_note =3D { + #else + Elf32_Phdr phdr_note =3D { + #endif .p_type =3D PT_NOTE, .p_filesz =3D sizeof (xen_elf_note), .p_memsz =3D sizeof (xen_elf_note), .p_flags =3D PF_R, + #ifdef PVH64 + .p_align =3D 4, + #else .p_align =3D 0, + #endif }; =20 hdr.e_phnum +=3D 1; --=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 (#86912): https://edk2.groups.io/g/devel/message/86912 Mute This Topic: https://groups.io/mt/89345229/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- From nobody Fri May 17 10:44:17 2024 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+86916+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+86916+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1645635454; cv=none; d=zohomail.com; s=zohoarc; b=AfoPnV7Gricf5LVJycOeiToXM+cPBtfvFhefNpSAIgMDgdn2bL5N00LsFXCMyipJqbFqGjZWzE6O2vvKi3/Cn+BQSxaYyV5VQmyJk7ngsToNNNzO927H+Qcf5J4NivAPZOf72AEcgX+IbAc1fbOO+yGTkt8XuDV+p+vQKfqs1Sc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645635454; 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=N/lwFq99khvS1Irzs5CmKI5N/qLy1apWErJxIMmjvWc=; b=QoppeBt0u2V5RK3/8TIz+NijsJH3GUk0g6VLgHWNX4rfFoflYu7tEfXKjq4fmb+Bhk2/sbJaDRP/nvuMYKnjoLWsHnQSrRN8+ZRtclk3BpqM6w/x/8woRnyiQpkYVn6ZvmW0j4XlOy3XsYos6lJlh/bnCPEPxGjO8pEPxlJFd8g= 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+86916+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 1645635454816374.65057730306364; Wed, 23 Feb 2022 08:57:34 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id p43RYY1788612xuwJEeM6Qsc; Wed, 23 Feb 2022 08:57:34 -0800 X-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web12.10277.1645635453728388180 for ; Wed, 23 Feb 2022 08:57:33 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10267"; a="249603809" X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="249603809" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:51:59 -0800 X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="505986368" X-Received: from lobrie3x-mobl4.ger.corp.intel.com (HELO sboeuf-mobl.home) ([10.252.24.99]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:51:57 -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 v2 2/5] OvmfPkg: Generate CloudHv as a PVH ELF binary Date: Wed, 23 Feb 2022 17:51:27 +0100 Message-Id: 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: Lfr3i5HKf5SOC48pPqwLVNjCx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1645635454; bh=U+tZ1IdL2uqS5GZdOZREdwPyQwWQh1OAYgBo/Fe4Ctg=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=GdKfIFu9VgTkX2++qMN0h6t3PE5mTRsw7mNH0+9QN/cGD+WRFpPWQyKNEB5e8CkbvDq fTLTa1BJ6oZLDCPg6F8QHgfptOz1MbMOT3TBd6d07jZsBqquWkalUOzYSJz4CdHP6xxKi OzDlUxX/CLMYNaUIVTBHuZuUubcVVsQpFDA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1645635455891100001 Content-Type: text/plain; charset="utf-8" From: Sebastien Boeuf Following the model from the Xen target, CloudHv is generated as a PVH ELF binary to take advantage of the PVH specification. Signed-off-by: Sebastien Boeuf --- OvmfPkg/CloudHv/CloudHvX64.dsc | 2 +- OvmfPkg/CloudHv/CloudHvX64.fdf | 94 +++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 3 deletions(-) diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc index 3172100310..b4d855d80f 100644 --- a/OvmfPkg/CloudHv/CloudHvX64.dsc +++ b/OvmfPkg/CloudHv/CloudHvX64.dsc @@ -631,7 +631,7 @@ # ##########################################################################= ###### [Components] - OvmfPkg/ResetVector/ResetVector.inf + OvmfPkg/XenResetVector/XenResetVector.inf =20 # # SEC Phase modules diff --git a/OvmfPkg/CloudHv/CloudHvX64.fdf b/OvmfPkg/CloudHv/CloudHvX64.fdf index ce3302c6d6..8eeaaaabcf 100644 --- a/OvmfPkg/CloudHv/CloudHvX64.fdf +++ b/OvmfPkg/CloudHv/CloudHvX64.fdf @@ -24,7 +24,97 @@ ErasePolarity =3D 1 BlockSize =3D $(BLOCK_SIZE) NumBlocks =3D $(FW_BLOCKS) =20 -!include OvmfPkg/VarStore.fdf.inc +!if ($(FD_SIZE_IN_KB) =3D=3D 1024) || ($(FD_SIZE_IN_KB) =3D=3D 2048) +0x00000000|0x0000e000 +!endif +!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. + # Built with "gcc -D PVH64 -o elf_gen OvmfPkg/OvmfXenElfHeaderGenerator.= c" + # and run with "./elf_gen 4194304". + # + # ELF file header + 0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, = 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xd0, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, # hdr.e_entry + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 0x0= 2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + # ELF Program segment headers + # - Load segment + 0x01, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + # - ELFNOTE segment + 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + + # XEN_ELFNOTE_PHYS32_ENTRY + 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, + 0x58, 0x65, 0x6e, 0x00, + 0xd0, 0xff, 0x4f, 0x00 +} + +!if ($(FD_SIZE_IN_KB) =3D=3D 1024) || ($(FD_SIZE_IN_KB) =3D=3D 2048) +0x0000e000|0x00001000 +!endif +!if $(FD_SIZE_IN_KB) =3D=3D 4096 +0x00040000|0x00001000 +!endif +#NV_EVENT_LOG + +!if ($(FD_SIZE_IN_KB) =3D=3D 1024) || ($(FD_SIZE_IN_KB) =3D=3D 2048) +0x0000f000|0x00001000 +!endif +!if $(FD_SIZE_IN_KB) =3D=3D 4096 +0x00041000|0x00001000 +!endif +#NV_FTW_WORKING +DATA =3D { + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature =3D gEdkiiWorkingBl= ockSignatureGuid =3D + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0= x1b, 0x95 }} + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Res= erved + 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF, + # WriteQueueSize: UINT64 + 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +!if ($(FD_SIZE_IN_KB) =3D=3D 1024) || ($(FD_SIZE_IN_KB) =3D=3D 2048) +0x00010000|0x00010000 +!endif +!if $(FD_SIZE_IN_KB) =3D=3D 4096 +0x00042000|0x00042000 +!endif +#NV_FTW_SPARE =20 $(VARS_SIZE)|$(FVMAIN_SIZE) FV =3D FVMAIN_COMPACT @@ -142,7 +232,7 @@ READ_LOCK_STATUS =3D TRUE # INF OvmfPkg/Sec/SecMain.inf =20 -INF RuleOverride=3DRESET_VECTOR OvmfPkg/ResetVector/ResetVector.inf +INF RuleOverride=3DRESET_VECTOR OvmfPkg/XenResetVector/XenResetVector.inf =20 ##########################################################################= ###### [FV.PEIFV] --=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 (#86916): https://edk2.groups.io/g/devel/message/86916 Mute This Topic: https://groups.io/mt/89345268/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- From nobody Fri May 17 10:44:17 2024 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+86913+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+86913+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1645635385; cv=none; d=zohomail.com; s=zohoarc; b=KNMKOm9bugXW3L5uictijunGDCKZiqIQWcSlATs7iyGaiOqsl9YM0s9nM0NxMnmhGYLEvqSBBcEaBb0jYJcnYPY0d75Wb2ADZBRORF4IS7ZulLHbtyedADf8drGe8oYx+zg8iZFGKxR8iamIUdAq5KTqlMgH+8nX2VIi65UG6Bo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645635385; 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=G2+AkC3ViTdm0u+cwv74ZJkye8Ctg61xViA6jduf3tg=; b=R+VXc8sbKzzERCW9qEhDbgSOSjXkoTDn3aNndRLK1Hj1EWxY8qvhy4DEcHv1VlkQsMKSrd2U6o8+N+27GcNcFNC2NjYQLl7JQefOeJWU07qJq/d8nJAcHpwTnCjSuqdGPl0vEPamdzXAIjqW5N3HoQCGEN+St4C99MDdbHUgNnk= 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+86913+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 1645635385014703.6076328084689; Wed, 23 Feb 2022 08:56:25 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 1CC8YY1788612xwYjiEvBW2S; Wed, 23 Feb 2022 08:56:24 -0800 X-Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.10262.1645635383504331702 for ; Wed, 23 Feb 2022 08:56:23 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10267"; a="239413600" X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="239413600" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:52:11 -0800 X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="505986440" X-Received: from lobrie3x-mobl4.ger.corp.intel.com (HELO sboeuf-mobl.home) ([10.252.24.99]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:52:09 -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 v2 3/5] OvmfPkg: CloudHv: Retrieve RSDP address from PVH Date: Wed, 23 Feb 2022 17:51:28 +0100 Message-Id: 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: Bf2bNRB4rXp9rlHTWe7Q1eJyx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1645635384; bh=ZUeRXOi/mC5dFKypVToslGcCRlwqAcH1qezvrTfunAI=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=gKfkyoCG6pSTOwJ80gOKMOx+DZUL1nzoyMsyqk7vNUbYGorNpX42khGRwbLLXTXQXxl zdlHiWmbZHkJyv1VQocKEeE+7pQfJ9LGf1Ptd0tSxgaW5Az8mwcVE4fDkh6lgp6NowQYP NJwOuZEJ+HqjeiRqdTok1T85Y0kAX1GKl9w= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1645635385832100002 Content-Type: text/plain; charset="utf-8" From: Sebastien Boeuf Instead of hardcoding the address of the RSDP in the firmware, let's rely on the PVH structure hvm_start_info to retrieve this information. Signed-off-by: Sebastien Boeuf --- OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 2 ++ OvmfPkg/AcpiPlatformDxe/CloudHvAcpi.c | 39 ++++++++++++++------- OvmfPkg/CloudHv/CloudHvX64.fdf | 3 ++ OvmfPkg/Include/IndustryStandard/CloudHv.h | 5 --- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf b/OvmfPkg/AcpiPlat= formDxe/AcpiPlatformDxe.inf index b36b8413e0..f22bd7cb6d 100644 --- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf +++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf @@ -56,6 +56,8 @@ [Pcd] gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId + gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtr + gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtrSize =20 [Depex] gEfiAcpiTableProtocolGuid diff --git a/OvmfPkg/AcpiPlatformDxe/CloudHvAcpi.c b/OvmfPkg/AcpiPlatformDx= e/CloudHvAcpi.c index 44a6bb70fe..ff59600d3e 100644 --- a/OvmfPkg/AcpiPlatformDxe/CloudHvAcpi.c +++ b/OvmfPkg/AcpiPlatformDxe/CloudHvAcpi.c @@ -7,9 +7,11 @@ =20 **/ =20 -#include // CLOUDHV_RSDP_ADDRESS -#include // CpuDeadLoop() -#include // DEBUG() +#include // CLOUDHV_RSDP_= ADDRESS +#include // hvm_start_info +#include // CpuDeadLoop() +#include // DEBUG() +#include // PcdGet32() =20 #include "AcpiPlatform.h" =20 @@ -23,20 +25,33 @@ InstallCloudHvTables ( EFI_STATUS Status; UINTN TableHandle; =20 - EFI_ACPI_DESCRIPTION_HEADER *Xsdt; - VOID *CurrentTableEntry; - UINTN CurrentTablePointer; - EFI_ACPI_DESCRIPTION_HEADER *CurrentTable; - UINTN Index; - UINTN NumberOfTableEntries; - EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt2Table; - EFI_ACPI_DESCRIPTION_HEADER *DsdtTable; + EFI_ACPI_DESCRIPTION_HEADER *Xsdt; + VOID *CurrentTableEntry; + UINTN CurrentTablePointer; + EFI_ACPI_DESCRIPTION_HEADER *CurrentTable; + UINTN Index; + UINTN NumberOfTableEntries; + EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt2Table; + EFI_ACPI_DESCRIPTION_HEADER *DsdtTable; + EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *AcpiRsdpStructurePtr; + UINT32 *PVHResetVectorData; + struct hvm_start_info *pvh_start_info; =20 Fadt2Table =3D NULL; DsdtTable =3D NULL; TableHandle =3D 0; NumberOfTableEntries =3D 0; - EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *AcpiRsdpStructurePtr =3D = (VOID *)CLOUDHV_RSDP_ADDRESS; + AcpiRsdpStructurePtr =3D NULL; + PVHResetVectorData =3D NULL; + pvh_start_info =3D NULL; + + PVHResetVectorData =3D (VOID *)(UINTN)PcdGet32 (PcdXenPvhStartOfDayStruc= tPtr); + if (PVHResetVectorData =3D=3D 0) { + return EFI_NOT_FOUND; + } + + pvh_start_info =3D (struct hvm_start_info *)(UINTN)PVHResetVectorD= ata[0]; + AcpiRsdpStructurePtr =3D (EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *= )(UINTN)pvh_start_info->rsdp_paddr; =20 // If XSDT table is found, just install its tables. // Otherwise, try to find and install the RSDT tables. diff --git a/OvmfPkg/CloudHv/CloudHvX64.fdf b/OvmfPkg/CloudHv/CloudHvX64.fdf index 8eeaaaabcf..9db03380a1 100644 --- a/OvmfPkg/CloudHv/CloudHvX64.fdf +++ b/OvmfPkg/CloudHv/CloudHvX64.fdf @@ -184,6 +184,9 @@ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsBase|gUefiO= vmfPkgTokenSpaceGuid.PcdO 0x00E000|0x001000 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase|gUefiOvmfPkgTokenSpaceGuid.Pcd= OvmfCpuidSize =20 +0x00F000|0x001000 +gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtr|gUefiOvmfPkgTokenS= paceGuid.PcdXenPvhStartOfDayStructPtrSize + 0x010000|0x010000 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpace= Guid.PcdOvmfSecPeiTempRamSize =20 diff --git a/OvmfPkg/Include/IndustryStandard/CloudHv.h b/OvmfPkg/Include/I= ndustryStandard/CloudHv.h index 86404cc97e..d31ecc9eec 100644 --- a/OvmfPkg/Include/IndustryStandard/CloudHv.h +++ b/OvmfPkg/Include/IndustryStandard/CloudHv.h @@ -38,9 +38,4 @@ // #define CLOUDHV_SMBIOS_ADDRESS 0xf0000 =20 -// -// RSDP address -// -#define CLOUDHV_RSDP_ADDRESS 0xa0000 - #endif // __CLOUDHV_H__ --=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 (#86913): https://edk2.groups.io/g/devel/message/86913 Mute This Topic: https://groups.io/mt/89345240/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- From nobody Fri May 17 10:44:17 2024 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+86914+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+86914+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1645635436; cv=none; d=zohomail.com; s=zohoarc; b=kq3TFHDXKDK5nAEO28mV8VFzJOC/hYsAoEyKJvz8wRxswu5aLK3arFj0NL1gPxYQ6In/FJHH88YDwayw/cHQD9CiE9gUrrPKugo/YbTo94IuC0fDKAHkyPXXWDXn5G3nEUsse8QDZijZc0/o/h+GGFVVFm0fOTFnfzNmvWFMCno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645635436; 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=ww4uoMuZeyGP8UKI4gNaHCbt0x4MK2dQk1S6QioMuus=; b=YGF6fEN/IaeSgsk6wb0NgBVfn7nLhl3e252c3pvoNXIgmRc0P2mjzVy14w7cbNI0BxYLsaiVW/N9yXEnEhew1fWuLHxCPE4T66+TI99PPPPrfDG1CCltsceJslp4t4WyHqVFa5yCGCRT7Epdwo/+wCS6yjRSiSG5jOWuqGdZhYg= 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+86914+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 1645635436136156.64632044193195; Wed, 23 Feb 2022 08:57:16 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id CWbMYY1788612xIKuVHaUTEg; Wed, 23 Feb 2022 08:57:15 -0800 X-Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.10437.1645635434820262279 for ; Wed, 23 Feb 2022 08:57:15 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10267"; a="338458556" X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="338458556" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:52:17 -0800 X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="505986482" X-Received: from lobrie3x-mobl4.ger.corp.intel.com (HELO sboeuf-mobl.home) ([10.252.24.99]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:52:15 -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 v2 4/5] OvmfPkg: CloudHv: Rely on PVH memmap instead of CMOS Date: Wed, 23 Feb 2022 17:51:29 +0100 Message-Id: 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: j21HneHyfwXJ09FooD9wp0Trx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1645635435; bh=FyBXjFU9OO8/cnWkUzWdcfWrvw8exxSthsvB+ONCb3g=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=htv0WfMBLY+g7Of9W2WYOWCArPvH3cs1FQPJW1PF8N1X/bmEv4nyf8Y2lyh9SoAdoMo d7Rw68dymHH+kIgDnxRSh3gJtWOvE1iRuzDB8++IG3jUoqHSGNyse97L6ZvPuHiSN4Rkv vdnQPuTbpP1HECtL0WiUViKFjvGSPLSDq/c= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1645635437780100003 Content-Type: text/plain; charset="utf-8" From: Sebastien Boeuf Instead of using the CMOS, the CloudHv platform relies on the list of memmap entries provided through the PVH boot protocol to determine the last RAM address below 4G. Signed-off-by: Sebastien Boeuf --- OvmfPkg/PlatformPei/MemDetect.c | 73 +++++++++++++++++++++++++++++ OvmfPkg/PlatformPei/PlatformPei.inf | 2 + 2 files changed, 75 insertions(+) diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetec= t.c index 1bcb5a08bc..8ecc8257f9 100644 --- a/OvmfPkg/PlatformPei/MemDetect.c +++ b/OvmfPkg/PlatformPei/MemDetect.c @@ -17,6 +17,7 @@ Module Name: #include #include #include +#include #include #include =20 @@ -315,6 +316,73 @@ ScanOrAdd64BitE820Ram ( return EFI_SUCCESS; } =20 +/** + Returns PVH memmap + + @param Entries Pointer to PVH memmap + @param Count Number of entries + + @return EFI_STATUS +**/ +EFI_STATUS +GetPvhMemmapEntries ( + struct hvm_memmap_table_entry **Entries, + UINT32 *Count + ) +{ + UINT32 *PVHResetVectorData; + struct hvm_start_info *pvh_start_info; + + PVHResetVectorData =3D (VOID *)(UINTN)PcdGet32 (PcdXenPvhStartOfDayStruc= tPtr); + if (PVHResetVectorData =3D=3D 0) { + return EFI_NOT_FOUND; + } + + pvh_start_info =3D (struct hvm_start_info *)(UINTN)PVHResetVectorData[0]; + + *Entries =3D (struct hvm_memmap_table_entry *)(UINTN)pvh_start_info->mem= map_paddr; + *Count =3D pvh_start_info->memmap_entries; + + return EFI_SUCCESS; +} + +STATIC +UINT64 +GetHighestSystemMemoryAddressFromPvhMemmap ( + BOOLEAN Below4gb + ) +{ + struct hvm_memmap_table_entry *Memmap; + UINT32 MemmapEntriesCount; + struct hvm_memmap_table_entry *Entry; + EFI_STATUS Status; + UINT32 Loop; + UINT64 HighestAddress; + UINT64 EntryEnd; + + HighestAddress =3D 0; + + Status =3D GetPvhMemmapEntries (&Memmap, &MemmapEntriesCount); + ASSERT_EFI_ERROR (Status); + + for (Loop =3D 0; Loop < MemmapEntriesCount; Loop++) { + Entry =3D Memmap + Loop; + EntryEnd =3D Entry->addr + Entry->size; + + if ((Entry->type =3D=3D XEN_HVM_MEMMAP_TYPE_RAM) && + (EntryEnd > HighestAddress)) + { + if (Below4gb && (EntryEnd <=3D BASE_4GB)) { + HighestAddress =3D EntryEnd; + } else if (!Below4gb && (EntryEnd >=3D BASE_4GB)) { + HighestAddress =3D EntryEnd; + } + } + } + + return HighestAddress; +} + UINT32 GetSystemMemorySizeBelow4gb ( VOID @@ -325,6 +393,11 @@ GetSystemMemorySizeBelow4gb ( UINT8 Cmos0x34; UINT8 Cmos0x35; =20 + if (mHostBridgeDevId =3D=3D CLOUDHV_DEVICE_ID) { + // Get the information from PVH memmap + return (UINT32)GetHighestSystemMemoryAddressFromPvhMemmap (TRUE); + } + Status =3D ScanOrAdd64BitE820Ram (FALSE, &LowerMemorySize, NULL); if ((Status =3D=3D EFI_SUCCESS) && (LowerMemorySize > 0)) { return (UINT32)LowerMemorySize; diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/Plat= formPei.inf index 8ef404168c..212aa7b047 100644 --- a/OvmfPkg/PlatformPei/PlatformPei.inf +++ b/OvmfPkg/PlatformPei/PlatformPei.inf @@ -91,6 +91,8 @@ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDecompressionScratchEnd gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase + gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtr + gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtrSize gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize --=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 (#86914): https://edk2.groups.io/g/devel/message/86914 Mute This Topic: https://groups.io/mt/89345260/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- From nobody Fri May 17 10:44:17 2024 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+86911+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+86911+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1645635348; cv=none; d=zohomail.com; s=zohoarc; b=iawGdddOQrLR4Wgwwj04vH0JTVUHMc1EL6CXJ4YQ9DAVnLaHLmnZIld4S1x6QUeZ72lU9dkMV27DxYEfZBydgQlkwm2eAiQXhQ43b8OWTniyrWtBxx4/9fxnSLnig2I303CcjyJvrvac3bY1gxdDkBtwJt2breuZAhyeeeAiep0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1645635348; 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=RvwoS89DzGkw9pGBVn2NkZN8VvGl0idOK99hjnNKOSI=; b=NST7Z3UPjq8YDdBXmkAwNsi1wIrsRGMN9SpOxHeWxUWZn6iWt93fMFcuuQn0aqETouTx1WYvGUDXtiYW3q6y9XgoilMCc1VCvBYoE8HX7TULM/dJCXRJ0TBgzK+BydWbUcvYi6QYvFAd9X6m97IA7GpUFEKs/l6TjynDJNj8aNQ= 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+86911+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 1645635348034746.6772162382341; Wed, 23 Feb 2022 08:55:48 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 8JzsYY1788612xlQyiLyyjCi; Wed, 23 Feb 2022 08:55:47 -0800 X-Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web08.10214.1645635346242532905 for ; Wed, 23 Feb 2022 08:55:46 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10267"; a="252214638" X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="252214638" X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:52:25 -0800 X-IronPort-AV: E=Sophos;i="5.88,391,1635231600"; d="scan'208";a="505986543" X-Received: from lobrie3x-mobl4.ger.corp.intel.com (HELO sboeuf-mobl.home) ([10.252.24.99]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2022 08:52:23 -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 v2 5/5] OvmfPkg: CloudHv: Add README Date: Wed, 23 Feb 2022 17:51:30 +0100 Message-Id: <1620c1e46831f9ceec11cad56b561b63cbf8ad89.1645634879.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: bcb13HwqBPdSOidSmbOG9NkAx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1645635347; bh=BeVcIvQsGXcgShG/UNa7vVPz79NwEJBG8ByXdOveOh8=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=jtPSrDTzj6BMzpthsl4zAT3xlKbtoekwEEE2kKZL0hfAasbFu9LMsBIQWjQEZ+B0zp/ g7g9tuMVmsrOu+edjbvU9IMHHOn5KT3p5VL0zvh2tEKAjrU4IyF7vkfLyxqXDkEkwj2GM iTeMtOwgK3YIT3154rHAj7xCUjDijlh8ljw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1645635349224100002 Content-Type: text/plain; charset="utf-8" From: Sebastien Boeuf Add some documentation to the CloudHv target in order to clarify how to use it and what to expect from it. Signed-off-by: Sebastien Boeuf --- OvmfPkg/CloudHv/README | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 OvmfPkg/CloudHv/README diff --git a/OvmfPkg/CloudHv/README b/OvmfPkg/CloudHv/README new file mode 100644 index 0000000000..ffd4f19c50 --- /dev/null +++ b/OvmfPkg/CloudHv/README @@ -0,0 +1,66 @@ + +CloudHv is a port of OVMF for the Cloud Hypervisor project. + +The Cloud Hypervisor project +---------------------------- + +Cloud Hypervisor is a Virtual Machine Monitor that runs on top of KVM. The +project focuses on exclusively running modern, cloud workloads, on top of a +limited set of hardware architectures and platforms. Cloud workloads refer= s to +those that are usually run by customers inside a cloud provider. This means +modern operating systems with most I/O handled by paravirtualised devices +(i.e. virtio), no requirement for legacy devices, and 64-bit CPUs. + +https://github.com/cloud-hypervisor/cloud-hypervisor + +Design +------ + +Based on Cloud Hypervisor's motto to reduce the emulation as much as possi= ble, +the project logically decided to support the PVH boot specification as the= only +way of booting virtual machines. That includes both direct kernel boot and= OVMF +firmware which must be generated as PVH ELF binaries. +PVH allows information like location of ACPI tables and location of guest = RAM +ranges to be shared without the need of an extra emulated device like a CM= OS. + +Features +-------- + +* Serial console +* EFI shell +* virtio-pci + +Build +----- + +The way to build the CloudHv target is as follows: + +OvmfPkg/build.sh -p OvmfPkg/CloudHv/CloudHvX64.dsc -a X64 -b DEBUG + +Usage +----- + +Assuming Cloud Hypervisor is already built, one can start a virtual machin= e as +follows: + +./cloud-hypervisor \ + --cpus boot=3D1 \ + --memory size=3D1G \ + --kernel Build/CloudHvX64/DEBUG_GCC5/FV/CLOUDHV.fd \ + --disk path=3D/path/to/disk.raw + +Releases +-------- + +In edk2-stable202202, CloudHv is generated as data-only binary. +Starting with edk2-stable202205, CloudHv is generated as a PVH ELF binary = to +reduce the amount of emulation needed from Cloud Hypervisor. +For TDX, things are handled differently and PVH is not used, which is why = the +firmware is always generated as a data-only binary. + ++-------------------+----------------+-------------+ +| CloudHv | non-TDX | TDX | ++-------------------+----------------+-------------+ +| edk2-stable202202 | Data binary | Data binary | +| edk2-stable202205 | PVH ELF binary | Data binary | ++-------------------+----------------+-------------+ \ No newline at end of file --=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 (#86911): https://edk2.groups.io/g/devel/message/86911 Mute This Topic: https://groups.io/mt/89345227/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-