All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/5] Revert "scripts/dtc: Update to upstream version v1.4.4"
Date: Wed, 27 Sep 2017 16:15:23 +0200	[thread overview]
Message-ID: <20170927141524.5920-5-wd@denx.de> (raw)
In-Reply-To: <20170927141524.5920-1-wd@denx.de>

This reverts commit d6fc90ced42e9fb77185cedfe45d0a2c7ac78508.

This patch is part of a series which has never been reviewed and
has not been generally accepted by the community.

Signed-off-by: Wolfgang Denk <wd@denx.de>

Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Alexander Graf <agraf@suse.de>
Cc: Alexey Brodkin <alexey.brodkin@synopsys.com>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Andre Przywara <andre.przywara@arm.com>,
Cc: Andreas Bießmann <andreas.devel@googlemail.com>
Cc: Angelo Dureghello <angelo@sysam.it>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Daniel Hellstrom <daniel@gaisler.com>
Cc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Heinrich Schuchardt <xypron.debian@gmx.de>
Cc: Huan Wang <alison.wang@freescale.com>
Cc: Jagan Teki <jteki@openedev.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Kim Phillips <kim.phillips@freescale.com>
Cc: Kyungmin Park <kmpark@infradead.org>
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Macpaul Lin <macpaul@andestech.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Prafulla Wadaskar <prafulla@marvell.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Robert Nelson <robertcnelson@gmail.com>
Cc: Scott Wood  <scottwood@freescale.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Sonic Zhang <sonic.adi@gmail.com>
Cc: Stanislav Galabov <sgalabov@gmail.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Thomas Chou <thomas@wytron.com.tw>
Cc: Tom Rini <trini@konsulko.com>
Cc: Tom Warren <TWarren@nvidia.com>
Cc: u-boot at lists.denx.de
Cc: Vagrant Cascadian <vagrant@debian.org>
Cc: Vipin Kumar <vk.vipin@gmail.com>
Cc: York Sun <yorksun@freescale.com>
---
 scripts/dtc/checks.c                | 12 ++++--
 scripts/dtc/data.c                  | 16 ++++----
 scripts/dtc/dtc-lexer.l             |  7 +++-
 scripts/dtc/dtc-lexer.lex.c_shipped | 81 ++++++++++++++++++++-----------------
 scripts/dtc/dtc.c                   |  5 ++-
 scripts/dtc/dtc.h                   |  5 ++-
 scripts/dtc/flattree.c              | 58 ++++++++++++++------------
 scripts/dtc/libfdt/libfdt_env.h     | 26 ++++++------
 scripts/dtc/livetree.c              | 16 ++++----
 scripts/dtc/srcpos.h                | 11 ++---
 scripts/dtc/treesource.c            |  6 +--
 scripts/dtc/util.c                  | 11 +++--
 scripts/dtc/util.h                  | 30 +++++++-------
 scripts/dtc/version_gen.h           |  2 +-
 14 files changed, 155 insertions(+), 131 deletions(-)

diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
index 38f548e582..0e8b978c36 100644
--- a/scripts/dtc/checks.c
+++ b/scripts/dtc/checks.c
@@ -72,8 +72,12 @@ struct check {
 #define CHECK(_nm, _fn, _d, ...) \
 	CHECK_ENTRY(_nm, _fn, _d, false, false, __VA_ARGS__)
 
-static inline void  PRINTF(3, 4) check_msg(struct check *c, struct dt_info *dti,
-					   const char *fmt, ...)
+#ifdef __GNUC__
+static inline void check_msg(struct check *c, struct dt_info *dti,
+			     const char *fmt, ...) __attribute__((format (printf, 3, 4)));
+#endif
+static inline void check_msg(struct check *c, struct dt_info *dti,
+			     const char *fmt, ...)
 {
 	va_list ap;
 	va_start(ap, fmt);
@@ -534,13 +538,13 @@ static void fixup_phandle_references(struct check *c, struct dt_info *dti,
 					FAIL(c, dti, "Reference to non-existent node or "
 							"label \"%s\"\n", m->ref);
 				else /* mark the entry as unresolved */
-					*((fdt32_t *)(prop->val.val + m->offset)) =
+					*((cell_t *)(prop->val.val + m->offset)) =
 						cpu_to_fdt32(0xffffffff);
 				continue;
 			}
 
 			phandle = get_node_phandle(dt, refnode);
-			*((fdt32_t *)(prop->val.val + m->offset)) = cpu_to_fdt32(phandle);
+			*((cell_t *)(prop->val.val + m->offset)) = cpu_to_fdt32(phandle);
 		}
 	}
 }
