linux/scripts/dtc/libfdt/fdt.h
<<
>>
Prefs
   1#ifndef _FDT_H
   2#define _FDT_H
   3
   4#ifndef __ASSEMBLY__
   5
   6struct fdt_header {
   7        uint32_t magic;                  /* magic word FDT_MAGIC */
   8        uint32_t totalsize;              /* total size of DT block */
   9        uint32_t off_dt_struct;          /* offset to structure */
  10        uint32_t off_dt_strings;         /* offset to strings */
  11        uint32_t off_mem_rsvmap;         /* offset to memory reserve map */
  12        uint32_t version;                /* format version */
  13        uint32_t last_comp_version;      /* last compatible version */
  14
  15        /* version 2 fields below */
  16        uint32_t boot_cpuid_phys;        /* Which physical CPU id we're
  17                                            booting on */
  18        /* version 3 fields below */
  19        uint32_t size_dt_strings;        /* size of the strings block */
  20
  21        /* version 17 fields below */
  22        uint32_t size_dt_struct;         /* size of the structure block */
  23};
  24
  25struct fdt_reserve_entry {
  26        uint64_t address;
  27        uint64_t size;
  28};
  29
  30struct fdt_node_header {
  31        uint32_t tag;
  32        char name[0];
  33};
  34
  35struct fdt_property {
  36        uint32_t tag;
  37        uint32_t len;
  38        uint32_t nameoff;
  39        char data[0];
  40};
  41
  42#endif /* !__ASSEMBLY */
  43
  44#define FDT_MAGIC       0xd00dfeed      /* 4: version, 4: total size */
  45#define FDT_TAGSIZE     sizeof(uint32_t)
  46
  47#define FDT_BEGIN_NODE  0x1             /* Start node: full name */
  48#define FDT_END_NODE    0x2             /* End node */
  49#define FDT_PROP        0x3             /* Property: name off,
  50                                           size, content */
  51#define FDT_NOP         0x4             /* nop */
  52#define FDT_END         0x9
  53
  54#define FDT_V1_SIZE     (7*sizeof(uint32_t))
  55#define FDT_V2_SIZE     (FDT_V1_SIZE + sizeof(uint32_t))
  56#define FDT_V3_SIZE     (FDT_V2_SIZE + sizeof(uint32_t))
  57#define FDT_V16_SIZE    FDT_V3_SIZE
  58#define FDT_V17_SIZE    (FDT_V16_SIZE + sizeof(uint32_t))
  59
  60#endif /* _FDT_H */
  61