sun4m.c

来自「xen虚拟机源代码安装包」· C语言 代码 · 共 1,534 行 · 第 1/4 页

C
1,534
字号
        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .ecc_irq = 28,        .machine_id = 0x72,        .iommu_version = 0x03000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0xf00000000ULL,        .default_cpu_model = "TI SuperSparc II",    },    /* SS-600MP */    {        .iommu_base   = 0xfe0000000ULL,        .tcx_base     = 0xe20000000ULL,        .cs_base      = -1,        .slavio_base  = 0xff0000000ULL,        .ms_kb_base   = 0xff1000000ULL,        .serial_base  = 0xff1100000ULL,        .nvram_base   = 0xff1200000ULL,        .fd_base      = -1,        .counter_base = 0xff1300000ULL,        .intctl_base  = 0xff1400000ULL,        .idreg_base   = -1,        .dma_base     = 0xef0081000ULL,        .esp_base     = 0xef0080000ULL,        .le_base      = 0xef0060000ULL,        .apc_base     = 0xefa000000ULL, // XXX should not exist        .aux1_base    = 0xff1800000ULL,        .aux2_base    = 0xff1a01000ULL, // XXX should not exist        .ecc_base     = 0xf00000000ULL,        .ecc_version  = 0x00000000, // version 0, implementation 0        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .ecc_irq = 28,        .machine_id = 0x71,        .iommu_version = 0x01000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0xf00000000ULL,        .default_cpu_model = "TI SuperSparc II",    },    /* SS-20 */    {        .iommu_base   = 0xfe0000000ULL,        .tcx_base     = 0xe20000000ULL,        .cs_base      = -1,        .slavio_base  = 0xff0000000ULL,        .ms_kb_base   = 0xff1000000ULL,        .serial_base  = 0xff1100000ULL,        .nvram_base   = 0xff1200000ULL,        .fd_base      = 0xff1700000ULL,        .counter_base = 0xff1300000ULL,        .intctl_base  = 0xff1400000ULL,        .idreg_base   = 0xef0000000ULL,        .dma_base     = 0xef0400000ULL,        .esp_base     = 0xef0800000ULL,        .le_base      = 0xef0c00000ULL,        .apc_base     = 0xefa000000ULL, // XXX should not exist        .aux1_base    = 0xff1800000ULL,        .aux2_base    = 0xff1a01000ULL,        .ecc_base     = 0xf00000000ULL,        .ecc_version  = 0x20000000, // version 0, implementation 2        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .ecc_irq = 28,        .machine_id = 0x72,        .iommu_version = 0x13000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0xf00000000ULL,        .default_cpu_model = "TI SuperSparc II",    },    /* SS-2 */    {        .iommu_base   = 0xf8000000,        .tcx_base     = 0xfe000000,        .cs_base      = -1,        .slavio_base  = 0xf6000000,        .ms_kb_base   = 0xf0000000,        .serial_base  = 0xf1000000,        .nvram_base   = 0xf2000000,        .fd_base      = 0xf7200000,        .counter_base = -1,        .intctl_base  = -1,        .dma_base     = 0xf8400000,        .esp_base     = 0xf8800000,        .le_base      = 0xf8c00000,        .apc_base     = -1,        .aux1_base    = 0xf7400003,        .aux2_base    = -1,        .sun4c_intctl_base  = 0xf5000000,        .sun4c_counter_base = 0xf3000000,        .vram_size    = 0x00100000,        .nvram_size   = 0x800,        .esp_irq = 2,        .le_irq = 3,        .clock_irq = 5,        .clock1_irq = 7,        .ms_kb_irq = 1,        .ser_irq = 1,        .fd_irq = 1,        .me_irq = 1,        .cs_irq = -1,        .machine_id = 0x55,        .max_mem = 0x10000000,        .default_cpu_model = "Cypress CY7C601",    },    /* Voyager */    {        .iommu_base   = 0x10000000,        .tcx_base     = 0x50000000,        .cs_base      = -1,        .slavio_base  = 0x70000000,        .ms_kb_base   = 0x71000000,        .serial_base  = 0x71100000,        .nvram_base   = 0x71200000,        .fd_base      = 0x71400000,        .counter_base = 0x71d00000,        .intctl_base  = 0x71e00000,        .idreg_base   = 0x78000000,        .dma_base     = 0x78400000,        .esp_base     = 0x78800000,        .le_base      = 0x78c00000,        .apc_base     = 0x71300000, // pmc        .aux1_base    = 0x71900000,        .aux2_base    = 0x71910000,        .ecc_base     = -1,        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .machine_id = 0x80,        .iommu_version = 0x05000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0x10000000,        .default_cpu_model = "Fujitsu MB86904",    },    /* LX */    {        .iommu_base   = 0x10000000,        .tcx_base     = 0x50000000,        .cs_base      = -1,        .slavio_base  = 0x70000000,        .ms_kb_base   = 0x71000000,        .serial_base  = 0x71100000,        .nvram_base   = 0x71200000,        .fd_base      = 0x71400000,        .counter_base = 0x71d00000,        .intctl_base  = 0x71e00000,        .idreg_base   = 0x78000000,        .dma_base     = 0x78400000,        .esp_base     = 0x78800000,        .le_base      = 0x78c00000,        .apc_base     = -1,        .aux1_base    = 0x71900000,        .aux2_base    = 0x71910000,        .ecc_base     = -1,        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .machine_id = 0x80,        .iommu_version = 0x04000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0x10000000,        .default_cpu_model = "TI MicroSparc I",    },    /* SS-4 */    {        .iommu_base   = 0x10000000,        .tcx_base     = 0x50000000,        .cs_base      = 0x6c000000,        .slavio_base  = 0x70000000,        .ms_kb_base   = 0x71000000,        .serial_base  = 0x71100000,        .nvram_base   = 0x71200000,        .fd_base      = 0x71400000,        .counter_base = 0x71d00000,        .intctl_base  = 0x71e00000,        .idreg_base   = 0x78000000,        .dma_base     = 0x78400000,        .esp_base     = 0x78800000,        .le_base      = 0x78c00000,        .apc_base     = 0x6a000000,        .aux1_base    = 0x71900000,        .aux2_base    = 0x71910000,        .ecc_base     = -1,        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = 5,        .machine_id = 0x80,        .iommu_version = 0x05000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0x10000000,        .default_cpu_model = "Fujitsu MB86904",    },    /* SPARCClassic */    {        .iommu_base   = 0x10000000,        .tcx_base     = 0x50000000,        .cs_base      = -1,        .slavio_base  = 0x70000000,        .ms_kb_base   = 0x71000000,        .serial_base  = 0x71100000,        .nvram_base   = 0x71200000,        .fd_base      = 0x71400000,        .counter_base = 0x71d00000,        .intctl_base  = 0x71e00000,        .idreg_base   = 0x78000000,        .dma_base     = 0x78400000,        .esp_base     = 0x78800000,        .le_base      = 0x78c00000,        .apc_base     = 0x6a000000,        .aux1_base    = 0x71900000,        .aux2_base    = 0x71910000,        .ecc_base     = -1,        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .machine_id = 0x80,        .iommu_version = 0x05000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0x10000000,        .default_cpu_model = "TI MicroSparc I",    },    /* SPARCbook */    {        .iommu_base   = 0x10000000,        .tcx_base     = 0x50000000, // XXX        .cs_base      = -1,        .slavio_base  = 0x70000000,        .ms_kb_base   = 0x71000000,        .serial_base  = 0x71100000,        .nvram_base   = 0x71200000,        .fd_base      = 0x71400000,        .counter_base = 0x71d00000,        .intctl_base  = 0x71e00000,        .idreg_base   = 0x78000000,        .dma_base     = 0x78400000,        .esp_base     = 0x78800000,        .le_base      = 0x78c00000,        .apc_base     = 0x6a000000,        .aux1_base    = 0x71900000,        .aux2_base    = 0x71910000,        .ecc_base     = -1,        .sun4c_intctl_base  = -1,        .sun4c_counter_base = -1,        .vram_size    = 0x00100000,        .nvram_size   = 0x2000,        .esp_irq = 18,        .le_irq = 16,        .clock_irq = 7,        .clock1_irq = 19,        .ms_kb_irq = 14,        .ser_irq = 15,        .fd_irq = 22,        .me_irq = 30,        .cs_irq = -1,        .machine_id = 0x80,        .iommu_version = 0x05000000,        .intbit_to_level = {            2, 3, 5, 7, 9, 11, 0, 14,   3, 5, 7, 9, 11, 13, 12, 12,            6, 0, 4, 10, 8, 0, 11, 0,   0, 0, 0, 0, 15, 0, 15, 0,        },        .max_mem = 0x10000000,        .default_cpu_model = "TI MicroSparc I",    },};/* SPARCstation 5 hardware initialisation */static void ss5_init(ram_addr_t RAM_size, int vga_ram_size,                     const char *boot_device, DisplayState *ds,                     const char *kernel_filename, const char *kernel_cmdline,                     const char *initrd_filename, const char *cpu_model){    sun4m_hw_init(&hwdefs[0], RAM_size, boot_device, ds, kernel_filename,                  kernel_cmdline, initrd_filename, cpu_model);}/* SPARCstation 10 hardware initialisation */static void ss10_init(ram_addr_t RAM_size, int vga_ram_size,                      const char *boot_device, DisplayState *ds,                      const char *kernel_filename, const char *kernel_cmdline,                      const char *initrd_filename, const char *cpu_model){    sun4m_hw_init(&hwdefs[1], RAM_size, boot_device, ds, kernel_filename,                  kernel_cmdline, initrd_filename, cpu_model);}/* SPARCserver 600MP hardware initialisation */static void ss600mp_init(ram_addr_t RAM_size, int vga_ram_size,                         const char *boot_device, DisplayState *ds,                         const char *kernel_filename,                         const char *kernel_cmdline,                         const char *initrd_filename, const char *cpu_model){    sun4m_hw_init(&hwdefs[2], RAM_size, boot_device, ds, kernel_filename,                  kernel_cmdline, initrd_filename, cpu_model);}/* SPARCstation 20 hardware initialisation */static void ss20_init(ram_addr_t RAM_size, int vga_ram_size,                      const char *boot_device, DisplayState *ds,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?