Subject: Re: X doesn't work on my 164LX
To: mel kravitz <melk@switchpwr.com>
From: None <naoki@fukaumi.org>
List: port-alpha
Date: 01/06/2004 01:19:52
--Multipart_Tue_Jan__6_01:19:51_2004-1
Content-Type: text/plain; charset=US-ASCII

Hi,

At Sun, 04 Jan 2004 16:48:41 +0000,
mel kravitz wrote:
> ATI cards are NOT supported on this box , see
> http://www.caseydoodle.com/cards.html
> for supported cards.  In short try an Nvidia TNT2 or MX 440 of GeForce 2
> card.

Thank you!

I bought Nvidia FX5200 today. It works fine :)

I made alpha_video.c patch for latest source from XFree86.org CVS repo.
(File attached)

I have a question. My machine (164LX) has BWX extension

  cpu0 at mainbus0: ID 0 (primary), 21164A-2
  cpu0: Architecture extensions: 1<BWX>

but XFree86 log says

  (II) has_bwx = 0
  (--) Machine needs sparse mapping

Why?

This is XFree86.0.log:

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.902 (4.4.0 RC 2)
Release Date: 18 December 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: NetBSD/alpha 1.6ZG [ELF] The NetBSD Foundation, Inc.
Current Operating System: NetBSD 164lx.naobsd.org 1.6ZG NetBSD 1.6ZG (164LX) #0: Sun Jan  4 23:05:20 JST 2004  fun@164lx.naobsd.org:/home/fun/obj/164LX alpha
Build Date: 06 January 2004
Changelog Date: 02 January 2004
	Before reporting problems, check http://www.XFree86.Org/
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/XFree86.0.log", Time: Tue Jan  6 00:51:57 2004
(==) Using config file: "/etc/X11/XF86Config"
(==) ServerLayout "XFree86 Configured"
(**) |-->Screen "Screen0" (0)
(**) |   |-->Monitor "Monitor0"
(**) |   |-->Device "Card0"
(**) |-->Input Device "Mouse0"
(**) |-->Input Device "Keyboard0"
(**) Option "XkbRules" "xfree86"
(**) XKB: rules: "xfree86"
(**) Option "XkbModel" "jp106"
(**) XKB: model: "jp106"
(**) Option "XkbLayout" "jp"
(**) XKB: layout: "jp"
(==) Keyboard: CustomKeycode disabled
(**) FontPath set to "/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/TTF/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/CID/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/"
(**) RgbPath set to "/usr/X11R6/lib/X11/rgb"
(--) Using wscons driver in pcvt compatibility mode (version 3.32)
(II) PCI: PCI scan (all values are in hex)
(II) PCI: 00:05:0: chip 1106,3038 card 1145,0216 rev 61 class 0c,03,00 hdr 80
(II) PCI: 00:05:1: chip 1106,3038 card 1145,0216 rev 61 class 0c,03,00 hdr 80
(II) PCI: 00:05:2: chip 1106,3104 card 1145,0217 rev 62 class 0c,03,20 hdr 80
(II) PCI: 00:05:3: chip 1106,3044 card 14db,3044 rev 46 class 0c,00,10 hdr 00
(II) PCI: 00:06:0: chip 9005,00c0 card 9005,f620 rev 01 class 01,00,00 hdr 80
(II) PCI: 00:06:1: chip 9005,00c0 card 9005,f620 rev 01 class 01,00,00 hdr 80
(II) PCI: 00:07:0: chip 100b,0022 card 1113,1407 rev 00 class 02,00,00 hdr 00
(II) PCI: 00:08:0: chip 8086,0484 card 0000,0000 rev 43 class 00,00,00 hdr 00
(II) PCI: 00:09:0: chip 10de,0322 card 0000,0000 rev a1 class 03,00,00 hdr 00
(II) PCI: 00:0b:0: chip 1095,0646 card 0000,0000 rev 01 class 01,01,80 hdr 00
(II) PCI: End of PCI scan
(II) Host-to-PCI bridge:
(II) Bus 0: bridge is at (0:0:0), (0,0,0), BCTRL: 0x0008 (VGA_EN is set)
(II) Bus 0 I/O range:
	[0] -1	0	0x00000000 - 0xffffffff (0x100000000) IX[B]
(II) Bus 0 non-prefetchable memory range:
	[0] -1	0	0x80000000 - 0xffffffff (0x80000000) MX[B]
(II) Bus 0 prefetchable memory range:
	[0] -1	0	0x80000000 - 0xffffffff (0x80000000) MX[B]
