PEI dependency section

I’m using UEFItool to snoop around a bios, and am trying to figure its guts;
I understand the basic structure, but I ran across a section I’d need some clarification

when I open some pei modules, in its “dependency section” I see something like this:




I’m interested what does the “PUSH [GUID]” do and does it mean that those GUIDs are getting called, sent to memory, or were meant to be called before the current module?

Another thing I’ve noticed is that they are most of the time not a part of the UEFI structure - I cant find them with regular methods, so are they “embeded” somewhere within other modules, or are they just missing?

I’ve noticed that multiple modules “Push” the same GUID; so I suspect its either a library, or other data structure that multiple modules are refering to. But the part where I cant find those modules is confusing me. Or is it just a function within one of the modules. If yes, how do I track which one?
P.S. I’m just an enthusiast, so sorry if I use improper terms.

Those GUIDs aren’t PEI module GUIDs, but PPI GUIDs. Please read volume 1 of UEFI PI spec: https://www.uefi.org/sites/default/files…PI_Spec_1_6.pdf
Tracking those is fairly difficult because they are published by the code and you need a mass-disassembly engine to get them. UEFITool has an issue about it: https://github.com/LongSoft/UEFITool/issues/44

i will. Thank you for a swift reply. I’m an amateur, so pardon me if I make stupid posts. Will try to constrain them to this thread.

It’s completely fine to be an amateur, no need to be sorry about anything.
Your question isn’t stupid, and this DEPEX thing may indeed be confusing because GUIDs are used for everything in EFI, and sometimes IBVs do reuse them for modules and PPI (it’s discouraged, but people still do that because they can).

ty for answer again. My goal is to try to get epyc/treadripper cpus to work on each others boards. I’ll be getting an 2nd hand epyc soon, so tought I’ll play with it.
I see you have quite a reputation on this forum; So I’m interested to know if its in the realm of possible, or am I just wasting my time?
I’ve gone through several epyc and TR bioses, and have seen “derBauer” get the cpu to partially PEI, so I thought I might try to get it to PEI completely, and work from there
from what I’ve seen using UEFITool is that both bioses use almost exact same modules, but they vary in size. So I figured I’d just swap em out. even better procedure would be to see which modules got updated when the latest 29xx TR series got released, and patch those with Epyc.