139 Commits

Author SHA1 Message Date
Mikhail Krichanov
31fef0a12e Core/Dxe: Added sanity checks. 2025-01-27 19:27:01 +03:00
Mikhail Krichanov
2cd1b35113 Core/Dxe: Placed platform dependent code into separate files. 2025-01-27 18:51:13 +03:00
Mikhail Krichanov
e358acb6d9 Core/Dxe: Added sanity checks. 2025-01-27 15:37:19 +03:00
Mikhail Krichanov
dd71687e44 SysCall: Refactored UserStackTop to allocate it anew for each CallRing3. 2025-01-24 18:44:34 +03:00
Mikhail Krichanov
734748e862 SysCall: Added NumberOfCalls to USER_SPACE_DRIVER. 2025-01-24 11:50:46 +03:00
Mikhail Krichanov
23b53c960d Ring3: Refactored out SysCallStackTop. 2025-01-21 23:07:38 +03:00
Mikhail Krichanov
cd65706178 Ring3: Refactored out CoreRsp and UserStackTop. 2025-01-16 15:43:34 +03:00
Mikhail Krichanov
befe005612 Ring3: Refactored out gCoreSysCallStackTop and gRing3CallStackTop. 2025-01-13 13:27:58 +03:00
Mikhail Krichanov
90ecffbc25 Ring3: Refactored User and SysCall stacks allocation. 2025-01-10 17:51:23 +03:00
Mikhail Krichanov
ce3bfc7754 SysCall: Refactored Core wrappers to allow support for multiple User space drivers. 2025-01-09 15:42:04 +03:00
Mikhail Krichanov
285c6b0de9 Ring3: Split Page Table template construction and initialization,
removed ChangeUefiImageRing(), added GetUefiImageRecord().
2024-11-27 13:51:07 +03:00
Mikhail Krichanov
3b8cd407d3 Ring3: Added support for separate User address space. 2024-11-26 19:12:15 +03:00
Mikhail Krichanov
5db269aab4 Ring3: Added support for USER attribute in .fdf files. 2024-10-25 12:02:51 +03:00
Mikhail Krichanov
7e372019d2 MdeModulePkg: Fixed MdeModulePkg compilation. 2024-09-03 13:19:16 +03:00
Mikhail Krichanov
ca144b0173 Ring3: Moved InitializeRing3() to SysCall directory. 2024-09-03 13:19:16 +03:00
Mikhail Krichanov
996bc3c55f Ring3: Added SysCallGetVariable wrapper. 2024-09-03 13:19:15 +03:00
Mikhail Krichanov
38e92b2072 Ring3: Refactored exception handling. 2024-09-03 13:19:15 +03:00
Mikhail Krichanov
5b281e2c16 Ring3: Forbade Ring3 accsess to all ports but for UART
to allow DEBUG printing.
2024-09-03 13:19:15 +03:00
Mikhail Krichanov
d4f5ae14aa Ring3: Refactored out AllocateRing3Copy(). 2024-09-03 13:19:14 +03:00
Mikhail Krichanov
94017d9567 Ring3: Added PrepareRing3Interface(). 2024-09-03 13:19:14 +03:00
Mikhail Krichanov
d19bee4d2d Ring3: Some refactoring. 2024-09-03 13:10:47 +03:00
Mikhail Krichanov
77bb186c8a Ring3: Refactored AllocateRing3CopyPages() and mUserDriverBinding. 2024-09-03 13:10:47 +03:00
Mikhail Krichanov
fa60f3ab00 Ring3: Refactored CallRing3(). 2024-09-03 13:10:47 +03:00
Mikhail Krichanov
fe43687460 Ring3: Refactored Ring3 initialization. 2024-09-03 13:10:46 +03:00
Mikhail Krichanov
ed1ee15c9c Ring3: Moved Ring3UefiBootServicesTableLib to Ring3Dxe. 2024-09-03 13:10:46 +03:00
Mikhail Krichanov
e5f7eb7654 Ring3: Refactored EnterUserImage() into CallRing3(). 2024-09-03 13:10:46 +03:00
Mikhail Krichanov
313cf0bfae Ring3: Added Ring3EntryPoint draft. 2024-09-03 13:10:46 +03:00
Mikhail Krichanov
e4eb762d22 Ring3: Refactored out AllocateRing3Pages() BootService. 2024-09-03 13:10:45 +03:00
Mikhail Krichanov
32e8bcbb62 Ring3: Moved SysCall code to DxeCore. 2024-09-03 13:10:45 +03:00
Mikhail Krichanov
87a397740d Ring3: Added helper function AllocateRing3Pages() and
draft of Ring3LocateProtocol().
2024-09-03 13:10:45 +03:00
Mikhail Krichanov
633521d91f Ring3: Fixed bug in calling Boot Service and did some refactoring. 2024-09-03 13:10:45 +03:00
Mikhail Krichanov
b5d0912201 Ring3: Added CoreSysCallStack. 2024-09-03 13:10:45 +03:00
Mikhail Krichanov
6502e73b0d Ring3: Added SYSCALL draft. 2024-09-03 13:10:45 +03:00
Mikhail Krichanov
233a5cff09 Ring3: Fixed LibraryConstructors' initialization and
allowed user to access ports.
2024-09-03 13:10:44 +03:00
Mikhail Krichanov
1112ad7822 Ring3: Added EnterUserImage(). 2024-09-03 13:10:44 +03:00
Mikhail Krichanov
db50e4edf1 Ring3: Added GetMemoryAttributes() into EFI_CPU_ARCH_PROTOCOL. 2024-09-03 13:10:44 +03:00
Mikhail Krichanov
f2a28c5a55 Ring3: Added IsUserImage field into LOADED_IMAGE_PRIVATE_DATA structure. 2024-09-03 13:10:44 +03:00
Mikhail Krichanov
8c069a27e5 Ring3: Added EFI_MEMORY_USER attribute. 2024-09-03 13:10:42 +03:00
Mikhail Krichanov
46050fc0fc SecurePE: Defined new PcdImageProtectionPolicy. 2024-07-22 13:49:00 +03:00
Mikhail Krichanov
21327695a0 UE: Support UE generation and consumption. 2024-07-22 13:49:00 +03:00
Mikhail Krichanov
028bb3e2c7 MdePkg/UefiImageLib: Introduce DebugAddress
Signed-off-by: Marvin Häuser <mhaeuser@posteo.de>
2024-07-22 13:49:00 +03:00
Mikhail Krichanov
5a8fe7214e MdePkg/UefiImageLib: Support multi-format and multi-source architecture
Signed-off-by: Marvin Häuser <mhaeuser@posteo.de>
2024-07-22 13:49:00 +03:00
Marvin Häuser
c01eab36cb MdeModulePkg/DxeCore: Re-use ImageIsFromFv for memory protection 2024-07-22 13:49:00 +03:00
Mikhail Krichanov
7886691a93 Revert "MdeModulePkg: Enable forward edge CFI in mem attributes table"
This reverts commit e4ef609319236a018c60b84f68d9d923c4ba383e.
2024-07-22 13:47:18 +03:00
Mikhail Krichanov
769c333a61 MdeModulePkg/Core/Dxe: Integrate CPU Architectural producer
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3223

