]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/Library/PlatformInitLib/Platform.c
OvmfPkg/PlatformInitLib: Create MemDetect.c
[mirror_edk2.git] / OvmfPkg / Library / PlatformInitLib / Platform.c
CommitLineData
102cafed
MX
1/**@file\r
2\r
3 Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
4 Copyright (c) 2011, Andrei Warkentin <andreiw@motorola.com>\r
5\r
6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
7\r
8**/\r
9\r
10//\r
11// The package level header files this module uses\r
12//\r
13#include <PiPei.h>\r
14\r
15//\r
16// The Library classes this module consumes\r
17//\r
18#include <Library/BaseMemoryLib.h>\r
19#include <Library/BaseLib.h>\r
20#include <Library/DebugLib.h>\r
21#include <Library/HobLib.h>\r
22#include <Library/PlatformInitLib.h>\r
23\r
24VOID\r
25EFIAPI\r
26PlatformAddIoMemoryBaseSizeHob (\r
27 IN EFI_PHYSICAL_ADDRESS MemoryBase,\r
28 IN UINT64 MemorySize\r
29 )\r
30{\r
31 BuildResourceDescriptorHob (\r
32 EFI_RESOURCE_MEMORY_MAPPED_IO,\r
33 EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
34 EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
35 EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
36 EFI_RESOURCE_ATTRIBUTE_TESTED,\r
37 MemoryBase,\r
38 MemorySize\r
39 );\r
40}\r
41\r
42VOID\r
43EFIAPI\r
44PlatformAddReservedMemoryBaseSizeHob (\r
45 IN EFI_PHYSICAL_ADDRESS MemoryBase,\r
46 IN UINT64 MemorySize,\r
47 IN BOOLEAN Cacheable\r
48 )\r
49{\r
50 BuildResourceDescriptorHob (\r
51 EFI_RESOURCE_MEMORY_RESERVED,\r
52 EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
53 EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
54 EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
55 (Cacheable ?\r
56 EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
57 EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
58 EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE :\r
59 0\r
60 ) |\r
61 EFI_RESOURCE_ATTRIBUTE_TESTED,\r
62 MemoryBase,\r
63 MemorySize\r
64 );\r
65}\r
66\r
67VOID\r
68EFIAPI\r
69PlatformAddIoMemoryRangeHob (\r
70 IN EFI_PHYSICAL_ADDRESS MemoryBase,\r
71 IN EFI_PHYSICAL_ADDRESS MemoryLimit\r
72 )\r
73{\r
74 PlatformAddIoMemoryBaseSizeHob (MemoryBase, (UINT64)(MemoryLimit - MemoryBase));\r
75}\r
76\r
77VOID\r
78EFIAPI\r
79PlatformAddMemoryBaseSizeHob (\r
80 IN EFI_PHYSICAL_ADDRESS MemoryBase,\r
81 IN UINT64 MemorySize\r
82 )\r
83{\r
84 BuildResourceDescriptorHob (\r
85 EFI_RESOURCE_SYSTEM_MEMORY,\r
86 EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
87 EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
88 EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
89 EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
90 EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
91 EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |\r
92 EFI_RESOURCE_ATTRIBUTE_TESTED,\r
93 MemoryBase,\r
94 MemorySize\r
95 );\r
96}\r
97\r
98VOID\r
99EFIAPI\r
100PlatformAddMemoryRangeHob (\r
101 IN EFI_PHYSICAL_ADDRESS MemoryBase,\r
102 IN EFI_PHYSICAL_ADDRESS MemoryLimit\r
103 )\r
104{\r
105 PlatformAddMemoryBaseSizeHob (MemoryBase, (UINT64)(MemoryLimit - MemoryBase));\r
106}\r