Good cleanup.

Reviewed-by: [email protected]

> -----Original Message-----
> From: Zeng, Star
> Sent: Wednesday, January 17, 2018 2:00 PM
> To: [email protected]
> Cc: Zeng, Star <[email protected]>; Yao, Jiewen <[email protected]>
> Subject: [PATCH] IntelSiliconPkg IntelVTdPmrPei: Get high top by host address
> width
> 
> Get high top by host address width instead of resource HOB.
> 
> Cc: Jiewen Yao <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Star Zeng <[email protected]>
> ---
>  .../Feature/VTd/IntelVTdPmrPei/DmarTable.c         |   4 +-
>  .../Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c    | 167 
> +--------------------
>  .../Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.h    |  12 +-
>  3 files changed, 5 insertions(+), 178 deletions(-)
> 
> diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/DmarTable.c
> b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/DmarTable.c
> index 891efa65468d..ea853bd6bc70 100644
> --- a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/DmarTable.c
> +++ b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/DmarTable.c
> @@ -1,6 +1,6 @@
>  /** @file
> 
> -  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD
> License
>    which accompanies this distribution.  The full text of the license may be
> found at
> @@ -528,7 +528,7 @@ ProcessRmrr (
>        LowBottom = 0;
>        LowTop = (UINTN)DmarRmrr->ReservedMemoryRegionBaseAddress;
>        HighBottom =
> (UINTN)DmarRmrr->ReservedMemoryRegionLimitAddress + 1;
> -      HighTop = GetTopMemory ();
> +      HighTop = LShiftU64 (1, VTdInfo->HostAddressWidth + 1);
> 
>        SetDmaProtectedRange (
>          VTdInfo,
> diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c
> b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c
> index bb7ace4ca557..63ba94d62b7e 100644
> --- a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c
> +++ b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.c
> @@ -60,7 +60,7 @@ typedef struct {
> 
>    PEI Memory Layout:
> 
> -              +------------------+ <=============== PHMR.Limit (+
> alignment) (Top of memory)
> +              +------------------+ <=============== PHMR.Limit (+
> alignment) (1 << (HostAddressWidth + 1))
>                |   Mem Resource   |
>                |                  |
> 
> @@ -377,159 +377,6 @@ CONST EFI_PEI_PPI_DESCRIPTOR mIoMmuPpiList = {
>    (VOID *) &mIoMmuPpi
>  };
> 
> -#define MEMORY_ATTRIBUTE_MASK (EFI_RESOURCE_ATTRIBUTE_PRESENT | \
> -                               EFI_RESOURCE_ATTRIBUTE_INITIALIZED | \
> -                               EFI_RESOURCE_ATTRIBUTE_TESTED | \
> -                               EFI_RESOURCE_ATTRIBUTE_16_BIT_IO | \
> -                               EFI_RESOURCE_ATTRIBUTE_32_BIT_IO | \
> -                               EFI_RESOURCE_ATTRIBUTE_64_BIT_IO \
> -                               )
> -
> -#define TESTED_MEMORY_ATTRIBUTES
> (EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED
> | EFI_RESOURCE_ATTRIBUTE_TESTED)
> -
> -#define INITIALIZED_MEMORY_ATTRIBUTES
> (EFI_RESOURCE_ATTRIBUTE_PRESENT |
> EFI_RESOURCE_ATTRIBUTE_INITIALIZED)
> -
> -#define PRESENT_MEMORY_ATTRIBUTES
> (EFI_RESOURCE_ATTRIBUTE_PRESENT)
> -
> -GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *mResourceTypeShortName[] =
> {
> -  "Mem",
> -  "MMIO",
> -  "I/O",
> -  "FD",
> -  "MM Port I/O",
> -  "Reserved Mem",
> -  "Reserved I/O",
> -};
> -
> -/**
> -  Return the short name of resource type.
> -
> -  @param Type  resource type.
> -
> -  @return the short name of resource type.
> -**/
> -CHAR8 *
> -ShortNameOfResourceType (
> -  IN UINT32 Type
> -  )
> -{
> -  if (Type < sizeof(mResourceTypeShortName) /
> sizeof(mResourceTypeShortName[0])) {
> -    return mResourceTypeShortName[Type];
> -  } else {
> -    return "Unknown";
> -  }
> -}
> -
> -/**
> -  Dump resource hob.
> -
> -  @param HobList  the HOB list.
> -**/
> -VOID
> -DumpResourceHob (
> -  IN VOID                        *HobList
> -  )
> -{
> -  EFI_PEI_HOB_POINTERS        Hob;
> -  EFI_HOB_RESOURCE_DESCRIPTOR *ResourceHob;
> -
> -  DEBUG ((DEBUG_VERBOSE, "Resource Descriptor HOBs\n"));
> -  for (Hob.Raw = HobList; !END_OF_HOB_LIST (Hob); Hob.Raw =
> GET_NEXT_HOB (Hob)) {
> -    if (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
> -      ResourceHob = Hob.ResourceDescriptor;
> -      DEBUG ((DEBUG_VERBOSE,
> -        "  BA=%016lx  L=%016lx  Attr=%08x  ",
> -        ResourceHob->PhysicalStart,
> -        ResourceHob->ResourceLength,
> -        ResourceHob->ResourceAttribute
> -        ));
> -      DEBUG ((DEBUG_VERBOSE,
> ShortNameOfResourceType(ResourceHob->ResourceType)));
> -      switch (ResourceHob->ResourceType) {
> -      case EFI_RESOURCE_SYSTEM_MEMORY:
> -        if ((ResourceHob->ResourceAttribute &
> EFI_RESOURCE_ATTRIBUTE_PERSISTENT) != 0) {
> -          DEBUG ((DEBUG_VERBOSE, " (Persistent)"));
> -        } else if ((ResourceHob->ResourceAttribute &
> EFI_RESOURCE_ATTRIBUTE_MORE_RELIABLE) != 0) {
> -          DEBUG ((DEBUG_VERBOSE, " (MoreReliable)"));
> -        } else if ((ResourceHob->ResourceAttribute &
> MEMORY_ATTRIBUTE_MASK) == TESTED_MEMORY_ATTRIBUTES) {
> -          DEBUG ((DEBUG_VERBOSE, " (Tested)"));
> -        } else if ((ResourceHob->ResourceAttribute &
> MEMORY_ATTRIBUTE_MASK) == INITIALIZED_MEMORY_ATTRIBUTES) {
> -          DEBUG ((DEBUG_VERBOSE, " (Init)"));
> -        } else if ((ResourceHob->ResourceAttribute &
> MEMORY_ATTRIBUTE_MASK) == PRESENT_MEMORY_ATTRIBUTES) {
> -          DEBUG ((DEBUG_VERBOSE, " (Present)"));
> -        } else {
> -          DEBUG ((DEBUG_VERBOSE, " (Unknown)"));
> -        }
> -        break;
> -      default:
> -        break;
> -      }
> -      DEBUG ((DEBUG_VERBOSE, "\n"));
> -    }
> -  }
> -}
> -
> -/**
> -  Dump PHIT hob.
> -
> -  @param HobList  the HOB list.
> -**/
> -VOID
> -DumpPhitHob (
> -  IN VOID                        *HobList
> -  )
> -{
> -  EFI_HOB_HANDOFF_INFO_TABLE  *PhitHob;
> -
> -  PhitHob = HobList;
> -  ASSERT(GET_HOB_TYPE(HobList) == EFI_HOB_TYPE_HANDOFF);
> -  DEBUG ((DEBUG_VERBOSE, "PHIT HOB\n"));
> -  DEBUG ((DEBUG_VERBOSE, "  PhitHob             - 0x%x\n", PhitHob));
> -  DEBUG ((DEBUG_VERBOSE, "  BootMode            - 0x%x\n",
> PhitHob->BootMode));
> -  DEBUG ((DEBUG_VERBOSE, "  EfiMemoryTop        - 0x%016lx\n",
> PhitHob->EfiMemoryTop));
> -  DEBUG ((DEBUG_VERBOSE, "  EfiMemoryBottom     - 0x%016lx\n",
> PhitHob->EfiMemoryBottom));
> -  DEBUG ((DEBUG_VERBOSE, "  EfiFreeMemoryTop    - 0x%016lx\n",
> PhitHob->EfiFreeMemoryTop));
> -  DEBUG ((DEBUG_VERBOSE, "  EfiFreeMemoryBottom - 0x%016lx\n",
> PhitHob->EfiFreeMemoryBottom));
> -  DEBUG ((DEBUG_VERBOSE, "  EfiEndOfHobList     - 0x%lx\n",
> PhitHob->EfiEndOfHobList));
> -}
> -
> -/**
> -  Get the highest memory.
> -
> -  @return the highest memory.
> -**/
> -UINT64
> -GetTopMemory (
> -  VOID
> -  )
> -{
> -  VOID                        *HobList;
> -  EFI_PEI_HOB_POINTERS        Hob;
> -  EFI_HOB_RESOURCE_DESCRIPTOR *ResourceHob;
> -  UINT64                      TopMemory;
> -  UINT64                      ResourceTop;
> -
> -  HobList = GetHobList ();
> -
> -  TopMemory = 0;
> -  for (Hob.Raw = HobList; !END_OF_HOB_LIST (Hob); Hob.Raw =
> GET_NEXT_HOB (Hob)) {
> -    if (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
> -      ResourceHob = Hob.ResourceDescriptor;
> -      switch (ResourceHob->ResourceType) {
> -      case EFI_RESOURCE_SYSTEM_MEMORY:
> -        ResourceTop = ResourceHob->PhysicalStart +
> ResourceHob->ResourceLength;
> -        if (TopMemory < ResourceTop) {
> -          TopMemory = ResourceTop;
> -        }
> -        break;
> -      default:
> -        break;
> -      }
> -      DEBUG ((DEBUG_VERBOSE, "\n"));
> -    }
> -  }
> -  return TopMemory;
> -}
> -
>  /**
>    Initialize DMA protection.
> 
> @@ -548,8 +395,6 @@ InitDmaProtection (
>    )
>  {
>    EFI_STATUS                  Status;
> -  VOID                        *HobList;
> -  EFI_HOB_HANDOFF_INFO_TABLE  *PhitHob;
>    UINT32                      LowMemoryAlignment;
>    UINT64                      HighMemoryAlignment;
>    UINTN                       MemoryAlignment;
> @@ -558,14 +403,6 @@ InitDmaProtection (
>    UINTN                       HighBottom;
>    UINT64                      HighTop;
> 
> -  HobList = GetHobList ();
> -  DumpPhitHob (HobList);
> -  DumpResourceHob (HobList);
> -
> -  PhitHob = HobList;
> -
> -  ASSERT (PhitHob->EfiMemoryBottom < PhitHob->EfiMemoryTop);
> -
>    LowMemoryAlignment = GetLowMemoryAlignment (VTdInfo,
> VTdInfo->EngineMask);
>    HighMemoryAlignment = GetHighMemoryAlignment (VTdInfo,
> VTdInfo->EngineMask);
>    if (LowMemoryAlignment < HighMemoryAlignment) {
> @@ -584,7 +421,7 @@ InitDmaProtection (
>    LowBottom = 0;
>    LowTop = *DmaBufferBase;
>    HighBottom = *DmaBufferBase + DmaBufferSize;
> -  HighTop = GetTopMemory ();
> +  HighTop = LShiftU64 (1, VTdInfo->HostAddressWidth + 1);
> 
>    Status = SetDmaProtectedRange (
>               VTdInfo,
> diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.h
> b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.h
> index 499119d3ff19..c53f69cb3465 100644
> --- a/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.h
> +++ b/IntelSiliconPkg/Feature/VTd/IntelVTdPmrPei/IntelVTdPmrPei.h
> @@ -1,7 +1,7 @@
>  /** @file
>    The definition for DMA access Library.
> 
> -  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD
> License
>    which accompanies this distribution.  The full text of the license may be
> found at
> @@ -159,16 +159,6 @@ DumpAcpiDMAR (
>    IN EFI_ACPI_DMAR_HEADER  *Dmar
>    );
> 
> -/**
> -  Get the highest memory.
> -
> -  @return the highest memory.
> -**/
> -UINT64
> -GetTopMemory (
> -  VOID
> -  );
> -
>  extern EFI_GUID mVTdInfoGuid;
> 
>  #endif
> --
> 2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to