GRAPHICS : ATI Radeon IGP 320M AKA Mobility U1

[ Index | 3D (dri) | AGP | Patch | Compile | TV out ]
I bought that card in a Fujitsu laptop Amilo A (see my config files there)

Ideas, troubles etc : See forum : http://groups.yahoo.com/group/amilo

That ATI Radeon IGP (Integrated Graphics Processor) did not work with orignal radeon driver, so if your distribution driver don't works use vesa, or update your driver by replacing with that one.
The later radeon driver support 2D and XV (but you need to patch X sources for 3D)
Please help to build some clean patched kernels and X (.deb)
See the mailing list for help.

SPECS

ATI published some hardware specs but I am afraid they're not public. http://www.ati.com/technology/hardware/radeonigp/features.html
http://www.ati.com/technology/hardware/radeonigp/rigp320m.html
ATI's PIXEL TAPESTRY, HYPER Z, VIDEO IMMERSION and HYDRAVISION technologies integrated in a UMA chipset Up to 128MB of Video memory

Is that known also as "ati mobility radeon 9000" ?
x What chip this card is using ? ATI_RS100 ( It was said to be based on R7500 )

LINUX DETECTION

# /sbin/lspci  | grep ATI
00:00.0 Host bridge: ATI Technologies Inc: Unknown device cab0 (rev 13)
00:01.0 PCI bridge: ATI Technologies Inc U1/A3 AGP Bridge [IGP 320M] (rev 01)
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility U1

# pcitweak -l
PCI: Config type is 1
PCI: 00:00:0: chip 1002,cab0 card 0000,0000 rev 13 class 06,00,00 hdr 00
PCI: 00:01:0: chip 1002,700f card 0000,0000 rev 01 class 06,04,00 hdr 01
PCI: 01:05:0: chip 1002,4336 card 1734,100a rev 00 class 03,00,00 hdr 00

# lspci  -v -s 0:1.0 # @ knoppix 3.2
00:01.0 PCI bridge: ATI Technologies Inc U1/A3 AGP Bridge [IGP 320M] (rev 01) (prog-if 00 [Normal decode])
        Flags: bus master, 66Mhz, medium devsel, latency 99
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=68
        I/O behind bridge: 0000b000-0000bfff
        Memory behind bridge: f0500000-f05fffff
        Prefetchable memory behind bridge: f8000000-fbffffff

# scanpci -v # @ knoppix 3.2
pci bus 0x0000 cardnum 0x00 function 0x00: vendor 0x1002 device 0xcab0
 ATI Technologies Inc  Device unknown
  STATUS    0x2230  COMMAND 0x0006
  CLASS     0x06 0x00 0x00  REVISION 0x13
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x00
  BASE0     0xf4000008  addr 0xf4000000  MEM PREFETCHABLE
  BASE1     0xf0800008  addr 0xf0800000  MEM PREFETCHABLE
  BASE2     0x0000a011  addr 0x0000a010  I/O

pci bus 0x0000 cardnum 0x01 function 0x00: vendor 0x1002 device 0x700f
 ATI Technologies Inc U1/A3 AGP Bridge [IGP 320M]
  STATUS    0x0220  COMMAND 0x0007
  CLASS     0x06 0x04 0x00  REVISION 0x01
  HEADER    0x01  LATENCY 0x63
  PRIBUS    0x00  SECBUS 0x01  SUBBUS 0x01
  SECLT     0x44  SECSTATUS 0x2220
  IOBASE    0x0000b000  IOLIM 0x0000bfff
  NOPREFETCH_MEMBASE 0xf0500000  MEMLIM 0xf05fffff
  PREFETCH_MEMBASE   0xf8000000  MEMLIM 0xfbffffff
  NO_FAST_B2B NO_SEC_

pci bus 0x0001 cardnum 0x05 function 0x00: vendor 0x1002 device 0x4336
 ATI Technologies Inc Radeon Mobility U1
 CardVendor 0x1734 card 0x100a (Card unknown)
  STATUS    0x02b0  COMMAND 0x0287
  CLASS     0x03 0x00 0x00  REVISION 0x00
  BIST      0x00  HEADER 0x00  LATENCY 0x42  CACHE 0x10
  BASE0     0xf8000008  addr 0xf8000000  MEM PREFETCHABLE
  BASE1     0x0000b001  addr 0x0000b000  I/O
  BASE2     0xf0500000  addr 0xf0500000  MEM
  MAX_LAT   0x00  MIN_GNT 0x08  INT_PIN 0x01  INT_LINE 0x05