(--) PCI: (0:8:0) Intel Corp. 82378IB [SIO ISA Bridge] rev 67
(--) PCI:*(0:9:0) nVidia Corporation NV34 [GeForce FX 5200] rev 161, Mem @ 0x82000000/24, 0x88000000/27, BIOS @ 0x83040000/17

  :

(II) Primary Device is: PCI 00:09:0
(--) Chipset GeForce FX 5200 found
(II) resource ranges after xf86ClaimFixedResources() call:
	[0] -1	0	0xffffffff - 0xffffffff (0x1) MX[B]
	[1] -1	0	0x00000000 - 0x00000000 (0x1) MX[B]
	[2] -1	0	0x000c0000 - 0x000effff (0x30000) MX[B]
	[3] -1	0	0x83072000 - 0x83072fff (0x1000) MX[B]E
	[4] -1	0	0x83071000 - 0x83071fff (0x1000) MX[B]E
	[5] -1	0	0x83070000 - 0x83070fff (0x1000) MX[B]E
	[6] -1	0	0x83073000 - 0x830737ff (0x800) MX[B]E
	[7] -1	0	0x83073800 - 0x83073fff (0x800) MX[B]E
	[8] -1	0	0x83040000 - 0x8305ffff (0x20000) MX[B](B)
	[9] -1	0	0x88000000 - 0x8fffffff (0x8000000) MX[B](B)
	[10] -1	0	0x82000000 - 0x82ffffff (0x1000000) MX[B](B)
	[11] -1	0	0xffffffff - 0xffffffff (0x1) IX[B]
	[12] -1	0	0x00000000 - 0x000000ff (0x100) IX[B]
	[13] -1	0	0x000013d0 - 0x000013df (0x10) IX[B]E
	[14] -1	0	0x00001200 - 0x000012ff (0x100) IX[B]E
	[15] -1	0	0x00001100 - 0x000011ff (0x100) IX[B]E
	[16] -1	0	0x00001000 - 0x000010ff (0x100) IX[B]E
	[17] -1	0	0x00001300 - 0x0000137f (0x80) IX[B]E
	[18] -1	0	0x000013a0 - 0x000013bf (0x20) IX[B]E
	[19] -1	0	0x00001380 - 0x0000139f (0x20) IX[B]E
(II) resource ranges after probing:
	[0] -1	0	0xffffffff - 0xffffffff (0x1) MX[B]
	[1] -1	0	0x00000000 - 0x00000000 (0x1) MX[B]
	[2] -1	0	0x000c0000 - 0x000effff (0x30000) MX[B]
	[3] -1	0	0x83072000 - 0x83072fff (0x1000) MX[B]E
	[4] -1	0	0x83071000 - 0x83071fff (0x1000) MX[B]E
	[5] -1	0	0x83070000 - 0x83070fff (0x1000) MX[B]E
	[6] -1	0	0x83073000 - 0x830737ff (0x800) MX[B]E
	[7] -1	0	0x83073800 - 0x83073fff (0x800) MX[B]E
	[8] -1	0	0x83040000 - 0x8305ffff (0x20000) MX[B](B)
	[9] -1	0	0x88000000 - 0x8fffffff (0x8000000) MX[B](B)
	[10] -1	0	0x82000000 - 0x82ffffff (0x1000000) MX[B](B)
	[11] 0	0	0x000a0000 - 0x000affff (0x10000) MS[B]
	[12] 0	0	0x000b0000 - 0x000b7fff (0x8000) MS[B]
	[13] 0	0	0x000b8000 - 0x000bffff (0x8000) MS[B]
	[14] -1	0	0xffffffff - 0xffffffff (0x1) IX[B]
	[15] -1	0	0x00000000 - 0x000000ff (0x100) IX[B]
	[16] -1	0	0x000013d0 - 0x000013df (0x10) IX[B]E
	[17] -1	0	0x00001200 - 0x000012ff (0x100) IX[B]E
	[18] -1	0	0x00001100 - 0x000011ff (0x100) IX[B]E
	[19] -1	0	0x00001000 - 0x000010ff (0x100) IX[B]E
	[20] -1	0	0x00001300 - 0x0000137f (0x80) IX[B]E
	[21] -1	0	0x000013a0 - 0x000013bf (0x20) IX[B]E
	[22] -1	0	0x00001380 - 0x0000139f (0x20) IX[B]E
	[23] 0	0	0x000003b0 - 0x000003bb (0xc) IS[B]
	[24] 0	0	0x000003c0 - 0x000003df (0x20) IS[B]
