thor: fix invalid larger device descriptor than requested
[profile/mobile/platform/kernel/u-boot-tm1.git] / property / dev_tree.h
1 /* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met:
6  * * Redistributions of source code must retain the above copyright
7  *  notice, this list of conditions and the following disclaimer.
8  *  * Redistributions in binary form must reproduce the above
9  * copyright notice, this list of conditions and the following
10  * disclaimer in the documentation and/or other materials provided
11  *  with the distribution.
12  *   * Neither the name of The Linux Foundation nor the names of its
13  * contributors may be used to endorse or promote products derived
14  * from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29 //#include <debug.h>
30
31 #ifndef __DEVICE_TREE__
32 #define __DEVICE_TREE__
33
34 #define DEV_TREE_SUCCESS        0
35 //#define DEV_TREE_MAGIC          0x54444351 /* "QCDT" */
36 #define DEV_TREE_MAGIC          0x44525053 /* "SPRD" */
37 #define DEV_TREE_MAGIC_LEN      4
38 #define DEV_TREE_VERSION        1
39 #define DEV_TREE_HEADER_SIZE    12
40
41 #define DTB_MAGIC               0xedfe0dd0
42 #define DTB_OFFSET              0x2C
43
44 #define DTB_PAD_SIZE            1024
45
46 struct dt_entry
47 {
48         uint32_t platform_id;
49         uint32_t variant_id;
50         uint32_t soc_rev;
51         uint32_t offset;
52         uint32_t size;
53 };
54
55 struct dt_table
56 {
57         uint32_t magic;
58         uint32_t version;
59         uint32_t num_entries;
60 };
61
62 enum dt_err_codes
63 {
64         DT_OP_SUCCESS,
65         DT_OP_FAILURE = -1,
66 };
67
68 struct dt_entry * dev_tree_get_entry_ptr(struct dt_table *);
69 int update_device_tree(void *, const char *, void *, unsigned);
70 int dev_tree_add_mem_info(void *fdt, uint32_t offset, uint32_t size, uint32_t addr);
71 void *dev_tree_appended(void *kernel, void *tags, uint32_t kernel_size);
72 int load_dtb(int addr,void* dt_img_adr);
73 #endif