2019-06-21 17:18:32 +03:00
/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
2018-02-28 02:40:38 +03:00
# ifndef FDT_H
# define FDT_H
2015-04-30 00:00:05 +03:00
/*
* libfdt - Flat Device Tree manipulation
* Copyright ( C ) 2006 David Gibson , IBM Corporation .
* Copyright 2012 Kim Phillips , Freescale Semiconductor .
*/
2007-12-10 06:28:39 +03:00
# ifndef __ASSEMBLY__
struct fdt_header {
2015-04-30 00:00:05 +03:00
fdt32_t magic ; /* magic word FDT_MAGIC */
fdt32_t totalsize ; /* total size of DT block */
fdt32_t off_dt_struct ; /* offset to structure */
fdt32_t off_dt_strings ; /* offset to strings */
fdt32_t off_mem_rsvmap ; /* offset to memory reserve map */
fdt32_t version ; /* format version */
fdt32_t last_comp_version ; /* last compatible version */
2007-12-10 06:28:39 +03:00
/* version 2 fields below */
2015-04-30 00:00:05 +03:00
fdt32_t boot_cpuid_phys ; /* Which physical CPU id we're
2007-12-10 06:28:39 +03:00
booting on */
/* version 3 fields below */
2015-04-30 00:00:05 +03:00
fdt32_t size_dt_strings ; /* size of the strings block */
2007-12-10 06:28:39 +03:00
/* version 17 fields below */
2015-04-30 00:00:05 +03:00
fdt32_t size_dt_struct ; /* size of the structure block */
2007-12-10 06:28:39 +03:00
} ;
struct fdt_reserve_entry {
2015-04-30 00:00:05 +03:00
fdt64_t address ;
fdt64_t size ;
2007-12-10 06:28:39 +03:00
} ;
struct fdt_node_header {
2015-04-30 00:00:05 +03:00
fdt32_t tag ;
2023-02-03 18:13:46 +03:00
char name [ ] ;
2007-12-10 06:28:39 +03:00
} ;
struct fdt_property {
2015-04-30 00:00:05 +03:00
fdt32_t tag ;
fdt32_t len ;
fdt32_t nameoff ;
2023-02-03 18:13:46 +03:00
char data [ ] ;
2007-12-10 06:28:39 +03:00
} ;
# endif /* !__ASSEMBLY */
# define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */
2015-04-30 00:00:05 +03:00
# define FDT_TAGSIZE sizeof(fdt32_t)
2007-12-10 06:28:39 +03:00
# 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
2015-04-30 00:00:05 +03:00
# define FDT_V1_SIZE (7*sizeof(fdt32_t))
# define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(fdt32_t))
# define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(fdt32_t))
2007-12-10 06:28:39 +03:00
# define FDT_V16_SIZE FDT_V3_SIZE
2015-04-30 00:00:05 +03:00
# define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(fdt32_t))
2007-12-10 06:28:39 +03:00
2018-02-28 02:40:38 +03:00
# endif /* FDT_H */