Rev 1895 | Rev 1897 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1895 | Rev 1896 | ||
|---|---|---|---|
| Line 54... | Line 54... | ||
| 54 | char name[OFW_TREE_PROPERTY_MAX_NAMELEN]; |
54 | char name[OFW_TREE_PROPERTY_MAX_NAMELEN]; |
| 55 | size_t size; |
55 | size_t size; |
| 56 | void *value; |
56 | void *value; |
| 57 | }; |
57 | }; |
| 58 | 58 | ||
| - | 59 | /* |
|
| - | 60 | * Definition of 'reg' and 'ranges' properties for various buses. |
|
| - | 61 | */ |
|
| - | 62 | ||
| - | 63 | struct ofw_fhc_reg { |
|
| - | 64 | uint64_t addr; |
|
| - | 65 | uint32_t size; |
|
| - | 66 | } __attribute__ ((packed)); |
|
| - | 67 | typedef struct ofw_fhc_reg ofw_fhc_reg_t; |
|
| - | 68 | ||
| - | 69 | struct ofw_fhc_range { |
|
| - | 70 | uint64_t child_base; |
|
| - | 71 | uint64_t parent_base; |
|
| - | 72 | uint32_t size; |
|
| - | 73 | } __attribute__ ((packed)); |
|
| - | 74 | typedef struct ofw_fhc_range ofw_fhc_range_t; |
|
| - | 75 | ||
| - | 76 | struct ofw_central_reg { |
|
| - | 77 | uint64_t addr; |
|
| - | 78 | uint32_t size; |
|
| - | 79 | } __attribute__ ((packed)); |
|
| - | 80 | typedef struct ofw_central_reg ofw_central_reg_t; |
|
| - | 81 | ||
| - | 82 | struct ofw_central_range { |
|
| - | 83 | uint64_t child_base; |
|
| - | 84 | uint64_t parent_base; |
|
| - | 85 | uint32_t size; |
|
| - | 86 | } __attribute__ ((packed)); |
|
| - | 87 | typedef struct ofw_central_range ofw_central_range_t; |
|
| - | 88 | ||
| - | 89 | struct ofw_ebus_reg { |
|
| - | 90 | uint32_t space; |
|
| - | 91 | uint32_t addr; |
|
| - | 92 | uint32_t size; |
|
| - | 93 | } __attribute__ ((packed)); |
|
| - | 94 | typedef struct ofw_ebus_reg ofw_ebus_reg_t; |
|
| - | 95 | ||
| - | 96 | struct ofw_ebus_range { |
|
| - | 97 | uint32_t child_space; |
|
| - | 98 | uint32_t child_base; |
|
| - | 99 | uint32_t parent_space; |
|
| - | 100 | uint64_t parent_base; /* group phys.mid and phys.lo together */ |
|
| - | 101 | uint32_t size; |
|
| - | 102 | } __attribute__ ((packed)); |
|
| - | 103 | typedef struct ofw_ebus_range ofw_ebus_range_t; |
|
| - | 104 | ||
| - | 105 | struct ofw_pci_reg { |
|
| - | 106 | uint32_t space; /* needs to masked to obtain pure space id */ |
|
| - | 107 | uint64_t addr; /* group phys.mid and phys.lo together */ |
|
| - | 108 | uint64_t size; |
|
| - | 109 | } __attribute__ ((packed)); |
|
| - | 110 | typedef struct ofw_pci_reg ofw_pci_reg_t; |
|
| - | 111 | ||
| - | 112 | struct ofw_pci_range { |
|
| - | 113 | uint32_t space; |
|
| - | 114 | uint64_t child_base; /* group phys.mid and phys.lo together */ |
|
| - | 115 | uint64_t parent_base; |
|
| - | 116 | uint64_t size; |
|
| - | 117 | } __attribute__ ((packed)); |
|
| - | 118 | typedef struct ofw_pci_range ofw_pci_range_t; |
|
| - | 119 | ||
| - | 120 | struct ofw_ffb_reg { |
|
| - | 121 | } __attribute__ ((packed)); |
|
| - | 122 | typedef struct ofw_ffb_reg ofw_ffb_reg_t; |
|
| - | 123 | ||
| 59 | extern void ofw_tree_init(ofw_tree_node_t *root); |
124 | extern void ofw_tree_init(ofw_tree_node_t *root); |
| 60 | extern void ofw_tree_print(void); |
125 | extern void ofw_tree_print(void); |
| 61 | extern const char *ofw_tree_node_name(const ofw_tree_node_t *node); |
126 | extern const char *ofw_tree_node_name(const ofw_tree_node_t *node); |
| 62 | extern ofw_tree_node_t *ofw_tree_lookup(const char *path); |
127 | extern ofw_tree_node_t *ofw_tree_lookup(const char *path); |
| - | 128 | extern ofw_tree_property_t *ofw_tree_getprop(const ofw_tree_node_t *node, const char *name); |
|
| - | 129 | ||
| - | 130 | extern bool ofw_fhc_apply_ranges(ofw_tree_node_t *node, ofw_fhc_reg_t *reg, uintptr_t *pa); |
|
| - | 131 | extern bool ofw_central_apply_ranges(ofw_tree_node_t *node, ofw_central_reg_t *reg, uintptr_t *pa); |
|
| - | 132 | extern bool ofw_ebus_apply_ranges(ofw_tree_node_t *node, ofw_ebus_reg_t *reg, uintptr_t *pa); |
|
| - | 133 | extern bool ofw_pci_apply_ranges(ofw_tree_node_t *node, ofw_pci_reg_t *reg, uintptr_t *pa); |
|
| - | 134 | extern bool ofw_ffb_apply_ranges(ofw_tree_node_t *node, ofw_ffb_reg_t *reg, uintptr_t *pa); |
|
| 63 | 135 | ||
| 64 | #endif |
136 | #endif |