[coreboot] AGESA: RunLateApTaskOnAllAPs(..) function and ProbeFilter
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 198 bytes
Desc: This is a digitally signed message part
More information about the coreboot