Revision 8da3ff18 hw/pl181.c
b/hw/pl181.c | ||
---|---|---|
24 | 24 |
|
25 | 25 |
typedef struct { |
26 | 26 |
SDState *card; |
27 |
uint32_t base; |
|
28 | 27 |
uint32_t clock; |
29 | 28 |
uint32_t power; |
30 | 29 |
uint32_t cmdarg; |
... | ... | |
261 | 260 |
pl181_state *s = (pl181_state *)opaque; |
262 | 261 |
uint32_t tmp; |
263 | 262 |
|
264 |
offset -= s->base; |
|
265 | 263 |
if (offset >= 0xfe0 && offset < 0x1000) { |
266 | 264 |
return pl181_id[(offset - 0xfe0) >> 2]; |
267 | 265 |
} |
... | ... | |
344 | 342 |
{ |
345 | 343 |
pl181_state *s = (pl181_state *)opaque; |
346 | 344 |
|
347 |
offset -= s->base; |
|
348 | 345 |
switch (offset) { |
349 | 346 |
case 0x00: /* Power */ |
350 | 347 |
s->power = value & 0xff; |
... | ... | |
457 | 454 |
iomemtype = cpu_register_io_memory(0, pl181_readfn, |
458 | 455 |
pl181_writefn, s); |
459 | 456 |
cpu_register_physical_memory(base, 0x00001000, iomemtype); |
460 |
s->base = base; |
|
461 | 457 |
s->card = sd_init(bd, 0); |
462 | 458 |
s->irq[0] = irq0; |
463 | 459 |
s->irq[1] = irq1; |
Also available in: Unified diff