public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/3] Remove pre-built ResetVector binaries
@ 2023-06-15 10:50 Ni, Ray
  2023-06-15 10:50 ` [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC Ni, Ray
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Ni, Ray @ 2023-06-15 10:50 UTC (permalink / raw)
  To: devel

Ray Ni (3):
  UefiCpuPkg: Include ResetVector in DSC
  UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align
  UefiCpuPkg/ResetVector: Remove pre-built binaries

 .../Vtf0/Bin/IA32/ResetVector.ia32.port80.raw | Bin 532 -> 0 bytes
 .../Vtf0/Bin/IA32/ResetVector.ia32.raw        | Bin 500 -> 0 bytes
 .../Vtf0/Bin/IA32/ResetVector.ia32.serial.raw | Bin 900 -> 0 bytes
 .../ResetVector/Vtf0/Bin/ResetVector.inf      |  31 ------
 .../ResetVector/Vtf0/Bin/ResetVector.uni      |  16 ----
 .../ResetVector/Vtf0/Bin/ResetVector1G.inf    |  31 ------
 .../ResetVector/Vtf0/Bin/ResetVectorExtra.uni |  12 ---
 .../PageTable1G/ResetVector.x64.port80.raw    | Bin 12292 -> 0 bytes
 .../Bin/X64/PageTable1G/ResetVector.x64.raw   | Bin 12292 -> 0 bytes
 .../PageTable1G/ResetVector.x64.serial.raw    | Bin 12292 -> 0 bytes
 .../PageTable2M/ResetVector.x64.port80.raw    | Bin 28676 -> 0 bytes
 .../Bin/X64/PageTable2M/ResetVector.x64.raw   | Bin 28676 -> 0 bytes
 .../PageTable2M/ResetVector.x64.serial.raw    | Bin 28676 -> 0 bytes
 UefiCpuPkg/ResetVector/Vtf0/Build.py          |  89 ------------------
 UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt        |  27 ++----
 .../Vtf0/Tools/FixupForRawSection.py          |  20 ----
 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf          |  28 +++++-
 UefiCpuPkg/UefiCpuPkg.dsc                     |   4 +-
 18 files changed, 36 insertions(+), 222 deletions(-)
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py

-- 
2.39.1.windows.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC
  2023-06-15 10:50 [PATCH 0/3] Remove pre-built ResetVector binaries Ni, Ray
@ 2023-06-15 10:50 ` Ni, Ray
  2023-06-19  5:51   ` Dong, Eric
  2023-06-19 10:45   ` Gerd Hoffmann
  2023-06-15 10:50 ` [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align Ni, Ray
  2023-06-15 10:50 ` [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries Ni, Ray
  2 siblings, 2 replies; 9+ messages in thread
From: Ni, Ray @ 2023-06-15 10:50 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Rahul Kumar, Gerd Hoffmann

Since ResetVector source module shares the same GUID as the binary
module, the binary INF file is just removed from DSC.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 UefiCpuPkg/UefiCpuPkg.dsc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc
index 593c11cc74..7af1c83424 100644
--- a/UefiCpuPkg/UefiCpuPkg.dsc
+++ b/UefiCpuPkg/UefiCpuPkg.dsc
@@ -1,7 +1,7 @@
 ## @file
 #  UefiCpuPkg Package
 #
-#  Copyright (c) 2007 - 2022, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2023, Intel Corporation. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -168,7 +168,7 @@
       SmmCpuFeaturesLib|UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLibStm.inf
   }
   UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
-  UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
+  UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
   UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf
   UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableLib.inf
   UefiCpuPkg/Library/CpuExceptionHandlerLib/UnitTest/PeiCpuExceptionHandlerLibUnitTest.inf
