トップページunix
982コメント300KB

FreeBSD/amd64 part2 (and for oyster901)

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2007/02/13(火) 12:04:09
FreeBSD/amd64を取り扱うスレです。
(対象となるCPUは
AMD Opteron/Athlon64/ 64bit対応のSempron
Intel Core 2 Duo/EM64T対応の Xeon ,Pentium ,Celeron
など )

なお、本スレは2ch次世代向け実験鯖のためのスレでもあります。
2ch特化型サーバ・ロケーション構築作戦 Part24
http://qb5.2ch.net/test/read.cgi/operate/1166543133/

なにか情報などがありましたらお願いします。
root★さんが喜ぶでしょう。

前スレ
FreeBSD for AMD64(and for oyster901)
http://pc10.2ch.net/test/read.cgi/unix/1075691732/
0119名無しさん@お腹いっぱい。2007/05/20(日) 03:13:38
SB600のUDMA100化出来ました。
環境はSISの構成にMBを「Asus M2A-VM」に置き換えただけの構成です。
SATAの設定はIDEモードとなっております。
1:
/usr/src/sys/dev/ata/ata-pci.h
内のファイルをテキストエディタで、「/* SB600SATA */」、「/* SB600PATA */」
とコメントされた2行を追加する。
ata-pci.hの一部抜粋
#################################################################
#define ATA_ATI_IXP400_S1 0x43791002
#define ATA_ATI_IXP400_S2 0x437a1002
#define ATA_ATI_IXP600_S 0x43801002 /* SB600SATA */
#define ATA_ATI_IXP600_P 0x438c1002 /* SB600PATA */
##################################################################
デバイスIDはパラレルとシリアルで別々に存在していました。

2:
/usr/src/sys/dev/ata/ata-chipset.c
も同様に2行を追加する
ata-chipset.cの一部抜粋
######################################################################
{ ATA_ATI_IXP400_S1, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" },
{ ATA_ATI_IXP400_S2, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" },
{ ATA_ATI_IXP600_S, 0x00, 0, 0, ATA_UDMA6, "IXP600S"}, /* SB600SATA */
{ ATA_ATI_IXP600_P, 0x00, 0, 0, ATA_UDMA5, "IXP600P"}, /* SB600PATA */
{ 0, 0, 0, 0, 0, 0}};
char buffer[64];
######################################################################
あ、UDMA133になってる...。
0120名無しさん@お腹いっぱい。2007/05/20(日) 03:15:13
3:
/usr/src/sys/dev/ata/ata-chipset.c
内で、「ata_ati_setmode(device_t dev, int mode)」というATIチップのDMAモードをセットする
関数があるので、この中の「mode = ata_check_80pin(dev, mode);」を
削除、またはコメントアウトする
########################################################################
static void
ata_ati_setmode(device_t dev, int mode)
{
device_t gparent = GRANDPARENT(dev);
struct ata_pci_controller *ctlr = device_get_softc(gparent);
struct ata_channel *ch = device_get_softc(device_get_parent(dev));
struct ata_device *atadev = device_get_softc(dev);
int devno = (ch->unit << 1) + ATA_DEV(atadev->unit);
int offset = (devno ^ 0x01) << 3;
int error;
u_int8_t piotimings[] = { 0x5d, 0x47, 0x34, 0x22, 0x20, 0x34, 0x22, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
u_int8_t dmatimings[] = { 0x77, 0x21, 0x20 };

mode = ata_limit_mode(dev, mode, ctlr->chip->max_dma);

/* mode = ata_check_80pin(dev, mode); <-----この1行を削除 */

error = ata_controlcmd(dev, ATA_SETFEATURES, ATA_SF_SETXFER, 0, mode);

if (bootverbose)
#########################################################################
0121名無しさん@お腹いっぱい。2007/05/20(日) 03:16:41
4:
カーネルをビルドしてインストール

以上です、そしてインストール、再起動したあとのdmesgの抜粋です。
#################################################################
atapci0: <ATI IXP600S UDMA133 controller> port 0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f mem 0xfe02f000-0xfe02f3ff irq 22 at device 18.0 on pci0
ata2: <ATA channel 0> on atapci0
ata3: <ATA channel 1> on atapci0

atapci1: <ATI IXP600P UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf900-0xf90f at device 20.1 on pci0
ata0: <ATA channel 0> on atapci1
ata1: <ATA channel 1> on atapci1

acd0: CDRW <TOSHIBA DVD-ROM SD-R1202/1020> at ata0-slave UDMA33
ad4: 157066MB <HDS722516VLSA80 V34OA6MA> at ata2-master UDMA100
ad5: 156334MB <Maxtor 6Y160M0 YAR51EW0> at ata2-slave UDMA133
##################################################################
ということでSB600もUDMA100にすることが出来ました。

あと、この間さらしたSIS手順の時、ディレクトリを間違えてました。すみません。
また、以前の手順も同様にCVSUPをすると、ソースが上書きされますので、
CVSUPをしたら毎回この手順が必要となりますのでご注意ください。
■ このスレッドは過去ログ倉庫に格納されています