Page 1 of 1

What is the AP Reset Vector / Recovery Startup AP Data

Posted: Sun Jun 25, 2023 5:32 am
by druckdev
Hi!

I am modifying a PEI firmware volume that contains "Startup AP data" at the end. Which is just a jump instruction to F000:FFD0 in a padding file.
See the relevant code in edk2: https://github.com/tianocore/edk2/blob/ ... Lib.c#L127

Do any of you know more about this and could point me to a specification I could read more about?
I tried to search for this address in the UEFI PI and Intel MP Specifications as well as the Intel 64 and IA-32 Architectures Software Developer’s Manual but was not successful.
And the array is there since the very first commit to edk2's buildtools back in 2007, so I was not able to find any info in the log.

PS: It's my first time here, so please tell me if I disregarded any best-practices or similar!

Re: What is the AP Reset Vector / Recovery Startup AP Data

Posted: Mon Jun 26, 2023 7:59 am
by Octocontrabass
There's nothing special about 0xF000:FFD0, it was arbitrarily chosen because it's convenient to place AP startup code near the reset vector inside the Volume Top File. In fact, EDK2 has several different Volume Top Files, and only one of them actually places code at that address. For example, OVMF places a GUID there and has the AP startup code at 0xF000:FFE0 instead.