In the current design, memory protection is not available till CpuDxe
is loaded. To resolve this, introduce CpuArchLib to move the
CPU Architectural initialization to DxeCore.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Vitaly Cheptsov <vit9696@protonmail.com>
Signed-off-by: Marvin Häuser <mhaeuser@posteo.de>
2024-07-22 13:47:18 +03:00
Marvin Häuser
086e621cc2 EmulatorPkg: Fix some image loader related issues 2024-07-22 13:47:18 +03:00
Mikhail Krichanov
a955e8811b SecurePE: Replaced old PE loader with Secure one. 2024-07-22 13:42:14 +03:00
Dongyan Qian
a3aab12c34 MdeModulePkg: Dxe: add LOONGARCH64 to mMachineTypeInfo
This fixes messages like:
"Image type X64 can't be loaded on <Unknown> UEFI system"

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Chao Li <lichao@loongson.cn>
Signed-off-by: Dongyan Qian <qiandongyan@loongson.cn>
Reviewed-by: Chao Li <lichao@loongson.cn>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2024-02-02 01:52:58 +00:00
Michael D Kinney
c5e702e45a MdeModulePkg/Core/Dxe: Initialize GCD before RT memory allocations
Update the DxeMain initialization order to initialize GCD
services before any runtime allocations are performed.  This
is required to prevent runtime data fragmentation when the
UEFI System Table and UEFI Runtime Service Table are allocated
before both the memory and GCD services are initialized.

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Aaron Li <aaron.li@intel.com>
Cc: Liu Yun <yun.y.liu@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2024-01-30 18:30:02 +00:00
Jeff Brasen
aa8431822b MdeModulePkg/DxeCore: Allow relocation of images with large address
Add PCD to control if modules with start addresses in PE/COFF > 0x100000
attempt to load at specified address.
If a module has an address in this range and there is untested memory
DxeCore will attempt to promote all memory to tested which bypasses any
memory testing that would occur later in boot.

There are several existing AARCH64 option roms that have base addresses
of 0x180000000.

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Ashish Singhal <ashishsingha@nvidia.com>
Message-Id: <bd36c9c24158590db2226ede05cb8c2f50c93a37.1684194452.git.jbrasen@nvidia.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2023-10-31 14:40:50 +00:00