# lspci -v -s 1:5.0 # @ knoppix 3.2 # buspci 1 : dev 5 . funct 0
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility U1 (prog-if 00 [VGA])
        Subsystem: Unknown device 1734:100a
        Flags: bus master, stepping, fast Back2Back, 66Mhz, medium devsel, latency 66, IRQ 5
        Memory at f8000000 (32-bit, prefetchable) [size=64M]
        I/O ports at b000 [size=256]
        Memory at f0500000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at  [disabled] [size=128K]
        Capabilities: 

# root@nrv:/dev# modprobe radeonfb # @ knoppix 3.2
/lib/modules/2.4.20-xfs/kernel/drivers/video/radeonfb.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
      You may find more information in syslog or the output from dmesg
/lib/modules/2.4.20-xfs/kernel/drivers/video/radeonfb.o: insmod /lib/modules/2.4.20-xfs/kernel/drivers/video/radeonfb.o failed
/lib/modules/2.4.20-xfs/kernel/drivers/video/radeonfb.o: insmod radeonfb failed

# dmesg | grep vesa # @ knoppix 3.2
vesafb: framebuffer at 0xf8000000, mapped to 0xce80d000, size 32704k
vesafb: mode is 1024x768x16, linelength=2048, pages=20
vesafb: protected mode interface info at c000:5137
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0

# mkxf86config # @ knoppix 3.2

LINUX DISTRO

Knoppix & Demolinux : XWin showed up fine (using vesa)
Knoppix 200304~ detects it as ATI Radeon MU1 then use the "radeon" driver and fails finally and select the vesa driver (1024x768x16 screen).
Knoppix 200306~ uses correct radeon module that supports XV extension

It seems that Mandrake 9.1 supports "radeon" driver and this way enable Accelerated 2D and Video (but not 3D). (install it fine but reports : "is not yet fully tested" )

(Mdk's XF86Config-4 config file or radeon driver didn't work on knoppix)

Debian Woody : didn't work : Frame buffer in console is ok, But I suppose my kernel/driver was obsolete :

# modconf etc
# dpkg-reconfigure xserver-xfree86 
# Radeon - VideoRam 32768  -1024x765
# Mouse : /dev/gpmdata ps/2

# startx
less /var/X11/Xfree86.0.log
(II) Radeon Device is PCI 01:05:0
(--) Assigning device section with busIS to prmary Interface
(EE) No device Found

# less /proc/pci
Bus 0, device 1, function 0:
 PCI bridge: ATI unknown Device (rev1)
 Vendor id=1002. Device id=700f.
  Medium devsel. Master capable, Latency=99 Min Gnt=12

# (should update to that X server that includes the driver)
deb http://people.debian.org/~mmagallo/packages/xfree86/i386/ ./
Knoppix suggests for XFree+dri ; In the newer experimental releases, the DRM modules in /usr/src/linux/drivers/char/drm may be exchanged with those given in the XFree86-4.3 sources to support DRI accelleration with some newer graphics cards. http://www.knopper.net/knoppix/sources/
# knoppix # xfree+dri #  apt-get install xlibmesa4-drm-src
deb http://www.penguinppc.org/~daniels/sid/i386 ./

SuSE 8.1 is said to support 3D (beta, for ATI M6P Amilo D8800)

X WINDOW : DRIVER

There have been several version of driver, here are some tricks for enabling more features of your radeon

If not detected replace driver (radeon.o and friends)
Another "cheap" solution is to hardcode the chipid:

# cat /usr/src/linux/video/radeon*
RADEON_QD, /* Radeon R100 */ 0x5144
RADEON_QE, /* Radeon R100 */ 0x5145
RADEON_QF, /* Radeon R100 */ 0x5146
RADEON_QG, /* Radeon R100 */ 0x5147
RADEON_QY, /* Radeon RV100 (VE) */ 0x5159
RADEON_QZ, /* Radeon RV100 (VE) */ 0x515a
RADEON_QL, /* Radeon R200 (8500) */ 0x514c
RADEON_QW, /* Radeon RV200 (7500) */ 0x5157
RADEON_LW, /* Radeon Mobility M7 */ 0x4c57
RADEON_LY, /* Radeon Mobility M6 */ 0x4c59
RADEON_LZ, /* Radeon Mobility M6 */ 0x4c5a
RADEON_PM  /* Radeon Mobility P/M */

# cat /usr/src/linux/drivers/pci/pci.ids
...
	cab0  RS100 Host Controller [IGP 320M]
	700f  PCI Bridge [IGP 320M]
	7010  PCI Bridge [IGP 340M]
 	CAb0  RS100 Host Controller [IGP 320M]
 	cbb2  RS200M Host Controller [IGP 345M]
 	cab3  RS250 Host Controller [IGP 7000]
 	5830  RS300 Host Controller [IGP 9100 (FSB-100)]
 	5831  RS300 Host Controller [IGP 9100 (FSB-133)]
 	5832  RS300 Host Controller [IGP 9100 (FSB-166)]
 	5833  RS300 Host Controller [IGP 9100 (FSB-200)]

