Patrick Georgi (patrick(a)georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1005
-gerrit
commit 334222b6a3e066265c01d00589394efd16ae0f4b
Author: Patrick Georgi <patrick(a)georgi-clan.de>
Date: Sat May 5 15:11:22 2012 +0200
Add config_enabled() from Linux
This change is taken from Linux. It allows to check for Kconfig
definitions in the preprocessor and source code using the same
idiom.
Long term plan is to remove our Kconfig hack to #define values to 0,
and this helps.
This includes a tiny modification to the macros to fix romcc support.
Change-Id: I0fddbea8c8ca215cf226acf39cb329b0ba0445a5
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
Makefile.inc | 4 ++--
src/include/kconfig.h | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/Makefile.inc b/Makefile.inc
index 534b985..01fb41f 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -91,7 +91,7 @@ romstage-c-deps:=$$(OPTION_TABLE_H)
define ramstage-objs_asl_template
$(obj)/$(1).ramstage.o: src/$(1).asl $(obj)/config.h
@printf " IASL $$(subst $(top)/,,$$(@))\n"
- $(CC) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(abspath $(obj)/config.h) -I$(src) -I$(src)/include -I$(src)/arch/$(ARCHDIR-y)/include -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$(a)).asl
+ $(CC) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(src)/include/kconfig.h -I$(obj) -I$(src) -I$(src)/include -I$(src)/arch/$(ARCHDIR-y)/include -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$(a)).asl
cd $$(dir $$@); $(IASL) -p $$(notdir $$@) -tc $$(notdir $$(basename $$(a))).asl
mv $$(basename $$(a)).hex $$(basename $$(a)).c
$(CC) $$(CFLAGS) $$(if $$(subst dsdt,,$$(basename $$(notdir $(1)))), -DAmlCode=AmlCode_$$(basename $$(notdir $(1)))) -c -o $$@ $$(basename $$(a)).c
@@ -154,7 +154,7 @@ endif
INCLUDES := -Isrc -Isrc/include -I$(obj) -Isrc/arch/$(ARCHDIR-y)/include
INCLUDES += -Isrc/devices/oprom/include
# abspath is a workaround for romcc
-INCLUDES += -include $(abspath $(obj)/config.h)
+INCLUDES += -include $(src)/include/kconfig.h
CFLAGS = $(INCLUDES) -Os -pipe -g -nostdinc
CFLAGS += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
diff --git a/src/include/kconfig.h b/src/include/kconfig.h
new file mode 100644
index 0000000..73106e9
--- /dev/null
+++ b/src/include/kconfig.h
@@ -0,0 +1,21 @@
+#ifndef __KCONFIG_H__
+#define __KCONFIG_H__
+
+#include <config.h>
+
+/*
+ * Getting something that works in C and CPP for an arg that may or may
+ * not be defined is tricky. Here, if we have "#define CONFIG_BOOGER 1"
+ * we match on the placeholder define, insert the "0," for arg1 and generate
+ * the triplet (0, 1, 0). Then the last step cherry picks the 2nd arg (a one).
+ * When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when
+ * the last step cherry picks the 2nd arg, we get a zero.
+ */
+#define __ARG_PLACEHOLDER_1 0,
+#define config_enabled(cfg) _config_enabled(cfg)
+#define _config_enabled(value) __config_enabled(__ARG_PLACEHOLDER_##value)
+#define __config_enabled(arg1_or_junk) ___config_enabled(arg1_or_junk 1, 0, 0)
+#define ___config_enabled(__ignored, val, ...) val
+
+#define IS_ENABLED(option) config_enabled(option)
+#endif
Stefan Reinauer (stefan.reinauer(a)coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1002
-gerrit
commit 2635d031351d17a21bc37a8e79ed0dbbfae7db15
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Thu May 3 16:40:41 2012 -0700
Hook up MRC cache update
This one is a WIP:
- should not depend on CONFIG_CHROMEOS
- There might be a better place for it. Requirements:
- must be in ramstage (locking flash while executing code from there
might not work)
- must be after cbmem is reinitialized (so the mrc cache copy of the
current run can be found)
Change-Id: I8028fb073349ce2b027ef5f8397dc1a1b8b31c02
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
src/arch/x86/boot/tables.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/arch/x86/boot/tables.c b/src/arch/x86/boot/tables.c
index 4fefc7d..ff57422 100644
--- a/src/arch/x86/boot/tables.c
+++ b/src/arch/x86/boot/tables.c
@@ -53,6 +53,11 @@ struct lb_memory *write_tables(void)
*/
unsigned long high_table_pointer;
+#if CONFIG_CHROMEOS
+ void update_mrc_cache(void);
+ update_mrc_cache();
+#endif
+
if (!high_tables_base) {
printk(BIOS_ERR, "ERROR: High Tables Base is not set.\n");
// Are there any boards without?
Stefan Reinauer (stefan.reinauer(a)coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1002
-gerrit
commit 4cbf030d80f801c86949d86dcf781c32d1fb46d9
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Thu May 3 16:40:41 2012 -0700
Hook up MRC cache update
This one is a WIP:
- should not depend on CONFIG_CHROMEOS
- There might be a better place for it. Requirements:
- must be in ramstage (locking flash while executing code from there
might not work)
- must be after cbmem is reinitialized (so the mrc cache copy of the
current run can be found)
Change-Id: I8028fb073349ce2b027ef5f8397dc1a1b8b31c02
Signed-off-by: Patrick Georgi <patrick(a)georgi-clan.de>
---
src/arch/x86/boot/tables.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/arch/x86/boot/tables.c b/src/arch/x86/boot/tables.c
index 4fefc7d..ff57422 100644
--- a/src/arch/x86/boot/tables.c
+++ b/src/arch/x86/boot/tables.c
@@ -53,6 +53,11 @@ struct lb_memory *write_tables(void)
*/
unsigned long high_table_pointer;
+#if CONFIG_CHROMEOS
+ void update_mrc_cache(void);
+ update_mrc_cache();
+#endif
+
if (!high_tables_base) {
printk(BIOS_ERR, "ERROR: High Tables Base is not set.\n");
// Are there any boards without?