Added three ALi M1487/89 machines and that 430VX machine with Award 4.50PG BIOS.
This commit is contained in:
@@ -105,7 +105,7 @@ ali1489_shadow_recalc(ali1489_t *dev)
|
||||
}
|
||||
}
|
||||
|
||||
flushmmucache();
|
||||
flushmmucache_nopc();
|
||||
}
|
||||
|
||||
|
||||
|
@@ -2315,7 +2315,7 @@ write64_ami(void *priv, uint8_t val)
|
||||
case 0xa1: /* get controller version */
|
||||
kbd_log("ATkbc: AMI - get controller version\n");
|
||||
// kbc_transmit(dev, 'H');
|
||||
kbc_transmit(dev, '5');
|
||||
kbc_transmit(dev, 'Z');
|
||||
return 0;
|
||||
|
||||
case 0xa2: /* clear keyboard controller lines P22/P23 */
|
||||
@@ -2878,6 +2878,11 @@ kbd_write(uint16_t port, uint8_t val, void *priv)
|
||||
dev->status &= ~STAT_IFULL;
|
||||
kbc_send_to_ob(dev, 'H', 0, 0x00);
|
||||
}
|
||||
#else
|
||||
if (val == 0xa1) {
|
||||
dev->status &= ~STAT_IFULL;
|
||||
kbc_send_to_ob(dev, 'H', 0, 0x00);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
@@ -360,6 +360,9 @@ extern int machine_at_g486vpa_init(const machine_t *);
|
||||
extern int machine_at_486vipio2_init(const machine_t *);
|
||||
extern int machine_at_abpb4_init(const machine_t *);
|
||||
extern int machine_at_win486pci_init(const machine_t *);
|
||||
extern int machine_at_ms4145_init(const machine_t *);
|
||||
extern int machine_at_sbc_490_init(const machine_t *);
|
||||
extern int machine_at_tf_486_init(const machine_t *);
|
||||
|
||||
extern int machine_at_itoxstar_init(const machine_t *);
|
||||
extern int machine_at_arb1479_init(const machine_t *);
|
||||
@@ -451,6 +454,7 @@ extern int machine_at_ap53_init(const machine_t *);
|
||||
extern int machine_at_8500tuc_init(const machine_t *);
|
||||
extern int machine_at_p55t2s_init(const machine_t *);
|
||||
|
||||
extern int machine_at_p5vxb_init(const machine_t *);
|
||||
extern int machine_at_gw2kte_init(const machine_t *);
|
||||
|
||||
extern int machine_at_ap5s_init(const machine_t *);
|
||||
|
@@ -1320,6 +1320,91 @@ machine_at_win486pci_init(const machine_t *model)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
machine_at_ms4145_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/ms4145/AG56S.ROM",
|
||||
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(0x03, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
|
||||
device_add(&ali1489_device);
|
||||
device_add(&w83787f_device);
|
||||
device_add(&keyboard_at_ami_device);
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
machine_at_sbc_490_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/sbc-490/07159589.rom",
|
||||
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(0x01, PCI_CARD_VIDEO, 4, 1, 2, 3);
|
||||
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
|
||||
device_add(&ali1489_device);
|
||||
device_add(&fdc37c665_device);
|
||||
device_add(&keyboard_ps2_ami_device);
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
machine_at_tf_486_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear("roms/machines/tf-486/tf486v10.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(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
|
||||
device_add(&ali1489_device);
|
||||
device_add(&w83977ef_device);
|
||||
device_add(&keyboard_ps2_device);
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
machine_at_itoxstar_init(const machine_t *model)
|
||||
{
|
||||
|
@@ -449,6 +449,36 @@ machine_at_p55t2s_init(const machine_t *model)
|
||||
}
|
||||
|
||||
|
||||
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(&keyboard_ps2_ami_pci_device);
|
||||
device_add(&w83877f_device);
|
||||
device_add(&sst_flash_29ee010_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
machine_at_gw2kte_init(const machine_t *model)
|
||||
{
|
||||
|
@@ -397,6 +397,8 @@ const machine_t machines[] = {
|
||||
{ "[SiS 471] Epox 486SX/DX Green", "ami471", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 65536, 1024, 127, machine_at_ami471_init, NULL },
|
||||
|
||||
/* 486 machines which utilize the PCI bus */
|
||||
/* This has an AMIKey-2, which is an updated version of type 'H'. */
|
||||
{ "[ALi M1489] AAEON SBC-490", "sbc-490", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_sbc_490_init, NULL },
|
||||
/* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
|
||||
KBC. */
|
||||
{ "[ALi M1489] ABIT AB-PB4", "abpb4", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_abpb4_init, NULL },
|
||||
@@ -406,6 +408,14 @@ const machine_t machines[] = {
|
||||
and 0xCB if command 0xA1 returns a letter in the 0x5x or 0x7x ranges, so I'm
|
||||
going to give it an AMI 'U' KBC. */
|
||||
{ "[ALi M1489] AMI WinBIOS 486 PCI", "win486pci", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_win486pci_init, NULL },
|
||||
/* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
|
||||
KBC.
|
||||
The known BIOS string ends in -E, and the BIOS returns whatever command 0xA1
|
||||
returns (but only if command 0xA1 is instant response), so said ALi keyboard
|
||||
controller likely returns 'E'. */
|
||||
{ "[ALi M1489] MSI MS-4145", "ms4145", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_ms4145_init, NULL },
|
||||
/* Has an ALi M5042 keyboard controller with Phoenix MultiKey/42 v1.40 firmware. */
|
||||
{ "[ALi M1489] ESA TF-486", "tf-486", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_tf_486_init, NULL },
|
||||
/* Has IBM PS/2 Type 1 KBC firmware. */
|
||||
{ "[OPTi 802G] IBM PC 330 (type 6573)", "pc330_6573", MACHINE_TYPE_486_S3, CPU_PKG_SOCKET3_PC330, 0, 25000000, 33333333, 0, 0, 2.0, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE, 1024, 65536, 1024, 127, machine_at_pc330_6573_init, NULL },
|
||||
/* This has an AMIKey-2, which is an updated version of type 'H'. */
|
||||
@@ -578,6 +588,8 @@ const machine_t machines[] = {
|
||||
{ "[i430HX] SuperMicro Super P55T2S", "p55t2s", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3300, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 786432, 8192, 127, machine_at_p55t2s_init, NULL },
|
||||
|
||||
/* 430VX */
|
||||
/* Has AMIKey H KBC firmware (AMIKey-2). */
|
||||
{ "[i430VX] ECS P5VX-B", "p5vxb", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p5vxb_init, NULL },
|
||||
/* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
|
||||
PC87306 Super I/O chip, command 0xA1 returns '5'.
|
||||
Command 0xA0 copyright string: (C)1994 AMI . */
|
||||
|
@@ -53,7 +53,7 @@ sio_detect_read(uint16_t port, void *priv)
|
||||
|
||||
pclog("sio_detect_read : port=%04x = %02X\n", port, dev->regs[port & 1]);
|
||||
|
||||
return dev->regs[port & 1];
|
||||
return 0xff /*dev->regs[port & 1]*/;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user