Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5109
-gerrit
commit c87535858b44dbeca4f747db22797c8edd9eb5ab
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Mon Feb 3 23:09:30 2014 +0100
Add grub.cfg
Change-Id: I5480d6a5f2a6bbae4222e05bbe92eb717e1aff65
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/Kconfig | 15 +++++++++++++++
src/arch/x86/Makefile.inc | 6 ++++++
2 files changed, 21 insertions(+)
diff --git a/src/Kconfig b/src/Kconfig
index 31a41ab..d866e6f 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -695,6 +695,21 @@ config PAYLOAD_FILE
help
The result of a corebootPkg build
+config INCLUDE_GRUB2_CONFIG_FILE
+ bool "Include the GRUB2 grub.cfg file into the ROM image"
+ depends on PAYLOAD_GRUB2
+ default n
+ help
+ Include the GRUB2 grub.cfg configuration file.
+ This configuration may need to be coreboot specific.
+
+config GRUB2_CONFIG_FILE
+ string "Path and filename to grub.cfg"
+ depends on INCLUDE_GRUB2_CONFIG_FILE
+ default "grub.cfg"
+ help
+ The path and filename to the file to be added to cbfs.
+
# TODO: Defined if no payload? Breaks build?
config COMPRESSED_PAYLOAD_LZMA
bool "Use LZMA compression for payloads"
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 80e731f..f043bc4 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -126,6 +126,12 @@ ifeq ($(CONFIG_PAYLOAD_TIANOCORE),y)
@printf " PAYLOAD Tiano Core (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
+
+ifeq ($(CONFIG_INCLUDE_GRUB2_CONFIG_FILE),y)
+ @printf " CONFIG GRUB2 etc/grub.cfg\n"
+ $(CBFSTOOL) $@.tmp add -f $(CONFIG_GRUB2_CONFIG_FILE) -n etc/grub.cfg -t raw
+endif
+
ifeq ($(CONFIG_INCLUDE_CONFIG_FILE),y)
@printf " CONFIG $(DOTCONFIG)\n"
if [ -f $(DOTCONFIG) ]; then \
Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5119
-gerrit
commit f54a42a98a86753e1983166fb42ccd78aca4dcfc
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Sun Oct 20 23:37:35 2013 +0200
lenovo/x60: Require fewer failed boot to switch to fallback in X86_BOOTBLOCK_NORMAL mode.
src/arch/x86/Kconfig defines MAX_REBOOT_CNT as 3.
If that value is not overrided, then the Lenovo X60 coreboot image gets it too.
At the end of a successfull boot, with CONFIG_KEEP_BOOT_COUNT,
the Lenovo X60 increments its reboot_bits cmos option by one.
In case of a failed boot, the user probably doesn't know that coreboot will
only switch to fallback after 3 failed boots, and will act as if the laptop
will not boot anymore with its current coreboot image.
Change-Id: I746df11c933dfe62e01e1591479ca96a84907dc0
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
MERGE
Change-Id: I4459114789d973c1dcba303cc2b6196af5d2ffab
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/mainboard/lenovo/x60/Kconfig | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
index 7ed2665..52d4009 100644
--- a/src/mainboard/lenovo/x60/Kconfig
+++ b/src/mainboard/lenovo/x60/Kconfig
@@ -55,6 +55,10 @@ config MAX_CPUS
int
default 2
+config MAX_REBOOT_CNT
+ int
+ default 2
+
config MAINBOARD_SMBIOS_MANUFACTURER
string
default "LENOVO"
Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5109
-gerrit
commit 76a62e121c4210b2392c607400087b8bf851d70b
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Mon Feb 3 23:09:30 2014 +0100
Add grub.cfg
Change-Id: I5480d6a5f2a6bbae4222e05bbe92eb717e1aff65
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/Kconfig | 15 +++++++++++++++
src/arch/x86/Makefile.inc | 6 ++++++
2 files changed, 21 insertions(+)
diff --git a/src/Kconfig b/src/Kconfig
index 31a41ab..d866e6f 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -695,6 +695,21 @@ config PAYLOAD_FILE
help
The result of a corebootPkg build
+config INCLUDE_GRUB2_CONFIG_FILE
+ bool "Include the GRUB2 grub.cfg file into the ROM image"
+ depends on PAYLOAD_GRUB2
+ default n
+ help
+ Include the GRUB2 grub.cfg configuration file.
+ This configuration may need to be coreboot specific.
+
+config GRUB2_CONFIG_FILE
+ string "Path and filename to grub.cfg"
+ depends on INCLUDE_GRUB2_CONFIG_FILE
+ default "grub.cfg"
+ help
+ The path and filename to the file to be added to cbfs.
+
# TODO: Defined if no payload? Breaks build?
config COMPRESSED_PAYLOAD_LZMA
bool "Use LZMA compression for payloads"
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 80e731f..f043bc4 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -126,6 +126,12 @@ ifeq ($(CONFIG_PAYLOAD_TIANOCORE),y)
@printf " PAYLOAD Tiano Core (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
+
+ifeq ($(CONFIG_INCLUDE_GRUB2_CONFIG_FILE),y)
+ @printf " CONFIG GRUB2 etc/grub.cfg\n"
+ $(CBFSTOOL) $@.tmp add -f $(CONFIG_GRUB2_CONFIG_FILE) -n etc/grub.cfg -t raw
+endif
+
ifeq ($(CONFIG_INCLUDE_CONFIG_FILE),y)
@printf " CONFIG $(DOTCONFIG)\n"
if [ -f $(DOTCONFIG) ]; then \
Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3990
-gerrit
commit 79f26db1485553562da57d55b947297fd5ad5696
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Mon Oct 21 01:56:47 2013 +0200
Add a KEEP_BOOT_COUNT Kconfig option.
The use case of that option is to inform coreboot (trough the nvram) at the
next boot, that the computer could not fully boot to boot to an usable state.
In that case, the boot count is incremented by one.
Previously there was no way to tell coreboot that the computer really booted
successfully, because it was assumed that if set_boot_successful was called
in ramstage, then the computer would have booted successfully.
However many things can go wrong after that point, for instance the payload
could fail to boot, or the operating system's kernel could fail to boot too,
due to the wrong configurations passed to it by coreboot and the payload.
Change-Id: I01af053455eb6bd2f7a4f9d37e8c234ba8d55250
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/arch/x86/Kconfig | 8 ++++++++
src/arch/x86/boot/acpi.c | 12 ++++++++++++
src/lib/fallback_boot.c | 4 ++++
3 files changed, 24 insertions(+)
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 0a21fcc..b4e8eb0 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -72,6 +72,14 @@ config X86_BOOTBLOCK_NORMAL
endchoice
+config KEEP_BOOT_COUNT
+ bool "Keep boot count"
+ default n
+ depends on PC80_SYSTEM && X86_BOOTBLOCK_NORMAL
+ help
+ If enabled, the boot count is not reset anymore in the ramstage.
+ This delegates that task to the software running after the ramstage.
+
config BOOTBLOCK_SOURCE
string
default "bootblock_simple.c" if X86_BOOTBLOCK_SIMPLE
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c
index 0e09ec5..57115f9 100644
--- a/src/arch/x86/boot/acpi.c
+++ b/src/arch/x86/boot/acpi.c
@@ -33,6 +33,9 @@
#include <cbmem.h>
#include <cpu/x86/lapic_def.h>
#include <cpu/cpu.h>
+#if CONFIG_KEEP_BOOT_COUNT
+#include <fallback.h>
+#endif
#if CONFIG_COLLECT_TIMESTAMPS
#include <timestamp.h>
#endif
@@ -638,6 +641,15 @@ void acpi_resume(void *wake_vec)
if (mainboard_suspend_resume)
mainboard_suspend_resume();
+#if CONFIG_KEEP_BOOT_COUNT
+ /* we don't want to resume with the wrong prefix next time.
+ * And doing it in the bootblock seems counterintuitive:
+ * the bootblock would then need to know it's resuming...
+ */
+ if (strncmp(CONFIG_CBFS_PREFIX, "fallback", sizeof("fallback")))
+ set_boot_successful();
+#endif
+
post_code(POST_OS_RESUME);
acpi_jump_to_wakeup(wake_vec);
}
diff --git a/src/lib/fallback_boot.c b/src/lib/fallback_boot.c
index b956c94..042db08 100644
--- a/src/lib/fallback_boot.c
+++ b/src/lib/fallback_boot.c
@@ -40,8 +40,12 @@ void boot_successful(void)
vbe_textmode_console();
#endif
+
+/* We want to only do it at resume in the case of CONFIG_KEEP_BOOT_COUNT */
+#if !CONFIG_KEEP_BOOT_COUNT
/* Remember this was a successful boot */
set_boot_successful();
+#endif
/* turn off the boot watchdog */
watchdog_off();
Denis Carikli (GNUtoo(a)no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5109
-gerrit
commit 9f6ece7d4dcdd037ce632517479dc82db81794d0
Author: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
Date: Mon Feb 3 23:09:30 2014 +0100
Add grub.cfg
Change-Id: I5480d6a5f2a6bbae4222e05bbe92eb717e1aff65
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo(a)no-log.org>
---
src/Kconfig | 15 +++++++++++++++
src/arch/x86/Makefile.inc | 6 ++++++
2 files changed, 21 insertions(+)
diff --git a/src/Kconfig b/src/Kconfig
index 31a41ab..d866e6f 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -695,6 +695,21 @@ config PAYLOAD_FILE
help
The result of a corebootPkg build
+config INCLUDE_GRUB2_CONFIG_FILE
+ bool "Include the GRUB2 grub.cfg file into the ROM image"
+ depends on PAYLOAD_GRUB2
+ default n
+ help
+ Include the GRUB2 grub.cfg configuration file.
+ This configuration may need to be coreboot specific.
+
+config GRUB2_CONFIG_FILE
+ string "Path and filename to grub.cfg"
+ depends on INCLUDE_GRUB2_CONFIG_FILE
+ default "grub.cfg"
+ help
+ The path and filename to the file to be added to cbfs.
+
# TODO: Defined if no payload? Breaks build?
config COMPRESSED_PAYLOAD_LZMA
bool "Use LZMA compression for payloads"
diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc
index 80e731f..e814f78 100644
--- a/src/arch/x86/Makefile.inc
+++ b/src/arch/x86/Makefile.inc
@@ -126,6 +126,12 @@ ifeq ($(CONFIG_PAYLOAD_TIANOCORE),y)
@printf " PAYLOAD Tiano Core (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
+
+ifeq ($(CONFIG_INCLUDE_GRUB2_CONFIG_FILE),y)
+ @printf " CONFIG GRUB2 $(CONFIG_CBFS_PREFIX)/grub.cfg\n"
+ $(CBFSTOOL) $@.tmp add -f $(CONFIG_GRUB2_CONFIG_FILE) -n $(CONFIG_CBFS_PREFIX)/grub.cfg -t raw
+endif
+
ifeq ($(CONFIG_INCLUDE_CONFIG_FILE),y)
@printf " CONFIG $(DOTCONFIG)\n"
if [ -f $(DOTCONFIG) ]; then \