diff --git a/src/cpu_common/cpu.h b/src/cpu_common/cpu.h index 4cc156e6a..df79b92dc 100644 --- a/src/cpu_common/cpu.h +++ b/src/cpu_common/cpu.h @@ -155,6 +155,7 @@ extern CPU cpus_6x86SS7[]; #if defined(DEV_BRANCH) && defined(USE_I686) extern CPU cpus_PentiumPro[]; extern CPU cpus_PentiumII[]; +extern CPU cpus_PGA370[]; #endif diff --git a/src/cpu_common/cpu_table.c b/src/cpu_common/cpu_table.c index 6e02b8f35..52e01695b 100644 --- a/src/cpu_common/cpu_table.c +++ b/src/cpu_common/cpu_table.c @@ -715,5 +715,11 @@ CPU cpus_PentiumII[] = { {"Pentium II Deschutes 450", CPU_PENTIUM2D, 450000000, 9/2, 0x652, 0x652, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 41,41,14,14, 54}, {"", -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} }; + +CPU cpus_PGA370[] = { + {"Celeron Mendocino 100", CPU_PENTIUM2D, 100000000, 3/2, 0x665, 0x665, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 10,10, 6, 6, 12}, + {"Celeron Mendocino 333", CPU_PENTIUM2D, 333333333, 5, 0x665, 0x665, 0, CPU_SUPPORTS_DYNAREC | CPU_REQUIRES_DYNAREC, 27,27,13,13, 40}, + {"", -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +}; #endif #endif diff --git a/src/machine/m_at_socket8.c b/src/machine/m_at_socket8.c index 16e03b0ea..eee161300 100644 --- a/src/machine/m_at_socket8.c +++ b/src/machine/m_at_socket8.c @@ -136,5 +136,34 @@ machine_at_6abx3_init(const machine_t *model) return ret; } +int +machine_at_p6bxt_init(const machine_t *model) +{ + int ret; + ret = bios_load_linear(L"roms/machines/p6bxt/bxt53s.BIN", + 0x000c0000, 262144, 0); + + if (bios_only || !ret) + return ret; + + machine_at_common_init_ex(model, 2); + + pci_init(PCI_CONFIG_TYPE_1); + pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); + pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4); + pci_register_slot(0x0A, PCI_CARD_NORMAL, 2, 3, 4, 1); + pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2); + pci_register_slot(0x0C, PCI_CARD_NORMAL, 4, 1, 2, 3); + pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 3, 2, 1); // Slot 5: Probably the integrated sound chip + pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); + pci_register_slot(0x01, PCI_CARD_NORMAL, 1, 2, 3, 4); + device_add(&i440bx_device); + device_add(&piix4_device); + device_add(&w83977tf_device); + device_add(&keyboard_ps2_pci_device); + device_add(&intel_flash_bxt_device); + + return ret; +} #endif diff --git a/src/machine/machine.h b/src/machine/machine.h index 74b214200..b4e316bf3 100644 --- a/src/machine/machine.h +++ b/src/machine/machine.h @@ -306,6 +306,8 @@ extern int machine_at_i440fx_init(const machine_t *); extern int machine_at_s1668_init(const machine_t *); extern int machine_at_6abx3_init(const machine_t *); + +extern int machine_at_p6bxt_init(const machine_t *); #endif /* m_at_t3100e.c */ diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index d5728de43..9d6db4a6f 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -238,6 +238,9 @@ const machine_t machines[] = { { "[Socket 8 FX] Tyan Titan-Pro ATX", "tpatx", {{"Intel", cpus_PentiumPro}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 1024, 8, 127, machine_at_s1668_init, NULL }, { "[Slot 1 BX] Lucky Star 6ABX3", "6abx3", {{"Intel", cpus_PentiumII}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 1024, 8, 255, machine_at_6abx3_init, NULL }, + + + { "[Socket 370 BX] ECS P6BXT-A+", "p6bxt", {{"Intel", cpus_PGA370}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, MACHINE_PCI | MACHINE_ISA | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 1024, 8, 255, machine_at_p6bxt_init, NULL }, #endif { NULL, NULL, {{"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}}, 0, 0, 0, 0, 0, NULL, NULL } };