problem mapping aperture range on supersavage with libpciaccess

Isidor Zeuner xorg at
Tue Apr 8 16:30:20 PDT 2008

Dear list members,

after upgrading to with libpciaccess (git hashes:
a3b63c43b960e3b37e1b303214e63c5155192a5d for libpciaccess,
726dcd9e4ebfb09c0685450dca6e9fae7e773814 for xserver and
d0cbce17e1d1e99dbecda339c6704b96606b20d3 for xf86-video-savage),
Xorg would not start up with a SuperSavage device anymore.
Relevant Xorg.0.log entries seemed to be:

(II) SAVAGE(0): initializing int10
(II) SAVAGE(0): Primary V_BIOS segment is: 0xc000
(II) SAVAGE(0): VESA BIOS detected
(II) SAVAGE(0): VESA VBE Version 2.0
(II) SAVAGE(0): VESA VBE Total Mem: 15168 kB
(II) SAVAGE(0): VESA VBE OEM: S3 Incorporated. Paramont BIOS
(II) SAVAGE(0): VESA VBE OEM Software Rev: 1.0
(II) SAVAGE(0): VESA VBE OEM Vendor: S3 Incorporated.
(II) SAVAGE(0): VESA VBE OEM Product: VBE 2.0
(II) SAVAGE(0): VESA VBE OEM Product Rev: Rev 1.0
(--) SAVAGE(0): Chip: id 8c2e, "SuperSavage/IXC 64"
(--) SAVAGE(0): Engine: "SuperSavage"
(--) SAVAGE(0): AGP card detected
(==) SAVAGE(0): Using AGP DMA
(II) SAVAGE(0): DMA is not supported on SuperSavages.
(==) SAVAGE(0): DMA disabled
(==) SAVAGE(0): Using AGP 1x mode
(==) SAVAGE(0): Using 16 MB AGP aperture
(EE) SAVAGE(0): Internal error: cound not map aperture range (7, Argument list too long).

I managed to get it working again using this patch:

diff --git a/src/savage_driver.c b/src/savage_driver.c
index eb06519..f62a02f 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -3109,7 +3109,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn)
     psav->ApertureRegion.size = (psav->IsPrimary || psav->IsSecondary)
-        ? (0x01000000 * 2) : (0x01000000 * 5);
+        ? (0x01000000 * 2) : (0x01000000 * 4);
     if (psav->FbRegion.size != 0) {

However, I don't know if this will cause problems using other devices.
Maybe some additional checks are needed.

Tell me if you need any further information.

Best regards,

Isidor Zeuner

More information about the xorg mailing list