On Fri, May 4, 2018 at 11:16 AM, Kyösti Mälkki kyosti.malkki@gmail.com wrote:
On Fri, May 4, 2018 at 7:19 PM, Kyösti Mälkki kyosti.malkki@gmail.com wrote:
On Fri, May 4, 2018 at 6:37 PM, Aaron Durbin adurbin@google.com wrote:
Any idea what can be result of such weird behavior?
My current guess is AP CPUs do not see initialised memory for _car_region_start .. _end. That region is set up using fixed MTRRs in low memory and probably not synced between cores so early in romstage.
Ugh. Why do we allow the APs to run through all these stages? Is this for parallel node memory training? Can we ring fence where the APs actually run better?
diff --git a/src/console/init.c b/src/console/init.c index 8f71b09..4731e7e 100644 --- a/src/console/init.c +++ b/src/console/init.c @@ -35,7 +35,7 @@ static int console_loglevel = CONFIG_DEFAULT_CONSOLE_LOGLEVEL;
static inline int get_log_level(void) {
if (car_get_var(console_inited) == 0)
if (boot_cpu() && car_get_var(console_inited) == 0) return -1; if (CONSOLE_LEVEL_CONST) return get_console_loglevel();
Kyösti