summaryrefslogtreecommitdiff
path: root/Silicon/BroxtonSoC/BroxtonSiPkg/Txe/Include/Ppi/SeCUma.h
blob: 59c2613a6f758cb560e0807465614bbb568f14eb (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/** @file
  Interface definition details for SEC and UMA.

  Copyright (c) 2010 - 2016, 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
  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 _SEC_UMA_PPI_H_
#define _SEC_UMA_PPI_H_

#define SEC_UMA_PPI_GUID \
  { \
    0xcbd86677, 0x362f, 0x4c04, 0x94, 0x59, 0xa7, 0x41, 0x32, 0x6e, 0x05, 0xcf \
  }

#define CSE_EMMC_SELECT_PPI_GUID \
  { \
    0x1e30e33d, 0x1854, 0x437a, 0xbd, 0x68, 0xfc, 0x15, 0x53, 0xaa, 0x8b, 0xe4 \
  }

#define CSE_UFS_SELECT_PPI_GUID  \
  { \
    0xc5a6189e, 0x8c33, 0x4ac6, 0xae, 0x9a, 0xae, 0xd1, 0x8c, 0xab, 0xe2, 0x6d \
  }

#define CSE_SPI_SELECT_PPI_GUID  \
  { \
    0xd35eda81, 0x07d0, 0x4142, 0x94, 0x9,  0xb0, 0x72, 0x33, 0xed, 0x2d, 0x7 \
  }

extern EFI_GUID  gSeCUmaPpiGuid;
extern EFI_GUID  gCseEmmcSelectPpiGuid;
extern EFI_GUID  gCseUfsSelectPpiGuid;
extern EFI_GUID  gCseSpiSelectPpiGuid;

//
// Revision
//
#define SEC_UMA_PPI_REVISION 1

//
// define the MRC recommended boot modes.
//
typedef enum {
  s3Boot, // In current implementation, bmS3 == bmWarm
  warmBoot,
  coldBoot,
  fastBoot,
} MRC_BOOT_MODE_T;

typedef
EFI_STATUS
(EFIAPI *SEC_SEND_UMA_SIZE) (
  IN EFI_PEI_SERVICES **PeiServices
  );

typedef
EFI_STATUS
(EFIAPI *SEC_CONFIG_DID_REG) (
  IN CONST EFI_PEI_SERVICES **PeiServices,
  MRC_BOOT_MODE_T           MrcBootMode,
  UINT8                     InitStat,
  UINT32                    SeCUmaBase,
  UINT32                    *SeCUmaSize
  );

typedef
EFI_STATUS
(EFIAPI *SEC_TAKE_OWNER_SHIP) (
  );

//
// Interface definition details for SEC and UMA
//
typedef struct SEC_UMA_PPI {
  SEC_SEND_UMA_SIZE      SeCSendUmaSize;
  SEC_CONFIG_DID_REG     SeCConfigDidReg;
  SEC_TAKE_OWNER_SHIP    SeCTakeOwnerShip;
} SEC_UMA_PPI;

#endif