Add the J-Bond PCI400C-A (note: PCI registers 00h - 03h get randomly zeroed out, needs fixing)

This commit is contained in:
BurnedPinguin
2023-07-06 00:51:57 +02:00
parent 8456ebebe6
commit f480ca3668
3 changed files with 77 additions and 4 deletions

View File

@@ -457,7 +457,7 @@ extern int machine_at_asus386_init(const machine_t *);
extern int machine_at_ecs386_init(const machine_t *);
extern int machine_at_spc6000a_init(const machine_t *);
extern int machine_at_micronics386_init(const machine_t *);
extern int machine_at_ECS_386V_init(const machine_t *);
extern int machine_at_ecs386v_init(const machine_t *);
extern int machine_at_rycleopardlx_init(const machine_t *);
@@ -497,6 +497,7 @@ extern int machine_at_ami471_init(const machine_t *);
extern int machine_at_dtk486_init(const machine_t *);
extern int machine_at_px471_init(const machine_t *);
extern int machine_at_win471_init(const machine_t *);
extern int machine_at_pci400ca_init(const machine_t *);
extern int machine_at_vi15g_init(const machine_t *);
extern int machine_at_greenb_init(const machine_t *);

View File

@@ -226,7 +226,7 @@ machine_at_spc6000a_init(const machine_t *model)
}
int
machine_at_ECS_386V_init(const machine_t *model)
machine_at_ecs386v_init(const machine_t *model)
{
int ret;
@@ -791,6 +791,39 @@ machine_at_win471_init(const machine_t *model)
return ret;
}
int
machine_at_pci400ca_init(const machine_t *model)
{
int ret;
ret = bios_load_linear("roms/machines/JB_PCI400C_A/486-AA008851.BIN",
0x000e0000, 131072, 0);
if (bios_only || !ret)
return ret;
machine_at_common_init(model);
pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x01, PCI_CARD_SCSI, 1, 2, 3, 4);
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(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&keyboard_ps2_ami_device);
device_add(&sio_device);
device_add(&intel_flash_bxt_ami_device);
device_add(&i420tx_device);
device_add(&ncr53c810_onboard_pci_device);
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
return ret;
}
int
machine_at_vi15g_init(const machine_t *model)
{

View File

@@ -4793,7 +4793,7 @@ const machine_t machines[] = {
.internal_name = "ECS_386V",
.type = MACHINE_TYPE_386DX,
.chipset = MACHINE_CHIPSET_ALI_M1429,
.init = machine_at_ECS_386V_init,
.init = machine_at_ecs386v_init,
.pad = 0,
.pad0 = 0,
.pad1 = MACHINE_AVAILABLE,
@@ -4816,7 +4816,7 @@ const machine_t machines[] = {
.step = 1024,
},
.nvrmask = 127,
.kbc = KBC_UNKNOWN,
.kbc_device = NULL,
.kbc_p1 = 0,
.gpio = 0,
.device = NULL,
@@ -5825,6 +5825,45 @@ const machine_t machines[] = {
.snd_device = NULL,
.net_device = NULL
},
/* AMIKey-2 */
{
.name = "[i420TX] J-Bond PCI400C-A",
.internal_name = "pci400ca",
.type = MACHINE_TYPE_486_S2,
.chipset = MACHINE_CHIPSET_INTEL_420TX,
.init = machine_at_pci400ca_init,
.pad = 0,
.pad0 = 0,
.pad1 = MACHINE_AVAILABLE,
.pad2 = 0,
.cpu = {
.package = CPU_PKG_SOCKET3,
.block = CPU_BLOCK_NONE,
.min_bus = 0,
.max_bus = 0,
.min_voltage = 0,
.max_voltage = 0,
.min_multi = 0,
.max_multi = 0
},
.bus_flags = MACHINE_PS2_PCI,
.flags = MACHINE_SCSI,
.ram = {
.min = 1024,
.max = 65536,
.step = 1024
},
.nvrmask = 127,
.kbc_device = &keyboard_ps2_ami_device,
.kbc_p1 = 0,
.gpio = 0,
.device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.net_device = NULL
},
/* 486 machines - Socket 3 */
/* 486 machines with just the ISA slot */