~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/include/fdt_support.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (C) Copyright 2007
 
3
 * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com
 
4
 *
 
5
 * SPDX-License-Identifier:     GPL-2.0+
 
6
 */
 
7
 
 
8
#ifndef __FDT_SUPPORT_H
 
9
#define __FDT_SUPPORT_H
 
10
 
 
11
#ifdef CONFIG_OF_LIBFDT
 
12
 
 
13
#include <libfdt.h>
 
14
 
 
15
u32 fdt_getprop_u32_default_node(const void *fdt, int off, int cell,
 
16
                                const char *prop, const u32 dflt);
 
17
u32 fdt_getprop_u32_default(const void *fdt, const char *path,
 
18
                                const char *prop, const u32 dflt);
 
19
int fdt_chosen(void *fdt, int force);
 
20
int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int force);
 
21
void do_fixup_by_path(void *fdt, const char *path, const char *prop,
 
22
                      const void *val, int len, int create);
 
23
void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
 
24
                          u32 val, int create);
 
25
 
 
26
static inline void do_fixup_by_path_string(void *fdt, const char *path,
 
27
                                           const char *prop, const char *status)
 
28
{
 
29
        do_fixup_by_path(fdt, path, prop, status, strlen(status) + 1, 1);
 
30
}
 
31
 
 
32
void do_fixup_by_prop(void *fdt,
 
33
                      const char *pname, const void *pval, int plen,
 
34
                      const char *prop, const void *val, int len,
 
35
                      int create);
 
36
void do_fixup_by_prop_u32(void *fdt,
 
37
                          const char *pname, const void *pval, int plen,
 
38
                          const char *prop, u32 val, int create);
 
39
void do_fixup_by_compat(void *fdt, const char *compat,
 
40
                        const char *prop, const void *val, int len, int create);
 
41
void do_fixup_by_compat_u32(void *fdt, const char *compat,
 
42
                            const char *prop, u32 val, int create);
 
43
int fdt_fixup_memory(void *blob, u64 start, u64 size);
 
44
int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks);
 
45
void fdt_fixup_ethernet(void *fdt);
 
46
int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
 
47
                         const void *val, int len, int create);
 
48
void fdt_fixup_qe_firmware(void *fdt);
 
49
 
 
50
#if defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB)
 
51
void fdt_fixup_dr_usb(void *blob, bd_t *bd);
 
52
#else
 
53
static inline void fdt_fixup_dr_usb(void *blob, bd_t *bd) {}
 
54
#endif /* defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) */
 
55
 
 
56
#if defined(CONFIG_SYS_FSL_SEC_COMPAT)
 
57
void fdt_fixup_crypto_node(void *blob, int sec_rev);
 
58
#else
 
59
static inline void fdt_fixup_crypto_node(void *blob, int sec_rev) {}
 
60
#endif
 
61
 
 
62
#ifdef CONFIG_PCI
 
63
#include <pci.h>
 
64
int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose);
 
65
#endif
 
66
 
 
67
void ft_board_setup(void *blob, bd_t *bd);
 
68
/*
 
69
 * The keystone2 SOC requires all 32 bit aliased addresses to be converted
 
70
 * to their 36 physical format. This has to happen after all fdt nodes
 
71
 * are added or modified by the image_setup_libfdt(). The ft_board_setup_ex()
 
72
 * called at the end of the image_setup_libfdt() is to do that convertion.
 
73
 */
 
74
void ft_board_setup_ex(void *blob, bd_t *bd);
 
75
void ft_cpu_setup(void *blob, bd_t *bd);
 
76
void ft_pci_setup(void *blob, bd_t *bd);
 
77
 
 
78
void set_working_fdt_addr(void *addr);
 
79
int fdt_resize(void *blob);
 
80
int fdt_increase_size(void *fdt, int add_len);
 
81
 
 
82
int fdt_fixup_nor_flash_size(void *blob);
 
83
 
 
84
void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size);
 
85
void fdt_del_node_and_alias(void *blob, const char *alias);
 
86
u64 fdt_translate_address(void *blob, int node_offset, const __be32 *in_addr);
 
87
int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 
88
                                        phys_addr_t compat_off);
 
89
int fdt_alloc_phandle(void *blob);
 
90
int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle);
 
91
unsigned int fdt_create_phandle(void *fdt, int nodeoffset);
 
92
int fdt_add_edid(void *blob, const char *compat, unsigned char *buf);
 
93
 
 
94
int fdt_verify_alias_address(void *fdt, int anode, const char *alias,
 
95
                              u64 addr);
 
96
u64 fdt_get_base_address(void *fdt, int node);
 
97
int fdt_read_range(void *fdt, int node, int n, uint64_t *child_addr,
 
98
                   uint64_t *addr, uint64_t *len);
 
99
 
 
100
enum fdt_status {
 
101
        FDT_STATUS_OKAY,
 
102
        FDT_STATUS_DISABLED,
 
103
        FDT_STATUS_FAIL,
 
104
        FDT_STATUS_FAIL_ERROR_CODE,
 
105
};
 
106
int fdt_set_node_status(void *fdt, int nodeoffset,
 
107
                        enum fdt_status status, unsigned int error_code);
 
108
static inline int fdt_status_okay(void *fdt, int nodeoffset)
 
109
{
 
110
        return fdt_set_node_status(fdt, nodeoffset, FDT_STATUS_OKAY, 0);
 
111
}
 
112
static inline int fdt_status_disabled(void *fdt, int nodeoffset)
 
113
{
 
114
        return fdt_set_node_status(fdt, nodeoffset, FDT_STATUS_DISABLED, 0);
 
115
}
 
116
 
 
117
int fdt_set_status_by_alias(void *fdt, const char* alias,
 
118
                            enum fdt_status status, unsigned int error_code);
 
119
static inline int fdt_status_okay_by_alias(void *fdt, const char* alias)
 
120
{
 
121
        return fdt_set_status_by_alias(fdt, alias, FDT_STATUS_OKAY, 0);
 
122
}
 
123
static inline int fdt_status_disabled_by_alias(void *fdt, const char* alias)
 
124
{
 
125
        return fdt_set_status_by_alias(fdt, alias, FDT_STATUS_DISABLED, 0);
 
126
}
 
127
 
 
128
#endif /* ifdef CONFIG_OF_LIBFDT */
 
129
 
 
130
#ifdef USE_HOSTCC
 
131
int fdtdec_get_int(const void *blob, int node, const char *prop_name,
 
132
                int default_val);
 
133
#endif
 
134
#endif /* ifndef __FDT_SUPPORT_H */