#file:///etc/X11/XF86Config-4
Section "Device" # @ /etc/X11/XF86Config-4 # http://rzr.online.fr/ Identifier "Card0" VendorName "Ati" BoardName "Radeon IGP 320M" Driver "radeon" # vesa | radeon # ! # mdk9.1=radeon ChipID 0x5157 #0x4c59 # both work Option "AGPMode" "4" Option "sw_cursor" #is needed for some ati and radeon cards #Option "hw_cursor" Option "UseFBDev" # optional Option "NoAccel" # Mandatory when using 4.3.0 radeon driver #Option "ShowCache" #Option "ShadowFB" #Option "Rotate" EndSection # xdpyinfo # @ knoppix 3.2 version number: 11.0 vendor string: The XFree86 Project, Inc vendor release number: 40300000 XFree86 version: 4.3.0 ... # xdpyinfo # @ Mandrake 9.1 version number: 11.0 vendor string: Mandrake Linux (XFree86 4.3, patch level 5mdk) vendor release number: 40300000 XFree86 version: 4.3.0 ... # /usr/X11R6/bin/XFree86 -version # @ debian (/knoppix update) XFree86 Version 4.3.0 (Debian 4.3.0-0ds3v1 20030310070804 dstone@aedificator) Release Date: 27 February 2003 X Protocol Version 11, Revision 0, Release 6.6 Build Operating System: Linux 2.4.21-pre5 i686 [ELF] Build Date: 10 March 2003
Using a wrong driver may open a X display, but freeze keyword or system...
I finally made it works using this configuration and booting using linux vga=3
Remember using framebuffer can cause troubles (system lock on keyboard, mouse etc)

SDL supports fullscreen mode while it doesn't when using vesa driver.

I replaced the orginal driver by some new ones, and the driver can be loaded using framebuffer, but won't use XV acceleration.

On March 2003 at http://www.linuxcompatible.com
I read that Someone from ATI works on a official driver for IGP3x0 ( devrel(a)ati.com down )
Also on 2003-06-08, a patch for XFree86 4.3 to pass the detection step, ( RS100:U1 /A3 = IGP320 M) has been posted at http://dri.sf.net

XFree86 version: 4.3.99.11 , Now movies rate is better (xine uses xshm or mplayer -vo x11 ), and glxgears gives 150 fps (no dri tough)

http://www.xfree.org/
http://www.mail-archive.com/xfree86@xfree86.org/msg03279.html

ACCELERATED DISPLAY : 2D

2D display and Video seems to be accelerated.
# mplayer -vo help
# mplayer -vo xv file.avi
# xine -V Xv file.avi
# xine-check
# xviddetect

3D ACCELERATION

!!! See AGP !!! , Can dri work without AGP support ?

3d acceleration is not supported so far (glx, dri), but all 3D (openGL) functionalities are avialables through Mesa3D, but those performance depends on CPU, so don't expect to play games in full screen (testing is ok).
ATI does not provide linux drivers for IGP (so far). The Open source 3D Accel driver is based on the Direct Rendering Infrastructure projet (DRI) : http://dri.sf.net
http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/CHANGELOG?rev=HEAD
http://www.xfree86.org/current/DRI.html
http://www.xfree86.org/~alanh/
irc://irc.debian.org/ati
irc://irc.freenode.net/dri-devel

# dmesg # @ knoppix 3.2
[drm] Initialized radeon 1.7.0 20020828 on minor 0

# glxinfo # @ knoppix 3.2
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
...
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.3 Mesa 4.0.4
...
# rzr@1[xc]$ glxgears
503 frames in 5.0 seconds = 100.600 FPS

It seems that this diver does not provide Acumulation buffers (for fadding)

glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_ACCUM );
//debug("Err: visual with necessary capabilities not found"); //@nrv

AGP

That AGP part was causing trouble for 3D acceleration It seems that a patch has been published (20030719) !!!
# modprobe agpgart # @ knoppix 3.2 # so you can use noagp boot option
/lib/modules/2.4.20-xfs/kernel/drivers/char/agp/agpgart.o:
  init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
      You may find more information in syslog or the output from dmesg
/lib/modules/2.4.20-xfs/kernel/drivers/char/agp/agpgart.o:
  insmod /lib/modules/2.4.20-xfs/kernel/drivers/char/agp/agpgart.o failed
/lib/modules/2.4.20-xfs/kernel/drivers/char/agp/agpgart.o: 
  insmod agpgart failed

# dmesg
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 175M
agpgart: unsupported bridge
agpgart: no supported devices found.

