mirror of
https://github.com/dgibson/dtc.git
synced 2025-12-08 12:45:29 -05:00
libfdt - library for manipulating device trees in flattened format
Initial revision, read-only and "in-place" (no memmove() required) write operations only.
This commit is contained in:
commit
3da0f9a10d
25 changed files with 1868 additions and 0 deletions
84
tests/trees.S
Normal file
84
tests/trees.S
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
#include <fdt.h>
|
||||
#include "testdata.h"
|
||||
|
||||
#define TREE_HDR(tree) \
|
||||
.globl _##tree ; \
|
||||
_##tree: \
|
||||
tree: \
|
||||
.long FDT_MAGIC ; \
|
||||
.long tree##_end - tree ; \
|
||||
.long tree##_struct - tree ; \
|
||||
.long tree##_strings - tree ; \
|
||||
.long tree##_rsvmap - tree ; \
|
||||
.long 0x10 ; \
|
||||
.long 0x10 ; \
|
||||
.long 0 ; \
|
||||
.long tree##_end - tree##_strings ;
|
||||
|
||||
#define RSVMAP_ENTRY(addr, len) \
|
||||
.quad addr ; \
|
||||
.quad len ;
|
||||
|
||||
#define PROPHDR(tree, name, len) \
|
||||
.long FDT_PROP ; \
|
||||
.long tree##_##name - tree##_strings ; \
|
||||
.long len ;
|
||||
|
||||
#define PROP_INT(tree, name, val) \
|
||||
PROPHDR(tree, name, 4) \
|
||||
.long val
|
||||
|
||||
#define PROP_STR(tree, name, str) \
|
||||
PROPHDR(tree, name, 55f - 54f) \
|
||||
54: \
|
||||
.string str ; \
|
||||
55: \
|
||||
.balign 4
|
||||
|
||||
#define BEGIN_NODE(name) \
|
||||
.long FDT_BEGIN_NODE ; \
|
||||
.string name ; \
|
||||
.balign 4
|
||||
|
||||
#define END_NODE \
|
||||
.long FDT_END_NODE ;
|
||||
|
||||
#define STRING(tree, name, str) \
|
||||
tree##_##name: \
|
||||
.string str
|
||||
|
||||
.data
|
||||
|
||||
TREE_HDR(test_tree1)
|
||||
|
||||
test_tree1_rsvmap:
|
||||
RSVMAP_ENTRY(0, 0)
|
||||
|
||||
test_tree1_struct:
|
||||
BEGIN_NODE("")
|
||||
PROP_INT(test_tree1, prop_int, TEST_VALUE_1)
|
||||
PROP_STR(test_tree1, prop_str, TEST_STRING_1)
|
||||
|
||||
BEGIN_NODE("subnode1")
|
||||
PROP_INT(test_tree1, prop_int, TEST_VALUE_1)
|
||||
|
||||
BEGIN_NODE("subsubnode")
|
||||
PROP_INT(test_tree1, prop_int, TEST_VALUE_1)
|
||||
END_NODE
|
||||
END_NODE
|
||||
|
||||
BEGIN_NODE("subnode2")
|
||||
PROP_INT(test_tree1, prop_int, TEST_VALUE_2)
|
||||
|
||||
BEGIN_NODE("subsubnode")
|
||||
PROP_INT(test_tree1, prop_int, TEST_VALUE_2)
|
||||
END_NODE
|
||||
END_NODE
|
||||
|
||||
END_NODE
|
||||
.long FDT_END
|
||||
|
||||
test_tree1_strings:
|
||||
STRING(test_tree1, prop_int, "prop-int")
|
||||
STRING(test_tree1, prop_str, "prop-str")
|
||||
test_tree1_end:
|
||||
Loading…
Add table
Add a link
Reference in a new issue