30958 Commits

Author SHA1 Message Date
Marvin Häuser
55f38e9bf4 SourceLevelDebugPkg/UefiImageExtraActionLibDebug: Fix build errors 2023-04-15 21:41:26 +02:00
Marvin Häuser
c87fa98d16 StandaloneMmPkg/StandaloneMmCore: Fix build errors 2023-04-15 21:09:05 +02:00
Marvin Häuser
0e4af8d5bc BaseTools/tools_def: Remove unused macros 2023-04-15 16:01:26 +02:00
Savva Mitrofanov
4a19cb0dc4
BaseTools/ImageTool: Move Pcd tokens into OC User library 2023-04-14 21:17:13 +06:00
Mikhail Krichanov
511f3b2637 ImageTool: Fixed Amaranth boot. Stack canaries' relocations are stored in .rela section, relocations of which are applicable to the whole file (sh_info == 0) and must be kept. 2023-04-14 11:17:47 +03:00
Marvin Häuser
1c6925aaa2 Drop support for the TE format 2023-04-12 19:56:18 +03:00
Mikhail Krichanov
b58fc72d8a ImageTool: Dropped MOVW/T relocs. 2023-04-12 16:46:40 +03:00
Mikhail Krichanov
7ae4bf8995 Build: Renamed XIPFLAGS as SECPEIFLAGS, added comment in build_rule.template on its usage. 2023-04-12 16:46:40 +03:00
Mikhail Krichanov
05cd2dee1e BaseTools: Removed GCC48/49 toolchains. 2023-04-12 16:46:40 +03:00
Mikhail Krichanov
7236d37bcd Conf: Remove unused IPHONE_TOOLS, SOURCERY_CYGWIN_TOOLS defs and EBC (EFI Byte Code) compiler definitions. 2023-04-12 16:46:40 +03:00
Mikhail Krichanov
df4c475562 BaseTools: Removed VS2008-VS2013 toolchains. 2023-04-12 16:46:40 +03:00
Mikhail Krichanov
669f98f9f8 Conf: Removed CLANG35/38 toolchains. 2023-04-12 16:46:40 +03:00
Mikhail Krichanov
19978560ba BaseTools: Cleaned up ARM relocs calculation in ImageTool and removed several relocation types' definitions as according to ARM ABI (aaelf32.pdf) 177-255 codes are reserved for future allocation. 2023-04-12 16:46:40 +03:00
Savva Mitrofanov
687086ce0e
ImageTool: Drop duplicated BaseOverflowLib symbols 2023-04-12 18:02:13 +06:00
Marvin Häuser
5c9259bed5 ArmPkg/ArmMmuLib: ASSERT ArmReplaceLiveTranslationEntry alignment 2023-04-11 11:54:59 +02:00
Savva Mitrofanov
280ebb9d2b .github/workflow: Add build target with CLANGDWARF toolchain for ARM 2023-04-11 09:51:04 +02:00
Marvin Häuser
c3f671eff1 BaseTools/Common: Fix aligned page alloc functions 2023-04-11 09:51:04 +02:00
Marvin Häuser
5fe6994faf BaseTools/tools_def: Add ARM and AARCH64 support to CLANGDWARF 2023-04-11 09:51:01 +02:00
Marvin Häuser
79ee7f5475 ImageTool: Rework PE section emission 2023-04-11 09:27:39 +02:00
Marvin Häuser
c497d51928 ImageTool: Only translate ELF relocs targeting translated sections 2023-04-11 09:27:39 +02:00
Marvin Häuser
f7c6e92fc9 BaseTools/tools_def: Add missing -no-pie DLINK for ARM GCC 2023-04-11 09:27:39 +02:00
Marvin Häuser
016a079008 ImageTool: Support R_ARM_NONE relocation type 2023-04-11 09:27:39 +02:00
Marvin Häuser
6623dd8671 ImageTool: Error when encountering unknown ELF SHF_ALLOC sections 2023-04-11 09:27:39 +02:00
Marvin Häuser
3bc4011a1e BsseTools/lds: Drop ARM unwind info section 2023-04-11 09:27:39 +02:00
Marvin Häuser
08778e2a3d ImageTool: Abstract executable generation 2023-04-11 09:27:35 +02:00
Marvin Häuser
75fcd420f6 ImageTool: Distinguish between non-ELF/PE and incompatible ELF/PE 2023-04-10 22:40:52 +02:00
Marvin Häuser
1fc65bdb8d ImageTool: Correctly emit VirtualSize as ImageSize for non-XIP 2023-04-10 22:39:42 +02:00
Marvin Häuser
d27a576b86 ImageTool: Explicitly convert IR to XIP for PE emission 2023-04-10 22:39:42 +02:00
Marvin Häuser
0bfa467344 ImageTool: Use realloc() for IR segment enlarging 2023-04-10 22:39:42 +02:00
Marvin Häuser
2f91fddf99 Drop premature UE support 2023-04-10 22:21:15 +02:00
Marvin Häuser
cd0e8aa6ad MdeModulePkg/ExtendedFirmwarePerformance: Fix FPDT struct alignment 2023-04-10 17:39:25 +02:00
Marvin Häuser
7b022c46d0 MdePkg/BasePeCoffLib2: Only validate ExeHdrOffset when non-zero 2023-04-10 10:57:28 +02:00
Marvin Häuser
42ef8c795c UefiPayloadPkg/UefiPayloadEntry: Return image destination size as UINT32 2023-04-10 10:57:27 +02:00
Mikhail Krichanov
d58d5c1bc3 ImageTool: Extended debug printings. 2023-04-10 10:31:53 +02:00
Mikhail Krichanov
7abc3faeec ImageTool: Made compilation of EFI_IMAGE_MACHINE selection conditional. 2023-04-10 10:31:53 +02:00
Marvin Häuser
373bb081ee ImageTool: Fix ARM image generation 2023-04-10 10:31:53 +02:00
Marvin Häuser
7b210acbc6 ArmVirtPkg: Use max-page-size 2023-04-10 10:31:53 +02:00
Mikhail Krichanov
f0ca8ef0cb ArmPkg/RvdUefiImageExtraActionLib: Fix build 2023-04-10 10:31:53 +02:00
Mikhail Krichanov
60e0471175 MdePkg/BasePeCoffLib2: Fix ARM Thumb apply relocation routine
Thumb instructions are either 16-bit or 32-bit, and are aligned on
a two-byte boundary

Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
2023-04-10 10:31:53 +02:00
Marvin Häuser
a07a2ce546 MdeModulePkg/DxeCore: Fix MAT generation 2023-04-10 10:31:53 +02:00
Marvin Häuser
53f2af3ad5 ArmPkg/ArmMmuLib: Fix ArmReplaceLiveTranslationEntry alignment 2023-04-10 10:31:48 +02:00
Mikhail Krichanov
d477fd49b1 MdeModulePkg/DxeCore: Use correct type for alignment mask
The page allocator code in CoreFindFreePagesI() uses a mask derived from
    its UINTN Alignment argument to align the descriptor end address of a
    MEMORY_MAP entry to the requested alignment, in order to check whether
    the descriptor covers enough sufficiently aligned area to satisfy the
    request.

    However, on 32-bit architectures, 'Alignment' is a 32-bit type, whereas
    DescEnd is a 64-bit type, and so the resulting operation performed on
    the end address comes down to masking with 0xfffff000 instead of the
    intended 0xffffffff_fffff000. Given the -1 at the end of the expression,
    the resulting address is 0xffffffff_fffffffff for any descriptor that
    ends on a 4G aligned boundary, and this is certainly not what was
    intended.

    So cast Alignment to UINT64 to ensure that the mask has the right size.

    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Reported-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
