]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c
ArmPlatformPkg: list module-internal header files in INF [Sources]
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformLibNull / ArmPlatformLibNull.c
CommitLineData
1e57a462 1/** @file\r
2*\r
3* Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
1e57a462 4*\r
f4dfad05 5* SPDX-License-Identifier: BSD-2-Clause-Patent\r
1e57a462 6*\r
7**/\r
8\r
9#include <Library/ArmLib.h>\r
10#include <Library/ArmPlatformLib.h>\r
11\r
12#include <Ppi/ArmMpCoreInfo.h>\r
13\r
14\r
15ARM_CORE_INFO mArmPlatformNullMpCoreInfoTable[] = {\r
16 {\r
17 // Cluster 0, Core 0\r
18 0x0, 0x0,\r
19\r
20 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
21 (EFI_PHYSICAL_ADDRESS)0,\r
22 (EFI_PHYSICAL_ADDRESS)0,\r
23 (EFI_PHYSICAL_ADDRESS)0,\r
24 (UINT64)0xFFFFFFFF\r
25 },\r
26 {\r
27 // Cluster 0, Core 1\r
28 0x0, 0x1,\r
29\r
30 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
31 (EFI_PHYSICAL_ADDRESS)0,\r
32 (EFI_PHYSICAL_ADDRESS)0,\r
33 (EFI_PHYSICAL_ADDRESS)0,\r
34 (UINT64)0xFFFFFFFF\r
35 },\r
36 {\r
37 // Cluster 0, Core 2\r
38 0x0, 0x2,\r
39\r
40 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
41 (EFI_PHYSICAL_ADDRESS)0,\r
42 (EFI_PHYSICAL_ADDRESS)0,\r
43 (EFI_PHYSICAL_ADDRESS)0,\r
44 (UINT64)0xFFFFFFFF\r
45 },\r
46 {\r
47 // Cluster 0, Core 3\r
48 0x0, 0x3,\r
49\r
50 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
51 (EFI_PHYSICAL_ADDRESS)0,\r
52 (EFI_PHYSICAL_ADDRESS)0,\r
53 (EFI_PHYSICAL_ADDRESS)0,\r
54 (UINT64)0xFFFFFFFF\r
55 }\r
56};\r
57\r
58// This function should be better located into TimerLib implementation\r
59RETURN_STATUS\r
60EFIAPI\r
61TimerConstructor (\r
62 VOID\r
63 )\r
64{\r
65 return EFI_SUCCESS;\r
66}\r
67\r
68/**\r
69 Return the current Boot Mode\r
70\r
71 This function returns the boot reason on the platform\r
72\r
73**/\r
74EFI_BOOT_MODE\r
75ArmPlatformGetBootMode (\r
76 VOID\r
77 )\r
78{\r
79 return BOOT_WITH_FULL_CONFIGURATION;\r
80}\r
81\r
82/**\r
83 Initialize controllers that must setup in the normal world\r
84\r
85 This function is called by the ArmPlatformPkg/PrePi or ArmPlatformPkg/PlatformPei\r
86 in the PEI phase.\r
87\r
88**/\r
89RETURN_STATUS\r
90ArmPlatformInitialize (\r
91 IN UINTN MpId\r
92 )\r
93{\r
bebda7ce 94 if (!ArmPlatformIsPrimaryCore (MpId)) {\r
1e57a462 95 return RETURN_SUCCESS;\r
96 }\r
97\r
98 //TODO: Implement me\r
99\r
100 return RETURN_SUCCESS;\r
101}\r
102\r
1e57a462 103EFI_STATUS\r
104PrePeiCoreGetMpCoreInfo (\r
105 OUT UINTN *CoreCount,\r
106 OUT ARM_CORE_INFO **ArmCoreTable\r
107 )\r
108{\r
109 if (ArmIsMpCore()) {\r
110 *CoreCount = sizeof(mArmPlatformNullMpCoreInfoTable) / sizeof(ARM_CORE_INFO);\r
111 *ArmCoreTable = mArmPlatformNullMpCoreInfoTable;\r
112 return EFI_SUCCESS;\r
113 } else {\r
114 return EFI_UNSUPPORTED;\r
115 }\r
116}\r
117\r
1e57a462 118ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo };\r
119\r
120EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = {\r
121 {\r
122 EFI_PEI_PPI_DESCRIPTOR_PPI,\r
29a1e170 123 &gArmMpCoreInfoPpiGuid,\r
1e57a462 124 &mMpCoreInfoPpi\r
125 }\r
126};\r
127\r
128VOID\r
129ArmPlatformGetPlatformPpiList (\r
130 OUT UINTN *PpiListSize,\r
131 OUT EFI_PEI_PPI_DESCRIPTOR **PpiList\r
132 )\r
133{\r
134 if (ArmIsMpCore()) {\r
135 *PpiListSize = sizeof(gPlatformPpiTable);\r
136 *PpiList = gPlatformPpiTable;\r
137 } else {\r
138 *PpiListSize = 0;\r
139 *PpiList = NULL;\r
140 }\r
141}\r
142\r