(II) Setting vga for screen 0.
(--) NV(0): Chipset: "GeForce FX 5200"
(**) NV(0): Depth 24, (--) framebuffer bpp 32
(==) NV(0): RGB weight 888
(==) NV(0): Default visual is TrueColor
(==) NV(0): Using HW cursor
(--) NV(0): Linear framebuffer at 0x88000000
(--) NV(0): MMIO registers at 0x82000000
(II) dense base = 0x8600000000
(II) has_bwx = 0
(--) Machine needs sparse mapping
(II) dense base = 0x8600000000
(II) memory base = 0x8000000000
(II) NV(0): I2C bus "DDC" initialized.
(II) NV(0): Probing for analog device on output A...
(--) NV(0):   ...found one
(II) NV(0): Probing for analog device on output B...
(--) NV(0):   ...can't find one
(II) NV(0): Probing for EDID on I2C bus A...
(II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0.
(II) NV(0): I2C device "DDC:ddc2" removed.
(--) NV(0): DDC detected a CRT:

  :

(II) NV(0): Probing for EDID on I2C bus B...
(II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0.
(II) NV(0): I2C device "DDC:ddc2" removed.
(II) NV(0):   ... none found
(--) NV(0): CRTC 0 appears to have a CRT attached
(II) NV(0): Using CRT on CRTC 0
(--) NV(0): VideoRAM: 131072 kBytes
(==) NV(0): Using gamma correction (1.0, 1.0, 1.0)
(II) NV(0): Monitor0: Using hsync range of 31.50-48.50 kHz
(II) NV(0): Monitor0: Using vrefresh value of 60.00 Hz
(II) NV(0): Clock range:  12.00 to 350.00 MHz

  :

(--) NV(0): Virtual size is 1024x768 (pitch 1024)
(**) NV(0): *Default mode "1024x768": 65.0 MHz, 48.4 kHz, 60.0 Hz
(II) NV(0): Modeline "1024x768"   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync
(**) NV(0): *Default mode "800x600": 40.0 MHz, 37.9 kHz, 60.3 Hz
(II) NV(0): Modeline "800x600"   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync
(**) NV(0): *Default mode "640x480": 25.2 MHz, 31.5 kHz, 60.0 Hz
(II) NV(0): Modeline "640x480"   25.20  640 656 752 800  480 490 492 525 -hsync -vsync
(**) NV(0):  Default mode "512x384": 32.5 MHz, 48.4 kHz, 60.0 Hz (D)
(II) NV(0): Modeline "512x384"   32.50  512 524 592 672  384 385 388 403 doublescan -hsync -vsync
(**) NV(0):  Default mode "400x300": 20.0 MHz, 37.9 kHz, 60.3 Hz (D)
(II) NV(0): Modeline "400x300"   20.00  400 420 484 528  300 300 302 314 doublescan +hsync +vsync
(**) NV(0):  Default mode "320x240": 12.6 MHz, 31.5 kHz, 60.1 Hz (D)
(II) NV(0): Modeline "320x240"   12.60  320 328 376 400  240 245 246 262 doublescan -hsync -vsync
(--) NV(0): Display dimensions: (300, 230) mm
(--) NV(0): DPI set to (86, 84)
(--) Depth 24 pixmap format is 32 bpp

  :

(II) NV(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 Lines
	Scanline Image Writes
	Offscreen Pixmaps
	Setting up tile and stipple cache:
		32 128x128 slots
		32 256x256 slots
		16 512x512 slots
(==) NV(0): Backing store disabled
(==) NV(0): Silken mouse enabled
(==) RandR enabled
(**) Option "Protocol" "wsmouse"
(**) Mouse0: Protocol: wsmouse
(**) Option "CorePointer"
(**) Mouse0: Core Pointer
(**) Option "Device" "/dev/wsmouse"
(**) 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)
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
(II) 3rd Button detected: disabling emulate3Button

Best regards,

--
FUKAUMI Naoki

--Multipart_Tue_Jan__6_01:19:51_2004-1
Content-Type: application/octet-stream; type=patch
Content-Disposition: attachment; filename="alpha_video.c.diff"
Content-Transfer-Encoding: 7bit

Index: alpha_video.c
===================================================================
RCS file: /home/fun/cvsroot/XFree86/xc/programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c,v
retrieving revision 1.6
diff -u -r1.6 alpha_video.c
--- alpha_video.c	30 Dec 2003 15:18:30 -0000	1.6
+++ alpha_video.c	5 Jan 2004 15:21:40 -0000
@@ -117,6 +117,8 @@
 #endif
 }
 #else /* __NetBSD__ */
+static unsigned long hae_thresh = (1UL << 24);
+static unsigned long hae_mask = 0xf8000000UL;
 static struct alpha_bus_window *abw;
 static int abw_count = -1;
 
@@ -448,9 +450,7 @@
 
 #define vuip    volatile unsigned int *
 
-#ifndef __NetBSD__
 static unsigned long msb_set = 0;
-#endif
 static pointer memSBase = 0;
 static pointer memBase = 0;
 
@@ -558,22 +558,20 @@
 readSparse8(pointer Base, register unsigned long Offset)
 {
     register unsigned long result, shift;
-#ifndef __NetBSD__
     register unsigned long msb;
-#endif
     mem_barrier();
     Offset += (unsigned long)Base - (unsigned long)memBase;
     shift = (Offset & 0x3) << 3;
-#ifndef __NetBSD__
       if (Offset >= (hae_thresh)) {
         msb = Offset & hae_mask;
         Offset -= msb;
 	if (msb_set != msb) {
+#ifndef __NetBSD__
 	sethae(msb);
+#endif
 	msb_set = msb;
 	}
       }
-#endif
     result = *(vuip) ((unsigned long)memSBase + (Offset << 5));
     result >>= shift;
     return 0xffUL & result;
@@ -583,23 +581,21 @@
 readSparse16(pointer Base, register unsigned long Offset)
 {
     register unsigned long result, shift;
-#ifndef __NetBSD__
     register unsigned long msb;
-#endif
 
     mem_barrier();
     Offset += (unsigned long)Base - (unsigned long)memBase;
     shift = (Offset & 0x2) << 3;
-#ifndef __NetBSD__
     if (Offset >= (hae_thresh)) {
         msb = Offset & hae_mask;
         Offset -= msb;
       if (msb_set != msb) {
+#ifndef __NetBSD__
 	sethae(msb);
+#endif
 	msb_set = msb;
       }
     }
-#endif
     result = *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2)));
     result >>= shift;
     return 0xffffUL & result;
