From 9efd6705aea9e7dfafef58c97a9ea760c22333c1 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sat, 12 Jan 2019 17:24:33 +0000 Subject: [PATCH] Added ASUS P/I-P55TVP4 and Epox P55-VA. Patch from Martin_Riarte. --- src/ibm.h | 2 ++ src/intel_flash.c | 6 ++++++ src/mem_bios.c | 16 ++++++++++++++++ src/model.c | 32 ++++++++++++++++++++++++++++++++ src/nvr.c | 4 ++++ 5 files changed, 60 insertions(+) diff --git a/src/ibm.h b/src/ibm.h index 50f59b8..177c923 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -430,6 +430,8 @@ enum ROM_WIN486, ROM_PCI486, ROM_SIS496, + ROM_P55VA, /* Epox P55-VA/430VX/Award/SMC FDC37C932FR*/ + ROM_P55TVP4, /* ASUS P/I-P55TVP4/430VX/Award/Winbond W8387F*/ ROM_430VX, ROM_ENDEAVOR, ROM_REVENGE, diff --git a/src/intel_flash.c b/src/intel_flash.c index f2de0bb..43c0825 100644 --- a/src/intel_flash.c +++ b/src/intel_flash.c @@ -176,6 +176,12 @@ void *intel_flash_init(uint8_t type) case ROM_ZAPPA: strcpy(flash_path, "zappa/"); break; + case ROM_P55VA: + strcpy(flash_path, "p55va/"); + break; + case ROM_P55TVP4: + strcpy(flash_path, "p55tvp4/"); + break; case ROM_430VX: strcpy(flash_path, "430vx/"); break; diff --git a/src/mem_bios.c b/src/mem_bios.c index 5e92146..f258602 100644 --- a/src/mem_bios.c +++ b/src/mem_bios.c @@ -466,6 +466,22 @@ int loadbios() pclog("Load SIS496 %x %x\n", rom[0x1fff0], rom[0xfff0]); return 1; + case ROM_P55VA: + f = romfopen("p55va/va021297.bin", "rb"); + if (!f) break; + romfread(rom, 0x20000, 1, f); + fclose(f); + biosmask = 0x1ffff; + return 1; + + case ROM_P55TVP4: + f = romfopen("p55tvp4/tv5i0204.awd", "rb"); + if (!f) break; + romfread(rom, 0x20000, 1, f); + fclose(f); + biosmask = 0x1ffff; + return 1; + case ROM_430VX: // f = romfopen("430vx/ga586atv.bin", "rb"); // f = fopen("430vx/vx29.bin", "rb"); diff --git a/src/model.c b/src/model.c index 36781a3..b5af7e1 100644 --- a/src/model.c +++ b/src/model.c @@ -93,6 +93,8 @@ void at_ali1429_init(); void at_headland_init(); void at_opti495_init(); void at_sis496_init(); +void at_p55va_init(); +void at_p55tvp4_init(); void at_i430vx_init(); void at_batman_init(); void at_endeavor_init(); @@ -190,6 +192,8 @@ MODEL models[] = {"[Socket 5] Intel Advanced/ZP", ROM_ZAPPA, "zappa", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_zappa_init, NULL}, {"[Socket 5] Packard Bell PB570", ROM_PB570, "pb570", { {"Intel", cpus_PentiumS5}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_DISABLE_SW|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 128, 1, at_pb570_init, NULL}, + {"[Socket 7] ASUS P/I-P55TVP4", ROM_P55TVP4, "p55tvp4", { {"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 256, 1, at_p55tvp4_init, NULL}, + {"[Socket 7] Epox P55-VA", ROM_P55VA, "p55va", { {"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 256, 1, at_p55va_init, NULL}, {"[Socket 7] Award 430VX PCI", ROM_430VX, "430vx", { {"Intel", cpus_Pentium}, {"IDT", cpus_WinChip}, {"Cyrix", cpus_6x86}}, MODEL_GFX_NONE|MODEL_AT|MODEL_PCI|MODEL_PS2|MODEL_HAS_IDE, 1, 256, 1, at_i430vx_init, NULL}, {"", -1, "", {{"", 0}, {"", 0}, {"", 0}}, 0,0,0, 0} @@ -648,6 +652,34 @@ void at_zappa_init() device_add(&intel_flash_bxt_ami_device); } +void at_p55va_init() +{ + at_init(); + pci_init(PCI_CONFIG_TYPE_1); + pci_slot(0x08); + pci_slot(0x09); + pci_slot(0x0A); + pci_slot(0x0B); + i430vx_init(); + piix_init(7, 0x08, 0x09, 0x0A, 0x0B); + um8669f_init(); + device_add(&intel_flash_bxt_device); +} + +void at_p55tvp4_init() +{ + at_init(); + pci_init(PCI_CONFIG_TYPE_1); + pci_slot(0x0C); + pci_slot(0x0B); + pci_slot(0x0A); + pci_slot(0x09); + i430vx_init(); + piix_init(7, 0x0C, 0x0B, 0x0A, 0x09); + um8669f_init(); + device_add(&intel_flash_bxt_device); +} + void at_i430vx_init() { at_init(); diff --git a/src/nvr.c b/src/nvr.c index 843096f..eca7a1e 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -282,6 +282,8 @@ void loadnvr() case ROM_WIN486: f = nvrfopen("win486.nvr", "rb"); nvrmask = 127; break; case ROM_PCI486: f = nvrfopen("hot-433.nvr", "rb"); nvrmask = 127; break; case ROM_SIS496: f = nvrfopen("sis496.nvr", "rb"); nvrmask = 127; break; + case ROM_P55VA: f = nvrfopen("p55va.nvr", "rb"); nvrmask = 127; break; + case ROM_P55TVP4: f = nvrfopen("p55tvp4.nvr", "rb"); nvrmask = 127; break; case ROM_430VX: f = nvrfopen("430vx.nvr", "rb"); nvrmask = 127; break; case ROM_REVENGE: f = nvrfopen("revenge.nvr", "rb"); nvrmask = 127; break; case ROM_ENDEAVOR: f = nvrfopen("endeavor.nvr", "rb"); nvrmask = 127; break; @@ -375,6 +377,8 @@ void savenvr() case ROM_WIN486: f = nvrfopen("win486.nvr", "wb"); break; case ROM_PCI486: f = nvrfopen("hot-433.nvr", "wb"); break; case ROM_SIS496: f = nvrfopen("sis496.nvr", "wb"); break; + case ROM_P55VA: f = nvrfopen("p55va.nvr", "wb"); break; + case ROM_P55TVP4: f = nvrfopen("p55tvp4.nvr", "wb"); break; case ROM_430VX: f = nvrfopen("430vx.nvr", "wb"); break; case ROM_REVENGE: f = nvrfopen("revenge.nvr", "wb"); break; case ROM_ENDEAVOR: f = nvrfopen("endeavor.nvr", "wb"); break;