From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.17392.1669200631533899222 for ; Wed, 23 Nov 2022 02:50:32 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=oGSM8IQv; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: marsx.lin@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669200631; x=1700736631; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=c01ygNSnfGIAPPsAzuqW80rQ5KlvXeiJKBZsHVzhh7w=; b=oGSM8IQvosm+pE7eoV2dO3KtB0d33YCbacASEjNFooRVJb5ax9trqoR2 XdyST9OCBExe35bCHjjm9uRoFB8pP7/sFE0BttsfEfQCSvYXC4cQzwPJd 2mBMadl/km2Shm68SyiGQGRUgIRWYYK1olDf1S/2QueWZRCutdUKR6TDA vbnEZ5Gjp7MPzrLNv1dflNFJ8TSjhUPPagJGxgmdUfEdbw3HbxyCNFtYa BMDm4DzTPe9EtbFS70fuA9aOYsYMaBZSUbrR28m2WPnjVCgLcdVlLLJc1 /218IMpyw3r4q6j6Y8o6VWoIv8Es8Wo0+03JTQ+2zrN6rOYDMwAdhO+1v Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10539"; a="312739386" X-IronPort-AV: E=Sophos;i="5.96,187,1665471600"; d="scan'208";a="312739386" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2022 02:50:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10539"; a="619574629" X-IronPort-AV: E=Sophos;i="5.96,187,1665471600"; d="scan'208";a="619574629" Received: from unknown (HELO marslinx-DESK1.gar.corp.intel.com) ([10.5.215.146]) by orsmga006.jf.intel.com with ESMTP; 23 Nov 2022 02:50:27 -0800 From: marsx.lin@intel.com To: devel@edk2.groups.io Cc: MarsX Lin , Guo Dong , Ray Ni , Sean Rhodes , James Lu , Gua Guo Subject: [PATCH] UefiPayloadPkg: Support multiple-firmware volume Date: Wed, 23 Nov 2022 18:50:25 +0800 Message-Id: X-Mailer: git-send-email 2.33.0.windows.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: MarsX Lin REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4164 To support multiple FVs provided by UPL Cc: Guo Dong Cc: Ray Ni Cc: Sean Rhodes Cc: James Lu Cc: Gua Guo Signed-off-by: MarsX Lin --- .../UefiPayloadEntry/UniversalPayloadEntry.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c b/Uefi= PayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c index 09aee89680..9df7d3ee19 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c +++ b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.c @@ -397,12 +397,21 @@ BuildHobs ( GuidHob =3D GetFirstGuidHob (&gUniversalPayloadExtraDataGuid);=0D ASSERT (GuidHob !=3D NULL);=0D ExtraData =3D (UNIVERSAL_PAYLOAD_EXTRA_DATA *)GET_GUID_HOB_DATA (GuidHob= );=0D - ASSERT (ExtraData->Count =3D=3D 1);=0D + DEBUG ((DEBUG_INFO, "Multiple Fv Count=3D%d\n", ExtraData->Count));=0D ASSERT (AsciiStrCmp (ExtraData->Entry[0].Identifier, "uefi_fv") =3D=3D 0= );=0D =0D *DxeFv =3D (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)ExtraData->Entry[0].Base= ;=0D ASSERT ((*DxeFv)->FvLength =3D=3D ExtraData->Entry[0].Size);=0D -=0D + //=0D + // support multiple FVs provided by UPL=0D + //=0D + for (UINT8 idx =3D 1; idx < ExtraData->Count ; idx++) {=0D + BuildFvHob (ExtraData->Entry[idx].Base, ExtraData->Entry[idx].Size);=0D + DEBUG ((DEBUG_INFO, "UPL Multiple fv[%d], Base=3D0x%x, size=3D0x%x\n",= =0D + idx,=0D + ExtraData->Entry[idx].Base,=0D + ExtraData->Entry[idx].Size));=0D + }=0D //=0D // Create guid hob for acpi board information=0D //=0D --=20 2.33.0.windows.2