# syslog
Jul 15 18:15:23 nrv kernel: Linux agpgart interface v0.99 (c) Jeff Hartmann
Jul 15 18:15:23 nrv kernel: agpgart: Maximum main memory to use for agp memory:
175M
Jul 15 18:15:23 nrv kernel: agpgart: unsupported bridge
Jul 15 18:15:23 nrv kernel: agpgart: no supported devices found.

# less /usr/include/linux/agpgart.h

Support kernel developers to work on this : http://www.codemonkey.org.uk/
http://sourceforge.net/mailarchive/forum.php?forum_id=7177

PATCH

If some people want to help to release a knoppix/debian package ? http://bugs.xfree86.org/show_bug.cgi?id=314
Now we can say that DRI / 3D is fully supported, BUT this is not (yet) in X official sources and binaries see next chapter.

3D ON 2.4 KERNEL (20031015)

If you follow all those step you may get dri Working on Amilo until X patches are accepted and released in distribs.

You need to be familar with compiling kernel to do this part.

cd /usr/local/src/
wget -c http://kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2
wget -c http://rzr.online.fr/docs/comp/config-2_4_22-jl15.txt
wget -c http://www.sonarnerd.net/linux/2.4.22-jl15.patch.bz2
tar fxvj *.bz2
mv linux-2.4.22 /usr/src/linux
cd /usr/src/linux
bzcat ../patches/2.4.22-jl15.patch.bz2 |  patch -p1 -b | tee patch-out.txt
make # see how to build kernel
Then You need to compile X
cd /usr/local/src
wget ftp://ftp.xfree86.org/pub/XFree86/develsnaps/XFree86-4.3.99.14.tar.bz2 # 41 MBytes
wget -O 723-XFree86-4.4-20031012-igp.patch \
  http://bugs.xfree86.org/attachment.cgi?id=723&action=view
tar fxvj XFree86-4.3.99.14.tar.bz2
cd xc
patch -b -p1 < ../723-XFree86-4.4-20031012-igp.patch
# edit  xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/radeon.h
# +#define __HAVE_SHARED_IRQ       0 
# /* rzr orig: #define __HAVE_SHARED_IRQ  1  */
make World LINUXDIR=/usr/src/linux 
cd xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel 
make -f Makefile.linux LINUXDIR=/usr/src/linux
cp radeon.o /lib/modules/2.4.22-jl15/kernel/drivers/char/drm/radeon.o 
cd -
tar fcvj  /usr/X11R6-bak.tar.bz2 /usr/X11R6
make install clean
reboot
Need help ? join amilo forum (url at top)

http://www.sonarnerd.net/projects/linux/
David.D@fr reported that this trick worked also on his compaq presario 2100 (2141EA)

ERRORS & TROUBLE SHOTTING

Here are some common Error I got that can be solved :
# dmesg
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:radeon_unlock] *ERROR* Process 956 using kernel context 0
Linux agpgart interface v0.99 (c) Jeff Hartmann

#modprobe -v agpgart
/sbin/insmod -q /lib/modules/2.4.22-jl15/kernel/drivers/char/agp/agpgart.o
Using /lib/modules/2.4.22-jl15/kernel/drivers/char/agp/agpgart.o
Symbol version prefix ''
/lib/modules/2.4.22-jl15/kernel/drivers/char/agp/agpgart.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.

# dmesg
agpgart: Maximum main memory to use for agp memory: 175M
agpgart: unsupported bridge
agpgart: no supported devices found.

