1 /** @file 2 Debug Port Library implementation based on usb3 debug port. 3 4 Copyright (c) 2014, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php. 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #include <PiPei.h> 16 #include <Library/PeiServicesLib.h> 17 #include "DebugCommunicationLibUsb3Internal.h" 18 19 /** 20 Allocate aligned memory for XHC's usage. 21 22 @param BufferSize The size, in bytes, of the Buffer. 23 24 @return A pointer to the allocated buffer or NULL if allocation fails. 25 26 **/ 27 VOID* AllocateAlignBuffer(IN UINTN BufferSize)28AllocateAlignBuffer ( 29 IN UINTN BufferSize 30 ) 31 { 32 VOID *Buf; 33 EFI_PHYSICAL_ADDRESS Address; 34 EFI_STATUS Status; 35 36 Buf = NULL; 37 Status = PeiServicesAllocatePages (EfiACPIMemoryNVS, EFI_SIZE_TO_PAGES (BufferSize), &Address); 38 if (EFI_ERROR (Status)) { 39 Buf = NULL; 40 } else { 41 Buf = (VOID *)(UINTN) Address; 42 } 43 return Buf; 44 } 45 46