Support for HP's IPF ZX1 systems (Alex Williamson).
This commit is contained in:
parent
231c00e8fb
commit
7eb6b69ebd
|
@ -503,6 +503,9 @@
|
||||||
#define PCI_CHIP_ZX1_IOC 0x122A
|
#define PCI_CHIP_ZX1_IOC 0x122A
|
||||||
#define PCI_CHIP_ZX1_LBA 0x122E /* a.k.a. Mercury */
|
#define PCI_CHIP_ZX1_LBA 0x122E /* a.k.a. Mercury */
|
||||||
#define PCI_CHIP_ZX1_AGP8 0x12B4 /* a.k.a. QuickSilver */
|
#define PCI_CHIP_ZX1_AGP8 0x12B4 /* a.k.a. QuickSilver */
|
||||||
|
#define PCI_CHIP_ZX2_LBA 0x12EE
|
||||||
|
#define PCI_CHIP_ZX2_SBA 0x4030
|
||||||
|
#define PCI_CHIP_ZX2_IOC 0x4031
|
||||||
|
|
||||||
/* SGS */
|
/* SGS */
|
||||||
#define PCI_CHIP_STG2000 0x0008
|
#define PCI_CHIP_STG2000 0x0008
|
||||||
|
|
|
@ -487,11 +487,15 @@ xf86PreScanZX1(void)
|
||||||
if (!(pZX1mio = xf86MapVidMem(-1, VIDMEM_MMIO, MIO_BASE, mapSize)))
|
if (!(pZX1mio = xf86MapVidMem(-1, VIDMEM_MMIO, MIO_BASE, mapSize)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Look for ZX1's SBA and IOC */ /* XXX What about Dino? */
|
/* Look for ZX1's SBA and IOC */
|
||||||
if ((MIO_LONG(MIO_FUNCTION0 + PCI_ID_REG) !=
|
if (((MIO_LONG(MIO_FUNCTION0 + PCI_ID_REG) !=
|
||||||
DEVID(VENDOR_HP, CHIP_ZX1_SBA)) ||
|
DEVID(VENDOR_HP, CHIP_ZX1_SBA)) ||
|
||||||
(MIO_LONG(MIO_FUNCTION1 + PCI_ID_REG) !=
|
(MIO_LONG(MIO_FUNCTION1 + PCI_ID_REG) !=
|
||||||
DEVID(VENDOR_HP, CHIP_ZX1_IOC))) {
|
DEVID(VENDOR_HP, CHIP_ZX1_IOC))) &&
|
||||||
|
((MIO_LONG(MIO_FUNCTION0 + PCI_ID_REG) !=
|
||||||
|
DEVID(VENDOR_HP, CHIP_ZX2_SBA)) ||
|
||||||
|
(MIO_LONG(MIO_FUNCTION1 + PCI_ID_REG) !=
|
||||||
|
DEVID(VENDOR_HP, CHIP_ZX2_IOC)))) {
|
||||||
xf86UnMapVidMem(-1, pZX1mio, mapSize);
|
xf86UnMapVidMem(-1, pZX1mio, mapSize);
|
||||||
pZX1mio = NULL;
|
pZX1mio = NULL;
|
||||||
return;
|
return;
|
||||||
|
@ -536,10 +540,22 @@ xf86PreScanZX1(void)
|
||||||
if (tmp & ROPE_Q4)
|
if (tmp & ROPE_Q4)
|
||||||
zx1_ropemap[5] = zx1_ropemap[6] = zx1_ropemap[7] = 4;
|
zx1_ropemap[5] = zx1_ropemap[6] = zx1_ropemap[7] = 4;
|
||||||
|
|
||||||
tmp = MIO_QUAD(ROPE_PAGE_CONTROL);
|
/*
|
||||||
for (i = 0; i < 8; i++, tmp >>= 8)
|
* zx2 should allow better probing support via hard-fails, so no need to
|
||||||
if (!(CARD8)tmp)
|
* use the ROPE_PAGE_CONTROL register. Also, zx2 always has ropes 3 & 7
|
||||||
zx1_ropemap[i] = -1;
|
* active regardless of bundling.
|
||||||
|
*/
|
||||||
|
if (MIO_LONG(MIO_FUNCTION0 + PCI_ID_REG) !=
|
||||||
|
DEVID(VENDOR_HP, CHIP_ZX2_SBA)) {
|
||||||
|
|
||||||
|
tmp = MIO_QUAD(ROPE_PAGE_CONTROL);
|
||||||
|
for (i = 0; i < 8; i++, tmp >>= 8)
|
||||||
|
if (!(CARD8)tmp)
|
||||||
|
zx1_ropemap[i] = -1;
|
||||||
|
} else {
|
||||||
|
zx1_ropemap[3] = 3;
|
||||||
|
zx1_ropemap[7] = 7;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < 8; ) {
|
for (i = 0; i < 8; ) {
|
||||||
if (zx1_ropemap[i] == i) {
|
if (zx1_ropemap[i] == i) {
|
||||||
|
@ -557,6 +573,7 @@ xf86PreScanZX1(void)
|
||||||
case DEVID(VENDOR_HP, CHIP_ELROY):
|
case DEVID(VENDOR_HP, CHIP_ELROY):
|
||||||
case DEVID(VENDOR_HP, CHIP_ZX1_LBA): /* Mercury */
|
case DEVID(VENDOR_HP, CHIP_ZX1_LBA): /* Mercury */
|
||||||
case DEVID(VENDOR_HP, CHIP_ZX1_AGP8): /* QuickSilver */
|
case DEVID(VENDOR_HP, CHIP_ZX1_AGP8): /* QuickSilver */
|
||||||
|
case DEVID(VENDOR_HP, CHIP_ZX2_LBA):
|
||||||
/* Expected vendor/device IDs */
|
/* Expected vendor/device IDs */
|
||||||
zx1_busno[i] =
|
zx1_busno[i] =
|
||||||
(unsigned int)IOA_BYTE(i, IOA_SECONDARY_BUS);
|
(unsigned int)IOA_BYTE(i, IOA_SECONDARY_BUS);
|
||||||
|
@ -951,6 +968,9 @@ xf86PostScanZX1(void)
|
||||||
case DEVID(VENDOR_HP, CHIP_ZX1_IOC): /* Pluto function 1 */
|
case DEVID(VENDOR_HP, CHIP_ZX1_IOC): /* Pluto function 1 */
|
||||||
case DEVID(VENDOR_HP, CHIP_ZX1_LBA): /* Mercury */
|
case DEVID(VENDOR_HP, CHIP_ZX1_LBA): /* Mercury */
|
||||||
case DEVID(VENDOR_HP, CHIP_ZX1_AGP8): /* QuickSilver */
|
case DEVID(VENDOR_HP, CHIP_ZX1_AGP8): /* QuickSilver */
|
||||||
|
case DEVID(VENDOR_HP, CHIP_ZX2_SBA):
|
||||||
|
case DEVID(VENDOR_HP, CHIP_ZX2_IOC):
|
||||||
|
case DEVID(VENDOR_HP, CHIP_ZX2_LBA):
|
||||||
xfree(pPCI); /* Remove it */
|
xfree(pPCI); /* Remove it */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue