[Crosstoolchain-logs] [device-tree-compiler] 98/357: dtc: parse NOP in dtb input

Hector Oron zumbi at moszumanska.debian.org
Thu Dec 8 17:05:54 UTC 2016


This is an automated email from the git hooks/post-receive script.

zumbi pushed a commit to branch upstream/1.3.x
in repository device-tree-compiler.

commit ce243227f1fd9d0353b428481b5a599db16a9d05
Author: Milton Miller <miltonm at bga.com>
Date:   Sat Jun 9 23:21:31 2007 -0500

    dtc: parse NOP in dtb input
    
    Version 16 and later of the flat device tree format allow NOPs
    to be placed in the tree.  When processing dtb input, dtc must
    recognise them.
    
    Previously it would produce the error message
    FATAL ERROR: Invalid opcode word 00000004 in device tree blob
    
    Signed-off-by: Milton Miller <miltonm at bga.com>
---
 flattree.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/flattree.c b/flattree.c
index b54f7ef..b802e2c 100644
--- a/flattree.c
+++ b/flattree.c
@@ -27,6 +27,7 @@
 #define FTF_BOOTCPUID	0x8
 #define FTF_STRTABSIZE	0x10
 #define FTF_STRUCTSIZE	0x20
+#define FTF_NOPS	0x40
 
 static struct version_info {
 	int version;
@@ -41,9 +42,9 @@ static struct version_info {
 	{3, 1, BPH_V3_SIZE,
 	 FTF_FULLPATH|FTF_VARALIGN|FTF_NAMEPROPS|FTF_BOOTCPUID|FTF_STRTABSIZE},
 	{16, 16, BPH_V3_SIZE,
-	 FTF_BOOTCPUID|FTF_STRTABSIZE},
+	 FTF_BOOTCPUID|FTF_STRTABSIZE|FTF_NOPS},
 	{17, 16, BPH_V17_SIZE,
-	 FTF_BOOTCPUID|FTF_STRTABSIZE|FTF_STRUCTSIZE},
+	 FTF_BOOTCPUID|FTF_STRTABSIZE|FTF_STRUCTSIZE|FTF_NOPS},
 };
 
 struct emitter {
@@ -774,6 +775,13 @@ static struct node *unflatten_tree(struct inbuf *dtbuf,
 			die("Premature OF_DT_END in device tree blob\n");
 			break;
 
+		case OF_DT_NOP:
+			if (flags & FTF_NOPS)
+				break;
+
+			die("OF_DT_NOP in device tree blob\n");
+			break;
+
 		default:
 			die("Invalid opcode word %08x in device tree blob\n",
 			    val);
@@ -895,6 +903,8 @@ struct boot_info *dt_from_blob(FILE *f)
 			
 	if (version < 16) {
 		flags |= FTF_FULLPATH | FTF_NAMEPROPS | FTF_VARALIGN;
+	} else {
+		flags |= FTF_NOPS;
 	}
 
 	inbuf_init(&memresvbuf,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/crosstoolchain/device-tree-compiler.git



More information about the Crosstoolchain-logs mailing list