edk2/UefiCpuPkg/ResetVector/Vtf0
Ray Ni a7908f214d UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector
The .asm files are included by other assembly files and are not standalone
assembly files. The .asm extension may cause confusion and make it seem
like they are standalone assembly files and can be compiled by MASM.

Rename them to .nasm.inc to avoid confusion and make it clear that they
are NASM include files.

The .nasm.inc extension is to distinguish them from .inc files which are
usually used for assembly include files holding macros.

Because the reset vectors in OvmfPkg reuse the same assembly files in
UefiCpuPkg, the files in OvmfPkg that include the .asm files in
UefiCpuPkg are also updated to include the .nasm.inc files.
Separating the changes into 2 commits is not possible due to the
dependencies between the files.

Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Ray Ni <ray.ni@intel.com>
2026-03-23 09:47:30 +00:00
..
Ia16 UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
Ia32 UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
X64 UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
CommonMacros.inc UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
DebugDisabled.nasm.inc UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
Main.nasm.inc UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
PageTables.inc UefiCpuPkg: VTF0 Linear-Address Translation to a 1-GByte Page till 512GB 2021-09-16 14:18:27 +00:00
Port80Debug.nasm.inc UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
PostCodes.inc UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
ReadMe.txt UefiCpuPkg/ResetVector: Update outdated ReadMe.txt 2025-11-27 10:30:09 +00:00
ResetVector.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
ResetVectorExtra.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
SerialDebug.nasm.inc UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00
Vtf0.inf UefiCpuPkg: Make the ResetVector USER_DEFINED 2024-11-13 21:01:46 +00:00
Vtf0.nasmb UefiCpuPkg, OvmfPkg: Rename .asm files to .nasm.inc in ResetVector 2026-03-23 09:47:30 +00:00

=== HOW TO USE VTF0 ===
Add this line to your DSC [Components.IA32] or [Components.X64] section:
  UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf

Add this line to your FDF FV section:
  INF  RuleOverride=RESET_VECTOR UefiCpuPkg/ResetVector/Vtf0/Vtf0.inf

In your FDF FFS file rules sections add:
  [Rule.Common.SEC.RESET_VECTOR]
    FILE RAW = $(NAMED_GUID) {
      RAW BIN   |.bin
    }

=== VTF0 Boot Flow ===

1. Transition to IA32 flat mode
2. Locate BFV (Boot Firmware Volume) by checking every 4kb boundary
3. Locate SEC image
4. X64 VTF0 transitions to X64 mode
5. Call SEC image entry point

== VTF0 SEC input parameters ==

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