Added SiS 550x, 558x, 559x, (5)600, UMC UM8890, UMC UM8663 Super I/O Chips, UMC UM8673F and Winbond W83769F IDE Contollers, and a number of machines, and fixes to the UM888x 486 chipset.
This commit is contained in:
@@ -41,11 +41,13 @@
|
||||
#define AGP_BRIDGE_VIA_598 0x11068598
|
||||
#define AGP_BRIDGE_VIA_691 0x11068691
|
||||
#define AGP_BRIDGE_VIA_8601 0x11068601
|
||||
#define AGP_BRIDGE_SIS_5XXX 0x10390001
|
||||
|
||||
#define AGP_BRIDGE_ALI(x) (((x) >> 16) == 0x10b9)
|
||||
#define AGP_BRIDGE_INTEL(x) (((x) >> 16) == 0x8086)
|
||||
#define AGP_BRIDGE_VIA(x) (((x) >> 16) == 0x1106)
|
||||
#define AGP_BRIDGE(x) ((x) >= AGP_BRIDGE_ALI_M5243)
|
||||
#define AGP_BRIDGE_SIS(x) (((x) >> 16) == 0x1039)
|
||||
#define AGP_BRIDGE(x) ((x) >= AGP_BRIDGE_SIS_5XXX)
|
||||
|
||||
typedef struct pci_bridge_t {
|
||||
uint32_t local;
|
||||
@@ -134,6 +136,8 @@ pci_bridge_write(int func, int addr, uint8_t val, void *priv)
|
||||
val |= 0x02;
|
||||
else if (dev->local == AGP_BRIDGE_ALI_M5247)
|
||||
val &= 0xc3;
|
||||
else if (AGP_BRIDGE_SIS(dev->local))
|
||||
val &= 0x27;
|
||||
else
|
||||
val &= 0x67;
|
||||
break;
|
||||
@@ -194,7 +198,8 @@ pci_bridge_write(int func, int addr, uint8_t val, void *priv)
|
||||
case 0x22:
|
||||
case 0x24:
|
||||
case 0x26:
|
||||
val &= 0xf0;
|
||||
val &= 0xf0; /* SiS datasheets say 0Fh for 1Ch but that's clearly an erratum since the
|
||||
definition of the bits is identical to the other vendors' AGP bridges. */
|
||||
break;
|
||||
|
||||
case 0x3c:
|
||||
@@ -205,6 +210,8 @@ pci_bridge_write(int func, int addr, uint8_t val, void *priv)
|
||||
case 0x3e:
|
||||
if (AGP_BRIDGE_VIA(dev->local))
|
||||
val &= 0x0c;
|
||||
else if (AGP_BRIDGE_SIS(dev->local))
|
||||
val &= 0x0e;
|
||||
else if (dev->local == AGP_BRIDGE_ALI_M5247)
|
||||
val &= 0x0f;
|
||||
else if (dev->local == AGP_BRIDGE_ALI_M5243)
|
||||
@@ -668,3 +675,17 @@ const device_t via_vt8601_agp_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sis_5xxx_agp_device = {
|
||||
.name = "SiS 5591/(5)600 AGP Bridge",
|
||||
.internal_name = "via_5xxx_agp",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = AGP_BRIDGE_SIS_5XXX,
|
||||
.init = pci_bridge_init,
|
||||
.close = NULL,
|
||||
.reset = pci_bridge_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user