Revision 99a0949b hw/ppc4xx_devs.c

b/hw/ppc4xx_devs.c
41 41
/*****************************************************************************/
42 42
/* Generic PowerPC 4xx processor instanciation */
43 43
CPUState *ppc4xx_init (const char *cpu_model,
44
                       clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
44
                       a_clk_setup *cpu_clk, a_clk_setup *tb_clk,
45 45
                       uint32_t sysclk)
46 46
{
47 47
    CPUState *env;
......
81 81
};
82 82

  
83 83
#define UIC_MAX_IRQ 32
84
typedef struct ppcuic_t ppcuic_t;
85
struct ppcuic_t {
84
typedef struct ppcuic a_ppcuic;
85
struct ppcuic {
86 86
    uint32_t dcr_base;
87 87
    int use_vectors;
88 88
    uint32_t level;  /* Remembers the state of level-triggered interrupts. */
......
96 96
    qemu_irq *irqs;
97 97
};
98 98

  
99
static void ppcuic_trigger_irq (ppcuic_t *uic)
99
static void ppcuic_trigger_irq (a_ppcuic *uic)
100 100
{
101 101
    uint32_t ir, cr;
102 102
    int start, end, inc, i;
......
149 149

  
150 150
static void ppcuic_set_irq (void *opaque, int irq_num, int level)
151 151
{
152
    ppcuic_t *uic;
152
    a_ppcuic *uic;
153 153
    uint32_t mask, sr;
154 154

  
155 155
    uic = opaque;
......
185 185

  
186 186
static target_ulong dcr_read_uic (void *opaque, int dcrn)
187 187
{
188
    ppcuic_t *uic;
188
    a_ppcuic *uic;
189 189
    target_ulong ret;
190 190

  
191 191
    uic = opaque;
......
231 231

  
232 232
static void dcr_write_uic (void *opaque, int dcrn, target_ulong val)
233 233
{
234
    ppcuic_t *uic;
234
    a_ppcuic *uic;
235 235

  
236 236
    uic = opaque;
237 237
    dcrn -= uic->dcr_base;
......
274 274

  
275 275
static void ppcuic_reset (void *opaque)
276 276
{
277
    ppcuic_t *uic;
277
    a_ppcuic *uic;
278 278

  
279 279
    uic = opaque;
280 280
    uic->uiccr = 0x00000000;
......
291 291
qemu_irq *ppcuic_init (CPUState *env, qemu_irq *irqs,
292 292
                       uint32_t dcr_base, int has_ssr, int has_vr)
293 293
{
294
    ppcuic_t *uic;
294
    a_ppcuic *uic;
295 295
    int i;
296 296

  
297
    uic = qemu_mallocz(sizeof(ppcuic_t));
297
    uic = qemu_mallocz(sizeof(a_ppcuic));
298 298
    uic->dcr_base = dcr_base;
299 299
    uic->irqs = irqs;
300 300
    if (has_vr)
......
311 311

  
312 312
/*****************************************************************************/
313 313
/* SDRAM controller */
314
typedef struct ppc4xx_sdram_t ppc4xx_sdram_t;
315
struct ppc4xx_sdram_t {
314
typedef struct ppc4xx_sdram a_ppc4xx_sdram;
315
struct ppc4xx_sdram {
316 316
    uint32_t addr;
317 317
    int nbanks;
318
    target_phys_addr_t ram_bases[4];
319
    target_phys_addr_t ram_sizes[4];
318
    a_target_phys_addr ram_bases[4];
319
    a_target_phys_addr ram_sizes[4];
320 320
    uint32_t besr0;
321 321
    uint32_t besr1;
322 322
    uint32_t bear;
......
337 337
};
338 338

  
339 339
/* XXX: TOFIX: some patches have made this code become inconsistent:
340
 *      there are type inconsistencies, mixing target_phys_addr_t, target_ulong
340
 *      there are type inconsistencies, mixing a_target_phys_addr, target_ulong
341 341
 *      and uint32_t
342 342
 */
343
static uint32_t sdram_bcr (target_phys_addr_t ram_base,
344
                           target_phys_addr_t ram_size)
343
static uint32_t sdram_bcr (a_target_phys_addr ram_base,
344
                           a_target_phys_addr ram_size)
345 345
{
346 346
    uint32_t bcr;
347 347

  
......
378 378
    return bcr;
379 379
}
380 380

  
381
static inline target_phys_addr_t sdram_base(uint32_t bcr)
381
static inline a_target_phys_addr sdram_base(uint32_t bcr)
382 382
{
383 383
    return bcr & 0xFF800000;
384 384
}
......
419 419
    }
420 420
}
421 421

  
422
static void sdram_map_bcr (ppc4xx_sdram_t *sdram)
422
static void sdram_map_bcr (a_ppc4xx_sdram *sdram)
423 423
{
424 424
    int i;
425 425

  
......
434 434
    }
435 435
}
436 436

  
437
static void sdram_unmap_bcr (ppc4xx_sdram_t *sdram)
437
static void sdram_unmap_bcr (a_ppc4xx_sdram *sdram)
438 438
{
439 439
    int i;
440 440

  
......
451 451

  
452 452
static target_ulong dcr_read_sdram (void *opaque, int dcrn)
453 453
{
454
    ppc4xx_sdram_t *sdram;
454
    a_ppc4xx_sdram *sdram;
455 455
    target_ulong ret;
456 456

  
457 457
    sdram = opaque;
......
519 519

  
520 520
static void dcr_write_sdram (void *opaque, int dcrn, target_ulong val)
521 521
{
522
    ppc4xx_sdram_t *sdram;
522
    a_ppc4xx_sdram *sdram;
523 523

  
524 524
    sdram = opaque;
525 525
    switch (dcrn) {
......
604 604

  
605 605
static void sdram_reset (void *opaque)
606 606
{
607
    ppc4xx_sdram_t *sdram;
607
    a_ppc4xx_sdram *sdram;
608 608

  
609 609
    sdram = opaque;
610 610
    sdram->addr = 0x00000000;
......
624 624
}
625 625

  
626 626
void ppc4xx_sdram_init (CPUState *env, qemu_irq irq, int nbanks,
627
                        target_phys_addr_t *ram_bases,
628
                        target_phys_addr_t *ram_sizes,
627
                        a_target_phys_addr *ram_bases,
628
                        a_target_phys_addr *ram_sizes,
629 629
                        int do_init)
630 630
{
631
    ppc4xx_sdram_t *sdram;
631
    a_ppc4xx_sdram *sdram;
632 632

  
633
    sdram = qemu_mallocz(sizeof(ppc4xx_sdram_t));
633
    sdram = qemu_mallocz(sizeof(a_ppc4xx_sdram));
634 634
    sdram->irq = irq;
635 635
    sdram->nbanks = nbanks;
636
    memset(sdram->ram_bases, 0, 4 * sizeof(target_phys_addr_t));
636
    memset(sdram->ram_bases, 0, 4 * sizeof(a_target_phys_addr));
637 637
    memcpy(sdram->ram_bases, ram_bases,
638
           nbanks * sizeof(target_phys_addr_t));
639
    memset(sdram->ram_sizes, 0, 4 * sizeof(target_phys_addr_t));
638
           nbanks * sizeof(a_target_phys_addr));
639
    memset(sdram->ram_sizes, 0, 4 * sizeof(a_target_phys_addr));
640 640
    memcpy(sdram->ram_sizes, ram_sizes,
641
           nbanks * sizeof(target_phys_addr_t));
641
           nbanks * sizeof(a_target_phys_addr));
642 642
    sdram_reset(sdram);
643 643
    qemu_register_reset(&sdram_reset, sdram);
644 644
    ppc_dcr_register(env, SDRAM0_CFGADDR,
......
656 656
 * The 4xx SDRAM controller supports a small number of banks, and each bank
657 657
 * must be one of a small set of sizes. The number of banks and the supported
658 658
 * sizes varies by SoC. */
659
ram_addr_t ppc4xx_sdram_adjust(ram_addr_t ram_size, int nr_banks,
660
                               target_phys_addr_t ram_bases[],
661
                               target_phys_addr_t ram_sizes[],
659
a_ram_addr ppc4xx_sdram_adjust(a_ram_addr ram_size, int nr_banks,
660
                               a_target_phys_addr ram_bases[],
661
                               a_target_phys_addr ram_sizes[],
662 662
                               const unsigned int sdram_bank_sizes[])
663 663
{
664
    ram_addr_t size_left = ram_size;
664
    a_ram_addr size_left = ram_size;
665 665
    int i;
666 666
    int j;
667 667

  

Also available in: Unified diff