When modifying the Optional Data of a boot option with bcfg boot -opt
the result was corrupted data, for instance a concatenation of old data,
heap contents, and new data. This was due to a erronous calculation of
the original optional data length.
In addition to fixing the calculation, add explaining comments and
introduce a helper variable, to not abuse other variables and confuse
readers (including the author).
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
When a quotation mark was found, the remaining line would be shifted
in-place to get rid of it. However, the "walker" index would still be
increased and therefore the first character of the shifted part would be
skipped. This means a second quotation mark would not be deleted.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Enable building the BaseRiscVFpuLib library for OvmfPkg to
* Enable the FPU and set it to state 'dirty'.
* Clear the fcsr CSR.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
The OpenSSL library uses floating point registers.
The is no guarantee that a prior firmware stage has enabled the FPU.
Provide a library BaseRiscVFpuLib to
* Enable the FPU and set it to state 'dirty'.
* Clear the fcsr CSR.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
* Define CSR fcsr
* Define bitmasks for vs and fs bit fields in the mstatus register
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
In order to support a platform overriding StackCheckLibNull
provided by MdeLibs.dsc.inc, the CUSTOM_STACK_CHECK_LIB macro
is introduced. If this macro is defined, MdeLibs.dsc.inc will
not link StackCheckLibNull and it is expected that the platform
will link the version(s) of StackCheckLib that it requires.
The StackCheckLib README is also updated in this patch to
document the new macro and provide additional information.
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
This generates boot descriptions for SD/MMC devices in the form of:
- "UEFI SanDisk SC128 2A2B1E4F SD Device"
- "UEFI Samsung BJTD4R 7AB3A8DE eMMC User Data"
The manufacturer ID tables are a best-effort, collected from various
places and personal testing. They're not complete and may be inaccurate
for rebranded cards.
Signed-off-by: Mario Bălănică <mariobalanica02@gmail.com>
Adds ACPI SPMI table generator library.
Updates acpi standard table enum with spmi.
Updates arch common namespace object and parser.
Updates the Readme.
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Adds macro which defines SPMI table revision
and interface type as per the specification.
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Makes changes to comply with alerts raised by CodeQL.
Most of the issues here fall into the following two categories:
1. Potential use of uninitialized pointer
2. Inconsistent integer width used in loop comparison
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
This change adds parantheses to the if condition detecting overflow in
the PeCoffLoaderRelocateImage function to improve readability.
Follow on change for:
REF!: https://github.com/tianocore/edk2/pull/6249
Signed-off-by: Doug Flick <dougflick@microsoft.com>
ARCH as set by "build" command is not really useful for
conditionals, so move AArch64-specific Pcd to
[PcdsFixedAtBuild.AARCH64].
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
Since I have just added a bunch of changes and additions to this library,
add myself as an additional maintainer.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
There are many source files in MdePkg/Library/BaseFdtLib, but only
one of them was highlighted as maintained by the library maintainers.
This feels like an oversight, so change this to be BaseFdtLib/*,
applying to all files in directory.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
FdtLib.h uses CONST FDT_PROPERTY * return values for some wrapper
functions, but the implementation in FdtLib.c used to original
CONST struct fdt_property * instead of the exported typedef.
Import LibFdt.h in the implementation file and make the
implementation consistent with the declaration.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
Add a wrapper for fdt_strerror () and add the currently supported error
code defines from submodule.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
There is currently a mix on functions named as Prop or Property.
The latter is in majority, and the better fit for tianocore coding style,
so rename FdtNodeOffsetByPropValue () and FdtSetProp () for consistency.
To avoid breaking bisect, change existing users in UefiPayloadPkg.
Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
FdtNumRsv and FdtGetMemRsv were added for the benefit of UefiPayloadPkg,
but their naming matches neither upstream libfdt nor tianocore coding
style rules. And there was scope for improvement of the doxygen
descriptions as well.
These functions currently have only one in-tree user, UefiPayloadPkg
FdtParserLib. So rename them more conformant
FdtGetNumberOfReserveMapEntries
and
FdtGetReserveMapEntry
and update the description comment blocks, at the same time as
updating the existing user.
Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
The project moved from using the `github-actions[bot]` bot account to
the `tianocore-assign-reviewers[bot]` account. A check is in place to
prevent the "`WARNING: Cannot add some reviewers`" from appearing
more than once if nothing has changed in the content it would post.
This change updates the bot account to the current one so the check
can work again.
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
The RelocDir->Size is a UINT32 value, and RelocDir->VirtualAddress is
also a UINT32 value. The current code does not check for overflow when
adding RelocDir->Size to RelocDir->VirtualAddress. This patch adds a
check to ensure that the addition does not overflow.
Signed-off-by: Doug Flick <dougflick@microsoft.com>
Authored-by: sriraamx gobichettipalayam <sri..@intel.com>
Since presumably quite a few people will use stuart to build EDK 2,
and since the recommended approach in that case is to use a python
venv, it is much more convenient if these files are ignored by default
in EDK 2, rather than requiring a manual update to .git/info/exclude
each time the repo is cloned, as effectively suggested in the current
How to Build With Stuart instructions on the tianocore wiki.
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
Moved FspApiReturnStatusReset API to a separate file to eliminate
unnecessary inclusion of FspApiReturnStatusReset APIs in driver binary.
When the compiler linking the Object files it may not remove all the
unused from NASM OBJs. This change is to reorganize the C files to
minimize the impact of the NASM behavior resulting is code size
reduction.
Signed-off-by: Ashraf Ali <ashraf.ali.s@intel.com>
The GCC5 TOOL_CHAIN_TAG is being deprecated in favor of
GCC. LinuxGcc5ToolChain.py needs to be updated to find
the correct ARM/AARCH64/RISCV/LOONGARCH64 compilers for
the GCC TOOL_CHAIN_TAG, as well, otherwise it defaults
to the system GCC, which is typically X64 based.
In order to keep this backward and forward compatible,
the plugin now checks for the substring "GCC" in the
TOOL_CHAIN_TAG and will set either the "GCC5" or "GCC"
env variables used by tools_def.template to find the
GCC compiler for the requested architecture.
This plugin is also renamed to drop the old GCC5.
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Shows code formatting errors directly in build output. Previously
only the filenames were in build output and the user had to look
at the test result file either locally or in CI to find details.
It is still recommended that users configure their local environment
to run Uncrustify so it can automatically fix problems as opposed
to manually correcting code based on the output shown in the
terminal. In any case, it is easier to see what is expected now.
Uncrustify reference material:
https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Code-Formattinghttps://github.com/tianocore/edk2/tree/master/.pytool/Plugin/UncrustifyCheck#readme
Some logging levels are also updated to refocus log output by current
message importance and relevance.
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
IS_EMPTY_STRING macro is defined in multiple drivers in RedfishPkg.
So, I create RedfishCommon.h to keep common macros that we can use
in RedfishPkg.
Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Without this change we get:
error: equality comparison with extraneous parentheses
when building with -D NETWORK_IP6_ENABLE on XCODE5.
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
Without this change we get:
error: variable 'Index' set but not used
when building on XCODE5.
Co-authored-by: Savva Mitrofanov <savvamtr@gmail.com>
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
REF: https://edk2.groups.io/g/devel/message/88179
Without this change, we get:
fatal error: 'Availability.h' file not found
when building on XCODE5.
The workaround uses a define present in openssl/include/crypto/rand.h
which modifies openssl behaviour on Apple only, causing the library
to default to a non-system specific source of entropy in syscall_random()
in rand_unix.c.
Co-authored-by: Savva Mitrofanov <savvamtr@gmail.com>
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
Without this change we get:
error: equality comparison with extraneous parentheses
when building on XCODE5.
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
Without these changes, we get the error:
error: variable '__DebugCodeLocal' set but not used
from the DebugLib.h DEBUG_CODE_BEGIN()/END() macros on XCODE5.
Similarly, in NOOPT builds only, we get:
error: variable '__PerformanceCodeLocal' set but not used
from the PerformanceLib.h PERF_CODE_BEGIN()/END() macros on XCODE5.
It is important to note that the previous code involving a local
variable was intended to ensure correct behaviour of ; following
the macros, in particular that ; should be required:
- https://github.com/tianocore/edk2/pull/6226#issuecomment-2364087866
- https://github.com/tianocore/edk2/pull/6226#issuecomment-2364619759
This converted version repeats the
standard do { ... } while (FALSE) idiom (which is already used in
the END macro) to achieve the same affect.
The modified versions work on all toolchains.
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
This is part of a sequence of commits to restore build on the XCODE5
toolchain.
The definition is required on other toolchains, but on XCODE5 results
in a macro redefined error (from the existing value 255) from
/usr/include/stdint.h.
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
ArmPkg.dsc sets up an FdtLib resolution that is not actually used
by any of the components in it. Since the declared one is going
away, drop the line.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
Add missing includes of BaseMemoryLib.h and declaration of
BaseLib/BaseMemoryLib dependencies hidden by use of EmbeddedPkg
FdtLib, which is being deleted.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
QemuVirtMemInfoLib makes use of BaseLib but never declared the
dependency or included the header. The code still built by
luck and by including the EmbeddedPkg FdtLib. Which is going
away, so add the missing stanzas in preparation.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
FdtHwInfoParserLib does not explicitly call out its dependencies on
BaseLib/BaseMemoryLib, which is currently hidden when EmbeddedPkg FdtLib
pulls them in instead. But that is going away, so make the necessary
explicit references and add missing include statements.
Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
Since commit 2997ae3873 ("ArmVirtPkg: make EFI_LOADER_DATA
non-executable") the comment for PcdDxeNxMemoryProtectionPolicy is
incorrect.
* Remove the incorrect part of the description.
* Describe overriding NX protection by passing a pcd parameter on the
build command line.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Adding $(OPENSSL_PATH)/e_os.h to the list of source files had the effect
that $(OPENSSL_PATH)/ was added to the list of include directories.
With the file being gone in openssl-3.2.x this doesn't work any more.
Add the directory to the [Includes.Common.Private] section instead.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>