Hook up Bidirectional LPT, EPP, and ECP to all Super I/O chips (missing is vendor-specific Configuration Register B behavior but that's next on my list), fixed Super I/O chip mistakes for a number of machines, split 286/386SX/M6117D machines into three separate files and reordered them as well.

This commit is contained in:
OBattler
2025-08-11 16:36:30 +02:00
parent 42fa1dbe54
commit dbd748636e
51 changed files with 5062 additions and 4463 deletions

View File

@@ -112,7 +112,7 @@ machine_at_ap5vm_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add_params(&fdc37c6xx_device, (void *) FDC37C665);
device_add(&ncr53c810_onboard_pci_device);
device_add(&intel_flash_bxt_device);
@@ -142,7 +142,7 @@ machine_at_p55t2p4_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&intel_flash_bxt_device);
return ret;
@@ -384,6 +384,34 @@ machine_at_equium5200_init(const machine_t *model)
return ret;
}
int
machine_at_p55t2s_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p55t2s/s6y08t.rom",
0x000e0000, 131072, 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(0x12, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
device_add_params(&pc87306_device, (void *) PCX730X_AMI);
device_add(&intel_flash_bxt_device);
return ret;
}
int
machine_at_pcv90_init(const machine_t *model)
{
@@ -458,7 +486,7 @@ machine_at_epc2102_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i82091aa_device);
device_add_params(&i82091aa_device, (void *) I82091AA_022);
device_add(&sst_flash_39sf010_device);
return ret;
@@ -487,7 +515,7 @@ machine_at_p55tvp4_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_ami_pci_device); // It uses the AMIKEY KBC
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&intel_flash_bxt_device);
return ret;
@@ -514,8 +542,8 @@ machine_at_5ivg_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_pci_device);
device_add(&prime3c_device);
device_add(&kbc_ps2_ami_pci_device);
device_add_params(&gm82c803c_device, (void *) 0);
device_add(&intel_flash_bxt_device);
return ret;
@@ -544,7 +572,7 @@ machine_at_8500tvxa_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&um8669f_device);
device_add_params(&um8669f_device, (void *) 0);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -643,6 +671,35 @@ machine_at_dellhannibalp_init(const machine_t *model)
return ret;
}
int
machine_at_p5vxb_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/p5vxb/P5VXB10.BIN",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_ami_pci_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
return ret;
}
int
machine_at_p55va_init(const machine_t *model)
{
@@ -790,7 +847,7 @@ machine_at_mb520n_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add_params(&fdc37c669_device, (void *) 0);
device_add(&intel_flash_bxt_device);
return ret;
@@ -819,7 +876,7 @@ machine_at_i430vx_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
device_add(&kbc_ps2_pci_device);
device_add(&um8669f_device);
device_add_params(&um8669f_device, (void *) 0);
device_add(&intel_flash_bxt_device);
return ret;
@@ -920,8 +977,7 @@ machine_at_nupro592_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add_params(&w83977_device, (void *) (W83977EF | W83977_AMI | W83977_NO_NVR));
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
device_add(&w83781d_device); /* fans: CPU1, unused, unused; temperatures: System, CPU1, unused */
@@ -958,7 +1014,7 @@ machine_at_tx97_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_acorp_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
device_add(&w83781d_device); /* fans: Chassis, CPU, Power; temperatures: MB, unused, CPU */
@@ -1073,8 +1129,7 @@ machine_at_ym430tx_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83977tf_device);
device_add_params(&w83977_device, (void *) (W83977TF | W83977_AMI | W83977_NO_NVR));
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1104,7 +1159,7 @@ machine_at_mb540n_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&kbc_ps2_pci_device);
device_add(&um8669f_device);
device_add_params(&um8669f_device, (void *) 0);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1135,7 +1190,7 @@ machine_at_56a5_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1164,8 +1219,8 @@ machine_at_p5mms98_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
/* This actually has the Winbond W83967AF, for which I can not find any datasheet at all. */
device_add_params(&w83977_device, (void *) (W83977F | W83977_AMI | W83977_NO_NVR));
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
device_add(&lm78_device); /* fans: Thermal, CPU, Chassis; temperature: unused */
@@ -1270,7 +1325,7 @@ machine_at_ficva502_init(const machine_t *model)
device_add(&via_vpx_device);
device_add(&via_vt82c586b_device);
device_add(&kbc_ps2_pci_device);
device_add(&fdc37c669_370_device);
device_add_params(&fdc37c669_device, (void *) FDC37C6XX_370);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -1302,7 +1357,7 @@ machine_at_ficpa2012_init(const machine_t *model)
device_add(&via_vp3_device);
device_add(&via_vt82c586b_device);
device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -1334,7 +1389,7 @@ machine_at_via809ds_init(const machine_t *model)
device_add(&via_vp3_device);
device_add(&via_vt82c586b_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add_params(&fdc37c669_device, (void *) 0);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -1364,7 +1419,7 @@ machine_at_r534f_init(const machine_t *model)
device_add(&sis_5571_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1393,7 +1448,7 @@ machine_at_ms5146_init(const machine_t *model)
device_add(&sis_5571_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1422,7 +1477,7 @@ machine_at_cb52xsi_init(const machine_t *model)
device_add(&sis_5571_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_370_device);
device_add_params(&fdc37c669_device, (void *) FDC37C6XX_370);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1451,7 +1506,7 @@ machine_at_sp97xv_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_VIDEO, 1, 2, 3, 4); /* On-chip SiS graphics, absent here. */
device_add(&sis_5581_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add_params(&w83877_device, (void *) (W83877F | W83877_3F0));
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1478,7 +1533,7 @@ machine_at_sq578_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&sis_5581_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1506,7 +1561,7 @@ machine_at_ms5172_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&sis_5591_1997_device);
device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add_params(&w83877_device, (void *) (W83877TF | W83877_3F0));
device_add(&sst_flash_29ee010_device);
return ret;