Revision 6a3b9cc9 hw/sun4m.c

b/hw/sun4m.c
388 388
    slavio_serial_init(hwdef->serial_base, slavio_irq[hwdef->ser_irq],
389 389
                       serial_hds[1], serial_hds[0]);
390 390

  
391
    sun4m_fdctrl_init(slavio_irq[hwdef->fd_irq], hwdef->fd_base, fd_table);
391
    if (hwdef->fd_base != (target_phys_addr_t)-1)
392
        sun4m_fdctrl_init(slavio_irq[hwdef->fd_irq], hwdef->fd_base, fd_table);
392 393

  
393 394
    main_esp = esp_init(bs_table, hwdef->esp_base, espdma, *espdma_irq,
394 395
                        esp_reset);
......
546 547
            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,
547 548
        },
548 549
    },
550
    /* SS-600MP */
551
    {
552
        .iommu_base   = 0xfe0000000ULL,
553
        .tcx_base     = 0xe20000000ULL,
554
        .cs_base      = -1,
555
        .slavio_base  = 0xff0000000ULL,
556
        .ms_kb_base   = 0xff1000000ULL,
557
        .serial_base  = 0xff1100000ULL,
558
        .nvram_base   = 0xff1200000ULL,
559
        .fd_base      = -1,
560
        .counter_base = 0xff1300000ULL,
561
        .intctl_base  = 0xff1400000ULL,
562
        .dma_base     = 0xef0081000ULL,
563
        .esp_base     = 0xef0080000ULL,
564
        .le_base      = 0xef0060000ULL,
565
        .power_base   = 0xefa000000ULL,
566
        .vram_size    = 0x00100000,
567
        .nvram_size   = 0x2000,
568
        .esp_irq = 18,
569
        .le_irq = 16,
570
        .clock_irq = 7,
571
        .clock1_irq = 19,
572
        .ms_kb_irq = 14,
573
        .ser_irq = 15,
574
        .fd_irq = 22,
575
        .me_irq = 30,
576
        .cs_irq = -1,
577
        .machine_id = 0x71,
578
        .intbit_to_level = {
579
            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,
580
            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,
581
        },
582
    },
549 583
};
550 584

  
551 585
static void sun4m_common_init(int RAM_size, const char *boot_device, DisplayState *ds,
......
594 628
                      1, 0xffffffff); // XXX actually first 62GB ok
595 629
}
596 630

  
631
/* SPARCserver 600MP hardware initialisation */
632
static void ss600mp_init(int RAM_size, int vga_ram_size, const char *boot_device,
633
                         DisplayState *ds, const char **fd_filename, int snapshot,
634
                         const char *kernel_filename, const char *kernel_cmdline,
635
                         const char *initrd_filename, const char *cpu_model)
636
{
637
    if (cpu_model == NULL)
638
        cpu_model = "TI SuperSparc II";
639
    sun4m_common_init(RAM_size, boot_device, ds, kernel_filename,
640
                      kernel_cmdline, initrd_filename, cpu_model,
641
                      2, 0xffffffff); // XXX actually first 62GB ok
642
}
643

  
597 644
QEMUMachine ss5_machine = {
598 645
    "SS-5",
599 646
    "Sun4m platform, SPARCstation 5",
......
605 652
    "Sun4m platform, SPARCstation 10",
606 653
    ss10_init,
607 654
};
655

  
656
QEMUMachine ss600mp_machine = {
657
    "SS-600MP",
658
    "Sun4m platform, SPARCserver 600MP",
659
    ss600mp_init,
660
};

Also available in: Unified diff