Hi Guo,

Sounds like a good proposal, but it would be great to merge this change temporarily.
In some cases of the current implementation edk2 does override the memory area, where the coreboot table pointer is located.
Therefore the kernel and cbmem tool is not able to locate the tables anymore.

Thanks,
Marcello

On Tue, Sep 8, 2020 at 11:40 PM Dong, Guo <guo.dong@intel.com> wrote:

Hi Marcello,

In the UEFI payload, we should not hardcoded any memory usage. It means UEFI payload should use the memory map whatever reported from the bootloader. I plan to remove this hardcoded memory usage soon.
Before that, it is OK for me to merge this change if you want.
BTW, did you see any issue with current implement?

Thanks,
Guo

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Marcello
> Sylvester Bauer
> Sent: Wednesday, July 8, 2020 5:01 AM
> To: devel@edk2.groups.io
> Cc: Ma, Maurice <maurice.ma@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: [edk2-devel] [PATCH v1 1/1] UefipayloadPkg: Protect coreboot tables
>
> From: Patrick Rudolph <patrick.rudolph@9elements.com>
>
> Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
> Signed-off-by: Marcello Sylvester Bauer <marcello.bauer@9elements.com>
> Cc: Maurice Ma <maurice.ma@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> ---
>  UefiPayloadPkg/BlSupportPei/BlSupportPei.c | 26 ++++++++++++++------
>  1 file changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/UefiPayloadPkg/BlSupportPei/BlSupportPei.c
> b/UefiPayloadPkg/BlSupportPei/BlSupportPei.c
> index 22972453117a..b3ff065a537e 100644
> --- a/UefiPayloadPkg/BlSupportPei/BlSupportPei.c
> +++ b/UefiPayloadPkg/BlSupportPei/BlSupportPei.c
> @@ -390,24 +390,36 @@ BlPeiEntryPoint (
>    EFI_PEI_GRAPHICS_DEVICE_INFO_HOB GfxDeviceInfo;
>
>    EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *NewGfxDeviceInfo;
>
>
>
> -
>
> -  //
>
> -  // Report lower 640KB of RAM. Attribute EFI_RESOURCE_ATTRIBUTE_TESTED
>
> -  // is intentionally omitted to prevent erasing of the coreboot header
>
> -  // record before it is processed by ParseMemoryInfo.
>
> +  // Report lower 640KB of RAM.
>
> +  // Mark memory as reserved to keep coreboot header in place.
>
>    //
>
>    BuildResourceDescriptorHob (
>
> -    EFI_RESOURCE_SYSTEM_MEMORY,
>
> +    EFI_RESOURCE_MEMORY_RESERVED,
>
>      (
>
>      EFI_RESOURCE_ATTRIBUTE_PRESENT |
>
>      EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
>
> +    EFI_RESOURCE_ATTRIBUTE_TESTED |
>
>      EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |
>
>      EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |
>
>      EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |
>
>      EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE
>
>      ),
>
>      (EFI_PHYSICAL_ADDRESS)(0),
>
> -    (UINT64)(0xA0000)
>
> +    (UINT64)(0x1000)
>
> +    );
>
> +
>
> +  BuildResourceDescriptorHob (
>
> +    EFI_RESOURCE_SYSTEM_MEMORY,
>
> +    (
>
> +    EFI_RESOURCE_ATTRIBUTE_PRESENT |
>
> +    EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
>
> +    EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |
>
> +    EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |
>
> +    EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |
>
> +    EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE
>
> +    ),
>
> +    (EFI_PHYSICAL_ADDRESS)(0x1000),
>
> +    (UINT64)(0x9F000)
>
>      );
>
>
>
>    BuildResourceDescriptorHob (
>
> --
> 2.27.0
>
>
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
>
> View/Reply Online (#62229): https://edk2.groups.io/g/devel/message/62229
> Mute This Topic: https://groups.io/mt/75374752/1781375
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub  [guo.dong@intel.com]
> -=-=-=-=-=-=



--
[Marcello Sylvester Bauer] 



9elements Agency GmbH, Kortumstraße 19-21, 44787 Bochum, Germany

Sitz der Gesellschaft: Bochum
Handelsregister: Amtsgericht Bochum, HRB 17519
Geschäftsführung: Sebastian Deutsch, Eray Basar

Datenschutzhinweise nach Art. 13 DSGVO