[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: G4/800 Dual (20011220 and MP)



>                                            千葉市中央区長洲
>                                                    藤原  誠
>X11R6-2002-01-23.tar.gz を入れて見たのですが、

椿井さん> これで動くはずなんですけどねー。ただし最初の一回だけ。:-)

良く分らないので、最後に付けたような debug print を入れて見て、
二台の機械で比べて見ました。どうもそこから先の調べ方に詰って
いるので、情報が少ないのですが、何か分るでしょうかと、書いて
見ます。X401 に 20020123 の patch を当てて、
20011016 userland + 20011220 の上で compile しています。
compile した機械と、以下のように実行した機械は同じではない
こともあります。確か下の例は (1) で compile したもののはずです。

(1)
G4/400 AGP 20011016 userland + 20011220
(--) PCI: (0:16:0) ATI Rage 128 Pro PF rev 0, Mem @ 0x94000000/26, 0x90000000/14
, I/O @ 0x0400/8

(2) 
G4/800 Dual 20011016 userland + 20011220 or 20020214
(--) PCI: (0:16:0) NVidia unknown chipset (0x0110) rev 178, Mem @ 0x91000000/24, 0x98000000/27

(1) の場合、..chipset が見つかって問題なく動く
(II) PCI: PCI scan (all values are in hex)
(II) PCI: 00:0b:0: chip 106b,0020 card 0000,0000 rev 00 class 06,00,00 hdr 00
(II) PCI: 00:10:0: chip 1002,5046 card 0000,0000 rev 00 class 03,00,00 hdr 00
(II) PCI: End of PCI scan
(II) (0)Vendorname(ATI) info->vendor(1002)
(II) (1) VendorID(003d)
(II) (2) VendorID(003d)i(0)
(II) (2) VendorID(0e11)i(1)
(II) (2) VendorID(1000)i(2)
(II) (2) VendorID(1002)i(3)  .... 一致したので次に行っている ?
(II) (3) i(3) j(0) DeviceID(4158) DeviceName(Mach32)
  .....(中略)
(II) (3) i(3) j(38) DeviceID(4d4c) DeviceName(Rage 128 Mobility ML)
(II) (3) i(3) j(39) DeviceID(5044) DeviceName(Rage 128 Pro PD)
(II) (3) i(3) j(40) DeviceID(5046) DeviceName(Rage 128 Pro PF)
(--) PCI: (0:16:0) ATI Rage 128 Pro PF rev 0, Mem @ 0x94000000/26, 0x90000000/14, I/O @ 0x0400/8
(II) Addressable bus resource ranges are

(2) の場合、(中略なし) .. chipset が見つからないので動かない

(II) PCI: PCI scan (all values are in hex)
(II) PCI: 00:0b:0: chip 106b,002d card 0000,0000 rev 00 class 06,00,00 hdr 00
(II) PCI: 00:10:0: chip 10de,0110 card 10de,0002 rev b2 class 03,00,00 hdr 00
(II) PCI: End of PCI scan
(II) (0)Vendorname(NVidia) info->vendor(10de)
(II) (1) VendorID(003d)
(II) (2) VendorID(003d)i(0)
(II) (2) VendorID(0e11)i(1)
(II) (2) VendorID(1000)i(2)
(II) (2) VendorID(1002)i(3)
(II) (2) VendorID(524c)i(4)  ..... 一致していないのに途中で止めてしまっている ?
(--) PCI: (0:16:0) NVidia unknown chipset (0x0110) rev 178, Mem @ 0x91000000/24, 0x98000000/27
(II) Addressable bus resource ranges are

 xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
の ATI の次は VLSI で 1004 のはずなのに 524c となっているのは ?

#ifdef INIT_PCI_VENDOR_NAME_INFO
static SymTabRec xf86PCIVendorNameInfoData[] = {
    {PCI_VENDOR_REAL3D, "Real 3D"},
    {PCI_VENDOR_COMPAQ, "Compaq"},
    {PCI_VENDOR_NCR_1,  "NCR"},
    {PCI_VENDOR_ATI,    "ATI"},
    {PCI_VENDOR_VLSI, "VLSI"},
    {PCI_VENDOR_AVANCE, "Avance Logic"},
 
そうか X のせいではなくてそれ以外(CPU とか)の要因なのでしょうか ?
---
(藤原)
--- xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c.orig	Wed Jun 21 10:23:12 2000
+++ xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c	Sun Feb 24 21:40:24 2002
@@ -320,15 +320,20 @@
 	    i = 0; 
 	    info = xf86PciVideoInfo[k];
 	    while (xf86PCIVendorNameInfo[i].token) {
-		if (xf86PCIVendorNameInfo[i].token == info->vendor) 
+		if (xf86PCIVendorNameInfo[i].token == info->vendor)  {
 		    vendorname = (char *)xf86PCIVendorNameInfo[i].name;
+	    		xf86MsgVerb(X_INFO, 3, "(0)Vendorname(%s) info->vendor(%04x)\n",vendorname,info->vendor); }
 		i++;
 	    }
 	    i = 0;
+	    		xf86MsgVerb(X_INFO, 3, "(1) VendorID(%04x)\n", xf86PCIVendorInfo[i].VendorID);
 	    while(xf86PCIVendorInfo[i].VendorID) {
+	    		xf86MsgVerb(X_INFO, 3, "(2) VendorID(%04x)i(%d)\n", xf86PCIVendorInfo[i].VendorID,i);
 		if (xf86PCIVendorInfo[i].VendorID == info->vendor) {
 		    j = 0;
 		    while (xf86PCIVendorInfo[i].Device[j].DeviceName) {
+		      xf86MsgVerb(X_INFO, 3, "(3) i(%d) j(%d) DeviceID(%04x) DeviceName(%s)\n",i,j,
+				    xf86PCIVendorInfo[i].Device[j].DeviceID,xf86PCIVendorInfo[i].Device[j].DeviceName);
 			if (xf86PCIVendorInfo[i].Device[j].DeviceID ==
 			    info->chipType) {
 			    chipname =