Fixed the VIA machines.
This commit is contained in:
@@ -363,20 +363,16 @@ via_apollo_host_bridge_write(int func, int addr, uint8_t val, void *priv)
|
|||||||
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 1); /* SMM: Code DRAM, Data DRAM */
|
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 1); /* SMM: Code DRAM, Data DRAM */
|
||||||
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 3); /* Non-SMM: Code Invalid, Data Invalid */
|
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 3); /* Non-SMM: Code Invalid, Data Invalid */
|
||||||
break;
|
break;
|
||||||
} else if(dev->id >= VIA_597) switch (val & 0x03) {
|
} else if (dev->id >= VIA_597) switch (val & 0x03) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
default:
|
default:
|
||||||
/* Disable SMI Address Redirection (default) */
|
/* Disable SMI Address Redirection (default) */
|
||||||
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 0);
|
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 0);
|
||||||
if (dev->id == VIA_597)
|
|
||||||
apollo_smram_map(dev, 1, 0x00030000, 0x00020000, 1);
|
|
||||||
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 0);
|
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 0);
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
/* Allow access to DRAM Axxxx-Bxxxx for both normal and SMI cycles */
|
/* Allow access to DRAM Axxxx-Bxxxx for both normal and SMI cycles */
|
||||||
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 1);
|
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 1);
|
||||||
if (dev->id == VIA_597)
|
|
||||||
apollo_smram_map(dev, 1, 0x00030000, 0x00020000, 1);
|
|
||||||
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 1);
|
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 1);
|
||||||
break;
|
break;
|
||||||
case 0x02:
|
case 0x02:
|
||||||
@@ -391,8 +387,6 @@ via_apollo_host_bridge_write(int func, int addr, uint8_t val, void *priv)
|
|||||||
case 0x03:
|
case 0x03:
|
||||||
/* Allow SMI Axxxx-Bxxxx DRAM access */
|
/* Allow SMI Axxxx-Bxxxx DRAM access */
|
||||||
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 1);
|
apollo_smram_map(dev, 1, 0x000a0000, 0x00020000, 1);
|
||||||
if (dev->id == VIA_597)
|
|
||||||
apollo_smram_map(dev, 1, 0x00030000, 0x00020000, 1);
|
|
||||||
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 0);
|
apollo_smram_map(dev, 0, 0x000a0000, 0x00020000, 0);
|
||||||
break;
|
break;
|
||||||
} else switch(val & 0x03) {
|
} else switch(val & 0x03) {
|
||||||
@@ -711,7 +705,7 @@ const device_t via_vpx_device =
|
|||||||
{
|
{
|
||||||
"VIA Apollo VPX",
|
"VIA Apollo VPX",
|
||||||
DEVICE_PCI,
|
DEVICE_PCI,
|
||||||
VIA_597, /*VT82C585*/
|
VIA_585, /*VT82C585*/
|
||||||
via_apollo_init,
|
via_apollo_init,
|
||||||
via_apollo_close,
|
via_apollo_close,
|
||||||
via_apollo_reset,
|
via_apollo_reset,
|
||||||
@@ -725,7 +719,7 @@ const device_t amd640_device =
|
|||||||
{
|
{
|
||||||
"AMD 640 System Controller",
|
"AMD 640 System Controller",
|
||||||
DEVICE_PCI,
|
DEVICE_PCI,
|
||||||
VIA_597, /*VT82C595*/
|
VIA_595, /*VT82C595*/
|
||||||
via_apollo_init,
|
via_apollo_init,
|
||||||
via_apollo_close,
|
via_apollo_close,
|
||||||
via_apollo_reset,
|
via_apollo_reset,
|
||||||
|
@@ -25,6 +25,7 @@ extern const device_t fdc37c663_device;
|
|||||||
extern const device_t fdc37c665_device;
|
extern const device_t fdc37c665_device;
|
||||||
extern const device_t fdc37c666_device;
|
extern const device_t fdc37c666_device;
|
||||||
extern const device_t fdc37c669_device;
|
extern const device_t fdc37c669_device;
|
||||||
|
extern const device_t fdc37c669_370_device;
|
||||||
extern const device_t fdc37c931apm_device;
|
extern const device_t fdc37c931apm_device;
|
||||||
extern const device_t fdc37c931apm_compaq_device;
|
extern const device_t fdc37c931apm_compaq_device;
|
||||||
extern const device_t fdc37c932fr_device;
|
extern const device_t fdc37c932fr_device;
|
||||||
|
@@ -1028,7 +1028,7 @@ machine_at_ficva502_init(const machine_t *model)
|
|||||||
device_add(&via_vpx_device);
|
device_add(&via_vpx_device);
|
||||||
device_add(&via_vt82c586b_device);
|
device_add(&via_vt82c586b_device);
|
||||||
device_add(&keyboard_ps2_pci_device);
|
device_add(&keyboard_ps2_pci_device);
|
||||||
device_add(&fdc37c669_device);
|
device_add(&fdc37c669_370_device);
|
||||||
device_add(&sst_flash_29ee010_device);
|
device_add(&sst_flash_29ee010_device);
|
||||||
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
|
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
|
||||||
|
|
||||||
@@ -1062,7 +1062,7 @@ machine_at_ficpa2012_init(const machine_t *model)
|
|||||||
device_add(&via_vt82c586b_device);
|
device_add(&via_vt82c586b_device);
|
||||||
device_add(&keyboard_ps2_pci_device);
|
device_add(&keyboard_ps2_pci_device);
|
||||||
device_add(&w83877f_device);
|
device_add(&w83877f_device);
|
||||||
device_add(&sst_flash_39sf010_device);
|
device_add(&sst_flash_29ee010_device);
|
||||||
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
|
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -281,7 +281,7 @@ fdc37c669_init(const device_t *info)
|
|||||||
dev->uart[0] = device_add_inst(&ns16550_device, 1);
|
dev->uart[0] = device_add_inst(&ns16550_device, 1);
|
||||||
dev->uart[1] = device_add_inst(&ns16550_device, 2);
|
dev->uart[1] = device_add_inst(&ns16550_device, 2);
|
||||||
|
|
||||||
io_sethandler(0x3f0, 0x0002,
|
io_sethandler(info->local ? 0x370 : 0x3f0, 0x0002,
|
||||||
fdc37c669_read, NULL, NULL, fdc37c669_write, NULL, NULL, dev);
|
fdc37c669_read, NULL, NULL, fdc37c669_write, NULL, NULL, dev);
|
||||||
|
|
||||||
fdc37c669_reset(dev);
|
fdc37c669_reset(dev);
|
||||||
@@ -298,3 +298,13 @@ const device_t fdc37c669_device = {
|
|||||||
{ NULL }, NULL, NULL,
|
{ NULL }, NULL, NULL,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const device_t fdc37c669_370_device = {
|
||||||
|
"SMC FDC37C669 Super I/O (Port 370h)",
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
fdc37c669_init, fdc37c669_close, NULL,
|
||||||
|
{ NULL }, NULL, NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
Reference in New Issue
Block a user