the following patch was just integrated into master:
commit 13953087baa0032722a55216e02ddb568e3821a0
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Tue Nov 22 19:44:45 2011 +0200
Bootblock does not need a unique boot_cpu()
Detection of a CPU being a BSP CPU is not dependent of the existence
of northbridge and/or southbridge init code in the bootblock.
Even if CONFIG_LOGICAL_CPUS==0, boot_cpu() can get executed on an AP
CPU of a hyper-threading CPU and needs to return actual BSP bit from
MSR.
Change-Id: I9187f954bb357ba1dbd459cfe11cc96cb7567968
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Reviewed-By: Patrick Georgi <patrick(a)georgi-clan.de> at Mon Dec 5 12:20:43 2011, giving +2
See http://review.coreboot.org/447 for details.
-gerrit
the following patch was just integrated into master:
commit 5c8526e3d32afb22644a92aa5abeb1b3a54eab1b
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Sun Nov 27 13:43:16 2011 +0100
RS780: print the vgainfo
With this commit the vgainfo is printed and looks like that on the serial console:
vgainfo:
ulBootUpEngineClock:50000
ulBootUpUMAClock:66700
ulBootUpSidePortClock:0
ulMinSidePortClock:0
ulSystemConfig:0
ulBootUpReqDisplayVector:0
ulOtherDisplayMisc:0
ulDDISlot1Config:0
ulDDISlot2Config:0
ucMemoryType:0
ucUMAChannelNumber:1
ucDockingPinBit:0
ucDockingPinPolarity:0
ulDockingPinCFGInfo:0
ulCPUCapInfo: 2
usNumberOfCyclesInPeriod:0
usMaxNBVoltage:0
usMinNBVoltage:0
usBootUpNBVoltage:0
ulHTLinkFreq:20000
usMinHTLinkWidth:8
usMaxHTLinkWidth:8
usUMASyncStartDelay:100
usUMADataReturnTime:300
usLinkStatusZeroTime:600
ulHighVoltageHTLinkFreq:20000
ulLowVoltageHTLinkFreq:20000
usMaxUpStreamHTLinkWidth:8
usMaxDownStreamHTLinkWidth:8
usMinUpStreamHTLinkWidth:8
usMinDownStreamHTLinkWidth:8
Change-Id: I17c2a13ab52a0f78588f812d4f42f45f9a7b7524
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Reviewed-By: Patrick Georgi <patrick(a)georgi-clan.de> at Mon Dec 5 08:58:42 2011, giving +2
See http://review.coreboot.org/456 for details.
-gerrit
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/447
-gerrit
commit 13953087baa0032722a55216e02ddb568e3821a0
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Tue Nov 22 19:44:45 2011 +0200
Bootblock does not need a unique boot_cpu()
Detection of a CPU being a BSP CPU is not dependent of the existence
of northbridge and/or southbridge init code in the bootblock.
Even if CONFIG_LOGICAL_CPUS==0, boot_cpu() can get executed on an AP
CPU of a hyper-threading CPU and needs to return actual BSP bit from
MSR.
Change-Id: I9187f954bb357ba1dbd459cfe11cc96cb7567968
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/x86/include/bootblock_common.h | 5 -----
src/cpu/x86/lapic/boot_cpu.c | 5 +++++
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/arch/x86/include/bootblock_common.h b/src/arch/x86/include/bootblock_common.h
index 4c4a092..bd19682 100644
--- a/src/arch/x86/include/bootblock_common.h
+++ b/src/arch/x86/include/bootblock_common.h
@@ -1,9 +1,4 @@
-#if CONFIG_LOGICAL_CPUS && \
- (defined(CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT) || defined(CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT))
#include <cpu/x86/lapic/boot_cpu.c>
-#else
-#define boot_cpu(x) 1
-#endif
#ifdef CONFIG_BOOTBLOCK_CPU_INIT
#include CONFIG_BOOTBLOCK_CPU_INIT
diff --git a/src/cpu/x86/lapic/boot_cpu.c b/src/cpu/x86/lapic/boot_cpu.c
index bca73e1..87418d0 100644
--- a/src/cpu/x86/lapic/boot_cpu.c
+++ b/src/cpu/x86/lapic/boot_cpu.c
@@ -1,5 +1,6 @@
#include <cpu/x86/msr.h>
+#if CONFIG_SMP
static int boot_cpu(void)
{
int bsp;
@@ -8,3 +9,7 @@ static int boot_cpu(void)
bsp = !!(msr.lo & (1 << 8));
return bsp;
}
+#else
+#define boot_cpu(x) 1
+#endif
+
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/446
-gerrit
commit fe832132024c6f48b5c0ee4c71f13eb0996c228c
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Tue Nov 22 19:20:22 2011 +0200
Only BSP CPU writes CMOS in bootblock code
CMOS accesses are not safe for multi-processor and only the BSP CPU
should count reboots and test CMOS sanity.
A questionable single byte CMOS read access from AP CPUs remains.
Change-Id: I29118e33c07c0080c94abb90f703e38312c72432
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/x86/init/bootblock_normal.c | 18 ++++++++++++++----
src/arch/x86/init/bootblock_simple.c | 4 ++--
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/arch/x86/init/bootblock_normal.c b/src/arch/x86/init/bootblock_normal.c
index db9d0f9..a0b7b37 100644
--- a/src/arch/x86/init/bootblock_normal.c
+++ b/src/arch/x86/init/bootblock_normal.c
@@ -3,18 +3,28 @@
static void main(unsigned long bist)
{
+ unsigned long entry;
+ int boot_mode;
+
if (boot_cpu()) {
bootblock_northbridge_init();
bootblock_southbridge_init();
bootblock_cpu_init();
- }
#if CONFIG_USE_OPTION_TABLE
- sanitize_cmos();
+ sanitize_cmos();
#endif
+ boot_mode = do_normal_boot();
+ } else {
+
+ /* Questionable single byte read from CMOS.
+ * Do not add any other CMOS access in the
+ * bootblock for AP CPUs.
+ */
+ boot_mode = last_boot_normal();
+ }
- unsigned long entry;
- if (do_normal_boot())
+ if (boot_mode)
entry = findstage("normal/romstage");
else
entry = findstage("fallback/romstage");
diff --git a/src/arch/x86/init/bootblock_simple.c b/src/arch/x86/init/bootblock_simple.c
index 5d7c611..41f73b4 100644
--- a/src/arch/x86/init/bootblock_simple.c
+++ b/src/arch/x86/init/bootblock_simple.c
@@ -6,11 +6,11 @@ static void main(unsigned long bist)
bootblock_northbridge_init();
bootblock_southbridge_init();
bootblock_cpu_init();
- }
#if CONFIG_USE_OPTION_TABLE
- sanitize_cmos();
+ sanitize_cmos();
#endif
+ }
const char* target1 = "fallback/romstage";
unsigned long entry;
Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/444
-gerrit
commit cfcf2d38858078e74ff6d0e34323f1da71a0fe1f
Author: Patrick Georgi <patrick.georgi(a)secunet.com>
Date: Tue Nov 22 10:52:43 2011 +0100
i82801gx: Support power-on-after-power-fail better
Changing CMOS value for power-on-after-power-fail was only honored
after reboot, which is counter intuitive (set from "enable" to "disable",
power-off, replug device -> device turns on; and similar cases).
Change-Id: If1d88c1c34c3333b636ed3ec1e1fb9bea394e615
Signed-off-by: Patrick Georgi <patrick.georgi(a)secunet.com>
---
src/southbridge/intel/i82801gx/smihandler.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/southbridge/intel/i82801gx/smihandler.c b/src/southbridge/intel/i82801gx/smihandler.c
index 5cc25e7..401c9ad 100644
--- a/src/southbridge/intel/i82801gx/smihandler.c
+++ b/src/southbridge/intel/i82801gx/smihandler.c
@@ -316,16 +316,16 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat
outl(0, pmbase + GPE0_EN);
- /* Should we keep the power state after a power loss?
- * In case the setting is "ON" or "OFF" we don't have
- * to do anything. But if it's "KEEP" we have to switch
- * to "OFF" before entering S5.
+ /* Always set the flag in case CMOS was changed on runtime. For
+ * "KEEP", switch to "OFF" - KEEP is software emulated
*/
- if (s5pwr == MAINBOARD_POWER_KEEP) {
- reg8 = pcie_read_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3);
+ reg8 = pcie_read_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3);
+ if (s5pwr == MAINBOARD_POWER_ON) {
+ reg8 &= ~1;
+ } else {
reg8 |= 1;
- pcie_write_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3, reg8);
}
+ pcie_write_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3, reg8);
/* also iterates over all bridges on bus 0 */
busmaster_disable_on_bus(0);