summaryrefslogtreecommitdiff
path: root/Silicon/Socionext/SynQuacer/Include/Ppi/DramInfo.h
blob: 6453e121317dec95119e123e02642a1f00bb448a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/** @file
  DRAM info PPI to retrieve DRAM information from lower level firmware

  Copyright (c) 2017, Linaro Ltd. 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  _SYNQUACER_DRAMINFO_PPI_
#define  _SYNQUACER_DRAMINFO_PPI_

#define SYNQUACER_DRAMINFO_PPI_GUID \
  { 0x3e1d7356, 0xdda4, 0x4b1a, { 0x93, 0x46, 0xbf, 0x89, 0x1c, 0x86, 0x46, 0xcc } }

/**
  Retrieve the number of discontiguous DRAM regions

  @param[out] RegionCount       The number of available DRAM regions

  @retval EFI_SUCCESS           The data was successfully returned.
  @retval EFI_INVALID_PARAMETER RegionCount == NULL

**/
typedef
EFI_STATUS
(EFIAPI * DRAMINFO_GET_REGION_COUNT) (
  OUT   UINTN                 *RegionCount
  );

/**
  Retrieve the base and size of a DRAM region

  @param[in]  RegionIndex       The 0-based index of the region to retrieve
  @param[out] Base              The base of the requested region
  @param[out] Size              The size of the requested region

  @retval EFI_SUCCESS           The data was successfully returned.
  @retval EFI_INVALID_PARAMETER Base == NULL or Size == NULL
  @retval EFI_NOT_FOUND         No region exists with index >= RegionIndex

**/
typedef
EFI_STATUS
(EFIAPI * DRAMINFO_GET_REGION) (
  IN    UINTN                 RegionIndex,
  OUT   UINT64                *Base,
  OUT   UINT64                *Size
  );

typedef struct {
  DRAMINFO_GET_REGION_COUNT   GetRegionCount;
  DRAMINFO_GET_REGION         GetRegion;
} SYNQUACER_DRAM_INFO_PPI;

extern EFI_GUID gSynQuacerDramInfoPpiGuid;

#endif