[edk2] [PATCH 1/1] UefiCpuPkg/CpuExceptionHandlerLib: Fix spelling issue
*Excpetion* should be *Exception* Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Mike Maslenkin CC: Eric Dong CC: Laszlo Ersek --- UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h | 2 +- UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c| 2 +- .../Library/CpuExceptionHandlerLib/Ia32/ArchExceptionHandler.c | 2 +- .../Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h index e10d9379d596..cefa779b7e8a 100644 --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h @@ -310,7 +310,7 @@ CommonExceptionHandlerWorker ( @retval EFI_INVALID_PARAMETER StackSwitchData contains invalid content. **/ EFI_STATUS -ArchSetupExcpetionStack ( +ArchSetupExceptionStack ( IN CPU_EXCEPTION_INIT_DATA*StackSwitchData ); diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c index 2a090782fc22..70ee7dd8bfb3 100644 --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c @@ -285,7 +285,7 @@ InitializeCpuExceptionHandlersEx ( InitData = } - Status = ArchSetupExcpetionStack (InitData); + Status = ArchSetupExceptionStack (InitData); } } diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ArchExceptionHandler.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ArchExceptionHandler.c index 04f2ab593c3e..8d1326c4ba71 100644 --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ArchExceptionHandler.c +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ArchExceptionHandler.c @@ -119,7 +119,7 @@ ArchRestoreExceptionContext ( **/ EFI_STATUS -ArchSetupExcpetionStack ( +ArchSetupExceptionStack ( IN CPU_EXCEPTION_INIT_DATA *StackSwitchData ) { diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c index 56180f4c17e4..02dfa50fc7d0 100644 --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchExceptionHandler.c @@ -124,7 +124,7 @@ ArchRestoreExceptionContext ( **/ EFI_STATUS -ArchSetupExcpetionStack ( +ArchSetupExceptionStack ( IN CPU_EXCEPTION_INIT_DATA *StackSwitchData ) { -- 2.19.2 ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] SATA AHCI issue
BTW Windows waits for FR bit set for 50ms as opposed to Linux. See P_Running_WaitOnFRE function of storahci from WDK. So you can break Intel HBAs for example. Could you ask iastor team about this issue? Regards. On Thu, 2016-07-14 at 06:25 +, Tian, Feng wrote: > Hi, Shaveta > > We have approved this fix. Do you miss it? > http://article.gmane.org/gmane.comp.bios.edk2.devel/13541 > > Thanks > Feng > > -Original Message- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Shaveta Leekha > Sent: Thursday, July 14, 2016 2:04 PM > To: edk2-devel@lists.01.org; Linaro UEFI Mailman List >; Jan Dąbroś ; Ard > Biesheuvel > Cc: Ruchika Gupta > Subject: [edk2] SATA AHCI issue > > Hi, > > > > I have been working on support for AHCI controller for my ARMv8 platform. > > For that I have integrated my PciEmulation code and SataControllerDxe driver > code with MdeModulePkg/Bus/Ata. > > > > But facing one issue, this is same issue reported by Jan Dabros(in To list) > sometime back. > > Setting PxCMD.FRE bit of command register doesn't cause PxCMD.FR to be set to > '1' even after "500msec" timeout. > > > > (As per AHCI spec 1.3 : When PxCMD.FRE is set, it causes PxCMD.FR to be set > to '1' ) > > Is it correct to just comment out following code part from > "MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c" file, > "AhciModeInitialization" function: > > > > As Initialization timeouts is occurring in below part of code: > > > > // > > // Enable FIS Receive DMA engine for the first D2H FIS. > > // > > Offset = EFI_AHCI_PORT_START + Port * EFI_AHCI_PORT_REG_WIDTH + > EFI_AHCI_PORT_CMD; > > AhciOrReg (PciIo, Offset, EFI_AHCI_PORT_CMD_FRE); > > Status = AhciWaitMmioSet ( > > PciIo, > > Offset, > > EFI_AHCI_PORT_CMD_FR, > > EFI_AHCI_PORT_CMD_FR, > > EFI_AHCI_PORT_CMD_FR_CLEAR_TIMEOUT > > ); > > if (EFI_ERROR (Status)) { > > continue; > > } > > > > And if above code is commented out, then SATA stack works completely fine. > > > > What can be the problem? > > > > Thank you in advance for your time! > > > > Best regards, > > Shaveta > > ___ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > ___ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch 2/3] UefiCpuPkg/CpuMpPei: Dump message if microcode signature not matched
On Sat, 2016-07-02 at 02:58 +, Fan, Jeff wrote: > Mike, > > Parameter - PeiCpuMpData is added for MicrocodeDetect() in this patch. > PeiCpuMpData->MpLock is used to avoid debug message corruption when Aps > output debug message in parallel mode. > Thank you. This is a thing I wanted to understand. > I don't understand why the patch showed in your mail has not the following > part of patch. It's maybe the reason of your concern. > I just left the hunk I asked a question about. A quote of complete patch was not required there. ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch 2/3] UefiCpuPkg/CpuMpPei: Dump message if microcode signature not matched
Just curious why locking is required here? Looks like some operator missed. On Fri, 2016-07-01 at 15:02 +0800, Jeff Fan wrote: > diff --git a/UefiCpuPkg/CpuMpPei/Microcode.c b/UefiCpuPkg/CpuMpPei/Microcode.c > index 8e7f3b0..51a0737 100644 > --- a/UefiCpuPkg/CpuMpPei/Microcode.c > +++ b/UefiCpuPkg/CpuMpPei/Microcode.c > @@ -187,25 +188,29 @@ MicrocodeDetect ( > MicrocodeEntryPoint = (EFI_CPU_MICROCODE_HEADER *) (((UINTN) > MicrocodeEntryPoint) + TotalSize); >} while (((UINTN) MicrocodeEntryPoint < MicrocodeEnd)); > > - if (LatestRevision > 0) { > + if (LatestRevision > CurrentRevision) { > // > // BIOS only authenticate updates that contain a numerically larger > revision > // than the currently loaded revision, where Current Signature < New > Update > // Revision. A processor with no loaded update is considered to have a > // revision equal to zero. > // > -if (LatestRevision > GetCurrentMicrocodeSignature ()) { > - AsmWriteMsr64 ( > -EFI_MSR_IA32_BIOS_UPDT_TRIG, > -(UINT64) (UINTN) MicrocodeInfo.MicrocodeData > -); > - // > - // Get and verify new microcode signature > - // > - ASSERT (LatestRevision == GetCurrentMicrocodeSignature ()); > - MicrocodeInfo.Load = TRUE; > -} else { > - MicrocodeInfo.Load = FALSE; > +AsmWriteMsr64 ( > + EFI_MSR_IA32_BIOS_UPDT_TRIG, > + (UINT64) (UINTN) MicrocodeInfo.MicrocodeData > + ); > +// > +// Get and check new microcode signature > +// > +CurrentRevision = GetCurrentMicrocodeSignature (); > +if (CurrentRevision != LatestRevision) { > + AcquireSpinLock(>MpLock); > + DEBUG ((EFI_D_ERROR, "Updated microcode signature [0x%08x] does not > match \ > +loaded microcode signature [0x%08x]\n", CurrentRevision, > LatestRevision)); > + ReleaseSpinLock(>MpLock); > } > +MicrocodeInfo.Load = TRUE; > + } else { > +MicrocodeInfo.Load = FALSE; >} > } ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
[edk2] [PATCH 1/1] BaseTools: sync BaseTools from main trunk r18579.
This patch fixes incomplete merge of multiple workspaces support. Without this patch build fails with error similar to: ~/sources/edk2> build -p MdePkg/MdePkg.dsc -t GCC48 -a X64 Build environment: Linux-3.16.7-24-desktop-x86_64-with-SuSE-13.2-x86_64 Build start time: 17:15:43, Dec.02 2015 WORKSPACE= /home/user/sources/edk2 ECP_SOURCE = /home/user/sources/edk2/EdkCompatibilityPkg EDK_SOURCE = /home/user/sources/edk2/EdkCompatibilityPkg EFI_SOURCE = /home/user/sources/edk2/EdkCompatibilityPkg EDK_TOOLS_PATH = /home/user/sources/edk2/BaseTools build.py... : error C0DE: Unknown fatal error when processing [/home/user/sources/edk2/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf] (Please send email to edk2-de...@lists.sourceforge.net for help, attaching following call stack trace!) (Python 2.7.8 on linux2) Traceback (most recent call last): File "/home/user/sources/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2033, in Main MyBuild.Launch() File "/home/user/sources/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 1788, in Launch self._MultiThreadBuildPlatform() File "/home/user/sources/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 1583, in _MultiThreadBuildPlatform self.Progress File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 175, in __new__ if not AutoGenObject._Init(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs): File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 355, in _Init Pkgs = list(PkgSet) + list(PGen.PackageList) File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 1484, in _GetPackageList for La in self.LibraryAutoGenList: File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 1594, in _GetLibraryAutoGenList self._GetAutoGenObjectList() File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 1575, in _GetAutoGenObjectList self.MetaFile File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 175, in __new__ if not AutoGenObject._Init(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs): File "/home/user/sources/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 2199, in _Init self.SourceDir = mws.relpath(self.SourceDir, self.WorkspaceDir) File "/home/user/sources/edk2/BaseTools/Source/Python/Common/MultipleWorkspace.py", line 94, in relpath for Pkg in cls.PACKAGES_PATH: TypeError: 'NoneType' object is not iterable - Failed - Build end time: 17:15:44, Dec.02 2015 Build total time: 00:00:01 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Mike Maslenkin <mike.maslen...@gmail.com> CC: Fan, Jeff <jeff@intel.com> --- BaseTools/Source/Python/build/BuildReport.py | 5 +++-- BaseTools/Source/Python/build/build.py | 16 +++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py index 264607b00360..60e976c169a1 100644 --- a/BaseTools/Source/Python/build/BuildReport.py +++ b/BaseTools/Source/Python/build/BuildReport.py @@ -41,6 +41,7 @@ from Common.DataType import TAB_BRG_PCD from Common.DataType import TAB_BRG_LIBRARY from Common.DataType import TAB_BACK_SLASH from Common.LongFilePathSupport import OpenLongFilePath as open +from Common.MultipleWorkspace import MultipleWorkspace as mws ## Pattern to extract contents in EDK DXS files gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL) @@ -1255,7 +1256,7 @@ class FdRegionReport(object): for Pa in Wa.AutoGenObjectList: for ModuleKey in Pa.Platform.Modules: M = Pa.Platform.Modules[ModuleKey].M -InfPath = os.path.join(Wa.WorkspaceDir, M.MetaFile.File) +InfPath = mws.join(Wa.WorkspaceDir, M.MetaFile.File) self._GuidsDb[M.Guid.upper()] = "%s (%s)" % (M.Module.BaseName, InfPath) # @@ -1277,7 +1278,7 @@ class FdRegionReport(object): Guid = GuidStructureByteArrayToGuidString(GuidValue).upper() for Section in Ffs.SectionList: try: -ModuleSectFile = os.path.join(Wa.WorkspaceDir, Section.SectFileName) +ModuleSectFile = mws.join(Wa.WorkspaceDir, Section.SectFileName) self._GuidsDb[Guid] = ModuleSectFile except AttributeError: pass diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python
Re: [edk2] [patch] Do not deadloop if Microcode not found in FspTempRamInit.
On Mon, 2015-10-26 at 12:39 +0800, jiewen yao wrote: > diff --git > a/IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/SecEntry.asm > b/IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/SecEntry.asm > index 0e0c5c5..3c0bca3 100644 > --- > a/IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/SecEntry.asm > +++ > b/IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/SecEntry.asm > @@ -220,12 +220,22 @@ FspHeaderFound: >jmp eax > > TempRamInitDone: > - cmp eax, 0 > + cmp eax, 800Eh ;Check if EFI_NOT_FOUND returned. Error code for > Microcode Update not found. > + xor eax, eax > + je CallSecFspInit ;If microcode not found, don't hang, but continue. > + > + cmp eax, 0 ;Check if EFI_SUCCESS retuned. >jnz FspApiFailed Hello jiewen, would this condition be always true? 'xor eax, eax' instruction will set ZF flag, so you lose the comparison result. ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [MdeModulePkg] RegularExpressionDxe does not compile with Xcode 6.3.2
Sorry for the noise, but I can not pass warnings here: build -p MdeModulePkg/MdeModulePkg.dsc -t GCC48 -a X64: Build environment: Linux-3.16.7-24-desktop-x86_64-with-SuSE-13.2-x86_64 Build start time: 00:20:50, Oct.25 2015 Building ... /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf [X64] /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c: In function ‘OnigurumaMatch’: /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c:123:5: error: call to function ‘onig_error_code_to_str’ without a real prototype [-Werror=unprototyped-calls] onig_error_code_to_str ((OnigUChar *)ErrorMessage, OnigResult, ); ^ In file included from /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h:19:0, from /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c:17: /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h:722:5: note: ‘onig_error_code_to_str’ was declared here int onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...)); ^ /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c:147:7: error: call to function ‘onig_error_code_to_str’ without a real prototype [-Werror=unprototyped-calls] onig_error_code_to_str ((OnigUChar *)ErrorMessage, OnigResult); ^ In file included from /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h:19:0, from /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c:17: /home/user/edk2/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h:722:5: note: ‘onig_error_code_to_str’ was declared here int onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...)); ^ cc1: all warnings being treated as errors make: *** [/home/user/edk2/Build/MdeModule/DEBUG_GCC48/X64/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe/OUTPUT/RegularExpressionDxe.obj] Error 1 and this is because of RegularExpressionDxe/Oniguruma/oniguruma.h #ifdef HAVE_STDARG_PROTOTYPES # define PV_(args) args #else # define PV_(args) () #endif #endif That makes: RegularExpressionDxe.i int onig_init (void); extern int onig_error_code_to_str (); Am I missing something? Passing this place I encountered a number of similar issues for other library modules. Looks like OnigurumaUefiPort.h must define HAVE_STDARG_PROTOTYPES. On Thu, 2015-10-22 at 17:16 +, El-Haj-Mahmoud, Samer wrote: > Reviewed-by: Samer El-Haj-Mahmoud> > > -Original Message- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Andrew > Fish > Sent: Thursday, October 22, 2015 10:54 AM > To: edk2-devel-01 > Subject: [edk2] [MdeModulePkg] RegularExpressionDxe does not compile with > Xcode 6.3.2 > > CHAR8 is not defined as unsigned char, and I get the following error: > > > /Users/andrewfish/work/src/edk2/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c:123:29: > error: passing 'CHAR8 [90]' to parameter of type 'OnigUChar *' (aka > 'unsigned char *') converts between pointers to integer types with different > sign [-Werror,-Wpointer-sign] > onig_error_code_to_str (ErrorMessage, OnigResult, ); > ^~~~ > /Users/andrewfish/work/src/edk2/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h:722:44: > note: passing argument to parameter 's' here int onig_error_code_to_str > PV_((OnigUChar* s, int err_code, ...)); >^ > /Users/andrewfish/work/src/edk2/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h:75:20: > note: expanded from macro 'PV_' > # define PV_(args) args >^ > 1 error generated. > > Fix is to cast to the same type.: > diff --git > a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c > b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c > index 6580316..e6bad5d 100644 > --- a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c > +++ b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c > @@ -120,7 +120,7 @@ OnigurumaMatch ( > ); > >if (OnigResult != ONIG_NORMAL) { > -onig_error_code_to_str (ErrorMessage, OnigResult, ); > +onig_error_code_to_str ((OnigUChar *)ErrorMessage, OnigResult, > + ); > DEBUG ((DEBUG_ERROR, "Regex compilation failed: %a\n", ErrorMessage)); > return EFI_DEVICE_ERROR; >} > @@ -144,7 +144,7 @@ OnigurumaMatch ( >} else { > *Result = FALSE; > if (OnigResult != ONIG_MISMATCH) { > - onig_error_code_to_str (ErrorMessage, OnigResult); > + onig_error_code_to_str ((OnigUChar *)ErrorMessage, OnigResult); >DEBUG ((DEBUG_ERROR, "Regex match failed: %a\n", ErrorMessage)); > } >} > > >