-- 
2.39.1.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align
  2023-06-15 10:50 [PATCH 0/3] Remove pre-built ResetVector binaries Ni, Ray
  2023-06-15 10:50 ` [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC Ni, Ray
@ 2023-06-15 10:50 ` Ni, Ray
  2023-06-19  5:52   ` Dong, Eric
  2023-06-19 10:38   ` [edk2-devel] " Zhiguang Liu
  2023-06-15 10:50 ` [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries Ni, Ray
  2 siblings, 2 replies; 9+ messages in thread
From: Ni, Ray @ 2023-06-15 10:50 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Rahul Kumar, Gerd Hoffmann

ResetVector assembly implementation puts "ALIGN 16" in the end
to guarantee the final executable file size is multiple of 16 bytes.
Because the module uses a special GUID which guarantees it's put in
the very end of a FV, which should be also the end of the FD.
Then to make sure the reset vector "JMP" code is at FFFF_FFF0h, the
ResetVector has to be aligned at 16-byte boundary.

The patch updates INF file and ReadMe.txt to add guidance how to make
sure the module is aligned on 16-byte boundary.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt | 27 +++++++-------------------
 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf   | 19 +++++++++++++++++-
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
index 97f4600968..edeb2d6d3e 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
+++ b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
@@ -1,15 +1,16 @@
 
 === HOW TO USE VTF0 ===
+Add this line to your DSC [Components.IA32] or [Components.X64] section:
+  UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
 
 Add this line to your FDF FV section:
-INF  RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
-(For X64 SEC/PEI change IA32 to X64 => 'USE = X64')
+  INF  RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
 
 In your FDF FFS file rules sections add:
-[Rule.Common.SEC.RESET_VECTOR]
-  FILE RAW = $(NAMED_GUID) {
-    RAW RAW                |.raw
-  }
+  [Rule.Common.SEC.RESET_VECTOR]
+    FILE RAW = $(NAMED_GUID) {
+      RAW BIN   Align = 16   |.bin
+    }
 
 === VTF0 Boot Flow ===
 
@@ -25,17 +26,3 @@ All inputs to SEC image are register based:
 EAX/RAX - Initial value of the EAX register (BIST: Built-in Self Test)
 DI      - 'BP': boot-strap processor, or 'AP': application processor
 EBP/RBP - Pointer to the start of the Boot Firmware Volume
-
-=== HOW TO BUILD VTF0 ===
-
-Dependencies:
-* Python 3 or newer
-* Nasm 2.03 or newer
-
-To rebuild the VTF0 binaries:
-1. Change to VTF0 source dir: UefiCpuPkg/ResetVector/Vtf0
-2. nasm and python should be in executable path
-3. Run this command:
-   python Build.py
-4. Binaries output will be in UefiCpuPkg/ResetVector/Vtf0/Bin
-
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
index 9922cb2755..28185a6e60 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
+++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
@@ -1,7 +1,24 @@
 ## @file
 #  Reset Vector
 #
-#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+#  Note:
+#    The platform FDF file MUST guarantee the ResetVector is aligned
+#    on 16-byte boundary. Otherwise, the CPU reset vector will NOT be
+#    at FFFF_FFF0h.
+#
+#    A sample FDF build rule could be as follows:
+#
+#          [Rule.Common.SEC.RESET_VECTOR]
+#            FILE RAW = $(NAMED_GUID) {
+#              RAW BIN   Align = 16   |.bin
+#            }
+#
+#    Following line in FDF forces to use the above build rule for the ResetVector:
+#
+#      INF  RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
+#
+#
+#  Copyright (c) 2006 - 2023, Intel Corporation. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
-- 
2.39.1.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries
  2023-06-15 10:50 [PATCH 0/3] Remove pre-built ResetVector binaries Ni, Ray
  2023-06-15 10:50 ` [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC Ni, Ray
  2023-06-15 10:50 ` [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align Ni, Ray
@ 2023-06-15 10:50 ` Ni, Ray
  2023-06-16  1:44   ` Dong, Eric
  2 siblings, 1 reply; 9+ messages in thread
From: Ni, Ray @ 2023-06-15 10:50 UTC (permalink / raw)
  To: devel; +Cc: Eric Dong, Rahul Kumar, Gerd Hoffmann

Because it's simpler for a platform to include the ResetVector source
and having pre-built binaries add burdens of updating the pre-built
binaries. This patch removes the pre-built binaries and the script
that buids the pre-built binaries.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 .../Vtf0/Bin/IA32/ResetVector.ia32.port80.raw | Bin 532 -> 0 bytes
 .../Vtf0/Bin/IA32/ResetVector.ia32.raw        | Bin 500 -> 0 bytes
 .../Vtf0/Bin/IA32/ResetVector.ia32.serial.raw | Bin 900 -> 0 bytes
 .../ResetVector/Vtf0/Bin/ResetVector.inf      |  31 ------
 .../ResetVector/Vtf0/Bin/ResetVector.uni      |  16 ----
 .../ResetVector/Vtf0/Bin/ResetVector1G.inf    |  31 ------
 .../ResetVector/Vtf0/Bin/ResetVectorExtra.uni |  12 ---
 .../PageTable1G/ResetVector.x64.port80.raw    | Bin 12292 -> 0 bytes
 .../Bin/X64/PageTable1G/ResetVector.x64.raw   | Bin 12292 -> 0 bytes
 .../PageTable1G/ResetVector.x64.serial.raw    | Bin 12292 -> 0 bytes
 .../PageTable2M/ResetVector.x64.port80.raw    | Bin 28676 -> 0 bytes
 .../Bin/X64/PageTable2M/ResetVector.x64.raw   | Bin 28676 -> 0 bytes
 .../PageTable2M/ResetVector.x64.serial.raw    | Bin 28676 -> 0 bytes
 UefiCpuPkg/ResetVector/Vtf0/Build.py          |  89 ------------------
 .../Vtf0/Tools/FixupForRawSection.py          |  20 ----
 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf          |   9 ++
 16 files changed, 9 insertions(+), 199 deletions(-)
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw
deleted file mode 100644
index a3601274c25dde665872ff375f1deadf1c838476..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 532
zcmYk3L1+^}6hQxG?OGMxP=XCuO{oFvA!34x5(Ckq=%JWHDKR3&%U*@;4lLqfmnDa3
z%DNy3Djoz+o>n|`p_PoRky;N5Js1c|L|nU_OT82o$@oJN@(=(2nR&cF!+4(O<yj7r
z03`qr`gPk(-eL1I<gjg~-j~*<Ny;|UuWlcCK=#?@82xeT5lQeYQs(!?Mbbj5v@mv!
ztRVI9G`&S$B2^D_>*Tp(W`R7Tp<Ep&PxyY{kF21HL0h~>TmFm4ifa-;zC*vz4XttW
zq}0}nTrTTp>dYuOY`31v{#vMxZinN>X5&iA{wjokJ@1Uq(rY83f3nOGnJ7F{XGEc^
zd@axD+xj+9{H@3`dj3!J3w#sG<{Xwjw>n?7OgU*B!aQOW8fp7m--koX4wLm__Al=^
zY?o%Aovx9bx>P+cg?6!W34mnesY#x}LmFy!akfSd$Wy}(n^c!>D977;D8Mlg8>sUS
zM%JHY*m66|cf|=!l}5GTC_q`AVA|#!0!awU3V=G%^$U@u1;gOBUFLS(4fi9z>Se$~
z2tQ>Y`tp9@WdZJg*r|{I*L%>sSmAq{7b<*6qi=YE|Bg)&AL|JbKgC45A{vlk%hz|-
Oedp}VWx$=4LE;}o$@(e)

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw
deleted file mode 100644
index 6124f3f9a40e4e58cc672b54cbf5cc33360b3858..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 500
zcmbO*VZsE%1G)?X3=Fmm3=IE^A{#3Nsty!~l*%?%h@7@P<y$J!SRt`DUv63{cVmT2
z=W~-;rA)6?fT}8<_Vkn<1*)>`lJPIy15`EBv@@}EGf-9QVcpB6tC}lR7)qCP9%hbE
zD4qM7bH{!l=sf!RU+2-6j*JWphPONKb-qaJjx}JsQDps^*`dg+^+1VH^8xlEU6mhQ
z5#rwtE0nzI_7G`&`2YWZ2F{ZucNq_sFcn>Is1RZ<WqU2&dZ3i8^Tg{@h6g&2wSFsQ
zD*5;F9ncRzL*kncNLZdIj%cW07ATPhl0qd$-4czDLFNE0b7(%mTx6~C=k@L811xEc
z7QRuXy8PQCY#0wWS_il?FqFzOJ8Qg_2TFDxPHVIdiz?+~cIIe4puxXAnoaY@Yt|h=
zYZzYE0FC>#o8d#>?cFW^_0sqm#nW~uGcY*tD;-FCl?{{>VA$cn#=yX@^dM~q2SeYD
zz5{&^`d;*1c<nGjo?!w|0Wk1^0Av^l03FA`F!?-$o(-e>8TLB`yyn{P81R}kt@Frh
trq@4TcfR!a_y7OPT|lDq!T)CvW8mcL%Md2W%&-tQh6xj1?}1AK82|{?<x>Cv

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw
deleted file mode 100644
index 48b46e3473e77a1179bf818a1f1deafb7e46cf3e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 900
zcmbO*VZwx6znM3*zuWbbc>}|{T|byNFuntcu)lk$%4~Q*mqCDm!Ipu6;eSzNV}(G~
zf#Q%-*~SWy)3&F4OGO$hB=+XZO)KSYtdQw^ZZfNs>9q<_RmIbup3<X0RkmF+{-t|>
zs%DyYCYEjns%kx~d%1K~bA<{+>5|UF%n=Hub6<O=?fT37W`#n@_cW0GN$*hk255X<
zG(Ok69s7Zx^XTh;okvl%q8nw1rWMnumsU&+42HKm?{&UN>y9;GyisKLn%SYqvh_fT
zY4ZX0A_J8lT@m8n4l9(r>h=(6eE9$We+JHzC3hJQmM|4vZ>SJrF6DeV9T;A%2TIvG
zPrN>Ec%buG>$g%TREMRZIfSquOa9?Efe5dqFoK*_65o74!tz9ML_-C$K#4Sv6e=<5
zmS}to@(R$u4$TLci>y`tyuRIhfF-Tb!Z)f^mw$VN4ddZP>i|~<hEjQEXN}kLK*`R-
zX^qxlQKfv$&K%7LH2AkivuWOV&AJ2Vdxn>P{{8<Cjn*HaST%fy%risb@uKj!-u>Fm
z@S*Sa?ymoOY5a`hX*-k|7##SO4y3&@1iDdxVTS`70|UR(1JnR9Mhj9SG(Kirr|sZi
z=)2K(pzlH7i@po5?Iy@GOaKJ}6o6Ti&ohAO*)Y1FVZT$rYu^2i0k1jII*+_O@aHwt
v>u)cG|Gzx{=l}ng2mk*6-}&JGGhn`gf!CKIEReBbA#My4CcNGQlLOHJZ`sQ4

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
deleted file mode 100644
index 47ac07798b..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
+++ /dev/null
@@ -1,31 +0,0 @@
-## @file
-#  Reset Vector binary
-#
-#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = ResetVector
-  MODULE_UNI_FILE                = ResetVector.uni
-  FILE_GUID                      = 1BA0062E-C779-4582-8566-336AE8F78F09
-  MODULE_TYPE                    = SEC
-  VERSION_STRING                 = 1.1
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-#  VALID_ARCHITECTURES           = IA32 X64
-#
-
-[Binaries.Ia32]
-  RAW|IA32/ResetVector.ia32.raw|*
-
-[Binaries.X64]
-  RAW|X64/PageTable2M/ResetVector.x64.raw|*
-
-[UserExtensions.TianoCore."ExtraFiles"]
-  ResetVectorExtra.uni
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
deleted file mode 100644
index 3e7bcdafea..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
+++ /dev/null
@@ -1,16 +0,0 @@
-// /** @file
-// Reset Vector binary
-//
-// Reset Vector binary
-//
-// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
-//
-// SPDX-License-Identifier: BSD-2-Clause-Patent
-//
-// **/
-
-
-#string STR_MODULE_ABSTRACT             #language en-US "Reset Vector binary"
-
-#string STR_MODULE_DESCRIPTION          #language en-US "Reset Vector binary"
-
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
deleted file mode 100644
index 75705cd344..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
+++ /dev/null
@@ -1,31 +0,0 @@
-## @file
-#  Reset Vector binary
-#
-#  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = ResetVector
-  MODULE_UNI_FILE                = ResetVector.uni
-  FILE_GUID                      = 1BA0062E-C779-4582-8566-336AE8F78F09
-  MODULE_TYPE                    = SEC
-  VERSION_STRING                 = 1.1
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-#  VALID_ARCHITECTURES           = IA32 X64
-#
-
-[Binaries.Ia32]
-  RAW|IA32/ResetVector.ia32.raw|*
-
-[Binaries.X64]
-  RAW|X64/PageTable1G/ResetVector.x64.raw|*
-
-[UserExtensions.TianoCore."ExtraFiles"]
-  ResetVectorExtra.uni
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
deleted file mode 100644
index 7d2d579390..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
+++ /dev/null
@@ -1,12 +0,0 @@
-// /** @file
-// ResetVector Localized Strings and Content
-//
-// Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
-//
-// SPDX-License-Identifier: BSD-2-Clause-Patent
-//
-// **/
-
-#string STR_PROPERTIES_MODULE_NAME #language en-US "ResetVector module"
-
-
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw
deleted file mode 100644
index def0ec856d0d14b4ea11b0a33db1512077eae00f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12292
zcmeI&?{C}%0mt!AcdQH$uFlCS4BBl4hB{m;KP|(;0PBy*)H%xl5yeydg?4vvqQK|U
z?7=ZoFPfP6>zR*?i8Vf;2xK2pN+v#Vi4R<|XljUc-93Q$fT+=(-)?WizhKPwlHTjC
z@9%x@?(^u{T&L6NY+dU0R9?yj$_2^=$_2^=$_2^=$_2^=$_2^=$_2^=$_4(f7kHI-
zS2(eHv(Ok+UvXo#qcNy8bTkH4p`$UVbLeOcYAqd&LG{zo7}U9RGzPVfj>e$QqoXmX
z^XX^|>H<0%gL(@cjX_;VM`KVI(a{)Gm5#=s2Iy!E>aBD%2DP4!#-QFtM`KVM=x7Y;
z?Q}E-buk@{L2aa?F{nX08iRTV9gRU<LPujzm(tM~)FwI_gSw24#-J{zqcNx<IvRr-
zrlT>a&2%&dwS|txptjP{7}N+IjX_;OM`KV|($N^yRdh54wT+I(psuE)F{pRa(HPXb
z=x7Y;-E=etwVjT}pst~#F{t;@(HPVYIvRr-rK2&ZF*+K9dM_P~L0wBnV^G)8(HPYA
zbTkHa109V)-AG4cP&d)h7}WddXbftcj>e#FrlT>aopdw?bqgJhLA{@j#-JwXXbkFB
zIvRtzjgH2kcG1xo)a`UM26YD=jX~W>M`KVQprbLUNje&X`XC*RL4Amh#-Kh-M`KVQ
zp`$UV-E=et^-($+gSv~3#-R4l(HPXn=x7Y;<8(9z^$9u}gW5|+V^E)@qcNy`bTkI_
zDLNX1nxdmIsJrQC3~E0ejX~W*M`KX;($N^yeRMPi^=Ud9gSwxN#-Kh!M`KVA(9syw
zXX$7R>T`572K68vjX`~$j>e#BbTkI_1v(mo`XU{TK|MrAV^CkBqcNy2)6p2zSLkRA
z>Z^1#2K6;M8iRV6j>e$APDf)<-=L#0sA)PHgE~M*V^DQE8iQ)k(HPVtbTkI_C>@PK
zHR)&!>YH>l2K5*njX`~jj>e$AO-Ex;kJHf@)Dv_x2K6KzjahZH_!K#yGaoT}(|5O;
z1CQmv-o|CE=7!(yd}ViIL#sLX!o!z;zi~mUxvBlvYk$~S(;X>}YX0TvryGmKQ9Ga7
zbXVi~;;0{7*M6Y!tKz7G3)_F+_}NTzM2(-e7b;W3jh}QcoSR$r{Ndu#UhJN3FV6jP
z*(=}eE1v#%`%mo?wL|yq=sPw&-mOebUw<(5v6-AZy?x~GPfcxnV_~>{^3ddl)}MRD
z7ZuL?P5qC3FV@#g|G~}ml}3Me=wKTC?IYb+M$>-z;2Vwpx!0FnKRtJ<IR6dB`HPd?
zKa;_mjvSbBvocV>w76bhA3HSIdUf@D#gk6Vq%u7|@~`gknVeH=-MD*yV|(?Pshj&2
zTH|}}kQzgkUE8`tMQktBTI2inH!iB|S~rtz)o1SMzxr5r?R>GKR_ev+x}(+MrRuLw
ztgUWYde%~^W5vC7)g9I06gP&dTXOP|Q@!4x<{m6w-;ayO&Fg5dSKV@~yEu38vj6#<
zUY|Yw+>uk))T(_OYx7%+f4US8s-66K@u&gKPxMR0x#z}~U7KI0*<-VrU79^Hd$fD|
zRXSQ6)9I|fnAOXfZ*_d{cW3?4fBgmbzoWyq?dhI>_|`q$wYBz3-8J2RtUTUZdF|i5
z-pWI#i>uM%?aUWHy~)ilPi|hE-2BpHd#Shl=K0S)OL<)`P%cm|P%cm|P%cm|P%cm|
mP%cm|P%iMlvcSqEe=EM_fA;UTeS7azr?XNy`<pYr?)(R#bsxF_

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw
deleted file mode 100644
index cd6559018826fa74d39def72a3d578628d2891f7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12292
zcmeI&-EW-*0mt!QTUNFqoI0ngGFZ1&Hq^p4d9@5WCQx4nMdm0&L<EoTB3&OjATPg@
zW*288wF$&T4T%?C851wOpo(Tc(v9$P0SOl_StK<?-PyTunh+(h<J0C#!k=Ks^CUf=
zbMk%qoSxs+In9}yo15Fb*zKx1ss*YAss*YAss*YAss*YAss*YAss*YAss*YA-q#Df
z!K*7BTe@3n463KRv((WTR4*NkLG{tm7}QyGGzPVTj>e$+>1Yh<Y&sf)T1iJ^P^;)@
z3~DtUjX|A5M`KVQprbLUbLnUd>O49cgR0Td7}NkAjX`~oj>e$Y(9sywhv;YwYAqd&
zL4BBx#-KhzM`KXy=x7XTkdDTnK1xSpP#>eCF{tzDXbfsS9gRU<Ku2Rx7t+xf)CM{l
zgBqfvF{q7nGzPVaj>e!i)6p2zFddCSeVmTQpe~}LF{mwcGzPVmj>e!arlT>aPtegA
z)F<g^4C+&KGzK+7M`KWz(9sywrF1j~wT+I(ptjS|7}O3r8iV>Y9gRU<Mn_{%m($T0
z)D?6z26ZJJjX_;SM`KV|)6p2zXXt1QYLt$~pst~#F{qt%GzN7o9gRU<M@M5&V{|kI
zwTq6%psuH*F{s^iGzRrqIvRtzfsV$YZlt3zsGI0$3~HQ?#-Kh&M`KW*r=u~bFVN8#
z)EDV!3~CP@jX~W^M`KX8(9syw1Rae*-AYGeP+y{>F{s<<XbfsE9gRVKnU2Pw_R-N8
z)a`UM1~o}XV^DX{(HPWzIvRtzla9uqzCuT1P<PSM7}QtkXbkFZIvRue8Xb*6-9txX
zP+zB`F{pd#XbkE;IvRue1|5w-)#+#q>YH>l2K6mE8iV>a9gRVKhmOXezDq}AP~W4Y
zF{tm;(HPVZ=x7Y;emWY1`XL>SK|Mf6V^C9cGzN8mj>e#->1Yh9prbLUAJNem)Pr<1
z2GyXWF{p>=XbkFMIvRueF&&LTJwiugP><5l7}R5QGzRrJ9gSIXd-*PMK+A72x>I*F
z8v_sLz~175W@GKkJ73yUtZg<1|8)O_KP}E_HrBWPaoNv{-p+7&R^x9^JW(7g&)Rut
z{Vl~G%d>uVdF!6ycjZ|J7e-zyem&C|R`ILWLf_<2@pNa^{E_l#9qXKF9cv%zDWCR4
z>-E;j`r*5_^&FoX?evXJU2!neJ7#kB)X4CE4o$9mb75%u)Zy{9&A)cbFDR^far!Sk
z&rSDE{n?E*eMNs~-N6+7trt2kZBOg@gKrkS(`VXOme(yWa`#LIuYTdcq#Jz$)907B
zYo>P`9&Em`be;0a#%9ttH9Guu=fq6TsyDCNv%eUrJu`Vt&q8x_;s&YM(6@VQXG0lV
z3-#vczWv2{eY;oAWNYo2JNqv_-dQnUuBP@Q<>fjfwV}n@A5N~QZCd=jrPOwmk5<;U
z)rL~u*-+b*Q}xr`?x5PgEPrQSuXek&O~*SgzV)pBIeX&S-<-arUh7#`pWj^mbEQ1F
ze(I_6>;cV>^-JY7>+>r$dwe#ti?b(ZU+qk6QOaI^Y2!UddEMn>`CA-MzM^G+@vgt+
z@lSN*`iai!BfBO#E9$MIo!-uW+Yfcy-FLd(_5)|io9*SxnJ<63;~SqJ-*{|%<I(Zf
zV)yTJbMIcivRa^8pjx0>pjx0>pjx0>pjx0>pjx0>;QxDp_UeBve_CAnEBEcaQFC+c
Lf1iHO=g0p6T22&^

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw
deleted file mode 100644
index c1cf994c46df4138ef92193eb1dbca86137e7d69..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12292
zcmeI&U5s3H9merzclxp|mRV}Cs}#Cz7bs|Px3smT6t}Iw0#>Tjx)c#X7+w_7?HnAD
zm*2QHW++)VA;GBOjtfFUY{CWWg6X460pUUtFKlciONiR(kd3iPEl_$m(|$4TV1!%E
zIT!Pp|9<D?{C_hSGn*M59UWaZnWoB*d;<9d@(JV<$S06bAfG@!fqVk_1o8>w6UZl!
zPvHN00<W{X%>L%p%s`{svMbGwfkw5{G0><29RrP;LB~L&X3{axs9AIjG-@^-1C8pS
zW1vxU=oo0!Tsj6CbqXB=jrs^31C5$T$3UY_rDLE`MLGr=)k()dqfVn^pi%Sb7--Z-
z=@@9#0y+j7bvhjbjrtfJ1C3fp$3UaH=oo0!$LSbo)F<c|Xw(^W3^ZyH9RrOzla7H#
zokhn$qZZRK(5P-Y1{$@5j)6ukrDLE`%jg(rR1X~kjXIl-fkvG}$3UabrDLE`%jp<s
z)OmCaH0pdh1{(EAItCi`DLMukwSta;MqNP1K%+iQ$3UZc=@@8K9~}dYT1m%1qb{Ul
zpi!&n7--aLItCiGhK_+oeTI&KMy;h|pi%4S7--Z*bPP0VJsks$x|oiEMs1*Dpi!65
zG0>>b(lOAeemVvkwULg2Ms1>Fpi!IY7--bz=oo0!rF0B5>M}Y88g)4x1C1J>W1vx2
z&@s@cE9n?$)Kzp0H0two3^ZyB9RrQ}0v!X5x|)uGMs1~Ipiy6>W1vxAqGO;@*U&N0
zsBLr%H0sNA3^Zyx9RrQ}3LOKD8l+>OQP<Kj(5M}B3^eLGItCi`RXPS5bv+#ejrtlL
z1C6?Yj)6vfosNM<-AKnkqi&*Opi$qTW1vwt(=pJfTj&^QREds(M%_xsK%;J>W1vyD
z(=pJfJLni_)HmrEXw<jp7--a;bPP1=+jI;x>MlA48ucAI1{(EUItCgwM8`m*cG5A>
zs4^V`jY{YkXw=<w3^eL{bPP1ALdQU(zE8(Mqwb+&piw`dW1vy@(lOAe`{)>G)cte}
zH0l952D<6^+l4(po*I9%ut!tlM+<w}rka15Jyn0Q(3gF{?9_=*AL-Dw)k^0*-nlI~
zvszj3@`jhTBnzsQu3z7E)+5O&)yksU-&XxRX>asox2pW*p@))v*{wD_xajKS+3Z$7
zTV1;`c`Ccru89?YNS+w3^eB0(Hc=StP9AMsQ5t`z@W$ia<$so%&wta@^mT8`dS1(V
z?$p@c?5OQ)9Ix%0e%IEA>T9{{`yZ<Q+jgn%K<(Aq!P4&Qd)xL8UD7D@53Sqf^6FvF
z9_sBm`rzQgBNN@_L%RnSR9{Q8-%iZ=UHQ*#zbUs5{V^)@3(1`NPqV4+ax$y-V&jEA
z*Ph>XB-u3m#7ZqE^1*v7AOG)<@FBMLMqBf=$~O$VYu$@G2cuHxET55G&M&Xr-Bo?P
zxs`0c{lhK{t?xP3I56xPrRv%(JCYT}rw1=?o2aheda0BwE^J=jSe(V$M5(%d`;O$)
z!sd=)FE2iQ-K_KWH)f7yyI1|#@icARS?r!Hjvt&^TsrxykX&4utvZUm#cpR;78jTL
z(2xF+rd^u8w>2%(S=F-s4=>y4+1|$VN}3jz?r+q1KOJqpo%*K!eYIxVYTmTf+^M&o
z(cec7JoCfD7nF)^3rl0mvVVDHCs{gl{^2z3)L8#4Dcj5Rv%Rq8>{hm{-+#8Hu?~&w
zAMwcK$ib0U8e7iQX!iKoPjOBh&G9vl6TixN`1dFM#e4pe^-r{S)7Hkky&JbSI!d+Y
z>T8cR+8ameGt&Cy$I`UE?w#!7-t09P%U;%WV9E0XOZE*cd2XOKnf~>?Cu(`Vlh2x8
y<`c*#kWV0=Kt6$d0{H~;3FH&VC-A>Kf%=~g|Lc3j_HCDGbhJKk@-HX90K5y%1}7N+

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw
deleted file mode 100644
index 0e981675cc80f2b08e144c16db44d7b48980c608..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28676
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
Y==W{Ud+x`?<;xGBdGs@H`}F1i3tIcSg8%>k

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw
deleted file mode 100644
index b9f09dd46f2a8bfec0f0392235ae63ae50847388..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28676
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

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw
deleted file mode 100644
index a76f8ad124eea6069c797b4450acbc8fba20e23e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28676
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

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Build.py b/UefiCpuPkg/ResetVector/Vtf0/Build.py
deleted file mode 100644
index 3f1d5cd2c8..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Build.py
+++ /dev/null
@@ -1,89 +0,0 @@
-## @file
-#  Automate the process of building the various reset vector types
-#
-#  Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.<BR>
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-
-import os
-import subprocess
-import sys
-
-PAGE_TABLE_2M  = 'PageTable2M'
-PAGE_TABLE_1G  = 'PageTable1G'
-FILE_FORMAT    = '.raw'
-ALL_RAW_FORMAT = '*' + FILE_FORMAT
-IA32           = 'IA32'
-X64            = 'X64'
-
-# Pre-Define a Macros for Page Table
-PAGE_TABLES = {
-    PAGE_TABLE_2M : "PAGE_TABLE_2M",
-    PAGE_TABLE_1G : "PAGE_TABLE_1G"
-}
-
-def RunCommand(commandLine):
-    return subprocess.call(commandLine)
-
-# Check for all raw binaries and delete them
-for root, dirs, files in os.walk('Bin'):
-    for file in files:
-        if file.endswith(FILE_FORMAT):
-            os.remove(os.path.join(root, file))
-
-for arch in ('ia32', 'x64'):
-    for debugType in (None, 'port80', 'serial'):
-        for pageTable in PAGE_TABLES.keys():
-            ret = True
-            if arch.lower() == X64.lower():
-                directory = os.path.join('Bin', X64, pageTable)
-            else:
-                directory = os.path.join('Bin', IA32)
-
-            # output raw binary name with arch type
-            fileName = 'ResetVector' + '.' + arch
-
-            if debugType is not None:
-                fileName += '.' + debugType
-            fileName += FILE_FORMAT
-
-            output = os.path.join(directory, fileName)
-
-            # if the directory not exists then create it
-            if not os.path.isdir(directory):
-                os.makedirs(directory)
-
-            # Prepare the command to execute the nasmb
-            commandLine = (
-                'nasm',
-                '-D', 'ARCH_%s' % arch.upper(),
-                '-D', 'DEBUG_%s' % str(debugType).upper(),
-                '-D', PAGE_TABLES[pageTable].upper(),
-                '-o', output,
-                'Vtf0.nasmb',
-                )
-
-            print(f"Command : {' '.join(commandLine)}")
-
-            try:
-                ret = RunCommand(commandLine)
-            except FileNotFoundError:
-                print("NASM not found")
-            except:
-                pass
-
-            if ret != 0:
-                print(f"something went wrong while executing {commandLine[-1]}")
-                sys.exit()
-            print('\tASM\t' + output)
-
-            commandLine = (
-                'python',
-                'Tools/FixupForRawSection.py',
-                output,
-                )
-            print('\tFIXUP\t' + output)
-            ret = RunCommand(commandLine)
-            if ret != 0: sys.exit(ret)
-
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py b/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py
deleted file mode 100644
index de771eba22..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py
+++ /dev/null
@@ -1,20 +0,0 @@
-## @file
-#  Apply fixup to VTF binary image for FFS Raw section
-#
-#  Copyright (c) 2008 - 2021, Intel Corporation. All rights reserved.<BR>
-#
-#  SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-
-import sys
-
-filename = sys.argv[1]
-
-d = open(sys.argv[1], 'rb').read()
-c = ((len(d) + 4 + 7) & ~7) - 4
-if c > len(d):
-    c -= len(d)
-    f = open(sys.argv[1], 'wb')
-    f.write(b'\x90' * c)
-    f.write(d)
-    f.close()
diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
index 28185a6e60..8a74bc83ac 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
+++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
@@ -46,3 +46,12 @@
 
 [UserExtensions.TianoCore."ExtraFiles"]
   ResetVectorExtra.uni
+
+[BuildOptions]
+# Different build options can be specified:
+#   * for different architectures:
+#       -DARCH_X64, -DARCH_IA32
+#   * for using 1G page table:
+#       -DPAGE_TABLE_1G
+#   * for different debug channels:
+#       -DDEBUG_SERIAL, -DDEBUG_PORT80, or not specify any debug channel
-- 
2.39.1.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries
  2023-06-15 10:50 ` [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries Ni, Ray
@ 2023-06-16  1:44   ` Dong, Eric
  0 siblings, 0 replies; 9+ messages in thread
From: Dong, Eric @ 2023-06-16  1:44 UTC (permalink / raw)
  To: Ni, Ray, devel@edk2.groups.io; +Cc: Kumar, Rahul R, Gerd Hoffmann

Reviewed-by: Eric Dong <eric.dong@intel.com>

Thanks,
Eric
-----Original Message-----
From: Ni, Ray <ray.ni@intel.com> 
Sent: Thursday, June 15, 2023 6:51 PM
To: devel@edk2.groups.io
Cc: Dong, Eric <eric.dong@intel.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>
Subject: [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries

Because it's simpler for a platform to include the ResetVector source and having pre-built binaries add burdens of updating the pre-built binaries. This patch removes the pre-built binaries and the script that buids the pre-built binaries.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 .../Vtf0/Bin/IA32/ResetVector.ia32.port80.raw | Bin 532 -> 0 bytes
 .../Vtf0/Bin/IA32/ResetVector.ia32.raw        | Bin 500 -> 0 bytes
 .../Vtf0/Bin/IA32/ResetVector.ia32.serial.raw | Bin 900 -> 0 bytes
 .../ResetVector/Vtf0/Bin/ResetVector.inf      |  31 ------
 .../ResetVector/Vtf0/Bin/ResetVector.uni      |  16 ----
 .../ResetVector/Vtf0/Bin/ResetVector1G.inf    |  31 ------
 .../ResetVector/Vtf0/Bin/ResetVectorExtra.uni |  12 ---
 .../PageTable1G/ResetVector.x64.port80.raw    | Bin 12292 -> 0 bytes
 .../Bin/X64/PageTable1G/ResetVector.x64.raw   | Bin 12292 -> 0 bytes
 .../PageTable1G/ResetVector.x64.serial.raw    | Bin 12292 -> 0 bytes
 .../PageTable2M/ResetVector.x64.port80.raw    | Bin 28676 -> 0 bytes
 .../Bin/X64/PageTable2M/ResetVector.x64.raw   | Bin 28676 -> 0 bytes
 .../PageTable2M/ResetVector.x64.serial.raw    | Bin 28676 -> 0 bytes
 UefiCpuPkg/ResetVector/Vtf0/Build.py          |  89 ------------------
 .../Vtf0/Tools/FixupForRawSection.py          |  20 ----
 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf          |   9 ++
 16 files changed, 9 insertions(+), 199 deletions(-)  delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Build.py
 delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.port80.raw
deleted file mode 100644
index a3601274c25dde665872ff375f1deadf1c838476..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 532
zcmYk3L1+^}6hQxG?OGMxP=XCuO{oFvA!34x5(Ckq=%JWHDKR3&%U*@;4lLqfmnDa3
z%DNy3Djoz+o>n|`p_PoRky;N5Js1c|L|nU_OT82o$@oJN@(=(2nR&cF!+4(O<yj7r
z03`qr`gPk(-eL1I<gjg~-j~*<Ny;|UuWlcCK=#?@82xeT5lQeYQs(!?Mbbj5v@mv!
ztRVI9G`&S$B2^D_>*Tp(W`R7Tp<Ep&PxyY{kF21HL0h~>TmFm4ifa-;zC*vz4XttW
zq}0}nTrTTp>dYuOY`31v{#vMxZinN>X5&iA{wjokJ@1Uq(rY83f3nOGnJ7F{XGEc^
zd@axD+xj+9{H@3`dj3!J3w#sG<{Xwjw>n?7OgU*B!aQOW8fp7m--koX4wLm__Al=^
zY?o%Aovx9bx>P+cg?6!W34mnesY#x}LmFy!akfSd$Wy}(n^c!>D977;D8Mlg8>sUS
zM%JHY*m66|cf|=!l}5GTC_q`AVA|#!0!awU3V=G%^$U@u1;gOBUFLS(4fi9z>Se$~
z2tQ>Y`tp9@WdZJg*r|{I*L%>sSmAq{7b<*6qi=YE|Bg)&AL|JbKgC45A{vlk%hz|-
Oedp}VWx$=4LE;}o$@(e)

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.raw
deleted file mode 100644
index 6124f3f9a40e4e58cc672b54cbf5cc33360b3858..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 500
zcmbO*VZsE%1G)?X3=Fmm3=IE^A{#3Nsty!~l*%?%h@7@P<y$J!SRt`DUv63{cVmT2
z=W~-;rA)6?fT}8<_Vkn<1*)>`lJPIy15`EBv@@}EGf-9QVcpB6tC}lR7)qCP9%hbE
zD4qM7bH{!l=sf!RU+2-6j*JWphPONKb-qaJjx}JsQDps^*`dg+^+1VH^8xlEU6mhQ
z5#rwtE0nzI_7G`&`2YWZ2F{ZucNq_sFcn>Is1RZ<WqU2&dZ3i8^Tg{@h6g&2wSFsQ
zD*5;F9ncRzL*kncNLZdIj%cW07ATPhl0qd$-4czDLFNE0b7(%mTx6~C=k@L811xEc
z7QRuXy8PQCY#0wWS_il?FqFzOJ8Qg_2TFDxPHVIdiz?+~cIIe4puxXAnoaY@Yt|h=
zYZzYE0FC>#o8d#>?cFW^_0sqm#nW~uGcY*tD;-FCl?{{>VA$cn#=yX@^dM~q2SeYD
zz5{&^`d;*1c<nGjo?!w|0Wk1^0Av^l03FA`F!?-$o(-e>8TLB`yyn{P81R}kt@Frh
trq@4TcfR!a_y7OPT|lDq!T)CvW8mcL%Md2W%&-tQh6xj1?}1AK82|{?<x>Cv

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/IA32/ResetVector.ia32.serial.raw
deleted file mode 100644
index 48b46e3473e77a1179bf818a1f1deafb7e46cf3e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 900
zcmbO*VZwx6znM3*zuWbbc>}|{T|byNFuntcu)lk$%4~Q*mqCDm!Ipu6;eSzNV}(G~
zf#Q%-*~SWy)3&F4OGO$hB=+XZO)KSYtdQw^ZZfNs>9q<_RmIbup3<X0RkmF+{-t|>
zs%DyYCYEjns%kx~d%1K~bA<{+>5|UF%n=Hub6<O=?fT37W`#n@_cW0GN$*hk255X<
zG(Ok69s7Zx^XTh;okvl%q8nw1rWMnumsU&+42HKm?{&UN>y9;GyisKLn%SYqvh_fT
zY4ZX0A_J8lT@m8n4l9(r>h=(6eE9$We+JHzC3hJQmM|4vZ>SJrF6DeV9T;A%2TIvG
zPrN>Ec%buG>$g%TREMRZIfSquOa9?Efe5dqFoK*_65o74!tz9ML_-C$K#4Sv6e=<5
zmS}to@(R$u4$TLci>y`tyuRIhfF-Tb!Z)f^mw$VN4ddZP>i|~<hEjQEXN}kLK*`R-
zX^qxlQKfv$&K%7LH2AkivuWOV&AJ2Vdxn>P{{8<Cjn*HaST%fy%risb@uKj!-u>Fm
z@S*Sa?ymoOY5a`hX*-k|7##SO4y3&@1iDdxVTS`70|UR(1JnR9Mhj9SG(Kirr|sZi
z=)2K(pzlH7i@po5?Iy@GOaKJ}6o6Ti&ohAO*)Y1FVZT$rYu^2i0k1jII*+_O@aHwt
v>u)cG|Gzx{=l}ng2mk*6-}&JGGhn`gf!CKIEReBbA#My4CcNGQlLOHJZ`sQ4

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
deleted file mode 100644
index 47ac07798b..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
+++ /dev/null
@@ -1,31 +0,0 @@
-## @file-#  Reset Vector binary-#-#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>-#-#  SPDX-License-Identifier: BSD-2-Clause-Patent-#-##--[Defines]-  INF_VERSION                    = 0x00010005-  BASE_NAME                      = ResetVector-  MODULE_UNI_FILE                = ResetVector.uni-  FILE_GUID                      = 1BA0062E-C779-4582-8566-336AE8F78F09-  MODULE_TYPE                    = SEC-  VERSION_STRING                 = 1.1--#-# The following information is for reference only and not required by the build tools.-#-#  VALID_ARCHITECTURES           = IA32 X64-#--[Binaries.Ia32]-  RAW|IA32/ResetVector.ia32.raw|*--[Binaries.X64]-  RAW|X64/PageTable2M/ResetVector.x64.raw|*--[UserExtensions.TianoCore."ExtraFiles"]-  ResetVectorExtra.unidiff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
deleted file mode 100644
index 3e7bcdafea..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.uni
+++ /dev/null
@@ -1,16 +0,0 @@
-// /** @file-// Reset Vector binary-//-// Reset Vector binary-//-// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>-//-// SPDX-License-Identifier: BSD-2-Clause-Patent-//-// **/---#string STR_MODULE_ABSTRACT             #language en-US "Reset Vector binary"--#string STR_MODULE_DESCRIPTION          #language en-US "Reset Vector binary"-diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
deleted file mode 100644
index 75705cd344..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector1G.inf
+++ /dev/null
@@ -1,31 +0,0 @@
-## @file-#  Reset Vector binary-#-#  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>-#-#  SPDX-License-Identifier: BSD-2-Clause-Patent-#-##--[Defines]-  INF_VERSION                    = 0x00010005-  BASE_NAME                      = ResetVector-  MODULE_UNI_FILE                = ResetVector.uni-  FILE_GUID                      = 1BA0062E-C779-4582-8566-336AE8F78F09-  MODULE_TYPE                    = SEC-  VERSION_STRING                 = 1.1--#-# The following information is for reference only and not required by the build tools.-#-#  VALID_ARCHITECTURES           = IA32 X64-#--[Binaries.Ia32]-  RAW|IA32/ResetVector.ia32.raw|*--[Binaries.X64]-  RAW|X64/PageTable1G/ResetVector.x64.raw|*--[UserExtensions.TianoCore."ExtraFiles"]-  ResetVectorExtra.unidiff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni b/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
deleted file mode 100644
index 7d2d579390..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVectorExtra.uni
+++ /dev/null
@@ -1,12 +0,0 @@
-// /** @file-// ResetVector Localized Strings and Content-//-// Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>-//-// SPDX-License-Identifier: BSD-2-Clause-Patent-//-// **/--#string STR_PROPERTIES_MODULE_NAME #language en-US "ResetVector module"--diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.port80.raw
deleted file mode 100644
index def0ec856d0d14b4ea11b0a33db1512077eae00f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12292
zcmeI&?{C}%0mt!AcdQH$uFlCS4BBl4hB{m;KP|(;0PBy*)H%xl5yeydg?4vvqQK|U
z?7=ZoFPfP6>zR*?i8Vf;2xK2pN+v#Vi4R<|XljUc-93Q$fT+=(-)?WizhKPwlHTjC
z@9%x@?(^u{T&L6NY+dU0R9?yj$_2^=$_2^=$_2^=$_2^=$_2^=$_2^=$_4(f7kHI-
zS2(eHv(Ok+UvXo#qcNy8bTkH4p`$UVbLeOcYAqd&LG{zo7}U9RGzPVfj>e$QqoXmX
z^XX^|>H<0%gL(@cjX_;VM`KVI(a{)Gm5#=s2Iy!E>aBD%2DP4!#-QFtM`KVM=x7Y;
z?Q}E-buk@{L2aa?F{nX08iRTV9gRU<LPujzm(tM~)FwI_gSw24#-J{zqcNx<IvRr-
zrlT>a&2%&dwS|txptjP{7}N+IjX_;OM`KV|($N^yRdh54wT+I(psuE)F{pRa(HPXb
z=x7Y;-E=etwVjT}pst~#F{t;@(HPVYIvRr-rK2&ZF*+K9dM_P~L0wBnV^G)8(HPYA
zbTkHa109V)-AG4cP&d)h7}WddXbftcj>e#FrlT>aopdw?bqgJhLA{@j#-JwXXbkFB
zIvRtzjgH2kcG1xo)a`UM26YD=jX~W>M`KVQprbLUNje&X`XC*RL4Amh#-Kh-M`KVQ
zp`$UV-E=et^-($+gSv~3#-R4l(HPXn=x7Y;<8(9z^$9u}gW5|+V^E)@qcNy`bTkI_
zDLNX1nxdmIsJrQC3~E0ejX~W*M`KX;($N^yeRMPi^=Ud9gSwxN#-Kh!M`KVA(9syw
zXX$7R>T`572K68vjX`~$j>e#BbTkI_1v(mo`XU{TK|MrAV^CkBqcNy2)6p2zSLkRA
z>Z^1#2K6;M8iRV6j>e$APDf)<-=L#0sA)PHgE~M*V^DQE8iQ)k(HPVtbTkI_C>@PK
zHR)&!>YH>l2K5*njX`~jj>e$AO-Ex;kJHf@)Dv_x2K6KzjahZH_!K#yGaoT}(|5O;
z1CQmv-o|CE=7!(yd}ViIL#sLX!o!z;zi~mUxvBlvYk$~S(;X>}YX0TvryGmKQ9Ga7
zbXVi~;;0{7*M6Y!tKz7G3)_F+_}NTzM2(-e7b;W3jh}QcoSR$r{Ndu#UhJN3FV6jP
z*(=}eE1v#%`%mo?wL|yq=sPw&-mOebUw<(5v6-AZy?x~GPfcxnV_~>{^3ddl)}MRD
z7ZuL?P5qC3FV@#g|G~}ml}3Me=wKTC?IYb+M$>-z;2Vwpx!0FnKRtJ<IR6dB`HPd?
zKa;_mjvSbBvocV>w76bhA3HSIdUf@D#gk6Vq%u7|@~`gknVeH=-MD*yV|(?Pshj&2
zTH|}}kQzgkUE8`tMQktBTI2inH!iB|S~rtz)o1SMzxr5r?R>GKR_ev+x}(+MrRuLw
ztgUWYde%~^W5vC7)g9I06gP&dTXOP|Q@!4x<{m6w-;ayO&Fg5dSKV@~yEu38vj6#<
zUY|Yw+>uk))T(_OYx7%+f4US8s-66K@u&gKPxMR0x#z}~U7KI0*<-VrU79^Hd$fD|
zRXSQ6)9I|fnAOXfZ*_d{cW3?4fBgmbzoWyq?dhI>_|`q$wYBz3-8J2RtUTUZdF|i5
z-pWI#i>uM%?aUWHy~)ilPi|hE-2BpHd#Shl=K0S)OL<)`P%cm|P%cm|P%cm|P%cm|
mP%cm|P%iMlvcSqEe=EM_fA;UTeS7azr?XNy`<pYr?)(R#bsxF_

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.raw
deleted file mode 100644
index cd6559018826fa74d39def72a3d578628d2891f7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12292
zcmeI&-EW-*0mt!QTUNFqoI0ngGFZ1&Hq^p4d9@5WCQx4nMdm0&L<EoTB3&OjATPg@
zW*288wF$&T4T%?C851wOpo(Tc(v9$P0SOl_StK<?-PyTunh+(h<J0C#!k=Ks^CUf=
zbMk%qoSxs+In9}yo15Fb*zKx1ss*YAss*YAss*YAss*YAss*YAss*YAss*YA-q#Df
z!K*7BTe@3n463KRv((WTR4*NkLG{tm7}QyGGzPVTj>e$+>1Yh<Y&sf)T1iJ^P^;)@
z3~DtUjX|A5M`KVQprbLUbLnUd>O49cgR0Td7}NkAjX`~oj>e$Y(9sywhv;YwYAqd&
zL4BBx#-KhzM`KXy=x7XTkdDTnK1xSpP#>eCF{tzDXbfsS9gRU<Ku2Rx7t+xf)CM{l
zgBqfvF{q7nGzPVaj>e!i)6p2zFddCSeVmTQpe~}LF{mwcGzPVmj>e!arlT>aPtegA
z)F<g^4C+&KGzK+7M`KWz(9sywrF1j~wT+I(ptjS|7}O3r8iV>Y9gRU<Mn_{%m($T0
z)D?6z26ZJJjX_;SM`KV|)6p2zXXt1QYLt$~pst~#F{qt%GzN7o9gRU<M@M5&V{|kI
zwTq6%psuH*F{s^iGzRrqIvRtzfsV$YZlt3zsGI0$3~HQ?#-Kh&M`KW*r=u~bFVN8#
z)EDV!3~CP@jX~W^M`KX8(9syw1Rae*-AYGeP+y{>F{s<<XbfsE9gRVKnU2Pw_R-N8
z)a`UM1~o}XV^DX{(HPWzIvRtzla9uqzCuT1P<PSM7}QtkXbkFZIvRue8Xb*6-9txX
zP+zB`F{pd#XbkE;IvRue1|5w-)#+#q>YH>l2K6mE8iV>a9gRVKhmOXezDq}AP~W4Y
zF{tm;(HPVZ=x7Y;emWY1`XL>SK|Mf6V^C9cGzN8mj>e#->1Yh9prbLUAJNem)Pr<1
z2GyXWF{p>=XbkFMIvRueF&&LTJwiugP><5l7}R5QGzRrJ9gSIXd-*PMK+A72x>I*F
z8v_sLz~175W@GKkJ73yUtZg<1|8)O_KP}E_HrBWPaoNv{-p+7&R^x9^JW(7g&)Rut
z{Vl~G%d>uVdF!6ycjZ|J7e-zyem&C|R`ILWLf_<2@pNa^{E_l#9qXKF9cv%zDWCR4
z>-E;j`r*5_^&FoX?evXJU2!neJ7#kB)X4CE4o$9mb75%u)Zy{9&A)cbFDR^far!Sk
z&rSDE{n?E*eMNs~-N6+7trt2kZBOg@gKrkS(`VXOme(yWa`#LIuYTdcq#Jz$)907B
zYo>P`9&Em`be;0a#%9ttH9Guu=fq6TsyDCNv%eUrJu`Vt&q8x_;s&YM(6@VQXG0lV
z3-#vczWv2{eY;oAWNYo2JNqv_-dQnUuBP@Q<>fjfwV}n@A5N~QZCd=jrPOwmk5<;U
z)rL~u*-+b*Q}xr`?x5PgEPrQSuXek&O~*SgzV)pBIeX&S-<-arUh7#`pWj^mbEQ1F
ze(I_6>;cV>^-JY7>+>r$dwe#ti?b(ZU+qk6QOaI^Y2!UddEMn>`CA-MzM^G+@vgt+
z@lSN*`iai!BfBO#E9$MIo!-uW+Yfcy-FLd(_5)|io9*SxnJ<63;~SqJ-*{|%<I(Zf
zV)yTJbMIcivRa^8pjx0>pjx0>pjx0>pjx0>pjx0>;QxDp_UeBve_CAnEBEcaQFC+c
Lf1iHO=g0p6T22&^

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable1G/ResetVector.x64.serial.raw
deleted file mode 100644
index c1cf994c46df4138ef92193eb1dbca86137e7d69..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12292
zcmeI&U5s3H9merzclxp|mRV}Cs}#Cz7bs|Px3smT6t}Iw0#>Tjx)c#X7+w_7?HnAD
zm*2QHW++)VA;GBOjtfFUY{CWWg6X460pUUtFKlciONiR(kd3iPEl_$m(|$4TV1!%E
zIT!Pp|9<D?{C_hSGn*M59UWaZnWoB*d;<9d@(JV<$S06bAfG@!fqVk_1o8>w6UZl!
zPvHN00<W{X%>L%p%s`{svMbGwfkw5{G0><29RrP;LB~L&X3{axs9AIjG-@^-1C8pS
zW1vxU=oo0!Tsj6CbqXB=jrs^31C5$T$3UY_rDLE`MLGr=)k()dqfVn^pi%Sb7--Z-
z=@@9#0y+j7bvhjbjrtfJ1C3fp$3UaH=oo0!$LSbo)F<c|Xw(^W3^ZyH9RrOzla7H#
zokhn$qZZRK(5P-Y1{$@5j)6ukrDLE`%jg(rR1X~kjXIl-fkvG}$3UabrDLE`%jp<s
z)OmCaH0pdh1{(EAItCi`DLMukwSta;MqNP1K%+iQ$3UZc=@@8K9~}dYT1m%1qb{Ul
zpi!&n7--aLItCiGhK_+oeTI&KMy;h|pi%4S7--Z*bPP0VJsks$x|oiEMs1*Dpi!65
zG0>>b(lOAeemVvkwULg2Ms1>Fpi!IY7--bz=oo0!rF0B5>M}Y88g)4x1C1J>W1vx2
z&@s@cE9n?$)Kzp0H0two3^ZyB9RrQ}0v!X5x|)uGMs1~Ipiy6>W1vxAqGO;@*U&N0
zsBLr%H0sNA3^Zyx9RrQ}3LOKD8l+>OQP<Kj(5M}B3^eLGItCi`RXPS5bv+#ejrtlL
z1C6?Yj)6vfosNM<-AKnkqi&*Opi$qTW1vwt(=pJfTj&^QREds(M%_xsK%;J>W1vyD
z(=pJfJLni_)HmrEXw<jp7--a;bPP1=+jI;x>MlA48ucAI1{(EUItCgwM8`m*cG5A>
zs4^V`jY{YkXw=<w3^eL{bPP1ALdQU(zE8(Mqwb+&piw`dW1vy@(lOAe`{)>G)cte}
zH0l952D<6^+l4(po*I9%ut!tlM+<w}rka15Jyn0Q(3gF{?9_=*AL-Dw)k^0*-nlI~
zvszj3@`jhTBnzsQu3z7E)+5O&)yksU-&XxRX>asox2pW*p@))v*{wD_xajKS+3Z$7
zTV1;`c`Ccru89?YNS+w3^eB0(Hc=StP9AMsQ5t`z@W$ia<$so%&wta@^mT8`dS1(V
z?$p@c?5OQ)9Ix%0e%IEA>T9{{`yZ<Q+jgn%K<(Aq!P4&Qd)xL8UD7D@53Sqf^6FvF
z9_sBm`rzQgBNN@_L%RnSR9{Q8-%iZ=UHQ*#zbUs5{V^)@3(1`NPqV4+ax$y-V&jEA
z*Ph>XB-u3m#7ZqE^1*v7AOG)<@FBMLMqBf=$~O$VYu$@G2cuHxET55G&M&Xr-Bo?P
zxs`0c{lhK{t?xP3I56xPrRv%(JCYT}rw1=?o2aheda0BwE^J=jSe(V$M5(%d`;O$)
z!sd=)FE2iQ-K_KWH)f7yyI1|#@icARS?r!Hjvt&^TsrxykX&4utvZUm#cpR;78jTL
z(2xF+rd^u8w>2%(S=F-s4=>y4+1|$VN}3jz?r+q1KOJqpo%*K!eYIxVYTmTf+^M&o
z(cec7JoCfD7nF)^3rl0mvVVDHCs{gl{^2z3)L8#4Dcj5Rv%Rq8>{hm{-+#8Hu?~&w
zAMwcK$ib0U8e7iQX!iKoPjOBh&G9vl6TixN`1dFM#e4pe^-r{S)7Hkky&JbSI!d+Y
z>T8cR+8ameGt&Cy$I`UE?w#!7-t09P%U;%WV9E0XOZE*cd2XOKnf~>?Cu(`Vlh2x8
y<`c*#kWV0=Kt6$d0{H~;3FH&VC-A>Kf%=~g|Lc3j_HCDGbhJKk@-HX90K5y%1}7N+

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.port80.raw
deleted file mode 100644
index 0e981675cc80f2b08e144c16db44d7b48980c608..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28676
zcmeI*`?uxyUDxq<Iy4jzCYC}YlqPK=6s6ci?xFgIa*3Bh)mlRV`BY#85y5m04k-E_
zLx5>Z7(uxsA1;bqltI)63iMsmlu}SC2m}lGhDd076k3!DNIUK{510P}3-))d*^hnB
ze4pQa_G^Clt}|=Rnah_iU%qKyy&A{kxWI9N;{wM8jtd+YI4*Ep;JCnXf#U+l1&#|G
z7x;a>z)e>k{r>-^=4&~}zZdv@{Re-1bH@da3mg|XE^u7nxWI9N;{wM8jtd+YI4<x9
zYJms6+Xv&uw>^6>l8eR7<}j{#<jJ9Da<RDC9L8hxOfD8To5MJxXL7N)*&N2(>6u(C
zZZ?PUSUr=A#m(k0uGKTSSlnz5<L&iKE*3YN!+4yY$;IMka~SWSXL7N)*&N0@>X}?D
zZZ?PUPI@L6i<`}1{2@J)i^a|6Fy2|u<YIBNIgEGFGr3sYY!2hBp2@}HW^)+V>6u(C
zZZ?PUhxJS@7B`#2c)Xs;#o}gj81JfQa<RDC9L5v$OfD8To5OfFJ(G*Y&E_!PUC-oV
zakDv$C+eA8EN(W3alM|&#o}gj7=J|1<YIBNIgIzvGr3sYY!2f+^-L}nH=DzFlAg)M
z;%0Lg@1<vQvAEeB#*_6-E*3YN!?;1u<YIBNIgA_iOfD8To5OfY9FD{NpUK7IW^))%
z)ib$R+-wfxCOwmj#m(k0Zq_roSlnz5<B#f@Tr6%jhw<KeCKrpF&0)Ncp2@}HW^))%
z(=)kP+-wfxef3N(7B`#2_+xq|7mJ(CVf=ADlZ(a8<}lt*&*WlpvpI~X>zQ0EZZ?PU
z{(2@Ci<`}1{0Tjii^a|6FrJ}ja<RDC9L6nrCKrpF&0*ZCXL7N)*&N27)HAtQ+-wfx
z1N2NT7B`#2_&`0Ai^a|6Fg{4n<YIBNIgAh1Gr3sYY!2f?^h_=mH=D!wP(722#m(k0
zK1|Q#VsW!MjN9}~E*3YN!}xGLlZ(a8<}jYAXL7N)*&N27(lfbO+-wfxPwSanEN(W3
zk$NT<i<`}1d_)|M!~LJh#o}gj7$2!;a<RDC9LBTsOfD8To5T1hJ(G*Y&E_yZTF>NS
zakDv$kI^%^Slnz5<74$qE*3YN!?<0~<YIBNIgCG}XL7N)*&N27)ib$R+-wfx&*_<5
zEN(W3@#pnSE*3YN!+5ry$;IMka~L0|XL7N)*&N2l>zQ0EZZ?PU96ghZ#m(k0{(_##
z#o}gj7=KaE<YIBNIgG!gXL7N)*&N1m^-L}nH=D!w%X%gki<`}1JWtQ$VsW!MjK891
za<RDC9L61bCKrpF&0&0kp2@}HW^)+N*E6|T+-wfx6ZK3k7B`#2_#{1(i^a|6Fg{t&
z<YIBNIgG!mXL7N)*&N2F=$TwBZZ?Op^h_=mH=DzFK^%_5{h!Ij;%0Lge@)NiVsW!M
zj8D}wxmet64&&4GOfD8To5T2YJ(G*Y&E_!9>6u(CZZ?PU*Y!*;7B`#2_zXRhi^a|6
zFg{by<YIBNIgG!dXL7N)*&N1a>6u(CZZ?PUH}y;|7B`#2_-s9si^a|6F#eXF$;IMk
za~PkaXL7N)*&N2_>X}?DZZ?PUxAjae7B`#2xKq#MVsW!Mj2G&eTr6%jhjCud<YIBN
zIgArMlZ(a8<}f}_&*WlpvpI~vqi1rlxY-=W1wE6C#m(k0K3~t|VsW!Mj4#kLxmet6
z4&(3YnOrPxHiz-|^h_=mH=D!wLOqj<#m(k0{=S~c#o}gj82>=e<YIBNIgHXXxmet6
z4&!1RjtApLCKrpF&0+jQJ(G*Y&E_!f(lfbO+-wfxi}Xw`7B`#2xLeQUVsW!Mj4#$R
zxmet64&zJoOfD8To5T20J(G*Y&E_yJ>6u(CZZ?PUB0ZCf#m(k0UaV(wvAEeB#!K`}
zE*3YN!}u~ilZ(a8<}mKjGr3sYY!2hg^-L}nH=Dz_tY>nuxY-=WKhiU~Slnz5<16$`
zE*3YN!}v-)lZ(a8<}m)Tp2@}HW^)+-M9<`6akDv$uhKKQSlnz5<E!;dE*3YN!}uCK
zlZ(a8<}kii&*WlpvpI~f(=)kP+-wfx>-9`77B`#2_y#?bi^a|6FuqaG<YIBNIgEd*
zXL7N)*&N0<>6u(CZZ?Op^-L}nH=D!w<~SUO`#+P5#m(k0zD3XEVsW!MjBnL5xmet6
z4&&SOOfD8To5T2LdL|c(o6TYTb3K!b#m(k0zFp7cVsW!MjDMkLa<RDC9L9I(nOrPx
zHiz+@dL|c(o6TW-m!8SR;%0Lg->qkIvAEeB#=q1vxmet64&z_xnOrPxHiz*&dL|c(
zo6TWd(KESN+-wfxd-Y5%7B`#2_}6+S7mJ(CVSJyS$;IMka~S_d&*WlpvpI}^t7met
zxY-=Wztc0hSlnz5<E45g7mJ(CVce@{a<RDC9LD$SnOrPxHiz*8dL|c(o6TXoOwZ(E
zakDv$AJj9sSlnz5<A?N2E*3YN!}wu6lZ(a8<}hBaXL7N)*&IgenOrPxHiz+wI2?!j
zKa-2a&E_!vy`IU%;%0Lg_vx8jEN(W3@k%|Di^a|6Fz(kgxmet64&zmNCKrpF&0+kA
zp2@}HW^)*?)-$<S+-wfxNA*lD7B`#2c#WRP#o}gj7(b?Ga<RDC9LA69nOrPxHiz*a
z^h_=mH=D!wk9sB-i<`}1{Dhv##o}gj7_Zecxmet64&y)RnOrPxHiz+(dL|c(o6TYT
zl%C1O;%0Lg|5?xEVsW!MjGxvsxmet64&!I^OfD8To5T27J(G*Y&E_y3&@;JM+-wfx
z=k!c27B`#2_%C`U7mJ(CVZ2Vy<YIBNIgFpzGr3sYY!2fW^h_=mH=D!wMLm;?#m(k0
z{;QtJ#o}gj7^7!$vAEeB#xKR;INbl4Tr6%jhw;mLCKrpF&EestAANl$7mJ(CVf;5e
zlZ(a8<}iLm&*WlpvpI~1^h_=mH=D!wRXvl7#m(k0Uax0zvAEeB#>09h7mJ(CVZ1@l
z<YIBNIgC?1lZ(a8<}m)dp2@}HW^)+-L(k-5akDv$U(++WSlnz5<Ja{}E*3YN!+4{f
z$;IMka~N;ZGr3sYY!2f$^h_=mH=D!wpL!-2i<`}1{4YI|i^a|6Fn&|d<YIBNIgB^!
znOrPxHiz-Q^-L}nH=D!wEj^Qq#m(k0ep}DvVsW!MjNj2Sxmet64&(pmnOrPxHiz-M
zdL|c(o6TXoMbG47akDv$x9XW(EN(W3aaGUcVsW!MZ}XPJKS#PQ;+cnQT)p!XE?&6q
z3;Ko6J$bK-7oPBA&wS0ZPo8k`!u3D&IZytolXtp!;YpW%^#i`{<T0l=AI`e)D=&G;
z$^D13p829Def-G}9?tsO54`k(lkYp6b@zQw|EZJjyz9cvaq?}K?mKhGjVIrD`p#Fb
zJXH6-{BT^l|Mabw?!WTA57on8aZSW6ue<b%mtKGF#h?6)YaY1sw$n3t=Lg;0=Wo5M
z-~P_0-~3xIy5os&zVF8KZ+P+TPq_F?R}Vjs@Ev~i{4ZSdit~@T^JnYA<IkL2dwRp&
zeRA!kSD(J-mcI0=yWf0r?Ugq^ROjD%<xPj{fAHb@hl_p6U48wBzWRlC)P*zGoqx~6
z<KxfY`r_*^KKRJ>4lkN_^_e?wyZLudUw2o(-MNb&^6clIJpJrT@A&X*?z?!~b3Qua
z<c2fPdfMp?hu^$(-?@voJ@5G^?{el@kGrd%cJ`&8c<uW>aQfJLADRE*^M}iw-g5TF
zIr{^zf9%<(&i7YDpS|_)(c{iO<Lr%ncyhzpr}i5@?@d>)ULRLJ?eO(|!=bx3E?>QR
z_Nfn?-hbuYAFAJZS-kO{*S+l3Z+ic8XRmqUxqEMl$U}7Q4c~pJu8Vu~+K9uouiW}j
zoxAsOanA$y^gVOW>+gB(=|{a!y!LR;<;#zJF^?Q?`{|8e`4f-&_5aWB@$r|(%Rllt
zr|<akk9f}MW6xcB<>_NifBWGty!!C3zvb%Hhd=YJhlg7ZZ|B~_udBB|<yE&o<^J2B
z^2*yU&DDqg|MeezmE+@af#U+l1&#|G7dS3(T;RCCae?Ck#|4fH{9ak$;rIBB!~gR4
Y==W{Ud+x`?<;xGBdGs@H`}F1i3tIcSg8%>k

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.raw
deleted file mode 100644
index b9f09dd46f2a8bfec0f0392235ae63ae50847388..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28676
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

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw b/UefiCpuPkg/ResetVector/Vtf0/Bin/X64/PageTable2M/ResetVector.x64.serial.raw
deleted file mode 100644
index a76f8ad124eea6069c797b4450acbc8fba20e23e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28676
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

diff --git a/UefiCpuPkg/ResetVector/Vtf0/Build.py b/UefiCpuPkg/ResetVector/Vtf0/Build.py
deleted file mode 100644
index 3f1d5cd2c8..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Build.py
+++ /dev/null
@@ -1,89 +0,0 @@
-## @file-#  Automate the process of building the various reset vector types-#-#  Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.<BR>-#-#  SPDX-License-Identifier: BSD-2-Clause-Patent-#--import os-import subprocess-import sys--PAGE_TABLE_2M  = 'PageTable2M'-PAGE_TABLE_1G  = 'PageTable1G'-FILE_FORMAT    = '.raw'-ALL_RAW_FORMAT = '*' + FILE_FORMAT-IA32           = 'IA32'-X64            = 'X64'--# Pre-Define a Macros for Page Table-PAGE_TABLES = {-    PAGE_TABLE_2M : "PAGE_TABLE_2M",-    PAGE_TABLE_1G : "PAGE_TABLE_1G"-}--def RunCommand(commandLine):-    return subprocess.call(commandLine)--# Check for all raw binaries and delete them-for root, dirs, files in os.walk('Bin'):-    for file in files:-        if file.endswith(FILE_FORMAT):-            os.remove(os.path.join(root, file))--for arch in ('ia32', 'x64'):-    for debugType in (None, 'port80', 'serial'):-        for pageTable in PAGE_TABLES.keys():-            ret = True-            if arch.lower() == X64.lower():-                directory = os.path.join('Bin', X64, pageTable)-            else:-                directory = os.path.join('Bin', IA32)--            # output raw binary name with arch type-            fileName = 'ResetVector' + '.' + arch--            if debugType is not None:-                fileName += '.' + debugType-            fileName += FILE_FORMAT--            output = os.path.join(directory, fileName)--            # if the directory not exists then create it-            if not os.path.isdir(directory):-                os.makedirs(directory)--            # Prepare the command to execute the nasmb-            commandLine = (-                'nasm',-                '-D', 'ARCH_%s' % arch.upper(),-                '-D', 'DEBUG_%s' % str(debugType).upper(),-                '-D', PAGE_TABLES[pageTable].upper(),-                '-o', output,-                'Vtf0.nasmb',-                )--            print(f"Command : {' '.join(commandLine)}")--            try:-                ret = RunCommand(commandLine)-            except FileNotFoundError:-                print("NASM not found")-            except:-                pass--            if ret != 0:-                print(f"something went wrong while executing {commandLine[-1]}")-                sys.exit()-            print('\tASM\t' + output)--            commandLine = (-                'python',-                'Tools/FixupForRawSection.py',-                output,-                )-            print('\tFIXUP\t' + output)-            ret = RunCommand(commandLine)-            if ret != 0: sys.exit(ret)-diff --git a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py b/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py
deleted file mode 100644
index de771eba22..0000000000
--- a/UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py
+++ /dev/null
@@ -1,20 +0,0 @@
-## @file-#  Apply fixup to VTF binary image for FFS Raw section-#-#  Copyright (c) 2008 - 2021, Intel Corporation. All rights reserved.<BR>-#-#  SPDX-License-Identifier: BSD-2-Clause-Patent-#--import sys--filename = sys.argv[1]--d = open(sys.argv[1], 'rb').read()-c = ((len(d) + 4 + 7) & ~7) - 4-if c > len(d):-    c -= len(d)-    f = open(sys.argv[1], 'wb')-    f.write(b'\x90' * c)-    f.write(d)-    f.close()diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
index 28185a6e60..8a74bc83ac 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
+++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
@@ -46,3 +46,12 @@
  [UserExtensions.TianoCore."ExtraFiles"]   ResetVectorExtra.uni++[BuildOptions]+# Different build options can be specified:+#   * for different architectures:+#       -DARCH_X64, -DARCH_IA32+#   * for using 1G page table:+#       -DPAGE_TABLE_1G+#   * for different debug channels:+#       -DDEBUG_SERIAL, -DDEBUG_PORT80, or not specify any debug channel-- 
2.39.1.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC
  2023-06-15 10:50 ` [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC Ni, Ray
@ 2023-06-19  5:51   ` Dong, Eric
  2023-06-19 10:45   ` Gerd Hoffmann
  1 sibling, 0 replies; 9+ messages in thread
From: Dong, Eric @ 2023-06-19  5:51 UTC (permalink / raw)
  To: Ni, Ray, devel@edk2.groups.io; +Cc: Kumar, Rahul R, Gerd Hoffmann

Reviewed-by: Eric Dong <eric.dong@intel.com>

-----Original Message-----
From: Ni, Ray <ray.ni@intel.com> 
Sent: Thursday, June 15, 2023 6:51 PM
To: devel@edk2.groups.io
Cc: Dong, Eric <eric.dong@intel.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>
Subject: [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC

Since ResetVector source module shares the same GUID as the binary module, the binary INF file is just removed from DSC.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 UefiCpuPkg/UefiCpuPkg.dsc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc index 593c11cc74..7af1c83424 100644
--- a/UefiCpuPkg/UefiCpuPkg.dsc
+++ b/UefiCpuPkg/UefiCpuPkg.dsc
@@ -1,7 +1,7 @@
 ## @file #  UefiCpuPkg Package #-#  Copyright (c) 2007 - 2022, Intel Corporation. All rights reserved.<BR>+#  Copyright (c) 2007 - 2023, Intel Corporation. All rights reserved.<BR> # #  SPDX-License-Identifier: BSD-2-Clause-Patent #@@ -168,7 +168,7 @@
       SmmCpuFeaturesLib|UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLibStm.inf   }   UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf-  UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf+  UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf   UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf   UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableLib.inf   UefiCpuPkg/Library/CpuExceptionHandlerLib/UnitTest/PeiCpuExceptionHandlerLibUnitTest.inf-- 
2.39.1.windows.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align
  2023-06-15 10:50 ` [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align Ni, Ray
@ 2023-06-19  5:52   ` Dong, Eric
  2023-06-19 10:38   ` [edk2-devel] " Zhiguang Liu
  1 sibling, 0 replies; 9+ messages in thread
From: Dong, Eric @ 2023-06-19  5:52 UTC (permalink / raw)
  To: Ni, Ray, devel@edk2.groups.io; +Cc: Kumar, Rahul R, Gerd Hoffmann

Reviewed-by: Eric Dong <eric.dong@intel.com>

-----Original Message-----
From: Ni, Ray <ray.ni@intel.com> 
Sent: Thursday, June 15, 2023 6:51 PM
To: devel@edk2.groups.io
Cc: Dong, Eric <eric.dong@intel.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>
Subject: [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align

ResetVector assembly implementation puts "ALIGN 16" in the end to guarantee the final executable file size is multiple of 16 bytes.
Because the module uses a special GUID which guarantees it's put in the very end of a FV, which should be also the end of the FD.
Then to make sure the reset vector "JMP" code is at FFFF_FFF0h, the ResetVector has to be aligned at 16-byte boundary.

The patch updates INF file and ReadMe.txt to add guidance how to make sure the module is aligned on 16-byte boundary.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt | 27 +++++++-------------------
 UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf   | 19 +++++++++++++++++-
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
index 97f4600968..edeb2d6d3e 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
+++ b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
@@ -1,15 +1,16 @@
  === HOW TO USE VTF0 ===+Add this line to your DSC [Components.IA32] or [Components.X64] section:+  UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf  Add this line to your FDF FV section:-INF  RuleOverride=RESET_VECTOR USE = IA32 UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf-(For X64 SEC/PEI change IA32 to X64 => 'USE = X64')+  INF  RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf  In your FDF FFS file rules sections add:-[Rule.Common.SEC.RESET_VECTOR]-  FILE RAW = $(NAMED_GUID) {-    RAW RAW                |.raw-  }+  [Rule.Common.SEC.RESET_VECTOR]+    FILE RAW = $(NAMED_GUID) {+      RAW BIN   Align = 16   |.bin+    }  === VTF0 Boot Flow === @@ -25,17 +26,3 @@ All inputs to SEC image are register based:
 EAX/RAX - Initial value of the EAX register (BIST: Built-in Self Test) DI      - 'BP': boot-strap processor, or 'AP': application processor EBP/RBP - Pointer to the start of the Boot Firmware Volume--=== HOW TO BUILD VTF0 ===--Dependencies:-* Python 3 or newer-* Nasm 2.03 or newer--To rebuild the VTF0 binaries:-1. Change to VTF0 source dir: UefiCpuPkg/ResetVector/Vtf0-2. nasm and python should be in executable path-3. Run this command:-   python Build.py-4. Binaries output will be in UefiCpuPkg/ResetVector/Vtf0/Bin-diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
index 9922cb2755..28185a6e60 100644
--- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
+++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
@@ -1,7 +1,24 @@
 ## @file #  Reset Vector #-#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>+#  Note:+#    The platform FDF file MUST guarantee the ResetVector is aligned+#    on 16-byte boundary. Otherwise, the CPU reset vector will NOT be+#    at FFFF_FFF0h.+#+#    A sample FDF build rule could be as follows:+#+#          [Rule.Common.SEC.RESET_VECTOR]+#            FILE RAW = $(NAMED_GUID) {+#              RAW BIN   Align = 16   |.bin+#            }+#+#    Following line in FDF forces to use the above build rule for the ResetVector:+#+#      INF  RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf+#+#+#  Copyright (c) 2006 - 2023, Intel Corporation. All rights reserved.<BR> # #  SPDX-License-Identifier: BSD-2-Clause-Patent #-- 
2.39.1.windows.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [edk2-devel] [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align
  2023-06-15 10:50 ` [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align Ni, Ray
  2023-06-19  5:52   ` Dong, Eric
@ 2023-06-19 10:38   ` Zhiguang Liu
  1 sibling, 0 replies; 9+ messages in thread
From: Zhiguang Liu @ 2023-06-19 10:38 UTC (permalink / raw)
  To: devel@edk2.groups.io, Ni, Ray; +Cc: Dong, Eric, Kumar, Rahul R, Gerd Hoffmann

Hi Ray,

I don't think we need the 16 bytes align for reset vector.
Because the size of reset vector is 16 bytes align, and it will be put in the end of FD, this mean the beginning address of the reset vector is (4G - size of reset vector), which is 16 bytes align.

Thanks
Zhiguang

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ni, Ray
> Sent: Thursday, June 15, 2023 6:51 PM
> To: devel@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Kumar, Rahul R
> <rahul.r.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>
> Subject: [edk2-devel] [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance
> of how to guarantee 16B align
> 
> ResetVector assembly implementation puts "ALIGN 16" in the end
> to guarantee the final executable file size is multiple of 16 bytes.
> Because the module uses a special GUID which guarantees it's put in
> the very end of a FV, which should be also the end of the FD.
> Then to make sure the reset vector "JMP" code is at FFFF_FFF0h, the
> ResetVector has to be aligned at 16-byte boundary.
> 
> The patch updates INF file and ReadMe.txt to add guidance how to make
> sure the module is aligned on 16-byte boundary.
> 
> Signed-off-by: Ray Ni <ray.ni@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Rahul Kumar <rahul1.kumar@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt | 27 +++++++-------------------
>  UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf   | 19 +++++++++++++++++-
>  2 files changed, 25 insertions(+), 21 deletions(-)
> 
> diff --git a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> index 97f4600968..edeb2d6d3e 100644
> --- a/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> +++ b/UefiCpuPkg/ResetVector/Vtf0/ReadMe.txt
> @@ -1,15 +1,16 @@
> 
> 
>  === HOW TO USE VTF0 ===
> 
> +Add this line to your DSC [Components.IA32] or [Components.X64] section:
> 
> +  UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
> 
> 
> 
>  Add this line to your FDF FV section:
> 
> -INF  RuleOverride=RESET_VECTOR USE = IA32
> UefiCpuPkg/ResetVector/Vtf0/Bin/ResetVector.inf
> 
> -(For X64 SEC/PEI change IA32 to X64 => 'USE = X64')
> 
> +  INF  RuleOverride=RESET_VECTOR
> UefiCpuPkg/ResetVector/Vtf0/ResetVector.inf
> 
> 
> 
>  In your FDF FFS file rules sections add:
> 
> -[Rule.Common.SEC.RESET_VECTOR]
> 
> -  FILE RAW = $(NAMED_GUID) {
> 
> -    RAW RAW                |.raw
> 
> -  }
> 
> +  [Rule.Common.SEC.RESET_VECTOR]
> 
> +    FILE RAW = $(NAMED_GUID) {
> 
> +      RAW BIN   Align = 16   |.bin
> 
> +    }
> 
> 
> 
>  === VTF0 Boot Flow ===
> 
> 
> 
> @@ -25,17 +26,3 @@ All inputs to SEC image are register based:
>  EAX/RAX - Initial value of the EAX register (BIST: Built-in Self Test)
> 
>  DI      - 'BP': boot-strap processor, or 'AP': application processor
> 
>  EBP/RBP - Pointer to the start of the Boot Firmware Volume
> 
> -
> 
> -=== HOW TO BUILD VTF0 ===
> 
> -
> 
> -Dependencies:
> 
> -* Python 3 or newer
> 
> -* Nasm 2.03 or newer
> 
> -
> 
> -To rebuild the VTF0 binaries:
> 
> -1. Change to VTF0 source dir: UefiCpuPkg/ResetVector/Vtf0
> 
> -2. nasm and python should be in executable path
> 
> -3. Run this command:
> 
> -   python Build.py
> 
> -4. Binaries output will be in UefiCpuPkg/ResetVector/Vtf0/Bin
> 
> -
> 
> diff --git a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> index 9922cb2755..28185a6e60 100644
> --- a/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> +++ b/UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> @@ -1,7 +1,24 @@
>  ## @file
> 
>  #  Reset Vector
> 
>  #
> 
> -#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
> 
> +#  Note:
> 
> +#    The platform FDF file MUST guarantee the ResetVector is aligned
> 
> +#    on 16-byte boundary. Otherwise, the CPU reset vector will NOT be
> 
> +#    at FFFF_FFF0h.
> 
> +#
> 
> +#    A sample FDF build rule could be as follows:
> 
> +#
> 
> +#          [Rule.Common.SEC.RESET_VECTOR]
> 
> +#            FILE RAW = $(NAMED_GUID) {
> 
> +#              RAW BIN   Align = 16   |.bin
> 
> +#            }
> 
> +#
> 
> +#    Following line in FDF forces to use the above build rule for the
> ResetVector:
> 
> +#
> 
> +#      INF  RuleOverride=RESET_VECTOR
> UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf
> 
> +#
> 
> +#
> 
> +#  Copyright (c) 2006 - 2023, Intel Corporation. All rights reserved.<BR>
> 
>  #
> 
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  #
> 
> --
> 2.39.1.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#106112):
> https://edk2.groups.io/g/devel/message/106112
> Mute This Topic: https://groups.io/mt/99546049/1779286
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe:
> https://edk2.groups.io/g/devel/leave/3883862/1779286/1021340322/xyzzy
> [zhiguang.liu@intel.com]
> -=-=-=-=-=-=
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC
  2023-06-15 10:50 ` [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC Ni, Ray
  2023-06-19  5:51   ` Dong, Eric
@ 2023-06-19 10:45   ` Gerd Hoffmann
  1 sibling, 0 replies; 9+ messages in thread
From: Gerd Hoffmann @ 2023-06-19 10:45 UTC (permalink / raw)
  To: Ray Ni; +Cc: devel, Eric Dong, Rahul Kumar

On Thu, Jun 15, 2023 at 06:50:55PM +0800, Ray Ni wrote:
> Since ResetVector source module shares the same GUID as the binary
> module, the binary INF file is just removed from DSC.

Series:
Acked-by: Gerd Hoffmann <kraxel@redhat.com>

take care,
  Gerd


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-06-19 10:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-15 10:50 [PATCH 0/3] Remove pre-built ResetVector binaries Ni, Ray
2023-06-15 10:50 ` [PATCH 1/3] UefiCpuPkg: Include ResetVector in DSC Ni, Ray
2023-06-19  5:51   ` Dong, Eric
2023-06-19 10:45   ` Gerd Hoffmann
2023-06-15 10:50 ` [PATCH 2/3] UefiCpuPkg/ResetVector: Add guidance of how to guarantee 16B align Ni, Ray
2023-06-19  5:52   ` Dong, Eric
2023-06-19 10:38   ` [edk2-devel] " Zhiguang Liu
2023-06-15 10:50 ` [PATCH 3/3] UefiCpuPkg/ResetVector: Remove pre-built binaries Ni, Ray
2023-06-16  1:44   ` Dong, Eric

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox