| === 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 UefiCpuPkg/ResetVector/Vtf0/ResetVector.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 |