Revision ca87d03b hw/etraxfs_ser.c
b/hw/etraxfs_ser.c | ||
---|---|---|
35 | 35 |
|
36 | 36 |
static uint32_t ser_readb (void *opaque, target_phys_addr_t addr) |
37 | 37 |
{ |
38 |
CPUState *env; |
|
39 |
uint32_t r = 0; |
|
40 |
|
|
41 |
env = opaque; |
|
38 |
D(CPUState *env = opaque); |
|
42 | 39 |
D(printf ("%s %x pc=%x\n", __func__, addr, env->pc)); |
43 |
return r;
|
|
40 |
return 0;
|
|
44 | 41 |
} |
45 | 42 |
static uint32_t ser_readw (void *opaque, target_phys_addr_t addr) |
46 | 43 |
{ |
47 |
CPUState *env; |
|
48 |
uint32_t r = 0; |
|
49 |
env = opaque; |
|
44 |
D(CPUState *env = opaque); |
|
50 | 45 |
D(printf ("%s %x pc=%x\n", __func__, addr, env->pc)); |
51 |
return r;
|
|
46 |
return 0;
|
|
52 | 47 |
} |
53 | 48 |
|
54 | 49 |
static uint32_t ser_readl (void *opaque, target_phys_addr_t addr) |
55 | 50 |
{ |
56 |
CPUState *env = opaque;
|
|
51 |
D(CPUState *env = opaque);
|
|
57 | 52 |
uint32_t r = 0; |
58 | 53 |
|
59 | 54 |
switch (addr & 0xfff) |
... | ... | |
75 | 70 |
static void |
76 | 71 |
ser_writeb (void *opaque, target_phys_addr_t addr, uint32_t value) |
77 | 72 |
{ |
78 |
CPUState *env; |
|
79 |
env = opaque; |
|
73 |
D(CPUState *env = opaque); |
|
80 | 74 |
D(printf ("%s %x %x pc=%x\n", __func__, addr, value, env->pc)); |
81 | 75 |
} |
82 | 76 |
static void |
83 | 77 |
ser_writew (void *opaque, target_phys_addr_t addr, uint32_t value) |
84 | 78 |
{ |
85 |
CPUState *env; |
|
86 |
env = opaque; |
|
79 |
D(CPUState *env = opaque); |
|
87 | 80 |
D(printf ("%s %x %x pc=%x\n", __func__, addr, value, env->pc)); |
88 | 81 |
} |
89 | 82 |
static void |
90 | 83 |
ser_writel (void *opaque, target_phys_addr_t addr, uint32_t value) |
91 | 84 |
{ |
92 |
CPUState *env = opaque;
|
|
85 |
D(CPUState *env = opaque);
|
|
93 | 86 |
|
94 | 87 |
switch (addr & 0xfff) |
95 | 88 |
{ |
... | ... | |
110 | 103 |
} |
111 | 104 |
|
112 | 105 |
static CPUReadMemoryFunc *ser_read[] = { |
113 |
&ser_readb,
|
|
114 |
&ser_readw,
|
|
115 |
&ser_readl,
|
|
106 |
&ser_readb,
|
|
107 |
&ser_readw,
|
|
108 |
&ser_readl,
|
|
116 | 109 |
}; |
117 | 110 |
|
118 | 111 |
static CPUWriteMemoryFunc *ser_write[] = { |
119 |
&ser_writeb,
|
|
120 |
&ser_writew,
|
|
121 |
&ser_writel,
|
|
112 |
&ser_writeb,
|
|
113 |
&ser_writew,
|
|
114 |
&ser_writel,
|
|
122 | 115 |
}; |
123 | 116 |
|
124 |
void etraxfs_ser_init(CPUState *env, qemu_irq *irqs) |
|
117 |
void etraxfs_ser_init(CPUState *env, qemu_irq *irqs, target_phys_addr_t base)
|
|
125 | 118 |
{ |
126 | 119 |
int ser_regs; |
127 |
|
|
128 | 120 |
ser_regs = cpu_register_io_memory(0, ser_read, ser_write, env); |
129 |
cpu_register_physical_memory (0xb0026000, 0x3c, ser_regs); |
|
130 |
cpu_register_physical_memory (0xb0028000, 0x3c, ser_regs); |
|
131 |
cpu_register_physical_memory (0xb002a000, 0x3c, ser_regs); |
|
132 |
cpu_register_physical_memory (0xb002c000, 0x3c, ser_regs); |
|
121 |
cpu_register_physical_memory (base, 0x3c, ser_regs); |
|
133 | 122 |
} |
Also available in: Unified diff