]>
Commit | Line | Data |
---|---|---|
f0921f50 | 1 | /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */ |
db405d19 RH |
2 | #ifndef FDT_H |
3 | #define FDT_H | |
c0e032e0 TR |
4 | /* |
5 | * libfdt - Flat Device Tree manipulation | |
6 | * Copyright (C) 2006 David Gibson, IBM Corporation. | |
7 | * Copyright 2012 Kim Phillips, Freescale Semiconductor. | |
c0e032e0 TR |
8 | */ |
9 | ||
10 | #ifndef __ASSEMBLY__ | |
11 | ||
12 | struct fdt_header { | |
13 | fdt32_t magic; /* magic word FDT_MAGIC */ | |
14 | fdt32_t totalsize; /* total size of DT block */ | |
15 | fdt32_t off_dt_struct; /* offset to structure */ | |
16 | fdt32_t off_dt_strings; /* offset to strings */ | |
17 | fdt32_t off_mem_rsvmap; /* offset to memory reserve map */ | |
18 | fdt32_t version; /* format version */ | |
19 | fdt32_t last_comp_version; /* last compatible version */ | |
20 | ||
21 | /* version 2 fields below */ | |
22 | fdt32_t boot_cpuid_phys; /* Which physical CPU id we're | |
23 | booting on */ | |
24 | /* version 3 fields below */ | |
25 | fdt32_t size_dt_strings; /* size of the strings block */ | |
26 | ||
27 | /* version 17 fields below */ | |
28 | fdt32_t size_dt_struct; /* size of the structure block */ | |
29 | }; | |
30 | ||
31 | struct fdt_reserve_entry { | |
32 | fdt64_t address; | |
33 | fdt64_t size; | |
34 | }; | |
35 | ||
36 | struct fdt_node_header { | |
37 | fdt32_t tag; | |
38 | char name[0]; | |
39 | }; | |
40 | ||
41 | struct fdt_property { | |
42 | fdt32_t tag; | |
43 | fdt32_t len; | |
44 | fdt32_t nameoff; | |
45 | char data[0]; | |
46 | }; | |
47 | ||
48 | #endif /* !__ASSEMBLY */ | |
49 | ||
50 | #define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */ | |
51 | #define FDT_TAGSIZE sizeof(fdt32_t) | |
52 | ||
53 | #define FDT_BEGIN_NODE 0x1 /* Start node: full name */ | |
54 | #define FDT_END_NODE 0x2 /* End node */ | |
55 | #define FDT_PROP 0x3 /* Property: name off, | |
56 | size, content */ | |
57 | #define FDT_NOP 0x4 /* nop */ | |
58 | #define FDT_END 0x9 | |
59 | ||
60 | #define FDT_V1_SIZE (7*sizeof(fdt32_t)) | |
61 | #define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(fdt32_t)) | |
62 | #define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(fdt32_t)) | |
63 | #define FDT_V16_SIZE FDT_V3_SIZE | |
64 | #define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(fdt32_t)) | |
65 | ||
db405d19 | 66 | #endif /* FDT_H */ |