576 questions
-2
votes
0
answers
26
views
GPU doesn't load if my monitor is turned off and pc is turned on by WOL [closed]
So i'm bit with a little problem:
PC for AI server, sometimes i need to turn on the pc by wol and the monitor is turned off. The pc turns on fine and the OS loads but after some hours, when i need to ...
2
votes
0
answers
90
views
How I can get proper size of memory?
I wrote uefi app and it get compiled successfully but when I used qemu to test it, I got incorrect numbers amount of memory (256 MB).
definition of EFI_MEMORY_DESCRIPTOR:
///
/// Definition of an EFI ...
2
votes
0
answers
42
views
Accessing Indices Beyond Array Size in Decompiled UEFI BIOS Code
I am stuck analyzing an .efi file (extracted from a UEFI BIOS .exe package). I have commented and renamed most of the parts I am interested in, but I am having some troubles finding the last ...
-2
votes
0
answers
35
views
ISO with Black Lotus(KB5025885) mitigations is not booting [closed]
I downloaded windows server 2022 ADK and created WinPE media after installing all Microsoft Server operating system-21H2 security updates, but I am still unable to boot the ISO on the VM on which I ...
0
votes
0
answers
20
views
How to calculate md5sum in EFI shell
I managed to build edk2 and use the created tftp.efi file to load a file from a remote server in the EFI Shell.
I would also like to compute the md5sum of the file and compare the value to check if ...
0
votes
0
answers
45
views
Exit efi shell in startup.nsh
I have a USB that automatically installs a BIOS version in a PC that has USB priority to boot up.
This is part of my startup.nsh script in the folder USB:/EFI/BOOT/:
if exist fs0:\bios_version then
...
0
votes
0
answers
99
views
My bootloader works on QEMU fine but no on real hardware
The bootloader is one of the hello world projects that i have found that in internet:
https://johv.dk/blog/bare-metal-assembly-tutorial.html
Before that I had tried to write some bootloader with nasm ,...
0
votes
0
answers
35
views
UEFI Application: Unable to fetch the body of Http GET request
I am developing a UEFI application using the EDK2 environment and attempting to perform an HTTP GET request using the UEFI APIs. The event is not getting signaled after the Http->Response call. If ...
1
vote
0
answers
45
views
UEFI Application: UEFI NTFS driver is not loading properly
I'm working on an EFI application to load an NTFS driver (ntfs_x64.efi). When I load the driver from the EFI shell using "load ntfs_x64.efi" command, it works perfectly. However, when I try ...
0
votes
1
answer
57
views
Cant load Udp4Dxe.efi in UEFI Shell when starting OVMF firmware using QEMU
I want to use UEFI's network functionality to test my UNDI driver, but error "Failed to locate EFI_RNG_PROTOCOL: Not Found" occured when loading Udp4Dxe.EFI in UEFI Shell using “load ...
0
votes
1
answer
47
views
Failing to build Lua for EFI environment (EDK2)
I am trying to build Lua for EDK2 but it fails with the following error.
/home/dave/dev/edk2libc/edk2-libc/AppPkg/Applications/Lua/src/ldo.c: In function ‘luaD_throw’:
/home/dave/dev/edk2libc/edk2-...
0
votes
0
answers
25
views
Why does the state of the modified stack pointer of my test program differ from the behavior in Linux in posix uefi?
I made a small test program to demonstrate:
#ifdef UEFI
#include "uefi/uefi.h"
#else
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#endif
register void* rsp ...
1
vote
1
answer
96
views
Are UEFI runtime service functions always executed in SMM mode for x86?
For an OS to execute UEFI firmware provided functions, the most common ways is via SMM handlers which is entered by triggering SMI (System Manamagement Interrupt) that leads to running SMM hanlders ...
1
vote
0
answers
97
views
C++/C kernel mode api/code for usermode app
Before describing the question itself, I will describe the essence of my project to make it easier for you to understand I have
how to add kernel api/code to user mode app
my application has these ...
0
votes
1
answer
126
views
Is EFI Simple Filesystem protocol always available in UEFI?
In my UEFI Application, I am using the EFI Simple Filesystem protocol to read and create files in the ESP partition.
My question is, is this protocol always available? Meaning can I assume this ...
1
vote
0
answers
85
views
What is the most stable approach for communication between UEFI Runtime Driver and Windows Kernel Driver?
In my UEFI runtime driver, I want to set some flags (UINT) based on some conditions, and then I want to read these in my windows kernel mode driver.
I cannot use the gRT->SetVariable, because the ...
0
votes
0
answers
19
views
How to solve problem with linking object fies with lld-link?
I have problem with linking data.o (data.c file from gnu efi) and main.o. Im using clang for compiling, lld-ink for linking and gnu-efi as developer envoirenment for uefi.
main.c:
#include <efi.h&...
1
vote
0
answers
71
views
UEFI Application hangs when calling SystemTable functions
lately i have been trying to develop my own "operating system" along with a fairly basic UEFI Bootloader.
I have been following the GNU-EFI guide on OSDev and apparently i have been running ...
0
votes
0
answers
47
views
Is there a set of documents that contain only the necessary definitions needed to implement UEFI?
I have been reading through the UEFI 2.6 specification, and have noticed that it does not give a complete list of definitions need to implement UEFI. Rather, the definitions are scattered across ...
1
vote
0
answers
28
views
OpenProtocol returns NULL despite the protocol being returned by ProtocolsPerHandle
I am stuck, and as far as I can see the code is fine.
I get the protocols here
EFI_HANDLE* current_handle = &handle_buffer[current_page];
status = gBS->ProtocolsPerHandle(
*current_handle,
...
0
votes
0
answers
69
views
Unable to make KeyTool in efitools: efi.h not included even though its included in makefile
When running sudo make KeyTool in efitools, an error appears even though they are all included:
bebo@DESKTOP-0PMMN4K:/usr/efitools$ sudo make KeyTool
cc -O2 -g -fpic -Wall -fshort-wchar -fno-strict-...
1
vote
1
answer
64
views
Memory doesn't seem identity mapped (x86_64 UEFI)
I'm writing a small UEFI x86_64 os. After getting a memory map and exiting boot services, I print the memory map and notice that all entries map a certain physical address to the virtual address 0. ...
0
votes
0
answers
60
views
Is it safe to access a raw pointer non atomically, while that pointer is also stored in an atomicptr?
I have a pointer to the UEFI system table, and I am using it in multiple places. The pointer is put into an AtomicPtr, but is also used as a raw pointer after putting it in that AtomicPtr.
main.rs:
#[...
1
vote
0
answers
29
views
"Objcopy: error: the input file '*.dll' is empty" when running the edk2 build script in linux
I've been trying to build the edk2 from source in a Kali 2023.3 VM, followed every step from the linux guide, but I got a few error messages just like the one in the title for some files like "...
0
votes
0
answers
51
views
Setting Endorsement Primary Seed fails
I am trying to set the EPS in an EDK2 UEFI Application. I always get "Device Error".
int main(int ArgC, char *ArgV[])
{
TPMS_AUTH_COMMAND AuthSession;
AuthSession.sessionHandle = ...
0
votes
1
answer
111
views
Alder Lake N - UEFI GPIO Register Defaults/Initialisation
I purchased an obscure NAS only sold to the Chinese domestic market (Zspace Z4Pro) with a view to using another OS on it since it was intel based (i3-N305)
For reasons unknown the power to the drive ...
1
vote
0
answers
52
views
EFI application - LoadImage fails with EFI_NOT_FOUND for mtftp downloaded file
I'm using EDK2 and C for this application. I'm doing PXE over IPv6. I have a UEFI application that downloads the file "bootmgfw.efi" which is the Windows EFI boot loader. I don't call mtftp()...
0
votes
0
answers
40
views
Writing to memory in Windows with DXE_RUNTIME_DRIVER gives bluescreen
I want to make a DXE_RUNTIME_DRIVER with EDK2 that hooks gRT->SetVariable so I can write stuff to memory by setting NVRAM variables through Windows (NtSetSystemEnvironmentValueEx). It always gives ...
0
votes
1
answer
54
views
How to tell what kind of event a SCI represents?
I am trying to understand the ACPI event programming model.
According to the ACPI 6.5 spec, SCI (System Control Interrupt) will be raised for two kinds of events: fixed event and general-purpose event....
0
votes
1
answer
240
views
UEFI Shell Is Unresponsive
I'm emulating an OS on QEMU with Arm64 architecture. I'm trying to add UEFI firmware to the emulation. To do this, I added these lines to my QEMU command:
-drive if=pflash,format=raw,unit=0,file=...
0
votes
0
answers
37
views
UEFI Read USB Port Count
I am writing a UEFI program that needs to read the actual number of USB ports. How should I do it? I have used GetCapability, but it reads extra USB ports.
My goal is to write a function that can ...
1
vote
0
answers
69
views
How to use .asm in EDK2?
I am trying to use assembly in EDK2. I build an X64 driver so I can't use inline assembly but I always get an error while trying to compile.
I am using a HeciTool.asm that only returns a 0:
section ....
0
votes
0
answers
122
views
EFI Boot, occur error message: Command Error Status: Not Found
(Emulex or Qlogic HBA) In legacy mode, the command can be executed to start, but in uefi mode, the command cannot be executed. But my OS boot mode is efi, I don't know why.
legacy:
enter image ...
1
vote
2
answers
109
views
How does the ms_abi pass between c and assembely
I am working on an OS using EFI using the ms_abi and was wondering how does it pass arguments because I am moving some systemtable info into a register but when I try to call a function using the ...
0
votes
0
answers
50
views
Why my UEFI capsule update code stuck on QEMU UEFI?
This is my Pascal code for UEFI capsule update:
procedure efi_update_firmware(systemTable:Pefi_system_table);cdecl;[public,alias:'EFI_UPDATE_FIRMWARE'];
var ch:array[1..3] of efi_capsule_header;
...
0
votes
1
answer
177
views
Build failure EDK2
I get:
d:\edk2\SetVariablePkg\SetVariablePkg.dsc(...): error 4000: Instance of library class [OpensslLib] is not found
in [d:\edk2\CryptoPkg\Library\BaseCryptLib\BaseCryptLib.inf] [X64]
...
0
votes
0
answers
36
views
Have anyone know the base position of EFI_DISK_IO_PROTOCOL will change in process when using WriteDisk or ReadDisk?
I am using free pascal to format the virtual hard disk (my base hard disk have maximum 4GiB),but when I execute the uefi app and after that I discovered my hard disk is not formatted in GPT format and ...
1
vote
0
answers
458
views
Have anyone know how to format the hard disk using uefi?
I have encountered a problem that I want my uefi system installed in the hard disk so I want to format the hard disk in GPT format using uefi.However,I cannot read the content of the file using uefi ...
0
votes
0
answers
48
views
How to enable the UEFI File system by programming codes when the LocateProtocol returns efi_not_found?
I met an error when coding in UEFI (LocateProtocol returns efi_not_found(according to UEFI specificiations) and I don't know why)and there is the my pascal code:
These are my codes of UEFI,it is too ...
0
votes
0
answers
56
views
Can't get nanoseconds with get_time function in uefi-rs
I wanted to check how long it takes to draw a frame with my function but I cant seem to get an accurate enough time to calculate how long it took. The uefi-rs docs says there is a function on the Time ...
0
votes
0
answers
102
views
UEFI Application prints only last character of read file
I wrote a UEFI Application in EDK2 to read a file "HelloWorld.txt" in the root directory to the buffer and print it.It only prints the last character from the text file. What did I do wrong? ...
2
votes
1
answer
306
views
Can I enable Secure Boot from within an EDKII EFI application?
I want to write the keys (PK, KEK, DB) to enable secure boot, and then enable Secure Boot from within an EFI application.
I can successfully read those variables, and I can also write to the PK, KEK, ...
0
votes
0
answers
73
views
Run EFI application EDK2
How would I make my UEFI application made with EDK2 execute another .efi in a certain folder path? Let's say my .efi is in fs1:\test1\ and the .efi it should execute is in fs1:\test2?
0
votes
1
answer
159
views
UEFI application doesn't read user input
I was trying to make a simple application using EDK2 that reads the user input and prints it out, but it doesn't work.
That's my source:
#include "UserInput.h"
EFI_STATUS EFIAPI UefiMain(IN ...
0
votes
0
answers
169
views
UEFI driver doesn't show "Hello World" in EFI Shell on boot
I made this UEFI driver with EDK2. It prints "Hello, World!" and pauses the Shell for 60 seconds. When I load the driver in EFI Shell manually it works perfectly. I then proceeded to pack ...
0
votes
2
answers
103
views
Passing 'unsigned short[8]' to parameter of type 'CHAR16 *' (aka 'short *') converts between pointers to integer types with different sign
I have the following code:
//#include "stdint.h"
#include "uefi.h"
//#include "efi_libs.h"
void PrintLn(CHAR16* String, EFI_SYSTEM_TABLE* _SystemTable);
void Print(...
0
votes
0
answers
116
views
UEFI Event Logs
I am unable to get the event logs in UEFI mode tried in different ways like from BIOS settings of the Intel NUC board and tried using the UEFI application but failed to collect UEFI event logs
also ...
0
votes
0
answers
58
views
Patching UEFI Pei module problems with addresses
I want to patch some UEFI PEI module of an older BIOS and I encountered some problem.
hex edit and insert one function from other BIOS
Now I need to fix some offsets.
These addresses are from .data ...
0
votes
0
answers
61
views
Can DUET be run on a computer already has UEFI?
Can DUET and programs based on it—such as OpenCore and Clover—be run on a UEFI-only computer? For instance, let's say that a particular PC has UEFI but not secure boot and they wish to test out secure ...
0
votes
0
answers
149
views
Syslinux EFI 64bit: start_image() returned Load Error
The syslinux binaries provided by debian are working well with qemu.
But I have compiled syslinux from Debian 12 source code. And when I run it with qemu, it fails saying start_image() returned Load ...