diff --git a/scripts/dtc/data.c b/scripts/dtc/data.c
index aa37a16c88..8cae237468 100644
--- a/scripts/dtc/data.c
+++ b/scripts/dtc/data.c
@@ -171,9 +171,9 @@ struct data data_merge(struct data d1, struct data d2)
 struct data data_append_integer(struct data d, uint64_t value, int bits)
 {
 	uint8_t value_8;
-	fdt16_t value_16;
-	fdt32_t value_32;
-	fdt64_t value_64;
+	uint16_t value_16;
+	uint32_t value_32;
+	uint64_t value_64;
 
 	switch (bits) {
 	case 8:
@@ -197,14 +197,14 @@ struct data data_append_integer(struct data d, uint64_t value, int bits)
 	}
 }
 
-struct data data_append_re(struct data d, uint64_t address, uint64_t size)
+struct data data_append_re(struct data d, const struct fdt_reserve_entry *re)
 {
-	struct fdt_reserve_entry re;
+	struct fdt_reserve_entry bere;
 
-	re.address = cpu_to_fdt64(address);
-	re.size = cpu_to_fdt64(size);
+	bere.address = cpu_to_fdt64(re->address);
+	bere.size = cpu_to_fdt64(re->size);
 
-	return data_append_data(d, &re, sizeof(re));
+	return data_append_data(d, &bere, sizeof(bere));
 }
 
 struct data data_append_cell(struct data d, cell_t word)
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index fd825ebba6..52bed7b749 100644
--- a/scripts/dtc/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
@@ -62,7 +62,12 @@ static int dts_version = 1;
 
 static void push_input_file(const char *filename);
 static bool pop_input_file(void);
-static void PRINTF(1, 2) lexical_error(const char *fmt, ...);
+#ifdef __GNUC__
+static void lexical_error(const char *fmt, ...)
+	__attribute__((format (printf, 1, 2)));
+#else
+static void lexical_error(const char *fmt, ...);
+#endif
 
 %}
 
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 3934d8624d..d77fdfe590 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -663,9 +663,14 @@ static int dts_version = 1;
 
 static void push_input_file(const char *filename);
 static bool pop_input_file(void);
-static void PRINTF(1, 2) lexical_error(const char *fmt, ...);
+#ifdef __GNUC__
+static void lexical_error(const char *fmt, ...)
+	__attribute__((format (printf, 1, 2)));
+#else
+static void lexical_error(const char *fmt, ...);
+#endif
 
-#line 669 "dtc-lexer.lex.c"
+#line 674 "dtc-lexer.lex.c"
 
 #define INITIAL 0
 #define BYTESTRING 1
@@ -856,9 +861,9 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 69 "dtc-lexer.l"
+#line 74 "dtc-lexer.l"
 
