Intel® 830M/845G/852GM/855GM/865G Driver for XFree86®

David Dawes dawes@XFree86.Org

I no longer have access either to the hardware or the specs related to this driver, so my support for it is limited to things that require neither.

September 2002:
I committed a major update to the Intel 830M and 845G chipset support to both the XFree86 CVS trunk and DRI CVS trunk. I reworked the 2D driver, fixing many problems. Keith Whitwell fixed numerous bugs in the 3D support, and Alan Hourihane and I added XVideo support. The updated driver is included in the XFree86 4.3.0 release.
9 December 2002:
I committed a second significant update to the Intel 830M and 845G support to the XFree86 CVS trunk. This second update is also available from the mesa-4-0-4-branch branch in the DRI CVS repository. I fixed lots more problems in the 2D support, and Keith Whitwell fixed many bugs, stability, and correctness problems with the 3D support. Most of the known problems that we have been able to reproduce have now been fixed. From the feedback I have had so far the 830M VT switching situation is greatly improved, but there are still some cases where it causes a problem.
28 January 2003:
I committed support for the Intel 852GM and 855GM mobile integrated graphics chipsets to the XFree86 CVS trunk, and it is included in the XFree86 4.3.0 release. To get full functionality with these chipsets, the agpgart driver needs to be updated. Updates are available here for Linux and FreeBSD. See the relevant section below for details.
5 February 2003:
I committed support for the Intel 865G integrated graphics chipset to the XFree86 CVS trunk, and it is included in the XFree86 4.3.0 release. To get full functionality with these chipsets, the agpgart driver needs to be updated. Updates are available here for Linux and FreeBSD. See the relevant section below for details.
11 April 2003:
A fix for some of the crashes that can happen when VT switching has been committed to the XFree86 CVS trunk. If you've been seeing this type of crash with the XFree86 4.3.0 version, please let me know if you still see them when using a version dated 11 April 2003 or later.
8 October 2003:
A patch based on Christian Zietz's code to tell the video BIOS about extra video memory that has been allocated was committed to the XFree86 CVS trunk. This should help with many 825GM/855GM laptops that were previously limited to video modes requiring less than 1MB of video memory.
20 October 2003:
A workaround for yet another class of VT switching problems thought to only happen on 845G platforms was enabled for all platforms in the XFree86 CVS trunk.
20 October 2003:
The patches for VT switching problems fixed since the 4.3.0 release were committed to the xf-4_3-branch branch of the XFree86 CVS repository.
7 January 2004:
An option called "VBERestore" was added to allow the above VT switching workaround to be disabled. This is reported to be needed on some 830M-based machines.
25 January 2004:
Code was added to check for the Intel-specific video mode refresh rate BIOS calls before relying on them. The standard VBE 3 method is then used to set the refresh rate.
20 February 2004:
A workaround was added to avoid a lockup problem that shows up with some DELL BIOS versions.
30 March 2004:
The 852GM/855GM patch to notify the video BIOS of additional memory allocations was extended to work with some 845G systems.
2 April 2004:
Chris Jones reports that DELL has a BIOS update (A29) for its 852GM/855GM laptops that adds a UMA configuration option. This makes it possible to increase the amount of video memory allocated at boot time to 8MB.

The latest version of this driver is available in source from the trunk of the XFree86 CVS repository. The version from 29 February is included in the XFree86 4.4.0 release.

The most recent fixes will be included in the 4.5.0 release, scheduled for later in 2004.

Binaries of this driver are included in the 4.3.0 release and in the latest 4.4.0 release candidate. If binaries are not available for your platform, you will need to be willing and able to build XFree86 from source in order to use this driver.

Linux®

In addition to building/installing XFree86 CVS code, a recent 2.4.x kernel is needed. 2.4.19 or later is recommended. If you want to use the DRI support, an updated i830 DRM module is also required, and it is best to build one from either the XFree86 or DRI source tree. To do this you will also need your kernel source installed. Here is an example of how to build and load the i830 DRM module:

    # cd xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel
    # make -f Makefile.linux i830.o
    # modprobe agpgart
    # rmmod i830
    # insmod i830.o

Here is an example of how to install the i830 DRM module so that it will be loaded automatically when needed:

    # mv /lib/module/`uname -r`/kernel/drivers/char/drm/i830.o \
         /lib/module/`uname -r`/kernel/drivers/char/drm/i830.o.save
    # cp i830.o /lib/module/`uname -r`/kernel/drivers/char/drm

For full functionality when using the 852GM, 855GM or 865G chipsets, an updated agpgart kernel module is also required. A patch for the 2.4.20 kernel can be found here, a patch for the 2.5.56 kernel is here, and a tarball with the complete source for the agpgart driver in a form that can be built standalone for 2.4.x and older 2.5.x kernels can be found here. The 852GM, 855GM and 865G support should be included with future 2.5.6x kernels.

FreeBSD®

In addition to building/installing XFree86 CVS development code, you will need an agp kernel module that has support for the 830M and 845G. The agp module that comes with FreeBSD 4.7 (and later) and FreeBSD 5.0-RELEASE (and later) has this support by default, so there's no need to build a new module if you're running those versions. If you are running an older FreeBSD 4.x release, you will need to patch the agp module to add 830M and 845G support. Eric Anholt and I have patches for this. I also have a tarball of the patched agp driver source in a form that can be built outside of the kernel (you still need to have the kernel source installed though).

The source in this tarball also includes the 852GM, 855GM and 865G support. An agp kernel module patch that adds 852GM, 855GM and 865G support to the driver in the FreeBSD 4.7 and FreeBSD 5.0 releases is available here. Support for these chipsets should be included in the agp module that comes with FreeBSD 4.8 (and later) and FreeBSD 5.1 (and later).

DRI support has not yet been ported to or tested on FreeBSD.

NetBSD®

As of 13 December 2002, NetBSD-current has picked up the 830M/845G agp kernel support from FreeBSD. Although I haven't had any reports yet from people using this, it should function equivalently to the FreeBSD version.

Solaris™

I have had one or two reports of people successfully using this driver on Solaris. There is no agpgart module available for Solaris, so the amount of video memory available and hence the maximum mode resolution/depth is limited to what can be set from the system BIOS configuration. Some systems do not allow this value to be changed from the BIOS config and in these cases the video modes available may be quite limited.

Other

Not tested. If you do test the driver on other platforms, please let me know how it goes. Those platforms without agpgart-like support at the OS level will be subject to the same restrictions as those outlined for Solaris.

If you find any bugs, send me details.

Known problems/limitations/FAQs


[About Me]

Intel is a registered trademark of Intel Corporation.

XFree86 is a registered trademark of The XFree86 Project, Inc.

Linux is a registered trademark of Linus Torvalds.

FreeBSD is a registered trademark of The FreeBSD Foundation.

NetBSD is a registered trademark of The NetBSD Foundation.

Solaris is a trademark of Sun Microsystems, Inc.

Last modified: 3 April 2004