Commit Graph

34578 Commits

Author SHA1 Message Date
Gerd Hoffmann
fceccd3eda OvmfPkg: switch OvmfPkgIa32 to OptHw include files.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-04 13:44:21 +00:00
Gerd Hoffmann
55b48c85a8 OvmfPkg: switch OvmfPkgIa32X64 to OptHw include files.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-04 13:44:21 +00:00
Gerd Hoffmann
faf600ccc7 OvmfPkg: move scsi drivers to new OptHw include files
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-04 13:44:21 +00:00
Abdul Lateef Attar
25b1754ae5 MdeModulePkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
0eae93e07c MdePkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
66cc827270 NetworkPkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
727ba13d3e OvmfPkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
96ce01e6e7 RedfishPkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
f2e9785b6e ShellPkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
db762861df UefiCpuPkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
2e1c3b53ae UefiPayloadPkg: Correct spelling errors and typos
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
Abdul Lateef Attar
4be603d713 BaseTools: Fix the spelling or typo
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-07-04 09:41:47 +08:00
INDIA\kanagavels
c3bf98f265 CryptoPkg: Disable the security risk ciphers.
REF:https://github.com/tianocore/edk2/issues/11040

Since the below mentioned ciphers has a security risks,
Disable
MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
MBEDTLS_SSL_RENEGOTIATION
MBEDTLS_DHM_C

Enable
MBEDTLS_SSL_DTLS_ANTI_REPLAY
MBEDTLS_SSL_DTLS_HELLO_VERIFY.

Signed-off-by: Kanagavel S <kanagavels@ami.com>
2025-07-03 11:11:59 +00:00
Leif Lindholm
87a4bfd28c BaseTools/PatchCheck.py: permit at least 20 characters after ':'
Commit b55530ad44
("BaseTools/PatchCheck.py: verify commit message lists package(s)")
introduced a check for the requirement to enumerate all modified packages
in the commit subject line. But it did leave the maximum line length at
75 characters (for non-CVE commits), which can get a bit cramped for
changes to several packages.

Introduce a new arbitrary "at least 20 characters after the :" limit.

Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-07-02 20:14:21 +00:00
Leif Lindholm
2bcad87004 BaseTools/PatchCheck.py: clean up subject line length handling
Use a temporary variable for max subject line length and log
result of test in one location.

Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-07-02 20:14:21 +00:00
Leif Lindholm
27d44c1abd BaseTools/PatchCheck.py: drop redundant line count check
Before doing the subject line length check, the script checks that the
number of lines in the commit message (including subject) is not less
than or equal to zero - and returns if it is.

However, then the test for whether the subject line starts with a CVE
tag inexplicably also checks for whether the number of lines are
greater than or equal to one. This is just clutter, so drop it.

Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-07-02 20:14:21 +00:00
Ceping Sun
7c40bc06a9 SecurityPkg/SecTpmMeasurementLib: Fix OverFlow Coverity issue
CC_MR_INDEX_0_MRTD indicates the MRTD register. This register is NOT
extendable in TDVF. So the return value of TdxMeasurementMapPcrToMrIndex
must be checked.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Ceping Sun <cepingx.sun@intel.com>
2025-07-02 07:41:33 +00:00
Wei6 Xu
d49364779c UefiCpuPkg/PiSmmCpuDxeSmm: Add sync barrier before BSP invokes SmmCoreEntry
This patch introduces a synchronization point between the BSP and APs to
ensure all APs have entered their SMM wait-loop (while (TRUE) in APHandler
()) before the BSP calls into the SMI handler logic via gSmmCpuPrivate
->SmmCoreEntry().

Previously, the BSP would invoke ReleaseAllAPs() and immediately proceed
to SmmCoreEntry() without confirming whether APs had reached the stable
waiting state. If SmmStartupThisAp() was called inside the SMI handler
shortly after ReleaseAllAPs(), it might lead to a race condition:
APs are issued two consecutive wait signals (SmmCpuSyncWaitForBsp()).
BSP sends two consecutive releases (ReleaseAllAPs() + SmmStartupThisAp())
If an AP has not yet responded to the first release, the second release may
overwrite the semaphore state, and the AP might miss the notification,
causing it to hang or behave unpredictably.