@@ -615,46 +611,42 @@
 static void
 writeSparse8(int Value, pointer Base, register unsigned long Offset)
 {
-#ifndef __NetBSD__
     register unsigned long msb;
-#endif
     register unsigned int b = Value & 0xffU;
 
     write_mem_barrier();
     Offset += (unsigned long)Base - (unsigned long)memBase;
-#ifndef __NetBSD__
     if (Offset >= (hae_thresh)) {
       msb = Offset & hae_mask;
       Offset -= msb;
       if (msb_set != msb) {
+#ifndef __NetBSD__
 	sethae(msb);
+#endif
 	msb_set = msb;
       }
     }
-#endif
     *(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
 }
 
 static void
 writeSparse16(int Value, pointer Base, register unsigned long Offset)
 {
-#ifndef __NetBSD__
     register unsigned long msb;
-#endif
     register unsigned int w = Value & 0xffffU;
 
     write_mem_barrier();
     Offset += (unsigned long)Base - (unsigned long)memBase;
-#ifndef __NetBSD__
     if (Offset >= (hae_thresh)) {
       msb = Offset & hae_mask;
       Offset -= msb;
       if (msb_set != msb) {
+#ifndef __NetBSD__
 	sethae(msb);
+#endif
 	msb_set = msb;
       }
     }
-#endif
     *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
       w * 0x00010001;
 
@@ -671,44 +663,40 @@
 static void
 writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
 {
-#ifndef __NetBSD__
     register unsigned long msb;
-#endif
     register unsigned int b = Value & 0xffU;
 
     Offset += (unsigned long)Base - (unsigned long)memBase;
-#ifndef __NetBSD__
     if (Offset >= (hae_thresh)) {
       msb = Offset & hae_mask;
       Offset -= msb;
       if (msb_set != msb) {
+#ifndef __NetBSD__
 	sethae(msb);
+#endif
 	msb_set = msb;
       }
     }
-#endif
     *(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
 }
 
 static void
 writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
 {
-#ifndef __NetBSD__
     register unsigned long msb;
-#endif
     register unsigned int w = Value & 0xffffU;
 
     Offset += (unsigned long)Base - (unsigned long)memBase;
-#ifndef __NetBSD__
     if (Offset >= (hae_thresh)) {
       msb = Offset & hae_mask ;
       Offset -= msb;
       if (msb_set != msb) {
+#ifndef __NetBSD__
 	sethae(msb);
+#endif
 	msb_set = msb;
       }
     }
-#endif
     *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
       w * 0x00010001;
 }

--Multipart_Tue_Jan__6_01:19:51_2004-1--