1204431Sraj#ifndef _FDT_H 2204431Sraj#define _FDT_H 3204431Sraj 4204431Sraj#ifndef __ASSEMBLY__ 5204431Sraj 6204431Srajstruct fdt_header { 7204431Sraj uint32_t magic; /* magic word FDT_MAGIC */ 8204431Sraj uint32_t totalsize; /* total size of DT block */ 9204431Sraj uint32_t off_dt_struct; /* offset to structure */ 10204431Sraj uint32_t off_dt_strings; /* offset to strings */ 11204431Sraj uint32_t off_mem_rsvmap; /* offset to memory reserve map */ 12204431Sraj uint32_t version; /* format version */ 13204431Sraj uint32_t last_comp_version; /* last compatible version */ 14204431Sraj 15204431Sraj /* version 2 fields below */ 16204431Sraj uint32_t boot_cpuid_phys; /* Which physical CPU id we're 17204431Sraj booting on */ 18204431Sraj /* version 3 fields below */ 19204431Sraj uint32_t size_dt_strings; /* size of the strings block */ 20204431Sraj 21204431Sraj /* version 17 fields below */ 22204431Sraj uint32_t size_dt_struct; /* size of the structure block */ 23204431Sraj}; 24204431Sraj 25204431Srajstruct fdt_reserve_entry { 26204431Sraj uint64_t address; 27204431Sraj uint64_t size; 28204431Sraj}; 29204431Sraj 30204431Srajstruct fdt_node_header { 31204431Sraj uint32_t tag; 32204431Sraj char name[0]; 33204431Sraj}; 34204431Sraj 35204431Srajstruct fdt_property { 36204431Sraj uint32_t tag; 37204431Sraj uint32_t len; 38204431Sraj uint32_t nameoff; 39204431Sraj char data[0]; 40204431Sraj}; 41204431Sraj 42204431Sraj#endif /* !__ASSEMBLY */ 43204431Sraj 44204431Sraj#define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */ 45204431Sraj#define FDT_TAGSIZE sizeof(uint32_t) 46204431Sraj 47204431Sraj#define FDT_BEGIN_NODE 0x1 /* Start node: full name */ 48204431Sraj#define FDT_END_NODE 0x2 /* End node */ 49204431Sraj#define FDT_PROP 0x3 /* Property: name off, 50204431Sraj size, content */ 51204431Sraj#define FDT_NOP 0x4 /* nop */ 52204431Sraj#define FDT_END 0x9 53204431Sraj 54204431Sraj#define FDT_V1_SIZE (7*sizeof(uint32_t)) 55204431Sraj#define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(uint32_t)) 56204431Sraj#define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(uint32_t)) 57204431Sraj#define FDT_V16_SIZE FDT_V3_SIZE 58204431Sraj#define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(uint32_t)) 59204431Sraj 60204431Sraj#endif /* _FDT_H */ 61