aboutsummaryrefslogtreecommitdiff
path: root/payloads/external/tianocore/patches/06_CorebootPayloadPkg_keep_cb_table.patch
blob: 649c6ee315c143afc09a388fd9daddc4c9c44226 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
From 07742664925f8d055505220258f2589a9c73a80b Mon Sep 17 00:00:00 2001
From: ReddestDream <reddestdream@gmail.com>
Date: Wed, 3 May 2017 00:13:28 -0400
Subject: [PATCH] CbSupportPei: prevent lower coreboot table from being
 overwritten

Exclude the bottom 4kb from being included in System Memory HoB

diff --git a/CorebootModulePkg/CbSupportPei/CbSupportPei.c b/CorebootModulePkg/CbSupportPei/CbSupportPei.c
index 262e6b9d7d..da8f060783 100755
--- a/CorebootModulePkg/CbSupportPei/CbSupportPei.c
+++ b/CorebootModulePkg/CbSupportPei/CbSupportPei.c
@@ -246,23 +246,20 @@ CbPeiEntryPoint (
   UINTN                PmGpeEnBase;
   CB_MEM_INFO          CbMemInfo;
 
-  //
-  // Report lower 640KB of RAM. Attribute EFI_RESOURCE_ATTRIBUTE_TESTED  
-  // is intentionally omitted to prevent erasing of the coreboot header  
-  // record before it is processed by CbParseMemoryInfo.
-  //
   BuildResourceDescriptorHob (
     EFI_RESOURCE_SYSTEM_MEMORY,
     (
     EFI_RESOURCE_ATTRIBUTE_PRESENT |
     EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
+    EFI_RESOURCE_ATTRIBUTE_TESTED |
     EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |
     EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |
     EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |
     EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE
     ),
-    (EFI_PHYSICAL_ADDRESS)(0),
-    (UINT64)(0xA0000)
+    // Lower 640KB, except for first 4KB where the lower coreboot pointer ("LBIO") resides
+    (EFI_PHYSICAL_ADDRESS)(0 + 0x1000),
+    (UINT64)(0xA0000 - 0x1000)
     );
 
 
@@ -309,7 +306,7 @@ CbPeiEntryPoint (
   // Set cache on the physical memory
   //
   MtrrSetMemoryAttribute (BASE_1MB, LowMemorySize - BASE_1MB, CacheWriteBack);
-  MtrrSetMemoryAttribute (0, 0xA0000, CacheWriteBack);
+  MtrrSetMemoryAttribute ((0 + 0x1000), (0xA0000 - 0x1000), CacheWriteBack);
 
   //
   // Create Memory Type Information HOB
-- 
2.14.0