Merge pull request #1304 from tiseno100/master
Hardcode cache size of the UMC HB4 to 512KB
This commit is contained in:
@@ -29,7 +29,6 @@ Basic Reverse engineering effort was done personally by me
|
||||
TODO:
|
||||
- APM, SMM, SMRAM registers(Did some early work. Still quite incomplete)
|
||||
- More Appropriate Bitmasking(If it's even possible)
|
||||
- Shuttle HOT-433 freezes if cache is enabled! Proper checking must be done.
|
||||
|
||||
Warning: Register documentation may be inaccurate!
|
||||
|
||||
@@ -46,6 +45,7 @@ Bit 5-4 Cache Speed
|
||||
1 1 Read 2-1-1-1 Write 2T
|
||||
|
||||
Bit 3 Cache Banks (0: 1 Bank / 1: 2 Banks)
|
||||
|
||||
Bit 2-1-0 Cache Size
|
||||
0 0 0 0KB
|
||||
0 0 1 64KB
|
||||
@@ -93,7 +93,7 @@ Bits 7-4 PCI IRQ for INTD
|
||||
Bits 3-0 PCI IRQ for INTC
|
||||
|
||||
Function 0 Register 46:
|
||||
Bit 7: Generate SMI for IRQ (1: IRQ15/0: IRQ10)
|
||||
Bit 7: Replace SMI request for non-SMM CPU's (1: IRQ15/0: IRQ10)
|
||||
|
||||
Function 0 Register 51:
|
||||
Bit 2: VGA Power Down (0: Standard/1: VESA DPMS)
|
||||
@@ -203,8 +203,8 @@ um8881_write(int func, int addr, uint8_t val, void *priv)
|
||||
switch (addr)
|
||||
{
|
||||
case 0x50:
|
||||
dev->pci_conf[addr] = val;
|
||||
cpu_cache_ext_enabled = !!(val & 0x80);
|
||||
dev->pci_conf[addr] = ((val & 0xf8) | 4); /* Hardcode Cache Size to 512KB */
|
||||
cpu_cache_ext_enabled = !!(val & 0x80); /* Fixes freezing issues on the HOT-433A*/
|
||||
cpu_update_waitstates();
|
||||
break;
|
||||
|
||||
@@ -295,8 +295,10 @@ um8886_write(int func, int addr, uint8_t val, void *priv)
|
||||
break;
|
||||
case 1: /* IDE Controller */
|
||||
if ((addr == 4) && HAS_IDE)
|
||||
{
|
||||
dev->pci_conf_sb[func][addr] = val;
|
||||
ide_handler(val & 1);
|
||||
ide_handler(val & 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -350,6 +350,7 @@ extern int machine_at_win486pci_init(const machine_t *);
|
||||
#endif
|
||||
|
||||
extern int machine_at_atc1415_init(const machine_t *);
|
||||
extern int machine_at_ecs486_init(const machine_t *);
|
||||
extern int machine_at_hot433_init(const machine_t *);
|
||||
|
||||
extern int machine_at_itoxstar_init(const machine_t *);
|
||||
|
@@ -1044,6 +1044,35 @@ machine_at_atc1415_init(const machine_t *model)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_ecs486_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linear(L"roms/machines/ecs486/8810AIO.32J",
|
||||
0x000e0000, 131072, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
pci_register_slot(0x12, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0c, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0d, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
pci_register_slot(0x0e, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x0f, PCI_CARD_IDE, 0, 0, 0, 0);
|
||||
|
||||
device_add(&umc_hb4_early_device);
|
||||
device_add(&ide_cmd640_pci_legacy_only_device);
|
||||
device_add(&fdc37c665_device);
|
||||
device_add(&keyboard_at_ami_device);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_hot433_init(const machine_t *model)
|
||||
{
|
||||
@@ -1062,7 +1091,7 @@ machine_at_hot433_init(const machine_t *model)
|
||||
pci_register_slot(0x12, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0c, PCI_CARD_NORMAL, 1, 2, 3, 4);
|
||||
pci_register_slot(0x0d, PCI_CARD_NORMAL, 4, 1, 2, 3);
|
||||
pci_register_slot(0x0e, PCI_CARD_NORMAL, 3, 4, 1, 4);
|
||||
pci_register_slot(0x0e, PCI_CARD_NORMAL, 3, 4, 1, 2);
|
||||
pci_register_slot(0x0f, PCI_CARD_NORMAL, 2, 3, 4, 1);
|
||||
|
||||
device_add(&umc_hb4_device);
|
||||
|
@@ -240,8 +240,9 @@ const machine_t machines[] = {
|
||||
{ "[SiS 496] Rise Computer R418", "r418", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 261120, 1024, 255, machine_at_r418_init, NULL },
|
||||
{ "[SiS 496] Soyo 4SA2", "4sa2", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 261120, 1024, 255, machine_at_4sa2_init, NULL },
|
||||
{ "[SiS 496] Zida Tomato 4DP", "4dps", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 261120, 1024, 255, machine_at_4dps_init, NULL },
|
||||
{ "[UMC 8881F/8886BF] Atrend ATC-1415", "atc1415", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_atc1415_init, NULL },
|
||||
{ "[UMC 8881F/8886BF] Shuttle HOT-433A", "hot433", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 1024, 262144, 1024, 255, machine_at_hot433_init, NULL },
|
||||
{ "[UMC 8881F/8886BF] Atrend ATC-1415", "atc1415", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 65536, 1024, 255, machine_at_atc1415_init, NULL },
|
||||
{ "[UMC 8881F/8886F] ECS Elite UM8810PAIO", "ecs486", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 131072, 1024, 255, machine_at_ecs486_init, NULL },
|
||||
{ "[UMC 8881F/8886BF] Shuttle HOT-433A", "hot433", MACHINE_TYPE_486, CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_PCI | MACHINE_IDE_DUAL, 1024, 262144, 1024, 255, machine_at_hot433_init, NULL },
|
||||
{ "[STPC Client] ITOX STAR", "itoxstar", MACHINE_TYPE_486, CPU_PKG_STPC, 0, 66666667, 75000000, 0, 0, 1.0, 1.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 255, machine_at_itoxstar_init, NULL },
|
||||
{ "[STPC Consumer-II] Acrosser AR-B1479", "arb1479", MACHINE_TYPE_486, CPU_PKG_STPC, 0, 66666667, 66666667, 0, 0, 2.0, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 32768, 163840, 8192, 255, machine_at_arb1479_init, NULL },
|
||||
{ "[STPC Elite] Advantech PCM-9340", "pcm9340", MACHINE_TYPE_486, CPU_PKG_STPC, 0, 66666667, 66666667, 0, 0, 2.0, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 32768, 98304, 8192, 255, machine_at_pcm9340_init, NULL },
|
||||
|
Reference in New Issue
Block a user