To address this:
A SmmCpuSyncWaitForAPs() is added in BSP after
mmCpuPlatformHookBeforeMmiHandler() and before entering SmmCoreEntry().
A matching SmmCpuSyncReleaseBsp() is added in AP immediately after its own
SmmCpuPlatformHookBeforeMmiHandler()

This ensures that BSP does not enter SMI handler logic or dispatch any
AP-related requests before all APs are confirmed to be idle and ready.
Debug sync point markers (e.g., /// #6, #7) are updated accordingly.
This change eliminates a subtle but critical race condition in
multi-processor/multi-socket systems during SMM entry and improves overall
synchronization safety.

Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
2025-07-01 17:46:33 +00:00
Michael Kubacki
d15b57292f MdeModulePkg: SectionExtractionPei cumulative codeql issues.
Running Codeql on MdeModulePkg/Universal/SectionExtractionPei drivers results
in codeql errors stemming from missing null tests.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>

Co-authored-by: Michael Kubacki <michael.kubacki@microsoft.com>
Co-authored-by: Taylor Beebe <tabeebe@microsoft.com>
Co-authored-by: pohanch <125842322+pohanch@users.noreply.github.com>
Co-authored-by: kenlautner <85201046+kenlautner@users.noreply.github.com>
Co-authored-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Co-authored-by: Sean Brogan <sean.brogan@microsoft.com>
Co-authored-by: Aaron <aaronpop@microsoft>
2025-07-01 09:53:09 +08:00
Michael Kubacki
6cc56c6a2e MdeModulePkg: SmmCommunicationBuffer cumulative codeql issues.
Running Codeql on MdeModulePkg/Universal/SmmCommunicationBuffer drivers results
in codeql errors stemming from missing null tests.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>

Co-authored-by: Michael Kubacki <michael.kubacki@microsoft.com>
Co-authored-by: Taylor Beebe <tabeebe@microsoft.com>
Co-authored-by: pohanch <125842322+pohanch@users.noreply.github.com>
Co-authored-by: kenlautner <85201046+kenlautner@users.noreply.github.com>
Co-authored-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Co-authored-by: Sean Brogan <sean.brogan@microsoft.com>
Co-authored-by: Aaron <aaronpop@microsoft>
2025-07-01 09:52:41 +08:00
Pierre Gondois
2d6b8d5ac9 BaseTools: WorkSpace: Remove unnecessary code
Running the vulture tool on the WorkSpace folder gave the following
report. Remove the unnecessary code.

- Workspace/BuildClassObject.py:148:
  unused method 'IsSimpleTypeArray' (60% confidence)
- Workspace/BuildClassObject.py:337:
  unused method 'SetPcdMode' (60% confidence)
- Workspace/BuildClassObject.py:612:
  unused attribute 'DscSpecification' (60% confidence)
- Workspace/DscBuildData.py:451:
  unused property 'DscSpecification' (60% confidence)
- Workspace/DscBuildData.py:1253:
  unused method 'GetBuildOptionsByPkg' (60% confidence)
- Workspace/DscBuildData.py:2064:
  unused method 'GetStarNum' (60% confidence)
- Workspace/DscBuildData.py:3613:
  unused method 'AddModule' (60% confidence)
- Workspace/DscBuildData.py:3650:
  unused method 'AddPcd' (60% confidence)
- Workspace/InfBuildData.py:117:
  unused attribute '_TailComments' (60% confidence)
- Workspace/InfBuildData.py:126:
  unused attribute '_BinaryModule' (60% confidence)
- Workspace/MetaDataTable.py:114:
  unused method 'IsIntegral' (60% confidence)
- Workspace/MetaDataTable.py:218:
  unused method 'GetFileTimeStamp' (60% confidence)
- Workspace/MetaDataTable.py:230:
  unused method 'SetFileTimeStamp' (60% confidence)
- Workspace/MetaDataTable.py:298:
  unused method 'GetCrossIndex' (60% confidence)
- Workspace/MetaFileParser.py:161:
  unused attribute '_FileDir' (60% confidence)
- Workspace/MetaFileParser.py:1187:
  unused method '_DecodeCODEData' (60% confidence)
- Workspace/MetaFileParser.py:1796:
  unused attribute '_RestofValue' (60% confidence)
- Workspace/MetaFileTable.py:31:
  unused attribute '_NumpyTab' (60% confidence)
- Workspace/WorkspaceDatabase.py:136:
  unused class 'TransformObjectFactory' (60% confidence)
- Workspace/WorkspaceDatabase.py:159:
  unused attribute 'TransformObject' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
70d53c2df0 BaseTools: UPT/Library: Remove unnecessary code
Running the vulture tool on the UPT/Library folder gave the following
report. Remove the unnecessary code.

- UPT/Library/CommentGenerating.py:50:
  unused function 'GenGenericComment' (60% confidence)
- UPT/Library/CommentGenerating.py:172:
  unused function 'GenInfPcdTailComment' (60% confidence)
- UPT/Library/CommentGenerating.py:185:
  unused function 'GenInfProtocolPPITailComment' (60% confidence)
- UPT/Library/CommentGenerating.py:203:
  unused function 'GenInfGuidTailComment' (60% confidence)
- UPT/Library/Misc.py:504:
  unused class 'MergeCommentDict' (60% confidence)
- UPT/Library/Misc.py:527:
  unused function 'GenDummyHelpTextObj' (60% confidence)
- UPT/Library/ParserValidate.py:110:
  unused function 'IsValidInfComponentType' (60% confidence)
- UPT/Library/ParserValidate.py:122:
  unused function 'IsValidToolFamily' (60% confidence)
- UPT/Library/ParserValidate.py:134:
  unused function 'IsValidToolTagName' (60% confidence)
- UPT/Library/ParserValidate.py:465:
  unused function 'IsValidBuildNumber' (60% confidence)
- UPT/Library/ParserValidate.py:478:
  unused function 'IsValidDepex' (60% confidence)
- UPT/Library/ParserValidate.py:546:
  unused function 'IsValidVersionString' (60% confidence)
- UPT/Library/ParserValidate.py:721:
  unused function 'CheckUTF16FileHeader' (60% confidence)
- UPT/Library/Parsing.py:52:
  unused function 'GetBuildOption' (60% confidence)
- UPT/Library/Parsing.py💯
  unused function 'GetLibraryClassOfInf' (60% confidence)
- UPT/Library/Parsing.py:150:
  unused function 'GetPcd' (60% confidence)
- UPT/Library/Parsing.py:177:
  unused function 'GetFeatureFlagPcd' (60% confidence)
- UPT/Library/Parsing.py:201:
  unused function 'GetDynamicDefaultPcd' (60% confidence)
- UPT/Library/Parsing.py:227:
  unused function 'GetDynamicHiiPcd' (60% confidence)
- UPT/Library/Parsing.py:254:
  unused function 'GetDynamicVpdPcd' (60% confidence)
- UPT/Library/Parsing.py:277:
  unused function 'GetComponent' (60% confidence)
- UPT/Library/Parsing.py:392:
  unused function 'GetExec' (60% confidence)
- UPT/Library/Parsing.py:416:
  unused function 'GetComponents' (60% confidence)
- UPT/Library/Parsing.py:532:
  unused function 'GetSource' (60% confidence)
- UPT/Library/Parsing.py:581:
  unused function 'GetGuidsProtocolsPpisOfInf' (60% confidence)
- UPT/Library/Parsing.py:595:
  unused function 'GetGuidsProtocolsPpisOfDec' (60% confidence)
- UPT/Library/Parsing.py:645:
  unused function 'GetPcdOfInf' (60% confidence)
- UPT/Library/Parsing.py:682:
  unused function 'GetPcdOfDec' (60% confidence)
- UPT/Library/Parsing.py:739:
  unused function 'InsertSectionItems' (60% confidence)
- UPT/Library/Parsing.py:776:
  unused function 'GenMetaDatSectionItem' (60% confidence)
- UPT/Library/StringUtils.py:87:
  unused function 'GetLibraryClassesWithModuleType' (60% confidence)
- UPT/Library/StringUtils.py:107:
  unused function 'GetDynamics' (60% confidence)
- UPT/Library/StringUtils.py:350:
  unused function 'GetMultipleValuesOfKeyFromLines' (60% confidence)
- UPT/Library/StringUtils.py:396:
  unused function 'GetSingleValueOfKeyFromLines' (60% confidence)
- UPT/Library/StringUtils.py:463:
  unused function 'PreCheck' (60% confidence)
- UPT/Library/StringUtils.py:675:
  unused function 'StringArrayLength' (60% confidence)
- UPT/Library/StringUtils.py:718:
  unused function 'IsHexDigit' (60% confidence)
- UPT/Library/UniClassObject.py:86:
  unused function 'UniToStr' (60% confidence)
- UPT/Library/UniClassObject.py:227:
  unused attribute 'StringNameByteList' (60% confidence)
- UPT/Library/UniClassObject.py:237:
  unused attribute 'StringNameByteList' (60% confidence)
- UPT/Library/UniClassObject.py:377:
  unused method 'GetIncludeFile' (60% confidence)
- UPT/Library/UniClassObject.py:947:
  unused method 'FindStringValue' (60% confidence)
- UPT/Library/UniClassObject.py:957:
  unused method 'FindByToken' (60% confidence)
- UPT/Library/UniClassObject.py:1022:
  unused method 'ReadIncludeUNIfile' (60% confidence)
- UPT/Library/StringUtils.py:718:
  unused function 'IsHexDigit' (60% confidence)
- UPT/Library/Xml/XmlRoutines.py:176:
  unused function 'XmlElementList' (60% confidence)
- UPT/Library/Xml/XmlRoutines.py:202:
  unused function 'XmlNodeName' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
5c558ce5f3 BaseTools: UPT/Xml: Remove unnecessary code
Running the vulture tool on the UPT/Xml folder gave the following
report. Remove the unnecessary code.

- UPT/Xml/CommonXml.py:585:
  unused attribute 'LangDefsList' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
9b52f0c205 BaseTools: UPT/PomAdapter: Remove unnecessary code
Running the vulture tool on the UPT/PomAdapter folder gave the following
report. Remove the unnecessary code.

- UPT/PomAdapter/DecPomAlignment.py:898:
  unused method 'ShowPackage' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
583b64122c BaseTools: UPT/Parser: Remove unnecessary code
Running the vulture tool on the UPT/Parser folder gave the following
report. Remove the unnecessary code.

- UPT/Parser/InfAsBuiltProcess.py:223:
  unused function 'GetInfsFromWorkSpace' (60% confidence)
- UPT/Parser/InfAsBuiltProcess.py:237:
  unused function 'GetGuidVerFormLibInstance' (60% confidence)
- UPT/Parser/InfParserMisc.py:211:
  unused attribute 'InfPeiDepexSection' (60% confidence)
- UPT/Parser/InfParserMisc.py:212:
  unused attribute 'InfDxeDepexSection' (60% confidence)
- UPT/Parser/InfParserMisc.py:213:
  unused attribute 'InfSmmDepexSection' (60% confidence)
- UPT/Parser/InfSectionParser.py:231:
  unused attribute 'InfPeiDepexSection' (60% confidence)
- UPT/Parser/InfSectionParser.py:232:
  unused attribute 'InfDxeDepexSection' (60% confidence)
- UPT/Parser/InfSectionParser.py:233:
  unused attribute 'InfSmmDepexSection' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
ee79100678 BaseTools: Table: Remove unnecessary code
Running the vulture tool on the Table folder gave the following
report. Remove the unnecessary code.

- Table/Table.py:88:
  unused method 'GenerateID' (60% confidence)
- Table/TableDataModel.py:83:
  unused method 'GetCrossIndex' (60% confidence)
- Table/TableEotReport.py:66:
  unused method 'GetMaxID' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
fa2c27514c BaseTools: GenFds: Remove unnecessary code
Running the vulture tool on the GenFds folder gave the following
report. Remove the unnecessary code.

- GenFds/Fd.py:146:
  unused method 'GenFlashMap' (60% confidence)
- GenFds/FdfParser.py:1539:
  unused attribute 'BaseAddressPcd' (60% confidence)
- GenFds/FdfParser.py:1556:
  unused attribute 'SizePcd' (60% confidence)
- GenFds/FdfParser.py:2394:
  unused attribute 'CurrentLineNum' (60% confidence)
- GenFds/FdfParser.py:2395:
  unused attribute 'CurrentLineContent' (60% confidence)
- GenFds/FdfParser.py:2653:
  unused attribute 'CurrentLineNum' (60% confidence)
- GenFds/FdfParser.py:2654:
  unused attribute 'CurrentLineContent' (60% confidence)
- GenFds/FdfParser.py:3229:
  unused attribute 'CreateFile' (60% confidence)
- GenFds/FfsFileStatement.py:36:
  unused attribute 'CurrentLineNum' (60% confidence)
- GenFds/FfsFileStatement.py:37:
  unused attribute 'CurrentLineContent' (60% confidence)
- GenFds/FfsInfStatement.py:68:
  unused attribute 'CurrentLineNum' (60% confidence)
- GenFds/FfsInfStatement.py:69:
  unused attribute 'CurrentLineContent' (60% confidence)
- GenFds/GenFds.py:68:
  unused attribute 'LibDir' (60% confidence)
- GenFds/GenFds.py:557:
  unused method 'GetFvBlockSize' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
ff0162bf07 BaseTools: FMTT: Remove unnecessary code
Running the vulture tool on the FMTT folder gave the following
report. Remove the unnecessary code.

- FMMT/core/BinaryFactoryProduct.py:132:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BinaryFactoryProduct.py:176:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BinaryFactoryProduct.py:229:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BinaryFactoryProduct.py:365:
  unused class 'ElfSectionProduct' (60% confidence)
- FMMT/core/BinaryFactoryProduct.py:369:
  unused method 'ParserSectionData' (60% confidence)
- FMMT/core/BinaryFactoryProduct.py:371:
  unused method 'ParserProgramData' (60% confidence)
- FMMT/core/BiosTree.py:76:
  unused method 'insertRel' (60% confidence)
- FMMT/core/BiosTree.py:84:
  unused method 'deleteNode' (60% confidence)
- FMMT/core/BiosTreeNode.py:63:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BiosTreeNode.py:125:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BiosTreeNode.py:182:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BiosTreeNode.py:185:
  unused attribute 'SectionMaxAlignment' (60% confidence)
- FMMT/core/BiosTreeNode.py:220:
  unused attribute 'ROffset' (60% confidence)
- FMMT/core/BiosTreeNode.py:223:
  unused attribute 'OriHeader' (60% confidence)
- FMMT/core/BiosTreeNode.py:226:
  unused attribute 'SectionMaxAlignment' (60% confidence)
- FMMT/core/BiosTreeNode.py:247:
  unused attribute 'ROffset' (60% confidence)
- FMMT/FMMT.py:52:
  unused attribute 'firmware_packet' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
3c2f04a3c7 BaseTools: Eot: Remove unnecessary code
Running the vulture tool on the Eot folder gave the following
report. Remove the unnecessary code.

- Eot/CodeFragment.py:47:
  unused class 'AssignmentExpression' (60% confidence)
- Eot/CodeFragmentCollector.py:75:
  unused attribute '__Token' (60% confidence)
- Eot/CodeFragmentCollector.py:76:
  unused attribute '__SkippedChars' (60% confidence)
- Eot/CodeFragmentCollector.py:104:
  unused method '__EndOfLine' (60% confidence)
- Eot/CodeFragmentCollector.py:129:
  unused method '__UndoOneChar' (60% confidence)
- Eot/CodeFragmentCollector.py:215:
  unused method '__InsertComma' (60% confidence)
- Eot/Database.py:81:
  unused attribute 'text_factory' (60% confidence)
- Eot/EotMain.py:1012:
  unused method 'SetFreeSpace' (60% confidence)
- Eot/Identification.py:36:
  unused method 'GetFileFullPath' (60% confidence)
- Eot/Identification.py:43:
  unused method 'GetFileRelativePath' (60% confidence)
- Eot/Parser.py:119:
  unused function 'AddToGlobalMacro' (60% confidence)
- Eot/Parser.py:238:
  unused function 'GetAllSourceFiles' (60% confidence)
- Eot/Parser.py:257:
  unused function 'ParseConditionalStatementMacros' (60% confidence)
- Eot/Parser.py:267:
  unused function 'GetAllFiles' (60% confidence)
- Eot/Parser.py:291:
  unused function 'ParseConditionalStatement' (60% confidence)
- Eot/Parser.py:367:
  unused function 'GetConditionalStatementStatus' (60% confidence)
- Eot/Parser.py:722:
  unused function 'ConvertGuid' (60% confidence)
- Eot/Parser.py:857:
  unused function 'ConvertGuid2' (60% confidence)
- Eot/Report.py:161:
  unused method 'GeneratePpi' (60% confidence)
- Eot/Report.py:173:
  unused method 'GenerateProtocol' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
7402bd06cf BaseTools: Ecc: Remove unnecessary code
Running the vulture tool on the Ecc folder gave the following
report. Remove the unnecessary code.

- Ecc/c.py:52:
  unused function 'GetConfig' (60% confidence)
- Ecc/c.py:484:
  unused function 'GetFileModificationTimeFromDB' (60% confidence)
- Ecc/CodeFragmentCollector.py:77:
  unused attribute '__Token' (60% confidence)
- Ecc/CodeFragmentCollector.py:78:
  unused attribute '__SkippedChars' (60% confidence)
- Ecc/CodeFragmentCollector.py:109:
  unused method '__EndOfLine' (60% confidence)
- Ecc/CodeFragmentCollector.py:134:
  unused method '__UndoOneChar' (60% confidence)
- Ecc/CodeFragmentCollector.py:221:
  unused method '__InsertComma' (60% confidence)
- Ecc/CodeFragmentCollector.py:539:
  unused method 'PrintFragments' (60% confidence)
- Ecc/Database.py:81:
  unused attribute 'text_factory' (60% confidence)
- Ecc/Database.py:214:
  unused method 'UpdateIdentifierBelongsToFunction_disabled'
  (60% confidence)
- Ecc/MetaFileWorkspace/MetaDataTable.py:142:
  unused method 'IsIntegral' (60% confidence)
- Ecc/MetaFileWorkspace/MetaDataTable.py:205:
  unused method 'GetCrossIndex' (60% confidence)
- Ecc/Xml/XmlRoutines.py:145:
  unused function 'XmlElementData' (60% confidence)
- Ecc/Xml/XmlRoutines.py:162:
  unused function 'XmlElementList' (60% confidence)
- Ecc/Xml/XmlRoutines.py:192:
  unused function 'XmlNodeName' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
c6e088cafc BaseTools: Capsule: Remove unnecessary code
Running the vulture tool on the Capsule folder gave the following
report. Remove the unnecessary code.

- Capsule/WindowsCapsuleSupportHelper.py:26:
  unused method 'RegisterHelpers' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
ac9dc33396 BaseTools: build: Remove unnecessary code
Running the vulture tool on the build folder gave the following
report. Remove the unnecessary code.

- build/build.py:79:
  unused function 'IsToolInPath' (60% confidence)
- build/build.py:396:
  unused class 'PlatformMakeUnit' (60% confidence)
- build/build.py:570:
  unused method 'GetErrorMessage' (60% confidence)
- build/build.py:806:
  unused attribute 'HashSkipModules' (60% confidence)
- build/build.py:807:
  unused attribute 'Db_Flag' (60% confidence)
- build/build.py:1048:
  unused attribute 'Db_Flag' (60% confidence)
- build/build.py:2500:
  unused method 'GetRealPathOfTool' (60% confidence)
- build/BuildReport.py:1497:
  unused method 'StrtoHex' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
f79717aac2 BaseTools: AutoGen: Remove unnecessary code
Running the vulture tool on the AutoGen folder gave the following
report. Remove the unnecessary code.

- AutoGen/BuildEngine.py:333:
  unused attribute 'SupportedToolChainFamilyList' (60% confidence)
- AutoGen/BuildEngine.py:346:
  unused attribute '_RuleObjectList' (60% confidence)
- AutoGen/GenMake.py:450:
  unused attribute 'FileBuildTargetList' (60% confidence)
- AutoGen/GenMake.py:452:
  unused attribute 'PendingBuildTargetList' (60% confidence)
- AutoGen/GenMake.py:458:
  unused attribute 'LibraryBuildCommandList' (60% confidence)
- AutoGen/GenMake.py:459:
  unused attribute 'LibraryFileList' (60% confidence)
- AutoGen/GenMake.py:462:
  unused attribute 'SystemLibraryList' (60% confidence)
- AutoGen/GenMake.py:1168:
  unused method 'GetFileDependency' (60% confidence)
- AutoGen/GenMake.py:1466:
  unused attribute 'ModuleBuildCommandList' (60% confidence)
- AutoGen/GenPcdDb.py:442:
  unused class 'DbSkuHeadTableItemList' (60% confidence)
- AutoGen/GenVar.py:31:
  unused attribute 'VpdRegionOffset' (60% confidence)
- AutoGen/GenVar.py:43:
  unused attribute 'VpdRegionOffset' (60% confidence)
- AutoGen/ModuleAutoGen.py:257:
  unused attribute 'FileDependCache' (60% confidence)
- AutoGen/ModuleAutoGen.py:684:
  unused method 'BuildOptionIncPathList' (60% confidence)
- AutoGen/PlatformAutoGen.py:994:
  unused method 'EdkBuildOption' (60% confidence)
- AutoGen/UniClassObject.py:171:
  unused attribute 'StringNameByteList' (60% confidence)
- AutoGen/UniClassObject.py:181:
  unused attribute 'StringNameByteList' (60% confidence)
- AutoGen/UniClassObject.py:366:
  unused method 'GetIncludeFile' (60% confidence)
- AutoGen/UniClassObject.py:606:
  unused method 'FindStringValue' (60% confidence)
- AutoGen/UniClassObject.py:616:
  unused method 'FindByToken' (60% confidence)
- AutoGen/ValidCheckingInfoObject.py:228:
  unused attribute 'ValidData' (60% confidence)
- AutoGen/ValidCheckingInfoObject.py:231:
  unused attribute 'ValidData' (60% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
c169a5420b BaseTools: Remove unreachable code
Running the vulture tool gave the following report.
Remove the unreachable code.

- TargetTool/TargetTool.py:49:
  unreachable code after 'raise' (100% confidence)
- UPT/Library/UniClassObject.py:137:
  unreachable code after 'return' (100% confidence)
- UPT/Object/Parser/InfDefineObject.py:795:
  unreachable code after 'if' (100% confidence)
- Ecc/Check.py:1504:
  unreachable code after 'return' (100% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Pierre Gondois
f54fe78d9a BaseTools: Remove unused import
Running the vulture tool gave the following report.
Remove the unused import.

- BPDG/BPDG.py:21:
  unused import 'encodings' (90% confidence)
- build/build.py:61:
  unused import 'Manager' (90% confidence)
- Ecc/CParser4/CLexer.py:4:
  unused import 'TextIO' (90% confidence)
- Ecc/CParser4/CParser.py:5:
  unused import 'TextIO' (90% confidence)
- Eot/CParser4/CLexer.py:4:
  unused import 'TextIO' (90% confidence)
- Eot/CParser4/CParser.py:5:
  unused import 'TextIO' (90% confidence)
- Eot/EotMain.py:28:
  unused import 'ConvertGuid' (90% confidence)
- GenFds/FdfParser.py:16:
  unused import 'hexdigits' (90% confidence)
- Table/TableEotReport.py:16:
  unused import 'EotToolError' (90% confidence)
- UPT/Library/CommentGenerating.py:19:
  unused import 'USAGE_ITEM_NOTIFY' (90% confidence)
- UPT/Library/ParserValidate.py:18:
  unused import 'COMPONENT_TYPE_LIST' (90% confidence)
- UPT/Library/UniClassObject.py:25:
  unused import 'CheckUTF16FileHeader' (90% confidence)

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-01 09:51:38 +08:00
Wenbo Hou
d165ebcf43 MdeModulePkg/FaultTolerantWriteDxe: Add validation for FtwWorkSpaceHeader
Add validation for FtwWorkSpaceHeader within the
WorkSpaceRefresh() function to address an issue where the
variable store cannot recover from the FTW spare block if the
variable store is erased or corrupted during an FTW write or
reclaim operation.

Signed-off-by: Wenbo Hou <wenbo.hou@microsoft.com>
2025-07-01 09:42:17 +08:00
Kun Qin
51d273d8c3 MdeModulePkg: MmVariablePei: Use MM communicate v3
As the MM cores begin to support MM Communicate v3, this update moves the
driver to communicate to MM agent through MM Communicate v3 PPI.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Kun Qin
23e1fc6b0b MdeModulePkg: VariableSmmRuntimeDxe: Use MM communicate v3
As MM cores start to support MM communciate v3. This change moves the
variable driver to use MM communicate v3 if it is available, otherwise the
driver will fallback to v2 to keep the same functionality.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Kun Qin
fdb638fc28 MdeModulePkg: PiSmmIpl: Add check for MM communicate v3 header
This change adds a check to ensure the incoming buffer is correctly using
MM communicate v3 header before dereferencing the content.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Kun Qin
9752e69927 ArmPkg: StandaloneMmCpu: Add MM communicate v3 support
As the standalone MM core begins supporting MM Communicate v3, this
update extends its functionality to incorporate MM Communicate v3 headers
format, enabling compatibility with the new protocol.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Kun Qin
6b7a3e05f0 ArmPkg: ArmStandaloneMmCoreEntryPoint: Add MM communicate v3 support
As the standalone MM core begins supporting MM Communicate v3, this
update extends its functionality to incorporate MM Communicate v3
headers, enabling compatibility with the new protocol.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Kun Qin
1634dd5b93 ArmPkg: MmCommunicationPei: Add MM communicate v3
As MM cores start to support MM communciate v3. This change moves the
MM communicate driver to produce MM communicate v3 PPI.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Kun Qin
6eed57a0aa ArmPkg: MmCommunicationDxe: Add MM communicate v3
As MM cores start to support MM communciate v3. This change moves the
MM communicate driver to produce MM communicate v3 protocol.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 21:43:56 +00:00
Pankaj Kumar Singh
4fa354b116 EmbeddedPkg/TimeBaseLib: aligning year with UEFI specification
According to the UEFI Specification version 2.11, the valid range for the
Year field in the EFI_TIME structure is from 1900 to 9999.
Currently IsTimeValid() checks a restricted range 2000 - 2099.

Update range in TimeBaseLib.c to match UEFI specification.
Signed-off-by: Pankaj Singh <pansing@qti.qualcomm.com>
2025-06-26 18:40:15 +00:00
Kun Qin
1cd24ff130 Maintainers.txt: Add reviewer and maintainer for ARM-FFA folders
- Updated Maintainers.txt to include Sami Mujawar as a maintainer for the
  ARM-FFA sections in MdePkg and MdeModulePkg.
- Updated Maintainers.txt to include Yeo Reum Yun as a reviewer for the
  ARM-FFA sections in MdePkg and MdeModulePkg.
- Updated Maintainers.txt to include Kun Qin as a reviewer for the ARM-
  FFA sections in MdePkg and MdeModulePkg.
- Added their contact information: email and GitHub username.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 17:38:28 +00:00
Kun Qin
a0d78f6625 MdePkg: ArmFfaMemMgmtLib: Introduce FF-A memory protocol library
This change introduced a library interface that implements the FF-A
memory protocol v1.3 ALP1:
https://developer.arm.com/documentation/den0140/f

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 17:38:28 +00:00
Kun Qin
22142b4f4a MdePkg, MdeModulePkg: ArmFfaLib: Expose FFA_ARGS and ArmCallFfa
FFA is a framework that supports various protocols built on top. i.e.
memory protocol, which is nothing that can be done through existing
interfaces.

Instead of requiring protocol authors to check conduit PCD in every
implementation, exposing the ArmCallFfa is a unified way to allow other
protocols to leverage FFA interfaces.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 17:38:28 +00:00
Kun Qin
b534cabbda MdeModulePkg: ArmFfaLib: Add Rx/Tx support for Stmm secure partition
This change adds the support for mapping Rx/Tx buffer through the library
constructor. The first mapper will produce an MM protocol instance with
Rx/Tx information, which allows subsequent consumers to query the
information.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26 17:38:28 +00:00
Michael D Kinney
a2e4ee7ed2 UnitTestFrameworkPkg: Add -Wno-write-strings to host unit tests
Disable write strings warning for host-based unit test
builds when building modules of type HOST_APPLICATION.

Modules of type HOST_APPLICATION may compile and link code
under test into the host-based unit test. When building
GoogleTest based unit tests, the G++ compiler is used. The
G++ compiler is stricter than GCC for passing a const string
into a function parameter that is not const. This is not a
warning for GCC build of firmware code. But GoogleTest builds
that use g++ detect as a warning and that breaks the build.

The firmware code under test can not be changed, so the warning
-Wno-write-strings is added to CC_FLAGS to ignore this warning.

Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-25 21:40:50 +00:00
Dionna Glaze
d7110cd638 MdePkg: Add ACPI 5.1 table definition for WAET
This is a struct needed for virtualizing Windows.

https://uefi.org/acpi entry for WAET links to
https://learn.microsoft.com/en-us/previous-versions/gg487524(v=msdn.10)

which describes the 32-bit flags field with bits 0 and 1 defined.

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
2025-06-25 20:53:49 +00:00