[coreboot-gerrit] Patch set updated for coreboot: sconfig: pass in devicetree filename
Martin Roth (martinroth@google.com)
gerrit at coreboot.org
Tue Aug 2 19:34:31 CEST 2016
Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12529
-gerrit
commit c6a85f8dc88a55939ce2b6f4b4347106ce1c4193
Author: Martin Roth <martinroth at google.com>
Date: Tue Nov 24 12:34:16 2015 -0700
sconfig: pass in devicetree filename
Instead of forcing the hardcoded 'devicetree.cb' filename under the
mainboard directory, this allows mainboards to select a filename for
the devicetree file.
This allows mainboard variants that need to use different devicetree
files to live in the same directory.
Change-Id: I761e676ba5d5f70d1fb86656b528f63db169fcef
Signed-off-by: Martin Roth <martinroth at google.com>
---
Makefile.inc | 4 ++--
src/Kconfig | 8 ++++++++
util/sconfig/main.c | 32 +++++++++++++++++++++-----------
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/Makefile.inc b/Makefile.inc
index 7c471dd..8ad7e4c 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -451,10 +451,10 @@ $(obj)/config.h: $(objutil)/kconfig/conf
#######################################################################
# needed objects that every mainboard uses
# Creation of these is architecture and mainboard independent
-$(obj)/mainboard/$(MAINBOARDDIR)/static.c: $(src)/mainboard/$(MAINBOARDDIR)/devicetree.cb $(objutil)/sconfig/sconfig
+$(obj)/mainboard/$(MAINBOARDDIR)/static.c: $(src)/mainboard/$(MAINBOARDDIR)/$(call strip_quotes, $(CONFIG_DEVICETREE)) $(objutil)/sconfig/sconfig
@printf " SCONFIG $(subst $(src)/,,$(<))\n"
mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
- $(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(obj)/mainboard/$(MAINBOARDDIR)
+ $(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(obj)/mainboard/$(MAINBOARDDIR) $(call strip_quotes, $(CONFIG_DEVICETREE))
ramstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
romstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
diff --git a/src/Kconfig b/src/Kconfig
index 3cb012e..0495870 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -358,6 +358,14 @@ config BOARD_ID_STRING
This string is placed in the 'board_id' CBFS file for indicating
board type.
+config DEVICETREE
+ string
+ default "devicetree.cb"
+ help
+ This symbol is for mainboards to select a different file name for
+ their devicetree.cb file. This allows board variants that need
+ different devicetree files to be in the same directory.
+
config RAM_CODE_SUPPORT
bool
default n
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index a398c0b..f640d86 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -551,7 +551,7 @@ static void inherit_subsystem_ids(FILE *file, struct device *dev)
static void usage(void)
{
- printf("usage: sconfig vendor/mainboard outputdir [-{s|b|k} outputfile]\n");
+ printf("usage: sconfig vendor/mainboard outputdir devicetree [-{s|b|k} outputfile]\n");
printf("\t-s file\tcreate ramstage static device map\n");
printf("\t-b file\tcreate bootblock init_mainboard()\n");
printf("\t-k file\tcreate Kconfig devicetree section\n");
@@ -559,27 +559,37 @@ static void usage(void)
exit (1);
}
+#define VENDOR_MAINBOARD_ARG 1
+#define OUTPUTDIR_ARG 2
+#define DEVICEFILE_ARG 3
+#define OUTPUTTYPE_ARG 4
+#define OUTPUTFILE_ARG 5
+
+#define MIN_ARGS 4
+#define MAX_ARGS 6
int main(int argc, char** argv) {
- if (argc != 3 && argc != 5)
+ if (argc != MIN_ARGS && argc != MAX_ARGS)
usage();
- char *mainboard=argv[1];
- char *outputdir=argv[2];
- char *devtree=malloc(strlen(mainboard)+30);
- sprintf(devtree, "src/mainboard/%s/devicetree.cb", mainboard);
+ char *mainboard=argv[VENDOR_MAINBOARD_ARG];
+ char *outputdir=argv[OUTPUTDIR_ARG];
+ char *devfile=argv[DEVICEFILE_ARG];
+ char *devtree=malloc(strlen(mainboard)+strlen(devfile)+30);
+ sprintf(devtree, "src/mainboard/%s/%s", mainboard, devfile);
char *outputc;
- if (argc == 3) {
+ if (argc == MIN_ARGS) {
scan_mode = STATIC_MODE;
outputc=malloc(strlen(outputdir)+20);
sprintf(outputc, "%s/static.c", outputdir);
- } else if (argc == 5) {
- if ((argv[3][0] != '-') || (argv[3][2] == 0)) {
+ } else if (argc == MAX_ARGS) {
+ if ((argv[OUTPUTTYPE_ARG][0] != '-') ||
+ (argv[OUTPUTTYPE_ARG][2] == 0)) {
usage();
}
- switch (argv[3][1]) {
+ switch (argv[OUTPUTTYPE_ARG][1]) {
case 's':
scan_mode = STATIC_MODE;
break;
@@ -593,7 +603,7 @@ int main(int argc, char** argv) {
usage();
break;
}
- char *outputfile=argv[4];
+ char *outputfile=argv[OUTPUTFILE_ARG];
outputc=malloc(strlen(outputdir)+strlen(outputfile)+2);
sprintf(outputc, "%s/%s", outputdir, outputfile);
More information about the coreboot-gerrit
mailing list