[coreboot] AGESA: RunLateApTaskOnAllAPs(..) function and ProbeFilter

Paul Menzel paulepanter at users.sourceforge.net
Fri Mar 8 11:34:03 CET 2013


Am Donnerstag, den 07.03.2013, 20:53 +0400 schrieb Аладышев Константин:
> AGESA code have two mechanisms to run tasks on AP cores. The first one
> is used before "Relinquish control of APs", and the second one is used
> after it.
>
> I doubt in the second one, cause it is used only in probe filter
> initialization (and now OS can't boot with this feature)
>
> I walked "RunLateApTaskOnAllAPs(..)" function [the second mechanism]
> step by step and didn't find of how system transmits task poinetrs to
> APs. It seems like code executes on BSC (boot strap core) as many
> times as APs present in system.
>
> AGESA code is very complicated, we traveles a lot to final function,
> that is located in the same file. If someone look at code, I drew
> little scheme of this travel. 
> Here it is: http://tinypic.com/r/25sx7p3/6 
> Maybe i'am missing something, but I can't see the point, where agesa
> transmits pointers to APs.
>
> Also i put LibAmdMsrRead function in DisableAllCaches function and
> read MSRs containing NodeId and BSC bits. And for all cases of its
> execution DisableAllCaches prints that NodeId=0 and BSC=1. If i didn't
> mess up, it proves my theory above.
>
> So... How does "RunLateApTaskOnAllAPs(..)" work?

In the #coreboot IRC channel, Aladyshev pointed out that coreboot uses
AGESA version 1.2 and the proprietary vendor BIOS of his Supermicro
boards uses AGESA version 1.5. So it might be a good idea to check the
changes between these versions.


Thanks,

Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20130308/4ce9d4d2/attachment.sig>


More information about the coreboot mailing list