the following patch was just integrated into master:
commit 9716e822a4a7442dcb781aa9b2fda2a35b1d531f
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Wed Nov 23 16:33:12 2011 +0200
Fix ldscript for bootblock .rom section
Allocation size for the section was miscalculated, so the section
did not honour its upper-bound address.
Also align the section start to 4 bytes, so it starts with code
instead of pad bytes.
Change-Id: Ic2a43981836a0873b50abecfcad2def7b6586a5d
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Reviewed-By: Patrick Georgi <patrick(a)georgi-clan.de> at Thu Dec 8 10:42:39 2011, giving +2
See http://review.coreboot.org/453 for details.
-gerrit
Alec Ari (neotheuser(a)ymail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/474
-gerrit
commit b434f9ccda0c7756586ddb4a6acc22d598a071e9
Author: Alec Ari <neotheuser(a)ymail.com>
Date: Wed Dec 7 01:50:52 2011 -0600
Change DSDT Table ID for M4A785T-M board
Change the DSDT Table ID for M4A785T-M
from M4A785-M to M4A785T-M.
This fixes a small copypasta.
Change-Id: I43ee024222cf04d03685ffaee616971100cc9e6c
Signed-off-by: Alec Ari <neotheuser(a)ymail.com>
---
src/mainboard/asus/m4a785t-m/dsdt.asl | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/mainboard/asus/m4a785t-m/dsdt.asl b/src/mainboard/asus/m4a785t-m/dsdt.asl
index 34ddd3a..0f06084 100644
--- a/src/mainboard/asus/m4a785t-m/dsdt.asl
+++ b/src/mainboard/asus/m4a785t-m/dsdt.asl
@@ -23,7 +23,7 @@ DefinitionBlock (
"DSDT", /* Signature */
0x02, /* DSDT Revision, needs to be 2 for 64bit */
"ASUS ", /* OEMID */
- "M4A785-M ", /* TABLE ID */
+ "M4A785T-M ", /* TABLE ID */
0x00010001 /* OEM Revision */
)
{ /* Start of ASL file */
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/453
-gerrit
commit 9716e822a4a7442dcb781aa9b2fda2a35b1d531f
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Wed Nov 23 16:33:12 2011 +0200
Fix ldscript for bootblock .rom section
Allocation size for the section was miscalculated, so the section
did not honour its upper-bound address.
Also align the section start to 4 bytes, so it starts with code
instead of pad bytes.
Change-Id: Ic2a43981836a0873b50abecfcad2def7b6586a5d
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/x86/init/ldscript_failover.lb | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/src/arch/x86/init/ldscript_failover.lb b/src/arch/x86/init/ldscript_failover.lb
index 7e48dc1..83e5eb3 100644
--- a/src/arch/x86/init/ldscript_failover.lb
+++ b/src/arch/x86/init/ldscript_failover.lb
@@ -29,6 +29,14 @@ MEMORY {
TARGET(binary)
SECTIONS
{
+ /* Align .rom to next 4 byte boundary so no pad byte appears
+ * between _rom and _start.
+ */
+ .bogus ROMLOC_MIN : {
+ . = ALIGN(4);
+ ROMLOC = .;
+ } >rom = 0xff
+
/* This section might be better named .setup */
.rom ROMLOC : {
_rom = .;
@@ -39,7 +47,11 @@ SECTIONS
_erom = .;
} >rom = 0xff
- ROMLOC = 0xffffff00 - (_erom - _rom) + 1;
+ /* Allocation reserves extra 16 bytes here. Alignment requirements
+ * may cause the total size of a section to change when the start
+ * address gets applied.
+ */
+ ROMLOC_MIN = 0xffffff00 - (_erom - _rom + 16);
/DISCARD/ : {
*(.comment)
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/454
-gerrit
commit 166bbb0ae0b1b378b1a10b87c586f4bf4c007cfa
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Tue Dec 6 15:53:38 2011 +0200
Add support for RAM-less multi-processor init
For a hyper-threading processor, enabling cache requires that both the
BSP and AP CPU clear CR0.CD (Cache Disable) bit. For a Cache-As-Ram
implementation, partial multi-processor initialisation precedes
raminit and AP CPUs' 16bit entry must be run from ROM.
The AP CPU can only start execute real-mode code at a 4kB aligned
address below 1MB. The protected mode entry code for AP is identical
with the BSP code, which is already located at the top of bootblock.
This patch takes the simplest approach and aligns the bootblock
16 bit entry at highest possible 4kB boundary below 1MB.
Change-Id: I82e4edbf208c9ba863f51a64e50cd92871c528ef
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/x86/init/ldscript_failover.lb | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/arch/x86/init/ldscript_failover.lb b/src/arch/x86/init/ldscript_failover.lb
index 83e5eb3..5340c0f 100644
--- a/src/arch/x86/init/ldscript_failover.lb
+++ b/src/arch/x86/init/ldscript_failover.lb
@@ -29,17 +29,18 @@ MEMORY {
TARGET(binary)
SECTIONS
{
- /* Align .rom to next 4 byte boundary so no pad byte appears
- * between _rom and _start.
+ /* Symbol ap_sipi_vector must be aligned to 4kB to start AP CPUs
+ * with Startup IPI message without RAM.
*/
.bogus ROMLOC_MIN : {
- . = ALIGN(4);
+ . = ALIGN(4096);
ROMLOC = .;
} >rom = 0xff
/* This section might be better named .setup */
.rom ROMLOC : {
_rom = .;
+ ap_sipi_vector = .;
*(.rom.text);
*(.rom.data);
*(.rom.data.*);
@@ -51,7 +52,7 @@ SECTIONS
* may cause the total size of a section to change when the start
* address gets applied.
*/
- ROMLOC_MIN = 0xffffff00 - (_erom - _rom + 16);
+ ROMLOC_MIN = 0xffffff00 - (_erom - _rom + 16) - 4096;
/DISCARD/ : {
*(.comment)
the following patch was just integrated into master:
commit cb4b9445f0cfa3089357b4ae7393352e962ddc31
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Sat Dec 3 11:30:26 2011 +0200
Fix AMD 8132 and 8151 southbridge builds
Untested, changes ramstage build for boards:
supermicro/h8qme_fam10
amd/serengeti_cheetah
amd/serengeti_cheetah_fam10
AMD 8132 was not built for any mainboard due to a typo.
AMD Serengeti Cheetah:
Chip 8151 is referenced in devicetree.cb but was not built.
AMD Serengeti Cheetah Family10:
There are indications the board has 8151, but it is not listed
in the devicetree.cb. The 8151 chip is not added in the build.
Change-Id: I03acdfcc3f3440bd32e81a9a696159903bbbcb50
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Build-Tested: build bot (Jenkins) at Sat Dec 3 10:44:09 2011, giving +1
Reviewed-By: Marc Jones <marcj303(a)gmail.com> at Tue Dec 6 06:20:26 2011, giving +2
See http://review.coreboot.org/471 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/446
-gerrit
commit c5ffb4f0fcb1bf57a6376234ecf411678080569c
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Mon Dec 5 20:17:17 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.
AP CPUs should always select the same romstage prefix as BSP CPU.
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..f8ae13b 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 {
- unsigned long entry;
- if (do_normal_boot())
+ /* Questionable single byte read from CMOS.
+ * Do not add any other CMOS access in the
+ * bootblock for AP CPUs.
+ */
+ boot_mode = last_boot_normal();
+ }
+
+ 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;