On Thu, Feb 23, 2017 at 03:48:05PM +0000, Ard Biesheuvel wrote:
> Virtual uncached pages are simply pages that are aliased using mismatched
> attributes, which is not allowed by the ARM architecture. So remove the
> protocol and its implementation.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>

Nuke it from orbit:
Reviewed-by: Leif Lindholm <leif.lindh...@linaro.org>

> ---
>  ArmPkg/ArmPkg.dec                              |  3 -
>  ArmPkg/Drivers/CpuDxe/CpuDxe.c                 |  1 -
>  ArmPkg/Drivers/CpuDxe/CpuDxe.h                 |  3 -
>  ArmPkg/Drivers/CpuDxe/CpuDxe.inf               |  1 -
>  ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c           | 70 --------------------
>  ArmPkg/Include/Protocol/VirtualUncachedPages.h | 60 -----------------
>  6 files changed, 138 deletions(-)
> 
> diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec
> index 8e9cf199becc..4fd7a5be5158 100644
> --- a/ArmPkg/ArmPkg.dec
> +++ b/ArmPkg/ArmPkg.dec
> @@ -52,9 +52,6 @@ [Ppis]
>    ## Include/Ppi/ArmMpCoreInfo.h
>    gArmMpCoreInfoPpiGuid = { 0x6847cc74, 0xe9ec, 0x4f8f, {0xa2, 0x9d, 0xab, 
> 0x44, 0xe7, 0x54, 0xa8, 0xfc} }
>  
> -[Protocols.common]
> -  gVirtualUncachedPagesProtocolGuid = { 0xAD651C7D, 0x3C22, 0x4DBF, { 0x92, 
> 0xe8, 0x38, 0xa7, 0xcd, 0xae, 0x87, 0xb2 } }
> -
>  [PcdsFeatureFlag.common]
>    gArmTokenSpaceGuid.PcdCpuDxeProduceDebugSupport|FALSE|BOOLEAN|0x00000001
>  
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.c b/ArmPkg/Drivers/CpuDxe/CpuDxe.c
> index 7d328d096b1e..5aa5b874144a 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.c
> +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.c
> @@ -253,7 +253,6 @@ CpuDxeInitialize (
>    Status = gBS->InstallMultipleProtocolInterfaces (
>                  &mCpuHandle,
>                  &gEfiCpuArchProtocolGuid,           &mCpu,
> -                &gVirtualUncachedPagesProtocolGuid, &gVirtualUncachedPages,
>                  NULL
>                  );
>  
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.h b/ArmPkg/Drivers/CpuDxe/CpuDxe.h
> index 80c305d53dd1..a00fc3064362 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.h
> +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.h
> @@ -35,7 +35,6 @@
>  #include <Protocol/Cpu.h>
>  #include <Protocol/DebugSupport.h>
>  #include <Protocol/DebugSupportPeriodicCallback.h>
> -#include <Protocol/VirtualUncachedPages.h>
>  #include <Protocol/LoadedImage.h>
>  
>  
> @@ -169,6 +168,4 @@ SetGcdMemorySpaceAttributes (
>    IN UINT64                              Attributes
>    );
>  
> -extern VIRTUAL_UNCACHED_PAGES_PROTOCOL  gVirtualUncachedPages;
> -
>  #endif // __CPU_DXE_ARM_EXCEPTION_H__
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.inf 
> b/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> index b31c994f43e2..d068e06803ed 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> @@ -61,7 +61,6 @@ [LibraryClasses]
>  [Protocols]
>    gEfiCpuArchProtocolGuid
>    gEfiDebugSupportPeriodicCallbackProtocolGuid
> -  gVirtualUncachedPagesProtocolGuid
>  
>  [Guids]
>    gEfiDebugImageInfoTableGuid
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c 
> b/ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c
> index 54d9b0163331..ebe593d1c325 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c
> +++ b/ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c
> @@ -211,73 +211,3 @@ CpuSetMemoryAttributes (
>      return EFI_SUCCESS;
>    }
>  }
> -
> -EFI_STATUS
> -EFIAPI
> -CpuConvertPagesToUncachedVirtualAddress (
> -  IN  VIRTUAL_UNCACHED_PAGES_PROTOCOL  *This,
> -  IN  EFI_PHYSICAL_ADDRESS              Address,
> -  IN  UINTN                             Length,
> -  IN  EFI_PHYSICAL_ADDRESS              VirtualMask,
> -  OUT UINT64                           *Attributes     OPTIONAL
> -  )
> -{
> -  EFI_STATUS                      Status;
> -  EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor;
> -
> -  if (Attributes != NULL) {
> -    Status = gDS->GetMemorySpaceDescriptor (Address, &GcdDescriptor);
> -    if (!EFI_ERROR (Status)) {
> -      *Attributes = GcdDescriptor.Attributes;
> -    }
> -  }
> -
> -  //
> -  // Make this address range page fault if accessed. If it is a DMA buffer 
> than this would
> -  // be the PCI address. Code should always use the CPU address, and we will 
> or in VirtualMask
> -  // to that address.
> -  //
> -  Status = SetMemoryAttributes (Address, Length, EFI_MEMORY_RO, 0);
> -  if (!EFI_ERROR (Status)) {
> -    Status = SetMemoryAttributes (Address | VirtualMask, Length, 
> EFI_MEMORY_UC, VirtualMask);
> -  }
> -
> -  DEBUG ((DEBUG_INFO | DEBUG_LOAD, 
> "CpuConvertPagesToUncachedVirtualAddress()\n    Unmapped 0x%08lx Mapped 
> 0x%08lx 0x%x bytes\n", Address, Address | VirtualMask, Length));
> -
> -  return Status;
> -}
> -
> -
> -EFI_STATUS
> -EFIAPI
> -CpuReconvertPages (
> -  IN  VIRTUAL_UNCACHED_PAGES_PROTOCOL  *This,
> -  IN  EFI_PHYSICAL_ADDRESS              Address,
> -  IN  UINTN                             Length,
> -  IN  EFI_PHYSICAL_ADDRESS              VirtualMask,
> -  IN  UINT64                            Attributes
> -  )
> -{
> -  EFI_STATUS      Status;
> -
> -  DEBUG ((DEBUG_INFO | DEBUG_LOAD, "CpuReconvertPages(%lx, %x, %lx, %lx)\n", 
> Address, Length, VirtualMask, Attributes));
> -
> -  //
> -  // Unmap the aliased Address
> -  //
> -  Status = SetMemoryAttributes (Address | VirtualMask, Length, 
> EFI_MEMORY_RO, 0);
> -  if (!EFI_ERROR (Status)) {
> -    //
> -    // Restore atttributes
> -    //
> -    Status = SetMemoryAttributes (Address, Length, Attributes, 0);
> -  }
> -
> -  return Status;
> -}
> -
> -
> -VIRTUAL_UNCACHED_PAGES_PROTOCOL  gVirtualUncachedPages = {
> -  CpuConvertPagesToUncachedVirtualAddress,
> -  CpuReconvertPages
> -};
> diff --git a/ArmPkg/Include/Protocol/VirtualUncachedPages.h 
> b/ArmPkg/Include/Protocol/VirtualUncachedPages.h
> deleted file mode 100644
> index 0822184b8931..000000000000
> --- a/ArmPkg/Include/Protocol/VirtualUncachedPages.h
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -/** @file
> -
> -  Copyright (c) 2008 - 2010, Apple Inc. 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
> -  http://opensource.org/licenses/bsd-license.php
> -
> -  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 
> IMPLIED.
> -
> -**/
> -
> -#ifndef __VIRTUAL_UNCACHED_PAGES_ROTOCOL_H__
> -#define __VIRTUAL_UNCACHED_PAGES_ROTOCOL_H__
> -
> -//
> -// Protocol GUID
> -//
> -#define VIRTUAL_UNCACHED_PAGES_PROTOCOL_GUID { 0xAD651C7D, 0x3C22, 0x4DBF, { 
> 0x92, 0xe8, 0x38, 0xa7, 0xcd, 0xae, 0x87, 0xb2 } }
> -
> -
> -
> -//
> -// Protocol interface structure
> -//
> -typedef struct _VIRTUAL_UNCACHED_PAGES_PROTOCOL  
> VIRTUAL_UNCACHED_PAGES_PROTOCOL;
> -
> -
> -typedef
> -EFI_STATUS
> -(EFIAPI *CONVERT_PAGES_TO_UNCACHED_VIRTUAL_ADDRESS) (
> -  IN  VIRTUAL_UNCACHED_PAGES_PROTOCOL   *This,
> -  IN  EFI_PHYSICAL_ADDRESS              Address,
> -  IN  UINTN                             Length,
> -  IN  EFI_PHYSICAL_ADDRESS              VirtualMask,
> -  OUT UINT64                            *Attributes     OPTIONAL
> -  );
> -
> -typedef
> -EFI_STATUS
> -(EFIAPI *FREE_CONVERTED_PAGES) (
> -  IN  VIRTUAL_UNCACHED_PAGES_PROTOCOL   *This,
> -  IN  EFI_PHYSICAL_ADDRESS              Address,
> -  IN  UINTN                             Length,
> -  IN  EFI_PHYSICAL_ADDRESS              VirtualMask,
> -  IN  UINT64                            Attributes
> -  );
> -
> -
> -
> -struct _VIRTUAL_UNCACHED_PAGES_PROTOCOL {
> -  CONVERT_PAGES_TO_UNCACHED_VIRTUAL_ADDRESS  ConvertPages;
> -  FREE_CONVERTED_PAGES                       RevertPages;
> -};
> -
> -extern EFI_GUID gVirtualUncachedPagesProtocolGuid;
> -
> -#endif
> -- 
> 2.7.4
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to