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 + -
显示快捷键?