Changeset 58466 in vbox for trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg
- Timestamp:
- Oct 29, 2015 4:30:44 AM (9 years ago)
- Location:
- trunk/src/VBox/Devices/EFI/Firmware
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/Firmware
- Property svn:mergeinfo changed
/vendor/edk2/current merged: 103769-103776
- Property svn:mergeinfo changed
-
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspDxeIpl/FspDxeIpl.inf
r58464 r58466 64 64 65 65 [FixedPcd] 66 gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry ## CONSUMES 67 gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry ## CONSUMES 66 gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry ## CONSUMES 67 gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry ## CONSUMES 68 68 69 69 [Depex] -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/FspSecCore.inf
r58464 r58466 76 76 77 77 [Ppis] 78 gEfiTemporaryRamSupportPpiGuid ## PRODUCES 78 gEfiTemporaryRamSupportPpiGuid ## PRODUCES 79 79 -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.asm
r58464 r58466 91 91 ; eax is cleared and ebp is used for return address. 92 92 ; All others reserved. 93 93 94 94 ; Save return address to EBP 95 95 movd ebp, mm7 … … 307 307 ; Save API entry/exit timestamp into stack 308 308 ; 309 push DATA_LEN_OF_PER0 ; Size of the data region 309 push DATA_LEN_OF_PER0 ; Size of the data region 310 310 push 30524550h ; Signature of the data region 'PER0' 311 311 LOAD_EDX … … 319 319 ; 320 320 ; Terminator for the data on stack 321 ; 321 ; 322 322 push 0 323 323 … … 477 477 ; 478 478 ; Stack must be ready 479 ; 479 ; 480 480 push eax 481 481 add esp, 4 … … 514 514 ; FspInit and FspMemoryInit APIs, setup the initial stack frame 515 515 ; 516 516 517 517 ; 518 518 ; Place holder to store the FspInfoHeader pointer … … 551 551 ; 552 552 push eax 553 553 554 554 ; 555 555 ; Pass the BootLoader stack to SecStartup … … 562 562 call AsmGetFspBaseAddress 563 563 mov edi, eax 564 add edi, PcdGet32 (PcdFspAreaSize) 564 add edi, PcdGet32 (PcdFspAreaSize) 565 565 sub edi, 20h 566 566 add eax, DWORD PTR ds:[edi] -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s
r58464 r58466 87 87 .macro LOAD_REGS 88 88 pshufd $0xe4, %xmm7, %xmm7 89 movd %xmm7, %ebp 89 movd %xmm7, %ebp 90 90 pshufd $0xe4, %xmm7, %xmm7 91 91 # … … 148 148 # 149 149 ASM_PFX(mMmxControlWord): .long 0x01F80 150 SseError: 150 SseError: 151 151 # 152 152 # Processor has to support SSE 153 153 # 154 jmp SseError 155 NextAddress: 154 jmp SseError 155 NextAddress: 156 156 # 157 157 # Initialize floating point units … … 691 691 # 692 692 # Stack must be ready 693 # 693 # 694 694 pushl %eax 695 695 addl $0x04, %esp … … 726 726 # 727 727 # FspInit and FspMemoryInit APIs, setup the initial stack frame 728 # 729 728 # 729 730 730 # 731 731 # Place holder to store the FspInfoHeader pointer … … 766 766 # 767 767 pushl %eax 768 768 769 769 # 770 770 # Pass the BootLoader stack to SecStartup -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/FspHelper.asm
r58464 r58466 17 17 18 18 ; 19 ; FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the AsmGetFspBaseAddress 20 ; from the FSP Info header. 19 ; FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the AsmGetFspBaseAddress 20 ; from the FSP Info header. 21 21 ; 22 22 FspInfoHeaderRelativeOff PROC NEAR PUBLIC … … 28 28 29 29 ; 30 ; Returns FSP Base Address. 30 ; Returns FSP Base Address. 31 31 ; 32 32 ; This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure … … 46 46 mov eax, AsmGetFspBaseAddress 47 47 sub eax, dword ptr [FspInfoHeaderRelativeOff] 48 add eax, 01Ch 48 add eax, 01Ch 49 49 mov eax, dword ptr [eax] 50 50 jmp edi … … 52 52 53 53 ; 54 ; Returns FSP Info Header. 54 ; Returns FSP Info Header. 55 55 ; 56 56 ; This function gets the FSP Info Header using relative addressing and returns it -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/FspHelper.s
r58464 r58466 17 17 18 18 # 19 # FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the AsmGetFspBaseAddress 20 # from the FSP Info header. 19 # FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the AsmGetFspBaseAddress 20 # from the FSP Info header. 21 21 # 22 22 ASM_GLOBAL ASM_PFX(FspInfoHeaderRelativeOff) … … 28 28 29 29 # 30 # Returns FSP Base Address. 30 # Returns FSP Base Address. 31 31 # 32 32 # This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure … … 47 47 mov $AsmGetFspBaseAddress, %eax 48 48 sub FspInfoHeaderRelativeOff, %eax 49 add $0x01C, %eax 49 add $0x01C, %eax 50 50 mov (%eax), %eax 51 51 jmp *%edi 52 52 53 53 # 54 # Returns FSP Info Header. 54 # Returns FSP Info Header. 55 55 # 56 56 # This function gets the FSP Info Header using relative addressing and returns it … … 61 61 sub FspInfoHeaderRelativeOff, %eax 62 62 ret 63 63 64 64 # 65 65 # No stack counter part of AsmGetFspInfoHeader. Return address is in edi. -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/MicrocodeLoad.inc
-
Property svn:eol-style
set to
native
-
Property svn:eol-style
set to
-
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/SaveRestoreSse.inc
-
Property svn:eol-style
set to
native
r58464 r58466 50 50 ; 51 51 ; XMM7 to save/restore EBP, EBX, ESI, EDI 52 ; 52 ; 53 53 SAVE_REGS MACRO 54 54 SXMMN xmm7, 0, ebp … … 69 69 ; 70 70 ; XMM6 to save/restore EAX, EDX, ECX, ESP 71 ; 71 ; 72 72 LOAD_EAX MACRO 73 73 LXMMN xmm6, eax, 1 … … 101 101 movd esp, xmm6 102 102 ENDM 103 103 104 104 ; 105 105 ; XMM5 for calling stack … … 111 111 IFDEF USE_SSE41_FLAG 112 112 pinsrd xmm5, esi, 0 113 ELSE 113 ELSE 114 114 pinsrw xmm5, esi, 0 115 115 ror esi, 16 116 pinsrw xmm5, esi, 1 117 ENDIF 116 pinsrw xmm5, esi, 1 117 ENDIF 118 118 mov esi, Entry 119 119 jmp esi 120 ReturnAddress: 120 ReturnAddress: 121 121 ENDM 122 123 RET_XMM MACRO 122 123 RET_XMM MACRO 124 124 movd esi, xmm5 125 125 psrldq xmm5, 4 126 126 jmp esi 127 127 ENDM 128 128 129 129 ENABLE_SSE MACRO 130 130 ; 131 131 ; Initialize floating point units 132 132 ; 133 local NextAddress 133 local NextAddress 134 134 jmp NextAddress 135 135 ALIGN 4 … … 143 143 ; all exceptions masked, round-to-nearest, flush to zero for masked underflow 144 144 ; 145 MmxControlWord DD 01F80h 146 SseError: 145 MmxControlWord DD 01F80h 146 SseError: 147 147 ; 148 148 ; Processor has to support SSE 149 149 ; 150 jmp SseError 151 NextAddress: 150 jmp SseError 151 NextAddress: 152 152 finit 153 153 fldcw FpuControlWord … … 166 166 ; SSE 4.1 support 167 167 ; 168 bt ecx, 19 168 bt ecx, 19 169 169 jnc SseError 170 170 ENDIF -
Property svn:eol-style
set to
-
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Ia32/Stacks.s
r58464 r58466 83 83 popl %ecx 84 84 popl %ebx 85 popl %eax 85 popl %eax 86 86 ret -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/SecFsp.c
r58464 r58466 330 330 VOID 331 331 ) 332 { 332 { 333 333 return PcdGet32 (PcdFspBootFirmwareVolumeBase) - PcdGet32 (PcdFspAreaBaseAddress); 334 334 } -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/SecMain.c
r58464 r58466 124 124 // 125 125 // Call PeiCore Entry 126 // 126 // 127 127 PeiCore (&SecCoreData, mPeiSecPlatformInformationPpi); 128 128 -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Include/FspApi.h
r58464 r58466 222 222 each FSP release. 223 223 After FspMemInit completes its execution, it passes the pointer to the HobList and 224 returns to the boot loader from where it was called. BootLoader is responsible to 224 returns to the boot loader from where it was called. BootLoader is responsible to 225 225 migrate it's stack and data to Memory. 226 226 FspMemoryInit, TempRamExit and FspSiliconInit APIs provide an alternate method to -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Include/FspInfoHeader.h
r58464 r58466 147 147 UINT8 Reserved; 148 148 /// 149 /// Byte 0x0A: FSP producer identification string 149 /// Byte 0x0A: FSP producer identification string 150 150 /// 151 151 CHAR8 FspProducerId[6]; -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/IntelFspPkg.dec
r58464 r58466 22 22 Include 23 23 Include/Private 24 24 25 25 [LibraryClasses] 26 26 ## @libraryclass Provides cache-as-ram support. … … 41 41 ## @libraryclass Provides FSP switch stack function. 42 42 FspSwitchStackLib|Include/Library/FspSwitchStackLib.h 43 43 44 44 ## @libraryclass Provides FSP platform sec related actions. 45 45 FspSecPlatformLib|Include/Library/FspSecPlatformLib.h -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/IntelFspPkg.dsc
-
Property svn:eol-style
set to
native
-
Property svn:eol-style
set to
-
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf
r58464 r58466 1 1 ## @file 2 # Instance of FspCommonLib 2 # Instance of FspCommonLib 3 3 # Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR> 4 4 # -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformMemory.c
r58464 r58466 92 92 VOID *PlatformDataPtr; 93 93 UINT8 ApiMode; 94 94 95 95 ApiMode = GetFspApiCallingMode (); 96 96 -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
r58464 r58466 106 106 // 107 107 FspInitParams = (FSP_INIT_PARAMS *)GetFspApiParameter (); 108 108 109 109 // 110 110 // Modify the parameters for ContinuationFunc … … 112 112 SetFspContinuationFuncParameter(EFI_SUCCESS, 0); 113 113 SetFspContinuationFuncParameter((UINT32)GetHobList(), 1); 114 114 115 115 // 116 116 // Modify the return address to ContinuationFunc 117 117 // 118 118 SetFspApiReturnAddress((UINT32)FspInitParams->ContinuationFunc); 119 119 120 120 // 121 121 // Give control back to the boot loader framework caller after FspInit is done -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.asm
r58464 r58466 71 71 ; Now we're in 16 bit protected mode 72 72 ; Set up the selectors for 32 bit protected mode entry 73 ; 73 ; 74 74 mov ax, SYS_DATA_SEL 75 75 mov ds, ax … … 90 90 _TEXT_REALMODE ENDS 91 91 92 .code 92 .code 93 93 ; 94 94 ; Protected mode portion initializes stack, configures cache, and calls C entry point … … 180 180 DD OFFSET ProtectedModeEntryPoint ; Offset of our 32 bit code 181 181 DW LINEAR_CODE_SEL 182 182 183 183 END -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.s
r58464 r58466 53 53 .byte 0x66,0xbe #movl $GdtDesc, %esi 54 54 .long GdtDesc 55 55 56 56 .byte 0x66,0x2e,0x0f,0x01,0x14 #lgdt %cs:(%si) 57 57 … … 66 66 # Now we're in 16 bit protected mode 67 67 # Set up the selectors for 32 bit protected mode entry 68 # 68 # 69 69 .byte 0xb8 #movw SYS_DATA_SEL, %ax 70 70 .word SYS_DATA_SEL 71 71 72 72 .byte 0x8e,0xd8 #movw %ax, %ds 73 73 .byte 0x8e,0xc0 #movw %ax, %es … … 81 81 # 82 82 .byte 0x66,0xbe #movl ProtectedModeEntryLinearAddress, %esi 83 .long ProtectedModeEntryLinearAddress 83 .long ProtectedModeEntryLinearAddress 84 84 .byte 0x66,0x2e,0xff,0x2c #jmp %cs:(%esi) 85 85 … … 132 132 # 133 133 .equ NULL_SEL, . - GDT_BASE # Selector [0] 134 GDT_BASE: 135 BootGdtTable: 134 GDT_BASE: 135 BootGdtTable: 136 136 .long 0 137 137 .long 0 … … 163 163 # 164 164 GdtDesc: # GDT descriptor 165 .word GDT_SIZE - 1 166 .long BootGdtTable 165 .word GDT_SIZE - 1 166 .long BootGdtTable 167 167 168 168 ProtectedModeEntryLinearAddress: -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/SecCarInit.asm
r58464 r58466 26 26 ENDM 27 27 28 .code 28 .code 29 29 30 30 ;----------------------------------------------------------------------------- -
trunk/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Tools/GenCfgOpt.py
r58464 r58466 895 895 OldTextBody.append (Line) 896 896 897 if Match and Match.group(3) == 'END': 897 if Match and Match.group(3) == 'END': 898 898 if (StructName != Match.group(1)) or (VariableName != Match.group(2)): 899 899 print "Unmatched struct name '%s' and '%s' !" % (StructName, Match.group(1)) … … 1003 1003 if Offset != Item["offset"]: 1004 1004 self.Error = "Unsorted offset 0x%04X\n" % Item["offset"] 1005 return 3 1005 return 3 1006 1006 1007 1007 LastVisible = NextVisible … … 1023 1023 Line = Marker + self.CreateField (Item, Item["cname"], Item["length"], Item["offset"], Item['struct'], Item['name'], Item['help']) 1024 1024 TxtBody.append(Line) 1025 1025 1026 1026 TxtBody.append("} " + Region[0] + "PD_DATA_REGION;\n\n") 1027 1027 1028 1028 # Handle the embedded data structure 1029 1029 TxtBody = self.PostProcessBody (TxtBody) … … 1059 1059 HeaderFd.write(Line) 1060 1060 HeaderFd.write("\n\n") 1061 1061 1062 1062 for Line in TxtBody: 1063 1063 HeaderFd.write (Line) … … 1123 1123 BsfFd.write(',\n') 1124 1124 WriteHelp = 1 1125 1125 1126 1126 if WriteHelp > 0: 1127 1127 HelpLines = Item['help'].split('\\n\\r')
Note:
See TracChangeset
for help on using the changeset viewer.