2023-04-09 17:33:52 +02:00
Savva Mitrofanov
5a084dafde
.github/workflow: Split build workflow into multiple and add ARM targets
Adds new workflow for building and testing ARM targets. Also, it splits
previous build workflow into multiple parts: common packages,
x86 firmwares, ARM firmwares. In addition, it adds Windows PE tests.

Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
2023-04-05 14:48:09 +06:00
Savva Mitrofanov
b4167ccdd4
ArmVirtPkg/ArmVirtQemu: Disable PcdPrePiProduceMemoryTypeInformationHob for ARM
The PcdPrePiProduceMemoryTypeInformationHob on ARM breaks Linux efistub
boot. The efistub for arm32 uncompresses Linux kernel into memory ranges
which occupied by DXE-phase drivers which leads to
'permission denied'-error during page write. So as a temporary solution
we use PcdPrePiProduceMemoryTypeInformationHob only for AARCH64

Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
2023-04-05 14:48:08 +06:00
Savva Mitrofanov
6c9cb4f420
EmbeddedPkg/PrePiMemoryAllocationLib: Correct missing function argument
Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
2023-04-05 12:56:49 +06:00
Savva Mitrofanov
b877d75f50
EmbeddedPkg/PrePiLib: Correct function prototype
Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
2023-04-02 21:33:58 +06:00
vit9696
950de0d6fe MdePkg: Fix uninitialised access in SafeString 2023-04-02 15:50:10 +03:00
Marvin Häuser
b137c5414d MdePkg/BasePeCoffLib2: Read debug directory from the image memory 2023-04-02 00:04:47 +02:00
Marvin Häuser
94af9da84b MdePkg/BasePeCoffLib2: Distinguish between unsupported and corrupted 2023-04-02 00:04:47 +02:00
Marvin Häuser
35731d9829 UefiImageLib: Ensure consistently passing the full buffer size 2023-04-02 00:04:47 +02:00