#ifndef _FDT_H
#define _FDT_H

#ifndef __ASSEMBLY__

struct fdt_header {
	uint32_t magic;                  /* magic word FDT_MAGIC */
	uint32_t totalsize;              /* total size of DT block */
	uint32_t off_dt_struct;          /* offset to structure */
	uint32_t off_dt_strings;         /* offset to strings */
	uint32_t off_mem_rsvmap;         /* offset to memory reserve map */
	uint32_t version;                /* format version */
	uint32_t last_comp_version;      /* last compatible version */

        /* version 2 fields below */
	uint32_t boot_cpuid_phys;        /* Which physical CPU id we're
					    booting on */
	/* version 3 fields below */
        uint32_t size_dt_strings;        /* size of the strings block */

	/* version 17 fields below */
	uint32_t size_dt_struct;         /* size of the structure block */
};

struct fdt_reserve_entry {
	uint64_t address;
	uint64_t size;
};

struct fdt_node_header {
	uint32_t tag;
	char name[0];
};

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

#endif /* !__ASSEMBLY */

#define FDT_MAGIC	0xd00dfeed      /* 4: version, 4: total size */
#define FDT_TAGSIZE	sizeof(uint32_t)

#define FDT_BEGIN_NODE	0x1             /* Start node: full name */
#define FDT_END_NODE	0x2             /* End node */
#define FDT_PROP	0x3             /* Property: name off,
					   size, content */
#define FDT_NOP		0x4		/* nop */
#define FDT_END		0x9

#define FDT_V1_SIZE	(7*sizeof(uint32_t))
#define FDT_V2_SIZE	(FDT_V1_SIZE + sizeof(uint32_t))
#define FDT_V3_SIZE	(FDT_V2_SIZE + sizeof(uint32_t))
#define FDT_V16_SIZE	FDT_V3_SIZE
#define FDT_V17_SIZE	(FDT_V16_SIZE + sizeof(uint32_t))

#endif /* _FDT_H */
