vine-users ML アーカイブ



[vine-users:074095] Re: INTEL ICH7R のP-ATAで DMAがONに出 来ない(解決 )4ヵ月越し

  • From: "suehiko takahashi" <suebo@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:074095] Re: INTEL ICH7R のP-ATAで DMAがONに出 来ない(解決 )4ヵ月越し
  • Date: Sat, 25 Feb 2006 22:57:45 +0900
高橋です

昨年の10月にこの件をポストしたのですがようやく解決しました。
(カーネルパニックの件はただ単にカーネルバージョンの記載ミスでした。)
その時はVineLinux3.2&SC430でうまくDMA化は出来たのですが、何故かマザーのDMAがUDMA2までしか設定できませんでした。
#cat /proc/ide/piix
Controller: 0
                                Intel PIIX4 Ultra 100 Chipset.
--------------- Primary Channel ---------------- Secondary Channel -------------                 enabled                          enabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------DMA enabled:    yes              yes             no                no
UDMA enabled:   yes              yes             no                no
UDMA enabled:   2                2               X                 X
UDMA
DMA
PIO

# hdparm -t /dev/hda
/dev/hda:
 Timing buffered disk reads:   84 MB in  3.06 seconds =  27.45 MB/sec
UltraDMA33で動いているせいで30M/Sec位しか出ません。
ちなみにDMA化前は4.94 MB/secでした

変更点は以前ポストした内容を以下に変更しました
/usr/src/linux/drivers/ide/pci/piix.h
        },{ /* 21 */
                .vendor         = PCI_VENDOR_ID_INTEL,
                .device         = PCI_DEVICE_ID_INTEL_ICH7_2,
                .name           = "ICH7",
                .init_setup     = init_setup_piix,
                .init_chipset   = init_chipset_piix,
                .init_iops      = NULL,
                .init_hwif      = init_hwif_piix,
                .init_dma       = init_dma_piix,
                .channels       = 1,                      //2から1に変更
                .autodma        = AUTODMA,
                .enablebits     = {{0x41,0x80,0x80}},  //ここも変更
                .bootable       = ON_BOARD,
                .extra          = 0,
        },{

修正後の内容です
# cat /proc/ide/piix

Controller: 0

                                Intel PIIX4 Ultra 100 Chipset.
--------------- Primary Channel ---------------- Secondary Channel -------------                 enabled                          enabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------DMA enabled:    yes              yes             no                no
UDMA enabled:   yes              yes             no                no
UDMA enabled:   5                5               X                 X
UDMA
DMA
PIO

# hdparm -t /dev/sda

/dev/hda:
 Timing buffered disk reads:  166 MB in  3.00 seconds =  55.33 MB/sec


憶測なのですがIDEを2チャンネル分サーチし、セカンダリーのポートが無いために
プライマリーでUltraDMAがオンされた後、セカンダリーでオフされたのでは無いでしょうか?