From d1e205cff430cd7d4dfe7669ce2aaa0bfc2f0c93 Mon Sep 17 00:00:00 2001 From: Panagiotis <58827426+tiseno100@users.noreply.github.com> Date: Thu, 17 Dec 2020 13:38:10 +0200 Subject: [PATCH] Fixed logging & Added the BCM SQ-588 --- src/chipset/sis_85c50x.c | 19 ++++++++++++------- src/include/86box/machine.h | 4 ++++ src/machine/m_at_socket4_5.c | 31 +++++++++++++++++++++++++++++++ src/machine/machine_table.c | 5 +++++ 4 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/chipset/sis_85c50x.c b/src/chipset/sis_85c50x.c index be7c6a4cb..781177b35 100644 --- a/src/chipset/sis_85c50x.c +++ b/src/chipset/sis_85c50x.c @@ -15,11 +15,13 @@ * Copyright 2020 Tiseno100. */ +#include #include #include #include #include #include +#define HAVE_STDARG_H #include <86box/86box.h> #include <86box/device.h> #include <86box/io.h> @@ -150,14 +152,14 @@ sis_85c50x_write(int func, int addr, uint8_t val, void *priv) dev->pci_conf[addr] = (val & 0x7f); break; } - sis_85c50x_log("85C501: dev->pci_conf[%02x] = %02x", addr, val); + sis_85c50x_log("85C501: dev->pci_conf[%02x] = %02x\n", addr, val); } static uint8_t sis_85c50x_read(int func, int addr, void *priv) { sis_85c50x_t *dev = (sis_85c50x_t *)priv; - sis_85c50x_log("85C501: dev->pci_conf[%02x] (%02x)", addr, dev->pci_conf[addr]); + sis_85c50x_log("85C501: dev->pci_conf[%02x] (%02x)\n", addr, dev->pci_conf[addr]); return dev->pci_conf[addr]; } @@ -180,30 +182,34 @@ sis_85c50x_sb_write(int func, int addr, uint8_t val, void *priv) break; case 0x41: /* PCI INTA IRQ */ + sis_85c50x_log("85C503: Remapping Slot %02x to IRQ %02x\n", PCI_INTA, (val & 0x0f)); dev->pci_conf_sb[addr] = (val & 0x8f); pci_set_irq_routing(PCI_INTA, !(val & 0x80) ? (val & 0x0f) : PCI_IRQ_DISABLED); break; case 0x42: /* PCI INTB IRQ */ + sis_85c50x_log("85C503: Remapping Slot %02x to IRQ %02x\n", PCI_INTB, (val & 0x0f)); dev->pci_conf_sb[addr] = (val & 0x8f); pci_set_irq_routing(PCI_INTB, !(val & 0x80) ? (val & 0x0f) : PCI_IRQ_DISABLED); break; case 0x43: /* PCI INTC IRQ */ + sis_85c50x_log("85C503: Remapping Slot %02x to IRQ %02x\n", PCI_INTC, (val & 0x0f)); dev->pci_conf_sb[addr] = (val & 0x8f); pci_set_irq_routing(PCI_INTC, !(val & 0x80) ? (val & 0x0f) : PCI_IRQ_DISABLED); break; case 0x44: /* PCI INTD IRQ */ + sis_85c50x_log("85C503: Remapping Slot %02x to IRQ %02x\n", PCI_INTD, (val & 0x0f)); dev->pci_conf_sb[addr] = (val & 0x8f); pci_set_irq_routing(PCI_INTD, !(val & 0x80) ? (val & 0x0f) : PCI_IRQ_DISABLED); break; } - sis_85c50x_log("85C503: dev->pci_conf_sb[%02x] = %02x", addr, val); + sis_85c50x_log("85C503: dev->pci_conf_sb[%02x] = %02x\n", addr, val); } static uint8_t sis_85c50x_sb_read(int func, int addr, void *priv) { sis_85c50x_t *dev = (sis_85c50x_t *)priv; - sis_85c50x_log("85C503: dev->pci_conf_sb[%02x] (%02x)", addr, dev->pci_conf_sb[addr]); + sis_85c50x_log("85C503: dev->pci_conf_sb[%02x] (%02x)\n", addr, dev->pci_conf_sb[addr]); return dev->pci_conf_sb[addr]; } @@ -228,7 +234,7 @@ sis_85c50x_isa_write(uint16_t addr, uint8_t val, void *priv) break; } } - sis_85c50x_log("85C501-ISA: dev->regs[%02x] = %02x", addr, val); + sis_85c50x_log("85C501-ISA: dev->regs[%02x] = %02x\n", addr, val); } static uint8_t @@ -236,7 +242,7 @@ sis_85c50x_isa_read(uint16_t addr, void *priv) { sis_85c50x_t *dev = (sis_85c50x_t *)priv; return dev->regs[dev->index]; - sis_85c50x_log("85C501-ISA: dev->regs[%02x] (%02x)", dev->index, dev->regs[dev->index]); + sis_85c50x_log("85C501-ISA: dev->regs[%02x] (%02x)\n", dev->index, dev->regs[dev->index]); } static void @@ -316,7 +322,6 @@ sis_85c50x_init(const device_t *info) dev->smram = smram_add(); device_add(&port_92_device); sis_85c50x_reset(dev); - return dev; } diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index d920ef494..b72542d2c 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -376,6 +376,10 @@ extern int machine_at_vectra54_init(const machine_t *); extern int machine_at_powermate_v_init(const machine_t *); extern int machine_at_acerv30_init(const machine_t *); +#if defined(DEV_BRANCH) && defined(USE_SIS_85C50X) +extern int machine_at_sq588_init(const machine_t *); +#endif + #ifdef EMU_DEVICE_H extern const device_t *at_endeavor_get_device(void); #define at_vectra54_get_device at_endeavor_get_device diff --git a/src/machine/m_at_socket4_5.c b/src/machine/m_at_socket4_5.c index de61ed113..fd1117a03 100644 --- a/src/machine/m_at_socket4_5.c +++ b/src/machine/m_at_socket4_5.c @@ -646,3 +646,34 @@ machine_at_acerv30_init(const machine_t *model) return ret; } + +#if defined(DEV_BRANCH) && defined(USE_SIS_85C50X) +int +machine_at_sq588_init(const machine_t *model) +{ + int ret; + + ret = bios_load_linear(L"roms/machines/sq588/sq588b03.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_SOUTHBRIDGE, 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(&sis_85c50x_device); + device_add(&keyboard_ps2_ami_pci_device); + device_add(&ide_cmd640_pci_legacy_only_device); + device_add(&fdc37c665_device); + device_add(&sst_flash_29ee010_device); + + return ret; +} +#endif \ No newline at end of file diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index c852b0057..80d6caf7d 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -257,6 +257,11 @@ const machine_t machines[] = { { "[i430FX] NEC PowerMate V", "powermate_v", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_powermate_v_init, NULL }, { "[i430FX] PC Partner MB500N", "mb500n", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 3.0, MACHINE_PCI | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_mb500n_init, NULL }, + /* SiS 85C50x */ + #if defined(DEV_BRANCH) && defined(USE_SIS_85C50X) + { "[SiS 85C50x] BCM SQ-588", "sq588", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_sq588_init, NULL }, + #endif + /* Socket 7 machines */ /* 430FX */ { "[i430FX] ASUS P/I-P54TP4XE", "p54tp4xe", MACHINE_TYPE_SOCKET7_3V, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3600, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p54tp4xe_init, NULL },