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)28 AllocateAlignBuffer (
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