summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc17
-rw-r--r--util/sconfig/main.c27
2 files changed, 18 insertions, 26 deletions
diff --git a/Makefile.inc b/Makefile.inc
index 46154c6f34..4d7fd694f0 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -451,15 +451,18 @@ $(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)/$(call strip_quotes, $(CONFIG_DEVICETREE)) $(objutil)/sconfig/sconfig
+DEVICETREE_FILE := $(src)/mainboard/$(MAINBOARDDIR)/$(call strip_quotes, $(CONFIG_DEVICETREE))
+DEVICETREE_STATIC_C := $(obj)/mainboard/$(MAINBOARDDIR)/static.c
+
+$(DEVICETREE_STATIC_C): $(DEVICETREE_FILE) $(objutil)/sconfig/sconfig
@printf " SCONFIG $(subst $(src)/,,$(<))\n"
- mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
- $(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(obj)/mainboard/$(MAINBOARDDIR) $(call strip_quotes, $(CONFIG_DEVICETREE))
+ mkdir -p $(dir $(DEVICETREE_STATIC_C))
+ $(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(DEVICETREE_FILE) $(DEVICETREE_STATIC_C)
-ramstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
-romstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
-verstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
-bootblock-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
+ramstage-y+=$(DEVICETREE_STATIC_C)
+romstage-y+=$(DEVICETREE_STATIC_C)
+verstage-y+=$(DEVICETREE_STATIC_C)
+bootblock-y+=$(DEVICETREE_STATIC_C)
$(objgenerated)/libverstage.a: $$(libverstage-objs)
rm -f $@
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 316431341a..24ba019074 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 devicetree [-{s|b|k} outputfile]\n");
+ printf("usage: sconfig vendor/mainboard devicetree_file output_file [-{s|b|k}]\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");
@@ -560,31 +560,25 @@ static void usage(void)
}
enum {
- VENDOR_MAINBOARD_ARG = 1,
- OUTPUTDIR_ARG,
+ MAINBOARD_ARG = 1,
DEVICEFILE_ARG,
- OUTPUTTYPE_ARG,
- OUTPUTFILE_ARG
+ OUTPUTFILE_ARG,
+ OUTPUTTYPE_ARG
};
#define MIN_ARGS 4
-#define MAX_ARGS 6
+#define MAX_ARGS 5
int main(int argc, char** argv) {
if (argc != MIN_ARGS && argc != MAX_ARGS)
usage();
- 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;
+ char *mainboard = argv[MAINBOARD_ARG];
+ char *devtree = argv[DEVICEFILE_ARG];
+ char *outputc = argv[OUTPUTFILE_ARG];
if (argc == MIN_ARGS) {
scan_mode = STATIC_MODE;
- outputc=malloc(strlen(outputdir)+20);
- sprintf(outputc, "%s/static.c", outputdir);
} else if (argc == MAX_ARGS) {
if ((argv[OUTPUTTYPE_ARG][0] != '-') ||
(argv[OUTPUTTYPE_ARG][2] == 0)) {
@@ -605,10 +599,6 @@ int main(int argc, char** argv) {
usage();
break;
}
- char *outputfile = argv[OUTPUTFILE_ARG];
-
- outputc=malloc(strlen(outputdir)+strlen(outputfile)+2);
- sprintf(outputc, "%s/%s", outputdir, outputfile);
}
headers.next = 0;
@@ -623,7 +613,6 @@ int main(int argc, char** argv) {
FILE *filec = fopen(devtree, "r");
if (!filec) {
- fprintf(stderr, "Could not open file '%s' for reading: ", devtree);
perror(NULL);
exit(1);
}