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