]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c
ArmPlatformPkg: remove ArmPlatformInitializeSystemMemory
[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
3402aac7
RC
5* This program and the accompanying materials\r
6* are licensed and made available under the terms and conditions of the BSD License\r
7* which accompanies this distribution. The full text of the license may be found at\r
8* http://opensource.org/licenses/bsd-license.php\r
9*\r
10* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
1e57a462 12*\r
13**/\r
14\r
15#include <Library/ArmLib.h>\r
16#include <Library/ArmPlatformLib.h>\r
17\r
18#include <Ppi/ArmMpCoreInfo.h>\r
19\r
20\r
21ARM_CORE_INFO mArmPlatformNullMpCoreInfoTable[] = {\r
22 {\r
23 // Cluster 0, Core 0\r
24 0x0, 0x0,\r
25\r
26 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
27 (EFI_PHYSICAL_ADDRESS)0,\r
28 (EFI_PHYSICAL_ADDRESS)0,\r
29 (EFI_PHYSICAL_ADDRESS)0,\r
30 (UINT64)0xFFFFFFFF\r
31 },\r
32 {\r
33 // Cluster 0, Core 1\r
34 0x0, 0x1,\r
35\r
36 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
37 (EFI_PHYSICAL_ADDRESS)0,\r
38 (EFI_PHYSICAL_ADDRESS)0,\r
39 (EFI_PHYSICAL_ADDRESS)0,\r
40 (UINT64)0xFFFFFFFF\r
41 },\r
42 {\r
43 // Cluster 0, Core 2\r
44 0x0, 0x2,\r
45\r
46 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
47 (EFI_PHYSICAL_ADDRESS)0,\r
48 (EFI_PHYSICAL_ADDRESS)0,\r
49 (EFI_PHYSICAL_ADDRESS)0,\r
50 (UINT64)0xFFFFFFFF\r
51 },\r
52 {\r
53 // Cluster 0, Core 3\r
54 0x0, 0x3,\r
55\r
56 // MP Core MailBox Set/Get/Clear Addresses and Clear Value\r
57 (EFI_PHYSICAL_ADDRESS)0,\r
58 (EFI_PHYSICAL_ADDRESS)0,\r
59 (EFI_PHYSICAL_ADDRESS)0,\r
60 (UINT64)0xFFFFFFFF\r
61 }\r
62};\r
63\r
64// This function should be better located into TimerLib implementation\r
65RETURN_STATUS\r
66EFIAPI\r
67TimerConstructor (\r
68 VOID\r
69 )\r
70{\r
71 return EFI_SUCCESS;\r
72}\r
73\r
74/**\r
75 Return the current Boot Mode\r
76\r
77 This function returns the boot reason on the platform\r
78\r
79**/\r
80EFI_BOOT_MODE\r
81ArmPlatformGetBootMode (\r
82 VOID\r
83 )\r
84{\r
85 return BOOT_WITH_FULL_CONFIGURATION;\r
86}\r
87\r
88/**\r
89 Initialize controllers that must setup in the normal world\r
90\r
91 This function is called by the ArmPlatformPkg/PrePi or ArmPlatformPkg/PlatformPei\r
92 in the PEI phase.\r
93\r
94**/\r
95RETURN_STATUS\r
96ArmPlatformInitialize (\r
97 IN UINTN MpId\r
98 )\r
99{\r
bebda7ce 100 if (!ArmPlatformIsPrimaryCore (MpId)) {\r
1e57a462 101 return RETURN_SUCCESS;\r
102 }\r
103\r
104 //TODO: Implement me\r
105\r
106 return RETURN_SUCCESS;\r
107}\r
108\r
1e57a462 109EFI_STATUS\r
110PrePeiCoreGetMpCoreInfo (\r
111 OUT UINTN *CoreCount,\r
112 OUT ARM_CORE_INFO **ArmCoreTable\r
113 )\r
114{\r
115 if (ArmIsMpCore()) {\r
116 *CoreCount = sizeof(mArmPlatformNullMpCoreInfoTable) / sizeof(ARM_CORE_INFO);\r
117 *ArmCoreTable = mArmPlatformNullMpCoreInfoTable;\r
118 return EFI_SUCCESS;\r
119 } else {\r
120 return EFI_UNSUPPORTED;\r
121 }\r
122}\r
123\r
1e57a462 124ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo };\r
125\r
126EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = {\r
127 {\r
128 EFI_PEI_PPI_DESCRIPTOR_PPI,\r
29a1e170 129 &gArmMpCoreInfoPpiGuid,\r
1e57a462 130 &mMpCoreInfoPpi\r
131 }\r
132};\r
133\r
134VOID\r
135ArmPlatformGetPlatformPpiList (\r
136 OUT UINTN *PpiListSize,\r
137 OUT EFI_PEI_PPI_DESCRIPTOR **PpiList\r
138 )\r
139{\r
140 if (ArmIsMpCore()) {\r
141 *PpiListSize = sizeof(gPlatformPpiTable);\r
142 *PpiList = gPlatformPpiTable;\r
143 } else {\r
144 *PpiListSize = 0;\r
145 *PpiList = NULL;\r
146 }\r
147}\r
148\r