Subject: libfdt: a fix but still broken

From: Jerry Van Baren <[email-masked]>
Date: Thu, 22 Feb 2007 08:27:29 -0500

Hi Dave,

I have good news and bad news. ;-)  The good news is that the 
incompatibility between libfdt and jdl's dtc is that libfdt has the name 
offset and the length of the name switched.  booting_without_of.txt says 
the length comes first, so libfdt is in the wrong.

The bad news is that, when I fix this, nearly all of the tests fail (but 
they fail the same way for both tree.S and jdl's dtc).  I have not 
started on that layer of the onion yet.

Best regards,
gvb

$ git diff fdt.h
diff --git a/fdt.h b/fdt.h
index fff533e..4687a31 100644
--- a/fdt.h
+++ b/fdt.h
@@ -36,8 +36,8 @@ struct fdt_node_header {

  struct fdt_property {
         uint32_t tag;
-       uint32_t nameoff;
         uint32_t len;
+       uint32_t nameoff;
         char data[0];
  };

$ git diff tests/trees.S
diff --git a/tests/trees.S b/tests/trees.S
index 76c0057..400e7d0 100644
--- a/tests/trees.S
+++ b/tests/trees.S
@@ -39,8 +39,8 @@ tree: \

  #define PROPHDR(tree, name, len) \
         FDTLONG(FDT_PROP)       ; \
-       FDTLONG(tree##_##name - tree##_strings) ; \
-       FDTLONG(len)            ;
+       FDTLONG(len)            ; \
+       FDTLONG(tree##_##name - tree##_strings) ;

  #define PROP_INT(tree, name, val) \
         PROPHDR(tree, name, 4) \

______________________________________________________________________
CAUTION: This message was sent via the Public Internet and its 
authenticity cannot be guaranteed.

______________________________________________________