19537Satgutier@umich.edu/* 29537Satgutier@umich.edu * libfdt - Flat Device Tree manipulation 39537Satgutier@umich.edu * Copyright (C) 2006 David Gibson, IBM Corporation. 49537Satgutier@umich.edu * 59537Satgutier@umich.edu * Redistribution and use in source and binary forms, with or 69537Satgutier@umich.edu * without modification, are permitted provided that the following 79537Satgutier@umich.edu * conditions are met: 89537Satgutier@umich.edu * 99537Satgutier@umich.edu * 1. Redistributions of source code must retain the above 109537Satgutier@umich.edu * copyright notice, this list of conditions and the following 119537Satgutier@umich.edu * disclaimer. 129537Satgutier@umich.edu * 2. Redistributions in binary form must reproduce the above 139537Satgutier@umich.edu * copyright notice, this list of conditions and the following 149537Satgutier@umich.edu * disclaimer in the documentation and/or other materials 159537Satgutier@umich.edu * provided with the distribution. 169537Satgutier@umich.edu * 179537Satgutier@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 189537Satgutier@umich.edu * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 199537Satgutier@umich.edu * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 209537Satgutier@umich.edu * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 219537Satgutier@umich.edu * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 229537Satgutier@umich.edu * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 239537Satgutier@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 249537Satgutier@umich.edu * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 259537Satgutier@umich.edu * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 269537Satgutier@umich.edu * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 279537Satgutier@umich.edu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 289537Satgutier@umich.edu * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 299537Satgutier@umich.edu * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 309537Satgutier@umich.edu */ 319537Satgutier@umich.edu#ifndef _FDT_H 329537Satgutier@umich.edu#define _FDT_H 339537Satgutier@umich.edu 349537Satgutier@umich.edu#ifdef __cplusplus 359537Satgutier@umich.eduextern "C" { 369537Satgutier@umich.edu#endif 379537Satgutier@umich.edu 389537Satgutier@umich.edu#ifndef __ASSEMBLY__ 399537Satgutier@umich.edu 409537Satgutier@umich.edu#include "libfdt_env.h" 419537Satgutier@umich.edu 429537Satgutier@umich.edustruct fdt_header { 439537Satgutier@umich.edu fdt32_t magic; /* magic word FDT_MAGIC */ 449537Satgutier@umich.edu fdt32_t totalsize; /* total size of DT block */ 459537Satgutier@umich.edu fdt32_t off_dt_struct; /* offset to structure */ 469537Satgutier@umich.edu fdt32_t off_dt_strings; /* offset to strings */ 479537Satgutier@umich.edu fdt32_t off_mem_rsvmap; /* offset to memory reserve map */ 489537Satgutier@umich.edu fdt32_t version; /* format version */ 499537Satgutier@umich.edu fdt32_t last_comp_version; /* last compatible version */ 509537Satgutier@umich.edu 519537Satgutier@umich.edu /* version 2 fields below */ 529537Satgutier@umich.edu fdt32_t boot_cpuid_phys; /* Which physical CPU id we're 539537Satgutier@umich.edu booting on */ 549537Satgutier@umich.edu /* version 3 fields below */ 559537Satgutier@umich.edu fdt32_t size_dt_strings; /* size of the strings block */ 569537Satgutier@umich.edu 579537Satgutier@umich.edu /* version 17 fields below */ 589537Satgutier@umich.edu fdt32_t size_dt_struct; /* size of the structure block */ 599537Satgutier@umich.edu}; 609537Satgutier@umich.edu 619537Satgutier@umich.edustruct fdt_reserve_entry { 629537Satgutier@umich.edu fdt64_t address; 639537Satgutier@umich.edu fdt64_t size; 649537Satgutier@umich.edu}; 659537Satgutier@umich.edu 669537Satgutier@umich.edustruct fdt_node_header { 679537Satgutier@umich.edu fdt32_t tag; 689537Satgutier@umich.edu char name[0]; 699537Satgutier@umich.edu}; 709537Satgutier@umich.edu 719537Satgutier@umich.edustruct fdt_property { 729537Satgutier@umich.edu fdt32_t tag; 739537Satgutier@umich.edu fdt32_t len; 749537Satgutier@umich.edu fdt32_t nameoff; 759537Satgutier@umich.edu char data[0]; 769537Satgutier@umich.edu}; 779537Satgutier@umich.edu 789537Satgutier@umich.edu#endif /* !__ASSEMBLY */ 799537Satgutier@umich.edu 809537Satgutier@umich.edu#define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */ 819537Satgutier@umich.edu#define FDT_TAGSIZE sizeof(fdt32_t) 829537Satgutier@umich.edu 839537Satgutier@umich.edu#define FDT_BEGIN_NODE 0x1 /* Start node: full name */ 849537Satgutier@umich.edu#define FDT_END_NODE 0x2 /* End node */ 859537Satgutier@umich.edu#define FDT_PROP 0x3 /* Property: name off, 869537Satgutier@umich.edu size, content */ 879537Satgutier@umich.edu#define FDT_NOP 0x4 /* nop */ 889537Satgutier@umich.edu#define FDT_END 0x9 899537Satgutier@umich.edu 909537Satgutier@umich.edu#define FDT_V1_SIZE (7*sizeof(fdt32_t)) 919537Satgutier@umich.edu#define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(fdt32_t)) 929537Satgutier@umich.edu#define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(fdt32_t)) 939537Satgutier@umich.edu#define FDT_V16_SIZE FDT_V3_SIZE 949537Satgutier@umich.edu#define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(fdt32_t)) 959537Satgutier@umich.edu 969537Satgutier@umich.edu#ifdef __cplusplus 979537Satgutier@umich.edu} 989537Satgutier@umich.edu#endif 999537Satgutier@umich.edu 1009537Satgutier@umich.edu#endif /* _FDT_H */ 101