別にFreeBSD dependな話ではないのですが, FreeBSD 4.6-stable上で試した
こと。
最近RADEON9000チップ(RV250)を使ったビデオカードが発売されています。そ
のままではXFree86では動きませんが、ATIのカードはいくつかの世代のチップ
でほとんど同じ制御コマンドを使う場合が多く、聞いた話によればR200/RV200
とほとんど同じらしいので、チップIDをXserverが認識するようにしてRV200と
同じ処理を行うようにしてみたところXFree86 4.2.0が使えるようになりまし
た。
Fxtvあたりは動いているようです。興味あったら試してみてください。
diff -ruN xc.org/programs/Xserver/hw/xfree86/common/xf86PciInfo.h xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
--- xc.org/programs/Xserver/hw/xfree86/common/xf86PciInfo.h Sat Aug 10 23:38:21 2002
+++ xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h Sat Aug 10 22:59:29 2002
@@ -253,6 +253,7 @@
#define PCI_CHIP_R200_QN 0x514E
#define PCI_CHIP_R200_QO 0x514F
#define PCI_CHIP_RV200_QW 0x5157
+#define PCI_CHIP_RV250_If 0x4966
#define PCI_CHIP_RADEON_QY 0x5159
#define PCI_CHIP_RADEON_QZ 0x515A
#define PCI_CHIP_R200_Ql 0x516C
diff -ruN xc.org/programs/Xserver/hw/xfree86/drivers/ati/atichip.c xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c
--- xc.org/programs/Xserver/hw/xfree86/drivers/ati/atichip.c Thu Jan 17 01:22:25 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c Sat Aug 10 22:49:58 2002
@@ -617,6 +617,9 @@
case NewChipID('Q', 'W'):
return ATI_CHIP_RV200;
+ case NewChipID('I', 'f'):
+ return ATI_CHIP_RV250;
+
case NewChipID('H', 'D'):
return ATI_CHIP_HDTV;
diff -ruN xc.org/programs/Xserver/hw/xfree86/drivers/ati/atichip.h xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h
--- xc.org/programs/Xserver/hw/xfree86/drivers/ati/atichip.h Thu Jan 17 01:22:25 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h Sat Aug 10 22:48:31 2002
@@ -92,6 +92,7 @@
ATI_CHIP_RADEONMOBILITY7, /* Radeon M7 */
ATI_CHIP_R200, /* R200 */
ATI_CHIP_RV200, /* RV200 */
+ ATI_CHIP_RV250, /* RV250 */
ATI_CHIP_HDTV /* HDTV */
} ATIChipType;
diff -ruN xc.org/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
--- xc.org/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c Sat Jan 19 01:56:16 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c Sat Aug 10 23:09:36 2002
@@ -1734,6 +1734,7 @@
case ATI_CHIP_RADEONMOBILITY7:
case ATI_CHIP_R200:
case ATI_CHIP_RV200:
+ case ATI_CHIP_RV250:
DoRadeon = TRUE;
continue;
diff -ruN xc.org/programs/Xserver/hw/xfree86/drivers/ati/radeon.h xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h
--- xc.org/programs/Xserver/hw/xfree86/drivers/ati/radeon.h Thu Nov 15 01:50:44 2001
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h Sat Aug 10 22:47:17 2002
@@ -268,6 +268,7 @@
BOOL HasCRTC2; /* VE/M6/M7 */
BOOL IsR200; /* R200 chip */
BOOL IsRV200; /* RV200 chip */
+ BOOL IsRV250; /* RV250 chip */
BOOL IsSecondary; /* second Screen */
BOOL UseCRT; /* force use CRT port as primary */
BOOL IsM6; /* M6 card, for some workarounds */
diff -ruN xc.org/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
--- xc.org/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Wed Jan 16 11:00:43 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Sat Aug 10 23:14:50 2002
@@ -1146,6 +1146,10 @@
info->HasCRTC2 = TRUE;
info->IsRV200 = TRUE;
break;
+ case PCI_CHIP_RV250_If: /* RV250 */
+ info->HasCRTC2 = TRUE;
+ info->IsRV250 = TRUE;
+ break;
default:
info->HasCRTC2 = FALSE;
}
@@ -1285,6 +1289,7 @@
case PCI_CHIP_R200_Ql:
case PCI_CHIP_R200_BB:
case PCI_CHIP_RV200_QW:
+ case PCI_CHIP_RV250_If:
default: info->IsPCI = FALSE; break;
}
}
diff -ruN xc.org/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c
--- xc.org/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c Wed Jan 16 11:00:44 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c Sat Aug 10 23:13:57 2002
@@ -89,6 +89,7 @@
{ PCI_CHIP_R200_Ql, "ATI Radeon 8500 Ql (AGP)" },
{ PCI_CHIP_R200_BB, "ATI Radeon 8500 BB (AGP)" },
{ PCI_CHIP_RV200_QW, "ATI Radeon 7500 QW (AGP)" },
+ { PCI_CHIP_RV250_If, "ATI Radeon 9000 If (AGP)" },
{ -1, NULL }
};
@@ -108,6 +109,7 @@
{ PCI_CHIP_R200_Ql, PCI_CHIP_R200_Ql, RES_SHARED_VGA },
{ PCI_CHIP_R200_BB, PCI_CHIP_R200_BB, RES_SHARED_VGA },
{ PCI_CHIP_RV200_QW, PCI_CHIP_RV200_QW, RES_SHARED_VGA },
+ { PCI_CHIP_RV250_If, PCI_CHIP_RV250_If, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
};
@@ -240,6 +242,7 @@
pEnt->chipset == PCI_CHIP_R200_Ql ||
pEnt->chipset == PCI_CHIP_R200_BB ||
pEnt->chipset == PCI_CHIP_RV200_QW ||
+ pEnt->chipset == PCI_CHIP_RV250_If ||
pEnt->chipset == PCI_CHIP_RADEON_LW ||
pEnt->chipset == PCI_CHIP_RADEON_LY ||
pEnt->chipset == PCI_CHIP_RADEON_LZ)
--
yosh...@kt.rim.or.jp
(う)