Changeset 48727 in vbox for trunk/src/VBox/Devices/EFI/Firmware
- Timestamp:
- Sep 27, 2013 11:03:53 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 89360
- Location:
- trunk/src/VBox/Devices/EFI/Firmware
- Files:
-
- 6 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/Include/X64/ProcessorBind.h
r48674 r48727 122 122 #endif 123 123 124 #if !defined(UINT8_MAX) || !defined(VBOX) /* collides with iprt/stdint.h */ 124 125 #define UINT8_MAX 0xff 126 #endif 125 127 126 128 #else -
trunk/src/VBox/Devices/EFI/Firmware/Makefile.kmk
r48674 r48727 186 186 include $(FILE_KBUILD_SUB_FOOTER) 187 187 188 # 189 # Incomplete list of dependencies relative. 190 # 191 VBOX_EFI_DEPENDENCIES = \ 192 $(VBOX_PATH_EFI_FIRMWARE)/../DevEFI.h \ 193 $(VBOX_PATH_EFI_FIRMWARE)/VBoxPkg/Library/VBoxDebugAgentLib/VBoxDebugAgentLib.c \ 194 $(VBOX_PATH_EFI_FIRMWARE)/VBoxPkg/Library/VBoxDebugAgentLib/VBoxDebugAgentLib.inf \ 195 $(VBOX_PATH_EFI_FIRMWARE)/VBoxPkg/Library/VBoxPeCoffExtraActionLib/VBoxPeCoffExtraActionLib.c \ 196 $(VBOX_PATH_EFI_FIRMWARE)/VBoxPkg/Library/VBoxPeCoffExtraActionLib/VBoxPeCoffExtraActionLib.inf \ 197 $(VBOX_PATH_EFI_FIRMWARE)/VBoxPkg/VBoxPkg.dec \ 198 \ 199 $(VBOX_PATH_EFI_FIRMWARE)/OvmfPkg/OvmfPkg.dec \ 188 200 189 201 # … … 270 282 -e 's,^DEFINE VS2010_BIN[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_BIN = $(PATH_TOOL_$(VBOX_VCC_TOOL))/bin,' \ 271 283 -e 's,^DEFINE VS2010_DLL[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_DLL = DEF(VS2010_BIN),' \ 284 -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\)$(DOLLAR),\1 /Oy-,' \ 272 285 --output $@ $< 286 # -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\) /O1ib2 \(.*\)$(DOLLAR),\1 /Osi /GF /Gy \2 /Oy-,' 273 287 else 274 288 $(error Unexpected VBOX_EFI_TOOL_CHAIN value "$(VBOX_EFI_TOOL_CHAIN)") … … 280 294 $(VBoxEfiFirmware_0_OUTDIR)/x86/Conf/target.txt \ 281 295 $(VBoxEfiFirmware_0_OUTDIR)/x86/Conf/tools_def.txt \ 282 $$(VBoxEfiResetVector-x86_1_TARGET) 296 $$(VBoxEfiResetVector-x86_1_TARGET) \ 297 $(VBOX_EFI_DEPENDENCIES) \ 298 $(VBOX_PATH_EFI_FIRMWARE)/OvmfPkg/OvmfPkgIa32.dsc \ 299 $(VBOX_PATH_EFI_FIRMWARE)/OvmfPkg/OvmfPkgIa32.fdf 283 300 + $(VBOX_EFI_BUILD_CMD) \ 284 301 --vbox-target-conf "$(VBoxEfiFirmware_0_OUTDIR)/x86/Conf/target.txt" \ … … 326 343 -e 's,^DEFINE VS2010_BIN[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_BIN = $(PATH_TOOL_$(VBOX_VCC_TOOL))/bin,' \ 327 344 -e 's,^DEFINE VS2010_DLL[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_DLL = DEF(VS2010_BIN),' \ 328 -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\) /X \(.*\)$(DOLLAR),\1 \2 ,' \345 -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\) /X \(.*\)$(DOLLAR),\1 \2 /Oy-,' \ 329 346 --output $@ $< 330 347 else … … 336 353 $(VBoxEfiFirmware_0_OUTDIR)/amd64/Conf/target.txt \ 337 354 $(VBoxEfiFirmware_0_OUTDIR)/amd64/Conf/tools_def.txt \ 338 $$(VBoxEfiResetVector-amd64_1_TARGET) 355 $$(VBoxEfiResetVector-amd64_1_TARGET) \ 356 $(VBOX_EFI_DEPENDENCIES) \ 357 $(VBOX_PATH_EFI_FIRMWARE)/OvmfPkg/OvmfPkgX64.dsc \ 358 $(VBOX_PATH_EFI_FIRMWARE)/OvmfPkg/OvmfPkgX64.fdf 339 359 + $(VBOX_EFI_BUILD_CMD) \ 340 360 --vbox-target-conf "$(VBoxEfiFirmware_0_OUTDIR)/amd64/Conf/target.txt" \ -
trunk/src/VBox/Devices/EFI/Firmware/MdePkg/Library/BaseLib/BaseLib.inf
r48674 r48727 299 299 X86DisablePaging32.c 300 300 301 # VBox - enable this for non-optimized IA32 builds. 302 # # Compiler helper (C RunTime) functions 303 # ../../../StdLib/LibC/CRT/Ia32/llmul.c | MSFT # __allmul 304 # ../../../StdLib/LibC/CRT/Ia32/llshl.c | MSFT # __allshl 305 # ../../../StdLib/LibC/CRT/Ia32/ulldiv.c | MSFT # __aulldiv 306 # ../../../StdLib/LibC/CRT/Ia32/ullrem.c | MSFT # __aullrem 307 # ../../../StdLib/LibC/CRT/Ia32/ullshr.c | MSFT # __aullshr 308 # ../../../StdLib/LibC/CRT/Ia32/lldiv.c | MSFT # __alldiv 309 # ../../../StdLib/LibC/CRT/Ia32/llrem.c | MSFT # __allrem 310 # ../../../StdLib/LibC/CRT/Ia32/lldvrm.c | MSFT # __alldvrm 311 # ../../../StdLib/LibC/CRT/Ia32/ulldvrm.c | MSFT # __aulldvrm 312 # VBox - end 313 301 314 [Sources.X64] 302 315 X64/Thunk16.asm … … 490 503 gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength 491 504 gEfiMdePkgTokenSpaceGuid.PcdVerifyNodeInList 505 506 # VBox - enable this for non-optimized IA32 builds. 507 #[BuildOptions] 508 # MSFT:*_*_*_CC_FLAGS = /GL- 509 # VBox - end -
trunk/src/VBox/Devices/EFI/Firmware/OvmfPkg/OvmfPkgIa32.dsc
r48674 r48727 114 114 SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf 115 115 116 !ifdef $(VBOX) 117 PeCoffExtraActionLib|VBoxPkg/Library/VBoxPeCoffExtraActionLib/VBoxPeCoffExtraActionLib.inf 118 DebugAgentLib|VBoxPkg/Library/VBoxDebugAgentLib/VBoxDebugAgentLib.inf 119 !else 116 120 !ifdef $(SOURCE_DEBUG_ENABLE) 117 121 PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf … … 121 125 DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf 122 126 !endif 127 !endif 123 128 124 129 ResetSystemLib|OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf … … 134 139 ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf 135 140 ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf 141 !ifdef $(VBOX) 136 142 !ifdef $(SOURCE_DEBUG_ENABLE) 137 143 DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf 144 !endif 138 145 !endif 139 146 HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf … … 177 184 PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf 178 185 ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf 186 !ifdef $(VBOX) 179 187 !ifdef $(SOURCE_DEBUG_ENABLE) 180 188 DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf 189 !endif 181 190 !endif 182 191 … … 193 202 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf 194 203 ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf 204 !ifdef $(VBOX) 195 205 !ifdef $(SOURCE_DEBUG_ENABLE) 196 206 DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf 207 !endif 197 208 !endif 198 209 -
trunk/src/VBox/Devices/EFI/Firmware/OvmfPkg/OvmfPkgX64.dsc
r48674 r48727 114 114 LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf 115 115 116 !ifdef $(VBOX) 117 PeCoffExtraActionLib|VBoxPkg/Library/VBoxPeCoffExtraActionLib/VBoxPeCoffExtraActionLib.inf 118 DebugAgentLib|VBoxPkg/Library/VBoxDebugAgentLib/VBoxDebugAgentLib.inf 119 !else 116 120 !ifdef $(SOURCE_DEBUG_ENABLE) 117 121 PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf … … 121 125 DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf 122 126 !endif 127 !endif 123 128 124 129 ResetSystemLib|OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf … … 134 139 ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf 135 140 ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf 141 !ifdef $(VBOX) 136 142 !ifdef $(SOURCE_DEBUG_ENABLE) 137 143 DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf 144 !endif 138 145 !endif 139 146 HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf … … 177 184 PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf 178 185 ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf 186 !ifdef $(VBOX) 179 187 !ifdef $(SOURCE_DEBUG_ENABLE) 180 188 DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf 189 !endif 181 190 !endif 182 191 … … 193 202 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf 194 203 ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf 204 !ifdef $(VBOX) 195 205 !ifdef $(SOURCE_DEBUG_ENABLE) 196 206 DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf 207 !endif 197 208 !endif 198 209 -
trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/Library/VBoxDebugLib/VBoxDebugLib.c
r48674 r48727 79 79 } 80 80 81 /** 82 * Adds a character to the panic message. 83 * 84 * @param ch The ASCII char to add. 85 */ 86 static void 87 VBoxPanicMsgChar(int ch) 88 { 89 ASMOutU16(EFI_PANIC_PORT, EFI_PANIC_CMD_MSG_FROM_CHAR(ch)); 90 } 91 92 /** 93 * Adds a string to the panic message. 94 * 95 * @param pszString The string to add. 96 */ 97 static void 98 VBoxPanicMsgString(const char *pszString) 99 { 100 char ch; 101 while ((ch = *pszString++) != '\0') 102 VBoxPanicMsgChar(ch); 103 } 104 105 /** 106 * Adds a unsigned decimal number to the panic message. 107 * 108 * @param uValue The value. 109 */ 110 static void 111 VBoxPanicMsgDecimalU32(uint32_t uValue) 112 { 113 char szTmp[32]; 114 unsigned off = sizeof(szTmp) - 1; 115 116 szTmp[off] = '\0'; 117 do 118 { 119 char chDigit = uValue % 10; 120 uValue /= 10; 121 szTmp[--off] = chDigit + '0'; 122 } while (uValue != 0 && off > 0); 123 124 VBoxPanicMsgString(&szTmp[off]); 125 } 81 126 82 127 VOID EFIAPI … … 85 130 RTCCUINTREG SavedFlags = ASMIntDisableFlags(); 86 131 87 VBoxPrintString("EFI Assertion failed! File="); 88 VBoxPrintString(FileName ? FileName : "<NULL>"); 89 VBoxPrintString(" line=0x"); 90 VBoxPrintHex(LineNumber, sizeof(LineNumber)); 91 VBoxPrintString("\nDescription: "); 92 VBoxPrintString(Description ? Description : "<NULL>"); 93 94 ASMOutU8(EFI_PANIC_PORT, 2); /** @todo fix this. */ 132 ASMOutU8(EFI_PANIC_PORT, EFI_PANIC_CMD_START_MSG); 133 VBoxPanicMsgString("EFI Assertion failed!" 134 "\nFile: "); 135 VBoxPanicMsgString(FileName ? FileName : "<NULL>"); 136 VBoxPanicMsgString("\nLine: "); 137 VBoxPanicMsgDecimalU32((uint32_t)LineNumber); 138 VBoxPanicMsgString("\nEDescription: "); 139 VBoxPanicMsgString(Description ? Description : "<NULL>"); 140 ASMOutU8(EFI_PANIC_PORT, EFI_PANIC_CMD_END_MSG); 95 141 96 142 ASMSetFlags(SavedFlags); 97 143 } 98 144 99 CHAR16 *VBoxDebugDevicePath2Str(IN EFI_DEVICE_PATH_PROTOCOL *pDevicePath)145 CHAR16 *VBoxDebugDevicePath2Str(IN EFI_DEVICE_PATH_PROTOCOL *pDevicePath) 100 146 { 101 147 #if 0 … … 116 162 } 117 163 118 CHAR16 *VBoxDebugHandleDevicePath2Str(IN EFI_HANDLE hHandle)164 CHAR16 *VBoxDebugHandleDevicePath2Str(IN EFI_HANDLE hHandle) 119 165 { 120 166 #if 0 … … 143 189 #endif 144 190 } 145 CHAR16 *VBoxDebugPrintDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *pDevicePath)191 CHAR16 *VBoxDebugPrintDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *pDevicePath) 146 192 { 147 193 #if 0 -
trunk/src/VBox/Devices/EFI/Firmware/VBoxPkg/VBoxVariable/InitVariable.c
r48674 r48727 58 58 UINT32 idxBuffer = 0; 59 59 for (idxBuffer = 0; idxBuffer < cbBuffer; ++idxBuffer) 60 pu8Buffer[idxBuffer] = ASMInU8(EFI_ VARIABLE_OP);60 pu8Buffer[idxBuffer] = ASMInU8(EFI_PORT_VARIABLE_OP); 61 61 return idxBuffer; 62 62 } … … 64 64 DECLINLINE(void) VBoxWriteNVRAMU32Param(UINT32 u32CodeParam, UINT32 u32Param) 65 65 { 66 ASMOutU32(EFI_ VARIABLE_OP, u32CodeParam);67 ASMOutU32(EFI_ VARIABLE_PARAM, u32Param);66 ASMOutU32(EFI_PORT_VARIABLE_OP, u32CodeParam); 67 ASMOutU32(EFI_PORT_VARIABLE_PARAM, u32Param); 68 68 } 69 69 … … 72 72 UINT32 idxParam = 0; 73 73 for (idxParam = 0; idxParam < cbParam; ++idxParam) 74 ASMOutU8(EFI_ VARIABLE_PARAM, pbParam[idxParam]);74 ASMOutU8(EFI_PORT_VARIABLE_PARAM, pbParam[idxParam]); 75 75 return idxParam; 76 76 } … … 81 81 UINTN cwcName = StrLen(pwszName); 82 82 83 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_UTF16);83 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_UTF16); 84 84 for (i = 0; i <= cwcName; i++) 85 ASMOutU16(EFI_ VARIABLE_PARAM, pwszName[i]);85 ASMOutU16(EFI_PORT_VARIABLE_PARAM, pwszName[i]); 86 86 } 87 87 88 88 DECLINLINE(UINT32) VBoxWriteNVRAMGuidParam(const EFI_GUID *pGuid) 89 89 { 90 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_GUID);90 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_GUID); 91 91 return VBoxWriteNVRAMByteArrayParam((UINT8 *)pGuid, sizeof(EFI_GUID)); 92 92 } … … 99 99 VBoxWriteNVRAMU32Param(EFI_VM_VARIABLE_OP_START, u32Operation); 100 100 101 while ((u32Rc = ASMInU32(EFI_ VARIABLE_OP)) == EFI_VARIABLE_OP_STATUS_BSY)101 while ((u32Rc = ASMInU32(EFI_PORT_VARIABLE_OP)) == EFI_VARIABLE_OP_STATUS_BSY) 102 102 { 103 103 #if 0 … … 166 166 */ 167 167 UINT32 VarLen; 168 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_VALUE_LENGTH);169 VarLen = ASMInU32(EFI_ VARIABLE_OP);168 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_VALUE_LENGTH); 169 VarLen = ASMInU32(EFI_PORT_VARIABLE_OP); 170 170 LogFlowFuncMarkVar(*DataSize, "%d"); 171 171 LogFlowFuncMarkVar(VarLen, "%d"); … … 177 177 */ 178 178 *DataSize = VarLen; 179 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_VALUE);179 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_VALUE); 180 180 VBoxReadNVRAM((UINT8 *)Data, VarLen); 181 181 182 182 if (Attributes) 183 183 { 184 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_ATTRIBUTE);185 *Attributes = ASMInU32(EFI_ VARIABLE_OP);184 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_ATTRIBUTE); 185 *Attributes = ASMInU32(EFI_PORT_VARIABLE_OP); 186 186 LogFlowFuncMarkVar(Attributes, "%x"); 187 187 } … … 271 271 */ 272 272 UINT32 cwcName; 273 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_LENGTH_UTF16);274 cwcName = ASMInU32(EFI_ VARIABLE_OP);273 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_LENGTH_UTF16); 274 cwcName = ASMInU32(EFI_PORT_VARIABLE_OP); 275 275 if ((cwcName + 1) * 2 <= *VariableNameSize) /* ASSUMES byte size is specified */ 276 276 { … … 280 280 * Read back the result. 281 281 */ 282 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_GUID);282 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_GUID); 283 283 VBoxReadNVRAM((UINT8 *)VendorGuid, sizeof(EFI_GUID)); 284 284 285 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_UTF16);285 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_UTF16); 286 286 for (i = 0; i < cwcName; i++) 287 VariableName[i] = ASMInU16(EFI_ VARIABLE_OP);287 VariableName[i] = ASMInU16(EFI_PORT_VARIABLE_OP); 288 288 VariableName[i] = '\0'; 289 289 … … 356 356 VBoxWriteNVRAMU32Param(EFI_VM_VARIABLE_OP_VALUE_LENGTH, (UINT32)DataSize); 357 357 /* fill value bytes */ 358 ASMOutU32(EFI_ VARIABLE_OP, EFI_VM_VARIABLE_OP_VALUE);358 ASMOutU32(EFI_PORT_VARIABLE_OP, EFI_VM_VARIABLE_OP_VALUE); 359 359 VBoxWriteNVRAMByteArrayParam(Data, (UINT32)DataSize); 360 360 /* start fetch operation */
Note:
See TracChangeset
for help on using the changeset viewer.