-#line 862 "dtc-lexer.lex.c"
+#line 867 "dtc-lexer.lex.c"
 
 	if ( !(yy_init) )
 		{
@@ -941,7 +946,7 @@ do_action:	/* This label is used only to access EOF actions. */
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 70 "dtc-lexer.l"
+#line 75 "dtc-lexer.l"
 {
 			char *name = strchr(yytext, '\"') + 1;
 			yytext[yyleng-1] = '\0';
@@ -951,7 +956,7 @@ YY_RULE_SETUP
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 76 "dtc-lexer.l"
+#line 81 "dtc-lexer.l"
 {
 			char *line, *fnstart, *fnend;
 			struct data fn;
@@ -985,7 +990,7 @@ case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(BYTESTRING):
 case YY_STATE_EOF(PROPNODENAME):
 case YY_STATE_EOF(V1):
-#line 105 "dtc-lexer.l"
+#line 110 "dtc-lexer.l"
 {
 			if (!pop_input_file()) {
 				yyterminate();
@@ -995,7 +1000,7 @@ case YY_STATE_EOF(V1):
 case 3:
 /* rule 3 can match eol */
 YY_RULE_SETUP
-#line 111 "dtc-lexer.l"
+#line 116 "dtc-lexer.l"
 {
 			DPRINT("String: %s\n", yytext);
 			yylval.data = data_copy_escape_string(yytext+1,
@@ -1005,7 +1010,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 118 "dtc-lexer.l"
+#line 123 "dtc-lexer.l"
 {
 			DPRINT("Keyword: /dts-v1/\n");
 			dts_version = 1;
@@ -1015,7 +1020,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 125 "dtc-lexer.l"
+#line 130 "dtc-lexer.l"
 {
 			DPRINT("Keyword: /plugin/\n");
 			return DT_PLUGIN;
@@ -1023,7 +1028,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 130 "dtc-lexer.l"
+#line 135 "dtc-lexer.l"
 {
 			DPRINT("Keyword: /memreserve/\n");
 			BEGIN_DEFAULT();
@@ -1032,7 +1037,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 136 "dtc-lexer.l"
+#line 141 "dtc-lexer.l"
 {
 			DPRINT("Keyword: /bits/\n");
 			BEGIN_DEFAULT();
@@ -1041,7 +1046,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 142 "dtc-lexer.l"
+#line 147 "dtc-lexer.l"
 {
 			DPRINT("Keyword: /delete-property/\n");
 			DPRINT("<PROPNODENAME>\n");
@@ -1051,7 +1056,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 149 "dtc-lexer.l"
+#line 154 "dtc-lexer.l"
 {
 			DPRINT("Keyword: /delete-node/\n");
 			DPRINT("<PROPNODENAME>\n");
@@ -1061,7 +1066,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 156 "dtc-lexer.l"
+#line 161 "dtc-lexer.l"
 {
 			DPRINT("Label: %s\n", yytext);
 			yylval.labelref = xstrdup(yytext);
@@ -1071,7 +1076,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 163 "dtc-lexer.l"
+#line 168 "dtc-lexer.l"
 {
 			char *e;
 			DPRINT("Integer Literal: '%s'\n", yytext);
@@ -1097,7 +1102,7 @@ YY_RULE_SETUP
 case 12:
 /* rule 12 can match eol */
 YY_RULE_SETUP
-#line 185 "dtc-lexer.l"
+#line 190 "dtc-lexer.l"
 {
 			struct data d;
 			DPRINT("Character literal: %s\n", yytext);
@@ -1121,7 +1126,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 206 "dtc-lexer.l"
+#line 211 "dtc-lexer.l"
 {	/* label reference */
 			DPRINT("Ref: %s\n", yytext+1);
 			yylval.labelref = xstrdup(yytext+1);
@@ -1130,7 +1135,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 212 "dtc-lexer.l"
+#line 217 "dtc-lexer.l"
 {	/* new-style path reference */
 			yytext[yyleng-1] = '\0';
 			DPRINT("Ref: %s\n", yytext+2);
@@ -1140,7 +1145,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 219 "dtc-lexer.l"
+#line 224 "dtc-lexer.l"
 {
 			yylval.byte = strtol(yytext, NULL, 16);
 			DPRINT("Byte: %02x\n", (int)yylval.byte);
@@ -1149,7 +1154,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 225 "dtc-lexer.l"
+#line 230 "dtc-lexer.l"
 {
 			DPRINT("/BYTESTRING\n");
 			BEGIN_DEFAULT();
@@ -1158,7 +1163,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 231 "dtc-lexer.l"
+#line 236 "dtc-lexer.l"
 {
 			DPRINT("PropNodeName: %s\n", yytext);
 			yylval.propnodename = xstrdup((yytext[0] == '\\') ?
@@ -1169,7 +1174,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 239 "dtc-lexer.l"
+#line 244 "dtc-lexer.l"
 {
 			DPRINT("Binary Include\n");
 			return DT_INCBIN;
@@ -1178,64 +1183,64 @@ YY_RULE_SETUP
 case 19:
 /* rule 19 can match eol */
 YY_RULE_SETUP
-#line 244 "dtc-lexer.l"
+#line 249 "dtc-lexer.l"
 /* eat whitespace */
 	YY_BREAK
 case 20:
 /* rule 20 can match eol */
 YY_RULE_SETUP
-#line 245 "dtc-lexer.l"
+#line 250 "dtc-lexer.l"
 /* eat C-style comments */
 	YY_BREAK
 case 21:
 /* rule 21 can match eol */
 YY_RULE_SETUP
-#line 246 "dtc-lexer.l"
+#line 251 "dtc-lexer.l"
 /* eat C++-style comments */
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 248 "dtc-lexer.l"
+#line 253 "dtc-lexer.l"
 { return DT_LSHIFT; };
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 249 "dtc-lexer.l"
+#line 254 "dtc-lexer.l"
 { return DT_RSHIFT; };
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 250 "dtc-lexer.l"
+#line 255 "dtc-lexer.l"
 { return DT_LE; };
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 251 "dtc-lexer.l"
+#line 256 "dtc-lexer.l"
 { return DT_GE; };
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 252 "dtc-lexer.l"
+#line 257 "dtc-lexer.l"
 { return DT_EQ; };
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 253 "dtc-lexer.l"
+#line 258 "dtc-lexer.l"
 { return DT_NE; };
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 254 "dtc-lexer.l"
+#line 259 "dtc-lexer.l"
 { return DT_AND; };
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 255 "dtc-lexer.l"
+#line 260 "dtc-lexer.l"
 { return DT_OR; };
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 257 "dtc-lexer.l"
+#line 262 "dtc-lexer.l"
 {
 			DPRINT("Char: %c (\\x%02x)\n", yytext[0],
 				(unsigned)yytext[0]);
@@ -1253,10 +1258,10 @@ YY_RULE_SETUP
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 272 "dtc-lexer.l"
+#line 277 "dtc-lexer.l"
 ECHO;
 	YY_BREAK
-#line 1260 "dtc-lexer.lex.c"
+#line 1265 "dtc-lexer.lex.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2215,7 +2220,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 272 "dtc-lexer.l"
+#line 277 "dtc-lexer.l"
 
 
 
diff --git a/scripts/dtc/dtc.c b/scripts/dtc/dtc.c
index f5eed9d72c..bb1e52b318 100644
--- a/scripts/dtc/dtc.c
+++ b/scripts/dtc/dtc.c
@@ -138,7 +138,7 @@ static const char *guess_type_by_name(const char *fname, const char *fallback)
 static const char *guess_input_format(const char *fname, const char *fallback)
 {
 	struct stat statbuf;
-	fdt32_t magic;
+	uint32_t magic;
 	FILE *f;
 
 	if (stat(fname, &statbuf) != 0)
@@ -159,7 +159,8 @@ static const char *guess_input_format(const char *fname, const char *fallback)
 	}
 	fclose(f);
 
-	if (fdt32_to_cpu(magic) == FDT_MAGIC)
+	magic = fdt32_to_cpu(magic);
+	if (magic == FDT_MAGIC)
 		return "dtb";
 
 	return guess_type_by_name(fname, fallback);
diff --git a/scripts/dtc/dtc.h b/scripts/dtc/dtc.h
index 403b79deab..1ac2a1e3a4 100644
--- a/scripts/dtc/dtc.h
+++ b/scripts/dtc/dtc.h
@@ -43,6 +43,7 @@
 #define debug(...)
 #endif
 
+
 #define DEFAULT_FDT_VERSION	17
 
 /*
@@ -113,7 +114,7 @@ struct data data_insert_at_marker(struct data d, struct marker *m,
 struct data data_merge(struct data d1, struct data d2);
 struct data data_append_cell(struct data d, cell_t word);
 struct data data_append_integer(struct data d, uint64_t word, int bits);
-struct data data_append_re(struct data d, uint64_t address, uint64_t size);
+struct data data_append_re(struct data d, const struct fdt_reserve_entry *re);
 struct data data_append_addr(struct data d, uint64_t addr);
 struct data data_append_byte(struct data d, uint8_t byte);
 struct data data_append_zeroes(struct data d, int len);
@@ -226,7 +227,7 @@ uint32_t guess_boot_cpuid(struct node *tree);
 /* Boot info (tree plus memreserve information */
 
 struct reserve_info {
-	uint64_t address, size;
+	struct fdt_reserve_entry re;
 
 	struct reserve_info *next;
 
diff --git a/scripts/dtc/flattree.c b/scripts/dtc/flattree.c
index fcf71541d8..ebac548b3f 100644
--- a/scripts/dtc/flattree.c
+++ b/scripts/dtc/flattree.c
@@ -49,7 +49,7 @@ static struct version_info {
 
 struct emitter {
 	void (*cell)(void *, cell_t);
-	void (*string)(void *, const char *, int);
+	void (*string)(void *, char *, int);
 	void (*align)(void *, int);
 	void (*data)(void *, struct data);
 	void (*beginnode)(void *, struct label *labels);
@@ -64,7 +64,7 @@ static void bin_emit_cell(void *e, cell_t val)
 	*dtbuf = data_append_cell(*dtbuf, val);
 }
 
-static void bin_emit_string(void *e, const char *str, int len)
+static void bin_emit_string(void *e, char *str, int len)
 {
 	struct data *dtbuf = e;
 
@@ -144,14 +144,22 @@ static void asm_emit_cell(void *e, cell_t val)
 		(val >> 8) & 0xff, val & 0xff);
 }
 
-static void asm_emit_string(void *e, const char *str, int len)
+static void asm_emit_string(void *e, char *str, int len)
 {
 	FILE *f = e;
+	char c = 0;
 
-	if (len != 0)
-		fprintf(f, "\t.string\t\"%.*s\"\n", len, str);
-	else
-		fprintf(f, "\t.string\t\"%s\"\n", str);
+	if (len != 0) {
+		/* XXX: ewww */
+		c = str[len];
+		str[len] = '\0';
+	}
+
+	fprintf(f, "\t.string\t\"%s\"\n", str);
+
+	if (len != 0) {
+		str[len] = c;
+	}
 }
 
 static void asm_emit_align(void *e, int a)
@@ -171,7 +179,7 @@ static void asm_emit_data(void *e, struct data d)
 		emit_offset_label(f, m->ref, m->offset);
 
 	while ((d.len - off) >= sizeof(uint32_t)) {
-		asm_emit_cell(e, fdt32_to_cpu(*((fdt32_t *)(d.val+off))));
+		asm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));
 		off += sizeof(uint32_t);
 	}
 
@@ -310,16 +318,17 @@ static struct data flatten_reserve_list(struct reserve_info *reservelist,
 {
 	struct reserve_info *re;
 	struct data d = empty_data;
+	static struct fdt_reserve_entry null_re = {0,0};
 	int    j;
 
 	for (re = reservelist; re; re = re->next) {
-		d = data_append_re(d, re->address, re->size);
+		d = data_append_re(d, &re->re);
 	}
 	/*
 	 * Add additional reserved slots if the user asked for them.
 	 */
 	for (j = 0; j < reservenum; j++) {
-		d = data_append_re(d, 0, 0);
+		d = data_append_re(d, &null_re);
 	}
 
 	return d;
@@ -535,11 +544,11 @@ void dt_to_asm(FILE *f, struct dt_info *dti, int version)
 			fprintf(f, "\t.globl\t%s\n", l->label);
 			fprintf(f, "%s:\n", l->label);
 		}
-		ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->address >> 32));
+		ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.address >> 32));
 		ASM_EMIT_BELONG(f, "0x%08x",
-				(unsigned int)(re->address & 0xffffffff));
-		ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->size >> 32));
-		ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->size & 0xffffffff));
+				(unsigned int)(re->re.address & 0xffffffff));
+		ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size >> 32));
+		ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size & 0xffffffff));
 	}
 	for (i = 0; i < reservenum; i++) {
 		fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n");
@@ -600,7 +609,7 @@ static void flat_read_chunk(struct inbuf *inb, void *p, int len)
 
 static uint32_t flat_read_word(struct inbuf *inb)
 {
-	fdt32_t val;
+	uint32_t val;
 
 	assert(((inb->ptr - inb->base) % sizeof(val)) == 0);
 
@@ -709,15 +718,13 @@ static struct reserve_info *flat_read_mem_reserve(struct inbuf *inb)
 	 * First pass, count entries.
 	 */
 	while (1) {
-		uint64_t address, size;
-
 		flat_read_chunk(inb, &re, sizeof(re));
-		address  = fdt64_to_cpu(re.address);
-		size = fdt64_to_cpu(re.size);
-		if (size == 0)
+		re.address  = fdt64_to_cpu(re.address);
+		re.size = fdt64_to_cpu(re.size);
+		if (re.size == 0)
 			break;
 
-		new = build_reserve_entry(address, size);
+		new = build_reserve_entry(re.address, re.size);
 		reservelist = add_reserve_entry(reservelist, new);
 	}
 
@@ -810,7 +817,6 @@ static struct node *unflatten_tree(struct inbuf *dtbuf,
 struct dt_info *dt_from_blob(const char *fname)
 {
 	FILE *f;
-	fdt32_t magic_buf, totalsize_buf;
 	uint32_t magic, totalsize, version, size_dt, boot_cpuid_phys;
 	uint32_t off_dt, off_str, off_mem_rsvmap;
 	int rc;
@@ -827,7 +833,7 @@ struct dt_info *dt_from_blob(const char *fname)
 
 	f = srcfile_relative_open(fname, NULL);
 
-	rc = fread(&magic_buf, sizeof(magic_buf), 1, f);
+	rc = fread(&magic, sizeof(magic), 1, f);
 	if (ferror(f))
 		die("Error reading DT blob magic number: %s\n",
 		    strerror(errno));
@@ -838,11 +844,11 @@ struct dt_info *dt_from_blob(const char *fname)
 			die("Mysterious short read reading magic number\n");
 	}
 
-	magic = fdt32_to_cpu(magic_buf);
+	magic = fdt32_to_cpu(magic);
 	if (magic != FDT_MAGIC)
 		die("Blob has incorrect magic number\n");
 
-	rc = fread(&totalsize_buf, sizeof(totalsize_buf), 1, f);
+	rc = fread(&totalsize, sizeof(totalsize), 1, f);
 	if (ferror(f))
 		die("Error reading DT blob size: %s\n", strerror(errno));
 	if (rc < 1) {
@@ -852,7 +858,7 @@ struct dt_info *dt_from_blob(const char *fname)
 			die("Mysterious short read reading blob size\n");
 	}
 
-	totalsize = fdt32_to_cpu(totalsize_buf);
+	totalsize = fdt32_to_cpu(totalsize);
 	if (totalsize < FDT_V1_SIZE)
 		die("DT blob size (%d) is too small\n", totalsize);
 
diff --git a/scripts/dtc/libfdt/libfdt_env.h b/scripts/dtc/libfdt/libfdt_env.h
index 952056cddf..99f936dacc 100644
--- a/scripts/dtc/libfdt/libfdt_env.h
+++ b/scripts/dtc/libfdt/libfdt_env.h
@@ -58,16 +58,16 @@
 #include <string.h>
 
 #ifdef __CHECKER__
-#define FDT_FORCE __attribute__((force))
-#define FDT_BITWISE __attribute__((bitwise))
+#define __force __attribute__((force))
+#define __bitwise __attribute__((bitwise))
 #else
-#define FDT_FORCE
-#define FDT_BITWISE
+#define __force
+#define __bitwise
 #endif
 
-typedef uint16_t FDT_BITWISE fdt16_t;
-typedef uint32_t FDT_BITWISE fdt32_t;
-typedef uint64_t FDT_BITWISE fdt64_t;
+typedef uint16_t __bitwise fdt16_t;
+typedef uint32_t __bitwise fdt32_t;
+typedef uint64_t __bitwise fdt64_t;
 
 #define EXTRACT_BYTE(x, n)	((unsigned long long)((uint8_t *)&x)[n])
 #define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
@@ -80,29 +80,29 @@ typedef uint64_t FDT_BITWISE fdt64_t;
 
 static inline uint16_t fdt16_to_cpu(fdt16_t x)
 {
-	return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
+	return (__force uint16_t)CPU_TO_FDT16(x);
 }
 static inline fdt16_t cpu_to_fdt16(uint16_t x)
 {
-	return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
+	return (__force fdt16_t)CPU_TO_FDT16(x);
 }
 
 static inline uint32_t fdt32_to_cpu(fdt32_t x)
 {
-	return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
+	return (__force uint32_t)CPU_TO_FDT32(x);
 }
 static inline fdt32_t cpu_to_fdt32(uint32_t x)
 {
-	return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
+	return (__force fdt32_t)CPU_TO_FDT32(x);
 }
 
 static inline uint64_t fdt64_to_cpu(fdt64_t x)
 {
-	return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
+	return (__force uint64_t)CPU_TO_FDT64(x);
 }
 static inline fdt64_t cpu_to_fdt64(uint64_t x)
 {
-	return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
+	return (__force fdt64_t)CPU_TO_FDT64(x);
 }
 #undef CPU_TO_FDT64
 #undef CPU_TO_FDT32
diff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c
index 3673de07e4..36be9afefd 100644
--- a/scripts/dtc/livetree.c
+++ b/scripts/dtc/livetree.c
@@ -319,8 +319,8 @@ struct reserve_info *build_reserve_entry(uint64_t address, uint64_t size)
 
 	memset(new, 0, sizeof(*new));
 
-	new->address = address;
-	new->size = size;
+	new->re.address = address;
+	new->re.size = size;
 
 	return new;
 }
@@ -393,7 +393,7 @@ struct property *get_property(struct node *node, const char *propname)
 cell_t propval_cell(struct property *prop)
 {
 	assert(prop->val.len == sizeof(cell_t));
-	return fdt32_to_cpu(*((fdt32_t *)prop->val.val));
+	return fdt32_to_cpu(*((cell_t *)prop->val.val));
 }
 
 struct property *get_property_by_label(struct node *tree, const char *label,
@@ -599,13 +599,13 @@ static int cmp_reserve_info(const void *ax, const void *bx)
 	a = *((const struct reserve_info * const *)ax);
 	b = *((const struct reserve_info * const *)bx);
 
-	if (a->address < b->address)
+	if (a->re.address < b->re.address)
 		return -1;
-	else if (a->address > b->address)
+	else if (a->re.address > b->re.address)
 		return 1;
-	else if (a->size < b->size)
+	else if (a->re.size < b->re.size)
 		return -1;
-	else if (a->size > b->size)
+	else if (a->re.size > b->re.size)
 		return 1;
 	else
 		return 0;
@@ -902,7 +902,7 @@ static void add_local_fixup_entry(struct dt_info *dti,
 		struct node *refnode)
 {
 	struct node *wn, *nwn;	/* local fixup node, walk node, new */
-	fdt32_t value_32;
+	uint32_t value_32;
 	char **compp;
 	int i, depth;
 
diff --git a/scripts/dtc/srcpos.h b/scripts/dtc/srcpos.h
index 7caca8257c..2cdfcd82e9 100644
--- a/scripts/dtc/srcpos.h
+++ b/scripts/dtc/srcpos.h
@@ -22,7 +22,6 @@
 
 #include <stdio.h>
 #include <stdbool.h>
-#include "util.h"
 
 struct srcfile_state {
 	FILE *f;
@@ -107,10 +106,12 @@ extern void srcpos_update(struct srcpos *pos, const char *text, int len);
 extern struct srcpos *srcpos_copy(struct srcpos *pos);
 extern char *srcpos_string(struct srcpos *pos);
 
-extern void PRINTF(3, 0) srcpos_verror(struct srcpos *pos, const char *prefix,
-					const char *fmt, va_list va);
-extern void PRINTF(3, 4) srcpos_error(struct srcpos *pos, const char *prefix,
-				      const char *fmt, ...);
+extern void srcpos_verror(struct srcpos *pos, const char *prefix,
+			  const char *fmt, va_list va)
+	__attribute__((format(printf, 3, 0)));
+extern void srcpos_error(struct srcpos *pos, const char *prefix,
+			 const char *fmt, ...)
+	__attribute__((format(printf, 3, 4)));
 
 extern void srcpos_set_line(char *f, int l);
 
diff --git a/scripts/dtc/treesource.c b/scripts/dtc/treesource.c
index 2461a3d068..c9d8967969 100644
--- a/scripts/dtc/treesource.c
+++ b/scripts/dtc/treesource.c
@@ -137,7 +137,7 @@ static void write_propval_string(FILE *f, struct data val)
 static void write_propval_cells(FILE *f, struct data val)
 {
 	void *propend = val.val + val.len;
-	fdt32_t *cp = (fdt32_t *)val.val;
+	cell_t *cp = (cell_t *)val.val;
 	struct marker *m = val.markers;
 
 	fprintf(f, "<");
@@ -275,8 +275,8 @@ void dt_to_source(FILE *f, struct dt_info *dti)
 		for_each_label(re->labels, l)
 			fprintf(f, "%s: ", l->label);
 		fprintf(f, "/memreserve/\t0x%016llx 0x%016llx;\n",
-			(unsigned long long)re->address,
-			(unsigned long long)re->size);
+			(unsigned long long)re->re.address,
+			(unsigned long long)re->re.size);
 	}
 
 	write_tree_source_node(f, dti->dt, 0);
diff --git a/scripts/dtc/util.c b/scripts/dtc/util.c
index 9953c32a02..3550f86bd6 100644
--- a/scripts/dtc/util.c
+++ b/scripts/dtc/util.c
@@ -396,7 +396,7 @@ void utilfdt_print_data(const char *data, int len)
 		} while (s < data + len);
 
 	} else if ((len % 4) == 0) {
-		const fdt32_t *cell = (const fdt32_t *)data;
+		const uint32_t *cell = (const uint32_t *)data;
 
 		printf(" = <");
 		for (i = 0, len /= 4; i < len; i++)
@@ -412,16 +412,15 @@ void utilfdt_print_data(const char *data, int len)
 	}
 }
 
-void NORETURN util_version(void)
+void util_version(void)
 {
 	printf("Version: %s\n", DTC_VERSION);
 	exit(0);
 }
 
-void NORETURN util_usage(const char *errmsg, const char *synopsis,
-			 const char *short_opts,
-			 struct option const long_opts[],
-			 const char * const opts_help[])
+void util_usage(const char *errmsg, const char *synopsis,
+		const char *short_opts, struct option const long_opts[],
+		const char * const opts_help[])
 {
 	FILE *fp = errmsg ? stderr : stdout;
 	const char a_arg[] = "<arg>";
diff --git a/scripts/dtc/util.h b/scripts/dtc/util.h
index ad5f41199e..bc3d223fa6 100644
--- a/scripts/dtc/util.h
+++ b/scripts/dtc/util.h
@@ -25,17 +25,15 @@
  *                                                                   USA
  */
 
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
 #ifdef __GNUC__
-#define PRINTF(i, j)	__attribute__((format (printf, i, j)))
-#define NORETURN	__attribute__((noreturn))
+static inline void
+__attribute__((noreturn)) __attribute__((format (printf, 1, 2)))
+die(const char *str, ...)
 #else
-#define PRINTF(i, j)
-#define NORETURN
+static inline void die(const char *str, ...)
 #endif
-
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-
-static inline void NORETURN PRINTF(1, 2) die(const char *str, ...)
 {
 	va_list ap;
 
@@ -68,7 +66,12 @@ static inline void *xrealloc(void *p, size_t len)
 
 extern char *xstrdup(const char *s);
 
-extern int PRINTF(2, 3) xasprintf(char **strp, const char *fmt, ...);
+#ifdef __GNUC__
+extern int __attribute__((format (printf, 2, 3)))
+xasprintf(char **strp, const char *fmt, ...);
+#else
+extern int xasprintf(char **strp, const char *fmt, ...);
+#endif
 extern char *join_path(const char *path, const char *name);
 
 /**
@@ -197,7 +200,7 @@ void utilfdt_print_data(const char *data, int len);
 /**
  * Show source version and exit
  */
-void NORETURN util_version(void);
+void util_version(void) __attribute__((noreturn));
 
 /**
  * Show usage and exit
@@ -211,10 +214,9 @@ void NORETURN util_version(void);
  * @param long_opts	The structure of long options
  * @param opts_help	An array of help strings (should align with long_opts)
  */
-void NORETURN util_usage(const char *errmsg, const char *synopsis,
-			 const char *short_opts,
-			 struct option const long_opts[],
-			 const char * const opts_help[]);
+void util_usage(const char *errmsg, const char *synopsis,
+		const char *short_opts, struct option const long_opts[],
+		const char * const opts_help[]) __attribute__((noreturn));
 
 /**
  * Show usage and exit
diff --git a/scripts/dtc/version_gen.h b/scripts/dtc/version_gen.h
index 859564e8b4..bbbd96b1dc 100644
--- a/scripts/dtc/version_gen.h
+++ b/scripts/dtc/version_gen.h
@@ -1 +1 @@
-#define DTC_VERSION "DTC 1.4.4"
+#define DTC_VERSION "DTC 1.4.3"
-- 
2.13.3

  parent reply	other threads:[~2017-09-27 14:15 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-24 14:26 [U-Boot] [PATCH 0/5] Follow the Linux Kernel in building dtc as needed Tom Rini
2017-09-24 14:26 ` [U-Boot] [PATCH 1/5] scripts/dtc: Update to upstream version v1.4.3 Tom Rini
2017-10-03 18:24   ` Rob Herring
2017-10-03 18:28     ` Tom Rini
2017-10-03 18:30       ` Rob Herring
2017-10-03 18:44         ` Tom Rini
2017-09-24 14:26 ` [U-Boot] [PATCH 2/5] scripts/dtc: Update to upstream version v1.4.4 Tom Rini
2017-09-24 14:27 ` [U-Boot] [PATCH 3/5] scripts/dtc: Update to upstream version v1.4.4-50-gfe50bd1ecc1d Tom Rini
2017-09-24 14:27 ` [U-Boot] [PATCH 4/5] dtc: Switch to building and using our own dtc unless provided Tom Rini
2017-09-24 14:27 ` [U-Boot] [PATCH 5/5] tools/mkimage: Make the path to the dtc binary that mkimage calls configurable Tom Rini
2017-09-24 16:50 ` [U-Boot] [PATCH 0/5] Follow the Linux Kernel in building dtc as needed Marek Vasut
2017-09-24 17:28   ` Tom Rini
2017-09-24 20:39     ` Łukasz Majewski
2017-09-24 22:00       ` Tom Rini
2017-09-25  8:32     ` Marek Vasut
2017-09-25  8:28 ` Wolfgang Denk
2017-09-27 14:15 ` [U-Boot] [PATCH 0/5] REVERT " Wolfgang Denk
2017-09-27 14:15   ` [U-Boot] [PATCH 1/5] Revert "tools/mkimage: Make the path to the dtc binary that mkimage calls configurable" Wolfgang Denk
2017-09-27 14:15   ` [U-Boot] [PATCH 2/5] Revert "dtc: Switch to building and using our own dtc unless provided" Wolfgang Denk
2017-09-27 14:15   ` [U-Boot] [PATCH 3/5] Revert "scripts/dtc: Update to upstream version v1.4.4-50-gfe50bd1ecc1d" Wolfgang Denk
2017-09-27 14:15   ` Wolfgang Denk [this message]
2017-09-27 14:15   ` [U-Boot] [PATCH 5/5] Revert "scripts/dtc: Update to upstream version v1.4.3" Wolfgang Denk
2017-09-27 14:31   ` [U-Boot] [PATCH 0/5] REVERT Follow the Linux Kernel in building dtc as needed Tom Rini
2017-09-27 14:56     ` Wolfgang Denk
2017-09-27 15:23       ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170927141524.5920-5-wd@denx.de \
    --to=wd@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.