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/3969
-gerrit
commit b1581cd573ed4efb840e80557e4cfd5c7f3d3c43
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Sat Oct 12 00:22:57 2013 +0300
CBMEM: Fail builds on missing get_top_of_ram()
Dummy get_top_of_ram() is removed from romstage to fail already at
build-time for cases where cbmem_initialize() would not complete.
The mechanisms behind CAR_GLOBAL migration only work correctly when
romstage can succesfully make the cbmem_initialize() call.
Change-Id: I359820fb196ef187b9aa2e8a3e8f658a0550f237
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/x86/boot/cbmem.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/arch/x86/boot/cbmem.c b/src/arch/x86/boot/cbmem.c
index 58ccbca..6a12263 100644
--- a/src/arch/x86/boot/cbmem.c
+++ b/src/arch/x86/boot/cbmem.c
@@ -18,12 +18,6 @@
#include <console/console.h>
#include <cbmem.h>
-unsigned long __attribute__((weak)) get_top_of_ram(void)
-{
- printk(BIOS_WARNING, "WARNING: you need to define get_top_of_ram() for your chipset\n");
- return 0;
-}
-
#if !CONFIG_DYNAMIC_CBMEM
void get_cbmem_table(uint64_t *base, uint64_t *size)
{
@@ -37,9 +31,8 @@ void get_cbmem_table(uint64_t *base, uint64_t *size)
*size = 0;
}
}
-#endif
-#if !CONFIG_DYNAMIC_CBMEM && !defined(__PRE_RAM__)
+#if !defined(__PRE_RAM__)
void __attribute__((weak)) backup_top_of_ram(uint64_t ramtop)
{
/* Do nothing. Chipset may have implementation to save ramtop in NVRAM. */
@@ -54,4 +47,12 @@ void set_top_of_ram(uint64_t ramtop)
backup_top_of_ram(ramtop);
cbmem_late_set_table(ramtop - HIGH_MEMORY_SIZE, HIGH_MEMORY_SIZE);
}
+
+unsigned long __attribute__((weak)) get_top_of_ram(void)
+{
+ printk(BIOS_WARNING, "WARNING: you need to define get_top_of_ram() for your chipset\n");
+ return 0;
+}
+#endif /* !__PRE_RAM__ */
+
#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/3969
-gerrit
commit c764387883078d53a69197f95bd4d29da393752e
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Sat Oct 12 00:22:57 2013 +0300
CBMEM: Fail builds on missing get_top_of_ram()
Dummy get_top_of_ram() is removed from romstage to fail already at
build-time for cases where cbmem_initialize() would not complete.
The mechanisms behind CAR_GLOBAL migration only work correctly when
romstage can succesfully make the cbmem_initialize() call.
Change-Id: I359820fb196ef187b9aa2e8a3e8f658a0550f237
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/arch/x86/boot/cbmem.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/arch/x86/boot/cbmem.c b/src/arch/x86/boot/cbmem.c
index 58ccbca..6a12263 100644
--- a/src/arch/x86/boot/cbmem.c
+++ b/src/arch/x86/boot/cbmem.c
@@ -18,12 +18,6 @@
#include <console/console.h>
#include <cbmem.h>
-unsigned long __attribute__((weak)) get_top_of_ram(void)
-{
- printk(BIOS_WARNING, "WARNING: you need to define get_top_of_ram() for your chipset\n");
- return 0;
-}
-
#if !CONFIG_DYNAMIC_CBMEM
void get_cbmem_table(uint64_t *base, uint64_t *size)
{
@@ -37,9 +31,8 @@ void get_cbmem_table(uint64_t *base, uint64_t *size)
*size = 0;
}
}
-#endif
-#if !CONFIG_DYNAMIC_CBMEM && !defined(__PRE_RAM__)
+#if !defined(__PRE_RAM__)
void __attribute__((weak)) backup_top_of_ram(uint64_t ramtop)
{
/* Do nothing. Chipset may have implementation to save ramtop in NVRAM. */
@@ -54,4 +47,12 @@ void set_top_of_ram(uint64_t ramtop)
backup_top_of_ram(ramtop);
cbmem_late_set_table(ramtop - HIGH_MEMORY_SIZE, HIGH_MEMORY_SIZE);
}
+
+unsigned long __attribute__((weak)) get_top_of_ram(void)
+{
+ printk(BIOS_WARNING, "WARNING: you need to define get_top_of_ram() for your chipset\n");
+ return 0;
+}
+#endif /* !__PRE_RAM__ */
+
#endif
the following patch was just integrated into master:
commit 3fa1a13f62fe805a4592eaa551cd9d5713613f91
Author: Andrew Wu <arw(a)dmp.com.tw>
Date: Wed Oct 9 18:57:20 2013 +0800
dmp/vortex86ex: Initialize PS/2 keyboard.
Call pc_keyboard_init function in southbridge. It makes PS/2
keyboard work in coreinfo payload.
Change-Id: Idb79f87b09eeeade94e966fb8769dec7578e2cf5
Signed-off-by: Andrew Wu <arw(a)dmp.com.tw>
Reviewed-on: http://review.coreboot.org/3957
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Jonathan A. Kollasch <jakllsch(a)kollasch.net>
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
See http://review.coreboot.org/3957 for details.
-gerrit
the following patch was just integrated into master:
commit 7a00ca75d70ceb336e189851dca06b363139ed96
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Sat Oct 12 21:29:26 2013 +0200
northbridge/amd/amdk8/raminit_f_dqs.c: Remove unused variable `reg` in `setup_mtrr_dqs()`
Change-Id: I7fc7819c329c058472031e82237be5c170b277f4
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-on: http://review.coreboot.org/3965
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Jonathan A. Kollasch <jakllsch(a)kollasch.net>
See http://review.coreboot.org/3965 for details.
-gerrit
Jonathan A. Kollasch (jakllsch(a)kollasch.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3963
-gerrit
commit f833ff7b2ddaf6dbbd046709a38eaaa3aca2772b
Author: Jonathan A. Kollasch <jakllsch(a)kollasch.net>
Date: Fri Oct 11 16:14:18 2013 -0500
ck804: hide IOAPIC base address in PCI_BASE_ADDRESS_1
Linux unhelpfully "fixes" the value in PCI_BASE_ADDRESS_1 when it is
0xfec00000 (that is, outside the range of bus 0 address space). This
causes IOAPIC interrupts to fail to work under Linux. This issue was
originally unnoticed by me when testing as sanity checking such as
this is not done by NetBSD.
Hiding the IOAPIC BAR is done by the OEM BIOS on the ck804 boards I've
checked.
Change-Id: I736db163750f709d68c988fac075597a50b29ab7
Signed-off-by: Jonathan A. Kollasch <jakllsch(a)kollasch.net>
---
src/southbridge/nvidia/ck804/lpc.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/southbridge/nvidia/ck804/lpc.c b/src/southbridge/nvidia/ck804/lpc.c
index 4b33a3c..b3a9b00 100644
--- a/src/southbridge/nvidia/ck804/lpc.c
+++ b/src/southbridge/nvidia/ck804/lpc.c
@@ -53,15 +53,10 @@
static void lpc_common_init(device_t dev)
{
- u8 byte;
u32 dword;
struct resource *res;
/* I/O APIC initialization. */
- byte = pci_read_config8(dev, 0x74);
- byte |= (1 << 0); /* Enable APIC. */
- pci_write_config8(dev, 0x74, byte);
-
res = find_resource(dev, PCI_BASE_ADDRESS_1); /* IOAPIC */
ASSERT(res != NULL);
setup_ioapic(res->base, 0); /* Don't rename IOAPIC ID. */
@@ -221,6 +216,7 @@ static void ck804_lpc_read_resources(device_t dev)
static void ck804_lpc_set_resources(device_t dev)
{
+ u8 byte;
struct resource *res;
pci_dev_set_resources(dev);
@@ -228,9 +224,15 @@ static void ck804_lpc_set_resources(device_t dev)
/* APIC */
res = find_resource(dev, PCI_BASE_ADDRESS_1);
if (res) {
+ byte = pci_read_config8(dev, 0x74);
+ byte |= (1 << 1); /* enable access to PCI_BASE_ADDRESS_1 */
+ pci_write_config8(dev, 0x74, byte);
pci_write_config32(dev, PCI_BASE_ADDRESS_1, res->base);
res->flags |= IORESOURCE_STORED;
report_resource_stored(dev, res, "");
+ byte |= (1 << 0); /* enable decode of IOAPIC space */
+ byte &= ~(1 << 1); /* hide PCI_BASE_ADDRESS_1 */
+ pci_write_config8(dev, 0x74, byte);
}
/* HPET */