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