Revision 4f5e19e6 hw/unin_pci.c
b/hw/unin_pci.c | ||
---|---|---|
24 | 24 |
#include "hw.h" |
25 | 25 |
#include "ppc_mac.h" |
26 | 26 |
#include "pci.h" |
27 |
#include "pci_host.h" |
|
27 | 28 |
|
28 | 29 |
/* debug UniNorth */ |
29 | 30 |
//#define DEBUG_UNIN |
... | ... | |
35 | 36 |
#define UNIN_DPRINTF(fmt, ...) |
36 | 37 |
#endif |
37 | 38 |
|
38 |
typedef target_phys_addr_t pci_addr_t; |
|
39 |
#include "pci_host.h" |
|
40 |
|
|
41 | 39 |
typedef struct UNINState { |
42 | 40 |
SysBusDevice busdev; |
43 | 41 |
PCIHostState host_state; |
... | ... | |
83 | 81 |
&pci_unin_main_config_readl, |
84 | 82 |
}; |
85 | 83 |
|
86 |
static CPUWriteMemoryFunc * const pci_unin_main_write[] = { |
|
87 |
&pci_host_data_writeb, |
|
88 |
&pci_host_data_writew, |
|
89 |
&pci_host_data_writel, |
|
90 |
}; |
|
91 |
|
|
92 |
static CPUReadMemoryFunc * const pci_unin_main_read[] = { |
|
93 |
&pci_host_data_readb, |
|
94 |
&pci_host_data_readw, |
|
95 |
&pci_host_data_readl, |
|
96 |
}; |
|
97 |
|
|
98 | 84 |
static void pci_unin_config_writel (void *opaque, target_phys_addr_t addr, |
99 | 85 |
uint32_t val) |
100 | 86 |
{ |
... | ... | |
123 | 109 |
&pci_unin_config_readl, |
124 | 110 |
}; |
125 | 111 |
|
126 |
static CPUWriteMemoryFunc * const pci_unin_write[] = { |
|
127 |
&pci_host_data_writeb, |
|
128 |
&pci_host_data_writew, |
|
129 |
&pci_host_data_writel, |
|
130 |
}; |
|
131 |
|
|
132 |
static CPUReadMemoryFunc * const pci_unin_read[] = { |
|
133 |
&pci_host_data_readb, |
|
134 |
&pci_host_data_readw, |
|
135 |
&pci_host_data_readl, |
|
136 |
}; |
|
137 |
|
|
138 | 112 |
/* Don't know if this matches real hardware, but it agrees with OHW. */ |
139 | 113 |
static int pci_unin_map_irq(PCIDevice *pci_dev, int irq_num) |
140 | 114 |
{ |
... | ... | |
180 | 154 |
|
181 | 155 |
pci_mem_config = cpu_register_io_memory(pci_unin_main_config_read, |
182 | 156 |
pci_unin_main_config_write, s); |
183 |
pci_mem_data = cpu_register_io_memory(pci_unin_main_read, |
|
184 |
pci_unin_main_write, &s->host_state); |
|
157 |
pci_mem_data = pci_host_data_register_io_memory(&s->host_state); |
|
185 | 158 |
|
186 | 159 |
sysbus_init_mmio(dev, 0x1000, pci_mem_config); |
187 | 160 |
sysbus_init_mmio(dev, 0x1000, pci_mem_data); |
... | ... | |
202 | 175 |
// XXX: s = &pci_bridge[2]; |
203 | 176 |
pci_mem_config = cpu_register_io_memory(pci_unin_config_read, |
204 | 177 |
pci_unin_config_write, s); |
205 |
pci_mem_data = cpu_register_io_memory(pci_unin_main_read, |
|
206 |
pci_unin_main_write, &s->host_state); |
|
178 |
pci_mem_data = pci_host_data_register_io_memory(&s->host_state); |
|
207 | 179 |
sysbus_init_mmio(dev, 0x1000, pci_mem_config); |
208 | 180 |
sysbus_init_mmio(dev, 0x1000, pci_mem_data); |
209 | 181 |
return 0; |
... | ... | |
219 | 191 |
|
220 | 192 |
pci_mem_config = cpu_register_io_memory(pci_unin_config_read, |
221 | 193 |
pci_unin_config_write, s); |
222 |
pci_mem_data = cpu_register_io_memory(pci_unin_main_read, |
|
223 |
pci_unin_main_write, &s->host_state); |
|
194 |
pci_mem_data = pci_host_data_register_io_memory(&s->host_state); |
|
224 | 195 |
sysbus_init_mmio(dev, 0x1000, pci_mem_config); |
225 | 196 |
sysbus_init_mmio(dev, 0x1000, pci_mem_data); |
226 | 197 |
return 0; |
... | ... | |
236 | 207 |
|
237 | 208 |
pci_mem_config = cpu_register_io_memory(pci_unin_config_read, |
238 | 209 |
pci_unin_config_write, s); |
239 |
pci_mem_data = cpu_register_io_memory(pci_unin_read, |
|
240 |
pci_unin_write, s); |
|
210 |
pci_mem_data = pci_host_data_register_io_memory(&s->host_state); |
|
241 | 211 |
sysbus_init_mmio(dev, 0x1000, pci_mem_config); |
242 | 212 |
sysbus_init_mmio(dev, 0x1000, pci_mem_data); |
243 | 213 |
return 0; |
Also available in: Unified diff