Description of Problem: The hardware in question is a Dell c400 with an i830m video chipset. I am unable to make XFree86 work beyond 1024x768@8bpp with an i830m video card. Even through the agp driver allocates as much as 128MB of ram, X itself refuses to start when I try to push the display depth beyond 16bpp, claiming that the requested mode is unavailable. When the agpgart driver is loaded, I get the following message: Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 202M agpgart: Detected an Intel 830M Chipset. agpgart: detected 1024K stolen memory. agpgart: AGP aperture is 128M @ 0xe0000000 When the i830 drm driver is loaded [drm] AGP 0.99 on Intel i810 @ 0xe0000000 128MB [drm] Initialized i830 1.2.0 20011004 on minor 0 When I try to start X in 1024x768@16bpp mode, I get the following error message: (**) I810(0): Depth 16, (--) framebuffer bpp 16 (==) I810(0): RGB weight 565 (==) I810(0): Default visual is TrueColor (WW) I810(0): Bad V_BIOS checksum (II) I810(0): Primary V_BIOS segment is: 0xc000 (--) I810(0): Chipset: "i830" (--) I810(0): Linear framebuffer at 0xE0000000 (--) I810(0): IO registers at addr 0xF4F80000 (II) I810(0): detected 1024K stolen memory. (II) I810(0): I810CheckAvailableMemory: 206844k available (==) I810(0): Will alloc AGP framebuffer: 16384 kByte (==) I810(0): Using gamma correction (1.0, 1.0, 1.0) (II) I810(0): Currently active displays on Pipe A: (II) I810(0): LFP (Local Flat Panel) child device (II) Loading sub module "vbe" (II) LoadModule: "vbe" (II) Loading /usr/X11R6/lib/modules/libvbe.a (II) Module vbe: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) VESA BIOS detected (II) VESA VBE Version 3.0 (II) VESA VBE Total Mem: 832 kB (II) VESA VBE OEM: Almador Graphics Chip Accelerated VGA BIOS (II) VESA VBE OEM Software Rev: 1.0 (II) VESA VBE OEM Vendor: Intel Corporation (II) VESA VBE OEM Product: Almador Graphics Controller (II) VESA VBE OEM Product Rev: Hardware Version 0.0 (II) Loading sub module "ddc" (II) LoadModule: "ddc" (II) Loading /usr/X11R6/lib/modules/libddc.a (II) Module ddc: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) I810(0): VESA VBE DDC supported (II) I810(0): VESA VBE DDC Level none (II) I810(0): VESA VBE DDC transfer in appr. 0 sec. (II) I810(0): VESA VBE DDC read failed (==) I810(0): DPI set to (75, 75) (EE) I810(0): No matching modes found in configuration file. (EE) I810(0): Only the following modes are supported by the BIOS in this bpp: (EE) I810(0): 640x480 (EE) I810(0): Please choose one of these modes. When I try 1024x768@8bpp, X starts up and I get the following: (**) I810(0): Depth 8, (--) framebuffer bpp 8 (==) I810(0): RGB weight 888 (==) I810(0): Default visual is PseudoColor (WW) I810(0): Bad V_BIOS checksum (II) I810(0): Primary V_BIOS segment is: 0xc000 (--) I810(0): Chipset: "i830" (--) I810(0): Linear framebuffer at 0xE0000000 (--) I810(0): IO registers at addr 0xF4F80000 (II) I810(0): detected 1024K stolen memory. (II) I810(0): I810CheckAvailableMemory: 206844k available (==) I810(0): Will alloc AGP framebuffer: 16384 kByte (==) I810(0): Using gamma correction (1.0, 1.0, 1.0) (II) I810(0): Currently active displays on Pipe A: (II) I810(0): LFP (Local Flat Panel) child device (II) Loading sub module "vbe" (II) LoadModule: "vbe" (II) Loading /usr/X11R6/lib/modules/libvbe.a (II) Module vbe: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) VESA BIOS detected (II) VESA VBE Version 3.0 (II) VESA VBE Total Mem: 832 kB (II) VESA VBE OEM: Almador Graphics Chip Accelerated VGA BIOS (II) VESA VBE OEM Software Rev: 1.0 (II) VESA VBE OEM Vendor: Intel Corporation (II) VESA VBE OEM Product: Almador Graphics Controller (II) VESA VBE OEM Product Rev: Hardware Version 0.0 (II) Loading sub module "ddc" (II) LoadModule: "ddc" (II) Loading /usr/X11R6/lib/modules/libddc.a (II) Module ddc: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) I810(0): VESA VBE DDC supported (II) I810(0): VESA VBE DDC Level none (II) I810(0): VESA VBE DDC transfer in appr. 0 sec. (II) I810(0): VESA VBE DDC read failed (==) I810(0): DPI set to (75, 75) (--) I810(0): Virtual size is 1024x768 (pitch 1024) (**) I810(0): Default mode "1024x768" (II) Loading sub module "fb" (II) LoadModule: "fb" (II) Loading /usr/X11R6/lib/modules/libfb.a (II) Module fb: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 ANSI C Emulation, version 0.1 (II) Loading sub module "xaa" (II) LoadModule: "xaa" (II) Loading /usr/X11R6/lib/modules/libxaa.a (II) Module xaa: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) do I need RAC? No, I don't. (II) resource ranges after preInit: [0] 0 0xf4f80000 - 0xf4ffffff (0x80000) MS[B] [1] 0 0xe0000000 - 0xe7ffffff (0x8000000) MS[B] [2] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [3] -1 0x00100000 - 0x0fffffff (0xff00000) MX[B]E(B) [4] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [5] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [6] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [7] -1 0xfafffc00 - 0xfafffc7f (0x80) MX[B] [8] -1 0x10000000 - 0x100003ff (0x400) MX[B] [9] -1 0xf4f00000 - 0xf4f7ffff (0x80000) MX[B](B) [10] -1 0xd8000000 - 0xdfffffff (0x8000000) MX[B](B) [11] -1 0xf4f80000 - 0xf4ffffff (0x80000) MX[B](B) [12] -1 0xe0000000 - 0xe7ffffff (0x8000000) MX[B](B) [13] 0 0x000a0000 - 0x000affff(0x10000) MS[B](OprD) [14] 0 0x000b0000 - 0x000b7fff (0x8000) MS[B](OprD) [15] 0 0x000b8000 - 0x000bffff (0x8000) MS[B](OprD) [16] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [17] -1 0x00000000 - 0x000000ff (0x100) IX[B] [18] -1 0x0000ec80 - 0x0000ecff (0x80) IX[B] [19] -1 0x0000dc80 - 0x0000dcbf (0x40) IX[B] [20] -1 0x0000d800 - 0x0000d8ff (0x100) IX[B] [21] -1 0x0000bfa0 - 0x0000bfaf (0x10) IX[B] [22] -1 0x00000374 - 0x00000374 (0x1) IX[B] [23] -1 0x00000170 - 0x00000177 (0x8) IX[B] [24] -1 0x000003f4 - 0x000003f4 (0x1) IX[B] [25] -1 0x000001f0 - 0x000001f7 (0x8) IX[B] [26] -1 0x0000bf80 - 0x0000bf9f (0x20) IX[B] [27] 0 0x000003b0 - 0x000003bb (0xc) IS[B](OprU) [28] 0 0x000003c0 - 0x000003df (0x20) IS[B](OprU) (==) I810(0): Default visual is PseudoColor (EE) I810(0): [drm] Direct rendering only supported in 16 and 32 bpp modes (==) I810(0): Write-combining range (0xe0000000,0x8000000) (II) I810(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 (II) I810(0): Adding 768 scanlines for pixmap caching (II) I810(0): Allocated Scratch Memory (II) I810(0): Using XFree86 Acceleration Architecture (XAA) Screen to screen bit blits Solid filled rectangles 8x8 mono pattern filled rectangles Indirect CPU to Screen color expansion Solid Horizontal and Vertical Lines Offscreen Pixmaps Setting up tile and stipple cache: 24 128x128 slots 6 256x256 slots (==) I810(0): Backing store disabled (==) I810(0): Silken mouse enabled (II) I810(0): Initializing HW Cursor (**) Option "dpms" (**) I810(0): DPMS enabled (II) I810(0): direct rendering: Disabled (II) Initializing built-in extension MIT-SHM (II) Initializing built-in extension XInputExtension (II) Initializing built-in extension XTEST (II) Initializing built-in extension XKEYBOARD (II) Initializing built-in extension LBX (II) Initializing built-in extension XC-APPGROUP (II) Initializing built-in extension SECURITY (II) Initializing built-in extension XINERAMA (II) Initializing built-in extension XFree86-Bigfont (II) Initializing built-in extension RENDER (**) Option "Protocol" "PS/2" (**) Mouse0: Protocol: "PS/2" (**) Option "CorePointer" (**) Mouse0: Core Pointer (**) Option "Device" "/dev/mouse" (**) Option "Emulate3Buttons" "on" (**) Mouse0: Emulate3Buttons, Emulate3Timeout: 50 (**) Option "ZAxisMapping" "4 5" (**) Mouse0: ZAxisMapping: buttons 4 and 5 (**) Mouse0: Buttons: 5 (II) Keyboard "Keyboard0" handled by legacy driver (II) XINPUT: Adding extended input device "Mouse0" (type: MOUSE) fbdev does not improve the situation and in fact make the situation worse. There is nothing in the bios that allows for the ammount of "stolen" memory to be adjusted. The Dell c400 is running the latest Dell bios, version A03, repeased on Febuary 15, 2002. Version-Release number of selected component (if applicable): The version of XFree86 installed is 4.2.0-8 The kernel version is 2.4.18-3
Thanks for putting this in bugzilla Matt. Even though we discussed it all on the phone, I'm putting the info in the report so we can track everything, and others with similar issues can find it too.
Here is a URL that describes the situation in diary format, and has a lot of info on this particular laptop and the X video issues. http://www.cse.unsw.edu.au/~chak/linux/c400.html Here is an Intel page on the i830/i830m chip and Linux support also: http://support.intel.com/support/graphics/intel830m/tti013.htm Summary of all of the above, is that Intel designed the chip to use 1Mb, 2Mb, 4Mb or 8Mb of system RAM. Implementors are supposed to make this configurable in the BIOS. This particular laptop sets it to 1Mb without giving the option to change the amount of video memory. This results in only low resolutions being available. The real issue is that Dell's BIOS is buggy, and the proper fix is for Dell to fix their BIOS and release an update. Alternatively, with proper specifications for the hardware, and perhaps a bit of technical discussion with an Intel engineer, this can all be worked around by having the X video driver program the chip directly to set the memory amount. In the long run this will be the most likely solution for this problem, if someone with both the hardware and specs can update the XFree86 i830 driver to workaround this BIOS bug. I'm contacting Intel about this problem, and hopefully the driver author will fix it/workaround it. In the mean time, an alternative exists in the form of a commercial X server from XiGraphics. The server claims to work on this hardware, however that is as of yet unconfirmed. I'll add more info as things turn up. to
Oh, also.. just to note... AGP memory is not available for general video memory, so 1Mb of memory plus 2Gb of agp memory == 1Mb of memory. AGP memory is memory in your main system memory, which is mapped into the video card itself for usage with 3D textures. The agp memory appears to the video card as a continguous block of memory from which it can yank textures for 3D acceleration, however the actual physical memory is scattered throughout main memory. Just thought I'd clarify that as AGP memory is commonly confused as to what it really is for, etc.
Apparently there's a partial fix posted at http://www.jongans.com/gateway1450.html with the patch file 1mb-stolen-fix.diff. Claims to also need a kernel patch and a C program to switch from 8bit to 16bit color mode. Since this is my primary system, I'm quite curious to see this fixed. :-)
I've applied the patch to a test build already, which mgalgoci tested and found did not solve the problem.
*** Bug 69974 has been marked as a duplicate of this bug. ***
test, ignore
Just to point out that this problem also occurs with a Sony PCG-R505DL (probably several other Sonys as well). Also from the diary page above a solution is now mentioned: http://www.cse.unsw.edu.au/~chak/linux/c400.html Hopefully it is useful enough to be used for the next rh release.
This problem is fixed now in XFree86 CVS. RPM's are available on my personal ftp space on people.redhat.com, and will be in rawhide soon as well. Closing as RAWHIDE
I installed the RPMs (_ALL_ of them) - it uninstalls Xft-2.0 (and related packages). That breaks the ability to run redhat-config-xfree86 (which is looking for libXft.so.2).
Needs ldconfig - libXft.so.2 moved.
Xft/Xft2 have absolutely nothing to do with i830 video This bug is fixed, and confirmed by several people now, including those in the CC list. Adding comments to a closed bug report that have nothing to do with the bug report isn't very useful.
A few people have asked me privately in email to update this report to be more detailed as to the resolution. The i830m stolen memory problem present in Dell and other BIOSs, is worked around by driver workarounds in the XFree86 CVS development code, which is available in our latest beta release (phoebe), and will be present in the next release of Red Hat Linux.
Adding bug alias "i830" to this issue, so future dupes can be closed more easily.