Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set dxe drivers loading sequence?

Tags:

uefi

edk2

As far as i know DXE dispatcher first loads the driver that specifed in Apriori file. Then loads other considering dependencies. I want to load utility either before AMITSE or after. If after AMITSE then the idea was CreateEvent(EVT_SIGNAL_EXIT_BOOT_SERVICES, ..., MAINFCN,...), but in MAINFCN i can't process other events. Maybe a better stategy would be to load an UEFI_APPLICATION when received EVT_SIGNAL_EXIT_BOOT_SERVICES?

The main problem that i want to solve is execution driver between AMITSE screens (invite to press keys to enter setup and setup screen).

So i tried:

  1. Put driver in different location in volume - didn't solve problem (driver loads after AMITSE invite screen).
  2. Put TRUE in [depex] section - driver didn't loaded at all.
  3. CreateEvent(..) - can't process other events (to catch keypress).

Didn't tried:

  1. Driver that would raise a event to load an app before exeting boot services.

Maybe there are easier ways?

like image 993
away228 Avatar asked Aug 01 '26 01:08

away228


1 Answers

Solved by writing driver that suggest to run an app.

Idea to create event and catching EVT_SIGNAL_EXIT_BOOT_SERVICES wouldn't work because after this [actually after ExitBootServices()] event several fields of the EFI System Table should be set to NULL. These include ConsoleInHandle, ConIn, ConsoleOutHandle, ConOut, StandardErrorHandle, StdErr, and BootServicesTable. [UEFI Specification, Version 2.8 page 218-219]

like image 179
away228 Avatar answered Aug 04 '26 13:08

away228