Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3574
-gerrit
commit f3c57b9dd63cb15ff56e2ecc9f0828b8804c6d2a
Author: Gabe Black <gabeblack(a)chromium.org>
Date: Sat Jun 29 22:55:15 2013 -0700
am335x: Fix the address of the pinmux registers.
The pinmux register data structure describes a subset of the control module
registers, but the address which pointed to the base of the pinmux registers
was actually being set to the beginning of all the control module registers,
not just those having to do with the pinmux. With this address fixed, the UART
now works on the beaglebone black.
Change-Id: I7c99b6f37d7da359af074127cd0c1a86fda2d9a0
Signed-off-by: Gabe Black <gabeblack(a)chromium.org>
---
src/cpu/ti/am335x/pinmux.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cpu/ti/am335x/pinmux.h b/src/cpu/ti/am335x/pinmux.h
index 69c1459..1b488e8 100644
--- a/src/cpu/ti/am335x/pinmux.h
+++ b/src/cpu/ti/am335x/pinmux.h
@@ -54,7 +54,7 @@ void am335x_pinmux_mii1(void);
void am335x_pinmux_nand(void);
-#define AM335X_PINMUX_REG_ADDR 0x44e10000
+#define AM335X_PINMUX_REG_ADDR 0x44e10800
struct am335x_pinmux_regs {
uint32_t gpmc_ad0;
Gabe Black (gabeblack(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3574
-gerrit
commit 6ebf6b43eae273555db13a7684dae82d616a76d4
Author: Gabe Black <gabeblack(a)chromium.org>
Date: Sat Jun 29 22:55:15 2013 -0700
am335x: Fix the address of the pinmux registers.
The pinmux register data structure describes a subset of the control module
registers, but the address which pointed to the base of the pinmux registers
was actually being set to the beginning of all the cotrnol module registers,
not just those having to do with the pinmux. With this address fixed, the UART
now works on the beaglebone black.
Change-Id: I7c99b6f37d7da359af074127cd0c1a86fda2d9a0
Signed-off-by: Gabe Black <gabeblack(a)chromium.org>
---
src/cpu/ti/am335x/pinmux.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cpu/ti/am335x/pinmux.h b/src/cpu/ti/am335x/pinmux.h
index 69c1459..1b488e8 100644
--- a/src/cpu/ti/am335x/pinmux.h
+++ b/src/cpu/ti/am335x/pinmux.h
@@ -54,7 +54,7 @@ void am335x_pinmux_mii1(void);
void am335x_pinmux_nand(void);
-#define AM335X_PINMUX_REG_ADDR 0x44e10000
+#define AM335X_PINMUX_REG_ADDR 0x44e10800
struct am335x_pinmux_regs {
uint32_t gpmc_ad0;
Stefan Tauner (stefan.tauner(a)gmx.at) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3548
-gerrit
commit c3ffab4e87ee8474b267f7aefcfb5887e5e01e8e
Author: Stefan Tauner <stefan.tauner(a)gmx.at>
Date: Sun Jun 30 01:05:30 2013 +0200
cbmem: Fix makefile
The .dependencies rule did not use the CPPFLAGS variable which led
to funny behavior: a spurious termination message the first time
(after checkout/make distclean) one executes make. Afterwards the
(wrongly) empty .dependencies file hides the problem and the binary
is created anyway.
$ make
cbmem.c:37:34: fatal error: boot/coreboot_tables.h: No such file or directory
compilation terminated.
cc -O2 -Wall -Werror -iquote ../../src/include -iquote ../../src/src/arch/x86 -c -o cbmem.o cbmem.c
cc cbmem.o -o cbmem
$ make
make: Nothing to be done for `all'.
$ make clean
rm -f cbmem *.o *~
$ make
cc -O2 -Wall -Werror -iquote ../../src/include -iquote ../../src/src/arch/x86 -c -o cbmem.o cbmem.c
cc cbmem.o -o cbmem
$ make distclean
rm -f cbmem *.o *~
rm -f .dependencies
$ make
cbmem.c:37:34: fatal error: boot/coreboot_tables.h: No such file or directory
compilation terminated.
cc -O2 -Wall -Werror -iquote ../../src/include -iquote ../../src/src/arch/x86 -c -o cbmem.o cbmem.c
cc cbmem.o -o cbmem
I fixed that by adding the CPPFLAGS variable to the .dependencies recipe, just
like Stefan Reinauer did in Chromium (Ia9d2e10a3ef122f30d681d16c2291eb108ead835),
hence the split sign-off for this tiny change. :)
Change-Id: Icd11b146ad762cbdf9774630b950f70e1253a072
Signed-off-by: Stefan Reinauer <reinauer(a)google.com>
Signed-off-by: Stefan Tauner <stefan.tauner(a)gmx.at>
---
util/cbmem/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/cbmem/Makefile b/util/cbmem/Makefile
index c93863a..51ee927 100644
--- a/util/cbmem/Makefile
+++ b/util/cbmem/Makefile
@@ -37,7 +37,7 @@ distclean: clean
rm -f .dependencies
.dependencies:
- @$(CC) $(CFLAGS) -MM *.c > .dependencies
+ @$(CC) $(CFLAGS) $(CPPFLAGS) -MM *.c > .dependencies
.PHONY: all clean distclean
Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3549
-gerrit
commit 0d29d467883c52c2ebf3a7db467bd8a2cddac3e2
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Fri Jun 21 23:32:19 2013 +0200
Add a new and safer bootblock implementation.
The drawback is that it requires cooperation
from something that is run after coreboot
(like the OS or the payload).
To understand how to use it, refer to the
Kconfig help of that option.
Thanks a lot to kmalkki on #coreboot Freenode IRC
channel for pointers on how to simplify the implementation.
Change-Id: I1109c49c7c84461bb056b36ee5d07391c2392176
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/arch/x86/Kconfig | 13 +++++++++++++
src/drivers/pc80/mc146818rtc_early.c | 28 ++++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 69cdc8a..3bb6547 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -54,12 +54,25 @@ config X86_BOOTBLOCK_SIMPLE
config X86_BOOTBLOCK_NORMAL
bool "Switch to normal if CMOS says so"
+config X86_BOOTBLOCK_FAILBOOT
+ bool "Switch to Fallback if it fails to boot"
+ help
+ Switch to Fallback after failing to boot.
+ Coreboot will reset boot_option to Fallback
+ as early as possible, If the user has
+ a Fallback and a Normal image in cbfs,
+ and wants to boot on the Normal image,
+ he must reset the boot_option to Normal
+ after successfully booting (like trough the OS
+ boot scripts that would run something like:
+ "nvramtool -w boot_option=Normal".
endchoice
config BOOTBLOCK_SOURCE
string
default "bootblock_simple.c" if X86_BOOTBLOCK_SIMPLE
default "bootblock_normal.c" if X86_BOOTBLOCK_NORMAL
+ default "bootblock_normal.c" if X86_BOOTBLOCK_FAILBOOT
config UPDATE_IMAGE
bool "Update existing coreboot.rom image"
diff --git a/src/drivers/pc80/mc146818rtc_early.c b/src/drivers/pc80/mc146818rtc_early.c
index 0652f27..4cda097 100644
--- a/src/drivers/pc80/mc146818rtc_early.c
+++ b/src/drivers/pc80/mc146818rtc_early.c
@@ -49,6 +49,33 @@ static inline int last_boot_normal(void)
return (byte & (1 << 1));
}
+#if CONFIG_X86_BOOTBLOCK_FAILBOOT
+static inline int do_normal_boot(void)
+{
+ unsigned char old_byte, write_byte;
+
+ if (cmos_error() || !cmos_chksum_valid()) {
+ /* There are no impossible values, no checksums so just
+ * trust whatever value we have in the the cmos,
+ * but clear the fallback bit.
+ */
+ write_byte = cmos_read(RTC_BOOT_BYTE);
+ write_byte &= 0x0c;
+ cmos_write(write_byte, RTC_BOOT_BYTE);
+ }
+
+ /* The RTC_BOOT_BYTE is now o.k. see where to go. */
+ write_byte = old_byte = cmos_read(RTC_BOOT_BYTE);
+
+ /* Reset boot_option to Fallback */
+ write_byte &= ~(1<<0);
+
+ /* Save the boot byte */
+ cmos_write(write_byte, RTC_BOOT_BYTE);
+
+ return (old_byte & (1<<0));
+}
+#else
static inline int do_normal_boot(void)
{
unsigned char byte;
@@ -91,6 +118,7 @@ static inline int do_normal_boot(void)
return (byte & (1<<1));
}
+#endif
unsigned read_option_lowlevel(unsigned start, unsigned size, unsigned def)
{
Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3549
-gerrit
commit cce13217ffd5580bc9dfe3396f17f155cbb5f291
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Fri Jun 21 23:32:19 2013 +0200
Add a new and safer bootblock implementation.
The drawback is that it requires cooperation
from something that is run after coreboot
(like the OS or the payload).
To understand how to use it, refer to the
Kconfig help of that option.
Thanks a lot to kmalkki on #coreboot Freenode IRC
channel for pointers on how to simplify the implementation.
Change-Id: I1109c49c7c84461bb056b36ee5d07391c2392176
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/arch/x86/Kconfig | 13 +++++++++++++
src/drivers/pc80/mc146818rtc_early.c | 28 ++++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 69cdc8a..3bb6547 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -54,12 +54,25 @@ config X86_BOOTBLOCK_SIMPLE
config X86_BOOTBLOCK_NORMAL
bool "Switch to normal if CMOS says so"
+config X86_BOOTBLOCK_FAILBOOT
+ bool "Switch to Fallback if it fails to boot"
+ help
+ Switch to Fallback after failing to boot.
+ Coreboot will reset boot_option to Fallback
+ as early as possible, If the user has
+ a Fallback and a Normal image in cbfs,
+ and wants to boot on the Normal image,
+ he must reset the boot_option to Normal
+ after successfully booting (like trough the OS
+ boot scripts that would run something like:
+ "nvramtool -w boot_option=Normal".
endchoice
config BOOTBLOCK_SOURCE
string
default "bootblock_simple.c" if X86_BOOTBLOCK_SIMPLE
default "bootblock_normal.c" if X86_BOOTBLOCK_NORMAL
+ default "bootblock_normal.c" if X86_BOOTBLOCK_FAILBOOT
config UPDATE_IMAGE
bool "Update existing coreboot.rom image"
diff --git a/src/drivers/pc80/mc146818rtc_early.c b/src/drivers/pc80/mc146818rtc_early.c
index 0652f27..020c766 100644
--- a/src/drivers/pc80/mc146818rtc_early.c
+++ b/src/drivers/pc80/mc146818rtc_early.c
@@ -49,6 +49,33 @@ static inline int last_boot_normal(void)
return (byte & (1 << 1));
}
+#if CONFIG_X86_BOOTBLOCK_FAILBOOT
+static inline int do_normal_boot(void)
+{
+ unsigned char old_byte, write_byte;
+
+ if (cmos_error() || !cmos_chksum_valid()) {
+ /* There are no impossible values, no checksums so just
+ * trust whatever value we have in the the cmos,
+ * but clear the fallback bit.
+ */
+ write_byte = cmos_read(RTC_BOOT_BYTE);
+ write_byte &= 0x0c;
+ cmos_write(write_byte, RTC_BOOT_BYTE);
+ }
+
+ /* The RTC_BOOT_BYTE is now o.k. see where to go. */
+ write_byte = old_byte = cmos_read(RTC_BOOT_BYTE);
+
+ /* Reset boot_option to Fallback */
+ write_byte &= ~(1<<0);
+
+ /* Save the boot byte */
+ cmos_write(write_byte, RTC_BOOT_BYTE);
+
+ return (old_byte & (1<<1));
+}
+#else
static inline int do_normal_boot(void)
{
unsigned char byte;
@@ -91,6 +118,7 @@ static inline int do_normal_boot(void)
return (byte & (1<<1));
}
+#endif
unsigned read_option_lowlevel(unsigned start, unsigned size, unsigned def)
{
the following patch was just integrated into master:
commit 0d8d482f6316885d7e553d9aeb538ce5bbd2fbba
Author: Siyuan Wang <wangsiyuanbuaa(a)gmail.com>
Date: Sat Jun 8 10:25:06 2013 +0800
AMD S3 resume: Add framwork to write bigger data
This patch is based on 'AMD S3: Program the flash in a bigger data packet'[1]
Some AMD south bridge can write bigger data when saving S3 info.
In this patch, I use config 'AMD_SB_SPI_TX_LEN' to contral data size.
AMD_SB_SPI_TX_LEN is defined in 'src/southbridge/amd/Kconfig'
and then can be overridden in the Kconfig for specific
southbridges that support larger size.
I have tested on AMD Parmer and Thatcher. We will release a new board
whose south bridge can transfer more than 4 bytes each time.
[1] http://review.coreboot.org/#/c/2306/
Change-Id: Id984955d46eae487e39d45979f1a90054aa9f54b
Signed-off-by: Siyuan Wang <SiYuan.Wang(a)amd.com>
Signed-off-by: Siyuan Wang <wangsiyuanbuaa(a)gmail.com>
Reviewed-on: http://review.coreboot.org/3413
Tested-by: build bot (Jenkins)
Reviewed-by: Bruce Griffith <Bruce.Griffith(a)se-eng.com>
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
See http://review.coreboot.org/3413 for details.
-gerrit