# less /var/log/XFree86.0.log
(==) RADEON(0): Write-combining range (0xf8000000,0x2000000)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmGetBusid returned ''
(II) RADEON(0): [drm] created "radeon" driver at busid "PCI:1:5:0"
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xcec8d000
(II) RADEON(0): [drm] mapped SAREA 0xcec8d000 to 0x42258000
(II) RADEON(0): [drm] framebuffer handle = 0xf8000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(WW) RADEON(0): [agp] AGP not available
(II) RADEON(0): [drm] removed 1 reserved context for kernel
(II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xcec8d000 at 0x42258000

I have also been said that hotplug may cause troubles http://linux-hotplug.sourceforge.net/

DRI for 2.6 kernels (200309)

You need to be familar with compiling kernel to do this part.
First Get and Patch the 2.6.0-test4 kernel @ http://www.kernel.org
# ATI/DRI patch for kernels 2.6.0-test4+
wget -O patch-igp-2.6.0-test4.diff \
 http://bugs.xfree86.org/attachment.cgi?id=540&action=view
[ ! -e linux-2.5.75 ] &&  ln -fs linux-2.6.0-test4 linux-2.5.75
# patch -b -p0 < ../patch-igp-2.6.0-test4.diff # @ /usr/src/linux

patching file linux-2.5.75/drivers/char/drm/radeon_drv.h
patching file linux-2.5.75/drivers/char/drm/radeon_state.c
Hunk #4 succeeded at 1178 (offset -4 lines).
patching file linux-2.5.75/drivers/char/drm/radeon_cp.c
Then get and patch the Xserver,
# cd /usr/local/src
# apt-get install libpam-dev make gcc binutils # solve xc/programs/xdm error
# wget ftp://ftp.xfree86.org/pub/XFree86/develsnaps/XFree86-4.3.99.11.tar.bz2 # 41 MBytes
less INSTALL-X.org

# Patch for drm in xfree tree to work with 2.6.0+ kernels
# wget -O xc-igp-2.6.diff \
 http://bugs.xfree86.org/attachment.cgi?id=541&action=view # 2.6
# patch -b -p0 < ../xc-igp-2.6.diff  # @ /usr/local/src/

patching file xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.kernel
Hunk #1 FAILED at 21.
1 out of 1 hunk FAILED -- saving rejects to file xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.kernel.rej
...

# wget -O patch-xc-igp-502.diff \
 http://bugs.xfree86.org/attachment.cgi?id=502&action=view #

# patch -b -p0 < ./patch-xc-igp-502.diff  # @ /usr/local/src/
Need to patch also the parser else you'll get an error http://www.mail-archive.com/devel@xfree86.org/msg02875.html
# startx
(EE) Cannot locate a core pointer device.
(EE) Unable to determine the screen layout.
(EE) Error from xf86HandleConfigFile()


Index: xf86Config.c
===================================================================
RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v
retrieving revision 3.272
diff -u -r3.272 xf86Config.c

##patch -p0 << EOF
--- xf86Config.c        24 Aug 2003 20:52:30 -0000      3.272
+++ xf86Config.c        27 Aug 2003 02:26:17 -0000
@@ -1451,7 +1451,7 @@
        indp[count - 1].extraOptions = xf86addNewOption(NULL, "CorePointer", NULL);
        indp[count].identifier = NULL;
        servlayoutp->inputs = indp;
-    } else {
+    } else if (!havePointer) {
        /* This should never happen. */
        xf86Msg(X_ERROR, "Cannot locate a core pointer device.\n");
        return FALSE;
@@ -1473,7 +1473,7 @@
        indp[count - 1].extraOptions = xf86addNewOption(NULL, "CoreKeyboard", NULL);
        indp[count].identifier = NULL;
        servlayoutp->inputs = indp;
-    } else {
+    } else if (!haveKeyboard) {
        /* This should never happen. */
        xf86Msg(X_ERROR, "Cannot locate a core keyboard device\n");
        return FALSE;
EOF
On Amilo A, IRQ sharing seems to cause trouble , so disable it
# (WW) RADEON(0): [agp] AGP not available # shared irg err : with kernel 2.6 

--- xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/radeon.h.orig   2003-08-25 13:10:21.000000000 +0200
+++ xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/radeon.h        2003-10-05 21:00:01.000000000 +0200
@@ -144,7 +144,7 @@
 #define __HAVE_DMA             1
 #define __HAVE_DMA_IRQ         1
 #define __HAVE_VBL_IRQ         1
-#define __HAVE_SHARED_IRQ       1
+#define __HAVE_SHARED_IRQ       0 /* rzr orig: #define __HAVE_SHARED_IRQ       1 */


 /* Buffer customization:
Finally Compile the XServer (will takes 115 Mbytes and more than 80 mins)
#make World
...
Full build of XFree86 version 4.3.99.11 (25 August 2003) complete.
mv /usr/X11R6 /usr/X11R6-bak # may also backup /etc/X11 libGL* /var/X11/
#export DESTDIR=/usr/local/local/XFree86-4.3.99.11 # shall be avoid
make install # clean  #  installation takes 115 Mbytes vs 133 for X 4.3.0
# using this X version worked for me when kernel is 2.4.22 & 2.6

Just replace kernel radeon driver with X one

cd xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel
make -f Makefile.linux LINUXDIR=/usr/src/linux
# cp /usr/local/src/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon.ko \
# /lib/modules/2.4.22-jl14/kernel/drivers/char/drm/radeon.ko 
ln -fs /usr/local/src/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon.ko \
        /lib/modules/2.6.0-test4-igp/kernel/drivers/char/drm/radeon.ko # or cp
http://www.xfree86.org/develsnaps/

TESTING DRI

Probbing modules, this may be not be nescesary
# modprobe ati_agp

root@1[rzr]# modprobe -v agpgart
insmod /lib/modules/2.6.0-test4/kernel/drivers/char/agp/agpgart.ko
Linux agpgart interface v0.100 (c) Dave Jones

root@1[rzr]# rmmod radeon ; modprobe -v radeon
insmod /lib/modules/2.6.0-test4/kernel/drivers/char/drm/radeon.ko
[drm] Module unloaded
[drm] Initialized radeon 1.9.0 20020828 on minor 0
Starting X
# /usr/X11R6-igp/bin/XFree86 -version

This is a pre-release version of XFree86, and is not supported in any
way.  Bugs may be reported to XFree86@XFree86.Org and patches submitted
to fixes@XFree86.Org.  Before reporting bugs in pre-release versions,
please check the latest version in the XFree86 CVS repository
(http://www.XFree86.Org/cvs).

XFree86 Version 4.3.99.11
Release Date: 25 August 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: Linux 2.6.0-test4-igp i686 [ELF]
Current Operating System: Linux nrv 2.6.0-test4-igp #7 Mon Sep 8 13:40:05 CEST 2003 i686
Build Date: 08 September 2003
Changelog Date: 25 August 2003
        Before reporting problems, check http://www.XFree86.Org/
        to make sure that you have the latest version.
Module Loader present

# startx
Then you will have DRI try out glxinfo then glxgear and finally http://pinball.sf.net
CVSROOT=anoncvs@anoncvs.xfree86.org:/cvs # takes(400 MBytes)
CVS_RSH=ssh
export CVS_RSH CVSROOT
cvs co xc
# glxinfo
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
client glx vendor string: SGI
client glx version string: 1.2
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
OpenGL vendor string: Tungsten Graphics, Inc.
OpenGL renderer string: Mesa DRI Radeon 20020611 AGP 4x x86/MMX/3DNow!/SSE NO-TCL
OpenGL version string: 1.2 Mesa 4.0.4

#  glxgears
disabling TCL support
951 frames in 5.0 seconds = 190.200 FPS

# This can  accelerate
export RADEON_NO_IRQS=1   # @ /etc/profile
export RADEON_NO_USLEEPS=1 

AMILO CONFLICT w/ LAN & DRI

When using dri patches, They're some irq conflicts than forbid to use lan (8139too) at the same time, (bad implemation of irq sharing may be the cause, see resources about the enhanced interrupt controller (apic) ).
# modprobe 8139too
8139too Fast Ethernet driver 0.9.26
eth0: RealTek RTL8139 Fast Ethernet at 0xcf99a800, 00:02:3f:af:db:4b, IRQ 11
eth0:  Identified 8139 chip type 'RTL-8139C'
agpgart: Found an AGP 2.0 compliant device at 00

# dmesg
...
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
agpgart: Putting AGP V2 device at 0000:01:05.0 into 4x mode
eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
irq 11: nobody cared!
Call Trace:
 [] __report_bad_irq+0x2b/0x90
 [] note_interrupt+0x64/0xa0
 [] do_IRQ+0xe9/0xf0
 [] common_interrupt+0x18/0x20
 [] handle_IRQ_event+0x20/0x70
 [] do_IRQ+0x7c/0xf0
 [] common_interrupt+0x18/0x20
 [] do_softirq+0x43/0xa0
 [] do_IRQ+0xd0/0xf0
 [] common_interrupt+0x18/0x20

handlers:
[] (rtl8139_interrupt+0x0/0x130 [8139too])
Disabling IRQ #11
...
NETDEV WATCHDOG: eth0: transmit timed out
eth0: Tx queue start entry 30  dirty entry 26.
eth0:  Tx descriptor 0 is 00002000.
eth0:  Tx descriptor 1 is 00002000.
eth0:  Tx descriptor 2 is 00002000. (queue head)
eth0:  Tx descriptor 3 is 00002000.
eth0: Setting half-duplex based on auto-negotiated partner ability 0000.

# cat /proc/interrupts
           CPU0
  0:    1185764          XT-PIC  timer
  1:       1617          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  5:          0          XT-PIC  radeon@PCI:1:5:0
  8:          4          XT-PIC  rtc
  9:          0          XT-PIC  acpi, ohci-hcd
 10:          0          XT-PIC  ALi Audio Accelerator
 11:     100000          XT-PIC  eth0
 12:       2817          XT-PIC  i8042
 14:      30212          XT-PIC  ide0
 15:          1          XT-PIC  ide1
NMI:          0
LOC:    1180971
ERR:      21898
# man ifconfig  # can reassign irq
http://directory.google.com/Top/Computers/Software/Operating_Systems/Linux/Hardware_Support/Connectors/

XIG

fakeroot alien *.rpm
dpkg -i summit-lx-platinum_2.2-13_i386.deb
dpkg -i xsvc_3.0-48_i386.deb
zile /etc/X11/XF86Config-4
Xsetup
/usr/X11R6/lib/X11/AcceleratedX/etc/Xlicense.demo
cd /usr/src/xig/xsvc/
make
./makdev.sh
insmod ./xsvc.o
dmesg
xsvc: v3.0 (devrel@xig.com) [$XiGDate: 2003/09/05 15:58:08 $]
xsvc: ATI IGP 320M, 64MB at 0xf4000000 (0f000217/01)
./xsvctest
./xsvctest
xsvctest: $XiGId: xsvctest.c,v 1.7 2003/05/06 16:22:19 jon Exp $

xsvc: Version Major: 3 Minor: 0
      bridge vendor: 0x1002 bridge device: 0xCAB0
      agp status: 0xF000217  agp mode: 0xF000304
      aperture base: 0xF4000000  aperture size: 0x4000000 (67108864)
      pages bound: 0
xsvc: mmap'd 67108864 bytes at offset 0xF4000000, agp = 0x40155000
xsvc: MTRR: Enabled Write Combining
xsvc: Starting AGP GART bandwidth test, 3 tests, interval = 5 secs.
0: Wrote 362387865 (345MB) bytes/sec. (108 iterations of 16777216 bytes)
1: Wrote 372454195 (355MB) bytes/sec. (111 iterations of 16777216 bytes)
2: Wrote 365743308 (348MB) bytes/sec. (109 iterations of 16777216 bytes)
xsvc: Average: 366861789 (349MB) bytes/sec.
Xaccel :2

Commercial XServer XIG is said to support 2D & 3D accel http://www.xig.com
You can test the 3d Drivers demo http://www.xig.com/Pages/Atop/Demos-SummitLine/Demos-LX-PlatinumLinux.html
ftp://ftp.xig.com/pub/Summit/linux/laptop/Summit_LX-Platinum-2.2-12-LINUX.tar

SIGNAL OUTPUT (CRT, LCD, TV)

How to enable TV out ? when cable is connected after system boot ?
I managed to get tv out : Or Using atitvout, http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/
Atitvout worked fine under console or X with a French TV (Secam).
It seems that it will only work using the "Rage Mobility/Rage 3D Pro LT mode" (-f)
#root@nrv# atitvout -r vbe
Forcing Rage Mobility/Rage 3D Pro LT mode
VBE Version: 2.0
VBE OEM Identification: ATI CABO

#root@nrv# atitvout -r tvout # -f does not work either
Forcing Rage Mobility/Rage 3D Pro LT mode
VBE call failed.
Maybe this command is not supported by your graphics adapter?
Did your parameters (if you specified some) really make sense?
Please try all other available commands before complaining!

#root@nrv# atitvout -r detect
Forcing Rage Mobility/Rage 3D Pro LT mode
CRT is attached.
TV is attached via Composite.

#root@nrv# atitvout -r standard # -f does not work
Forcing Radeon/Rage 128 mode
Can set on the fly:
 ntsc
 pal
 ntscj
Current standard is NTSC.

#root@nrv# atitvout -r pal
#root@nrv# atitvout -f t # -r does not work : VBE call failed

#root# atitvout -r off # -f dont work either
Forcing Radeon/Rage 128 mode
VBE call failed.
Then use, Radeontool that can turn off and on the backlight and external video output. http://fdd.com/software/radeon/
#  ln -fs /bin/lspci /sbin/lspci

root@0[radeontool]# ./radeontool  regs
RADEON_DAC_CNTL=ff002102
RADEON_DAC_CNTL2=00000000
RADEON_TV_DAC_CNTL=07880142
RADEON_DISP_OUTPUT_CNTL=10000000
RADEON_CONFIG_MEMSIZE=07000000
RADEON_AUX_SC_CNTL=00000000
RADEON_CRTC_EXT_CNTL=00008048
RADEON_CRTC_GEN_CNTL=03000600
RADEON_CRTC2_GEN_CNTL=04800000
RADEON_DEVICE_ID=00004336
RADEON_DISP_MISC_CNTL=5b300200
RADEON_GPIO_MONID=00000300
RADEON_GPIO_MONIDB=00000300
RADEON_GPIO_CRT2_DDC=00000300
RADEON_GPIO_DVI_DDC=00000300
RADEON_GPIO_VGA_DDC=00000300
RADEON_LVDS_GEN_CNTL=000dffa1
root@0[radeontool]# ./radeontool light off
root@0[radeontool]# ./radeontool light on
root@0[radeontool]# ./radeontool dac on
root@0[radeontool]# ./radeontool dac off

# apt-get install xscreensaver
# ln  /usr/bin/xscreensaver-command  /usr/X11R6/bin/
perl ./lightwatch.pl  # then what ? please help
This will save some energy. But i thaught this could be done using DPMS events (or apm, acpi) , can't it ? and about console ?

TV out etc : http://gatos.sf.net/

WINDOWS DRIVER

The radeon is using IRQ 1 and 10.
cpu=ATI U1 (C6)
dac@350Mhz Internal

mem:32Mb (? 5/128Mb)
TVout (PAL) 
CRT=2048x1536x32 (= 12.Mbytes)
lcd=1024x768x32@60Hz

WinXP driver : ID dev: 4336 , Id ven: 1002 , Id subsys: 100a , Id subven: 1734

Bus: Agp 1x, 2x, 4x
current: Agp 4x

bios: BK5.0.0 VR - 001.000.007.005 - 001.001.001 c @ 2002-09-02

mem: 32MB DDR SGRAM / SDRAM
driver: ati2dvag.dll
Version: 6.13.10.6137 / ... @ 2002-07-17
mod mem ext: N/A

@ PCI 13 (Bus PCI 1,5,0)

WInXP resources:
mem: F8000000-FBFFFFFF
IO: B000-B0FF
mem: F0500000-F050FFFF
irq: 10
IO: 03B0-03BB
IO: 03C0-03DF
mem: 000A0000-00BFFFF

Here are the openGL drivers outputs :

cat << EOF > /tmp/gl.cpp &&  g++ /tmp/gl.cpp -o /tmp/gl -lGL && /tmp/gl
#include 
#include 
using namespace std;
int main() { // C++ program 
  cout << "Vendor     : " << glGetString( GL_VENDOR ) << endl;
  cout << "Renderer   : " << glGetString( GL_RENDERER ) << endl;
  cout << "Version    : " << glGetString( GL_VERSION ) << endl;
  cout << "Extensions : " << glGetString( GL_EXTENSIONS ) << endl << endl;
  return 0;
} // compile & run it
EOF

# winxp:
Vendor     : ATI Technologies Inc.
Renderer   : Radeon 7000 DDR x86/MMX/3DNow!/SSE
Version    : 1.3.3224 WinXP Release
Extensions : GL_ARB_multitexture GL_ARB_texture_border_clamp GL_ARB_textur

# linux/wine @ knoppix 3.2:
Vendor     : Mesa project: www.mesa3d.org
Renderer   : Mesa GLX Indirect
Version    : 1.3 Mesa 4.0.4
Extensions : GL_ARB_imaging GL_ARB_multitexture GL_ARB_texture_border_clam
p GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combin
e GL_ARB_texture_env_dot3 GL_ARB_transpose_matrix GL_EXT_abgr GL_EXT_blend
_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_env_add GL
_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_lod_bias

INFOS

http://mirror.ati.com/companyinfo/press/2003/4637.html
RADEON IGP 340M was specifically designed for the Intel platform (Pentium? 4-M processor), while RADEON IGP 320M supports mobile AMD AthlonTM 4 and mobile AMD Duron\x{2122} processors.
Both integrated graphics solutions target the mainstream and value notebook PC markets.
The RADEON IGP family uses a 64-bit system architecture and a 266 MHz DDR memory interface, and was the first integrated graphics solution to support ATI\x{2019}s industry-leading POWERPLAY power management technology.
The RADEON IGP family also allows the users to upgrade their systems with a discrete performance graphics chip, such as ATI'x{2019}s MOBILITY\x{2122} RADEON\x{2122} 9600.
The RADEON IGP family features ATI\x{2019}s exclusive FLEXFITTM Universal Platform Architecture, which allows computer manufacturers to control their engineering investment and support costs while still offering a variety of systems, each tailored to a targeted computer segment. The RADEON IGP family incorporates a variety of award-winning RADEON\x{2122} features including ATI\x{2019}s PIXEL TAPESTRY\x{2122} and VIDEO IMMERSION\x{2122} engines. PIXEL TAPESTRY allows the RADEON IGP family ofprocessors to create lifelike environments by combining the industry\x{2019}s leading rendering engines with an unprecedented set of 3D special effects.

ATI Items are also found on :

LINKS & SUPPORT

http://xfree86.linuxwiki.org/
irc://irc.debian.org/XFree86
irc://irc.debian.org/ati
irc://irc.debian.org/dri
http://www.ati.com/support/drivers/linux/radeon-linux.html
http://www.fujitsu-siemens.com/supplier/supplier-ati-320m.html
http://www.directfb.org/
http://www.spinics.net/lists/xf-xpert/msg07228.html
http://lists.insecure.org/lists/linux-kernel/2002/Dec/49<40.html
http://www.rage3d.com/
http://www.kgi-project.org/

http://RzR.online.FR
Last modified: Wed Jul 27 20:31:42 CEST 2005