高橋です DELL PowerEdge SC430でP-ATAがDMAにならない件は"一応"解決しました。 チップセットICH7RがカーネルのデバイスIDに含まれていない為、チップセットを 特定できずにDMA ONにならないようでしたので 下記のように修正しカーネル作成後にブート画面でDMAがONになっている事を確認しました。 一応と書いたのはカーネルがパニック起こしてログインまで行かないんですよね・・・ カーネルのコンフィグ間違ってるようで、今度はS-ATAが認識できずにブート失敗します。 その件は私の経験不足だと思われますので確認&再挑戦、もしくは再度MLに投稿するかも知れません。 以下、修正差分です --- pci_ids.h_org 2005-07-24 14:36:07.000000000 +0900 +++ pci_ids.h 2005-07-24 14:36:07.000000000 +0900 @@ -1961,6 +1961,8 @@ #define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641 #define PCI_DEVICE_ID_INTEL_ICH6_2 0x266f #define PCI_DEVICE_ID_INTEL_ICH6_18 0x266e +#define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 +#define PCI_DEVICE_ID_INTEL_ICH7_2 0x27df #define PCI_DEVICE_ID_INTEL_82850_HB 0x2530 #define PCI_DEVICE_ID_INTEL_82845G_HB 0x2560 #define PCI_DEVICE_ID_INTEL_SMCH 0x3590 --- piix.h_org 2005-07-24 14:36:09.000000000 +0900 +++ piix.h 2005-07-24 14:36:08.000000000 +0900 @@ -333,8 +333,22 @@ .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, .bootable = ON_BOARD, .extra = 0, - },{ + },{ /* 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 = 2, + .autodma = AUTODMA, + .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, + .bootable = ON_BOARD, + .extra = 0, + },{ .device = 0, .channels = 0, .init_setup = NULL, --- piix.c_org 2005-07-24 14:36:08.000000000 +0900 +++ piix.c 2005-07-24 14:36:07.000000000 +0900 @@ -158,6 +158,7 @@ case PCI_DEVICE_ID_INTEL_82801E_11: case PCI_DEVICE_ID_INTEL_ESB_2: case PCI_DEVICE_ID_INTEL_ICH6_2: + case PCI_DEVICE_ID_INTEL_ICH7_2: p += sprintf(p, "PIIX4 Ultra 100 "); break; case PCI_DEVICE_ID_INTEL_82372FB_1: @@ -298,6 +299,7 @@ case PCI_DEVICE_ID_INTEL_82801EB_11: case PCI_DEVICE_ID_INTEL_ESB_2: case PCI_DEVICE_ID_INTEL_ICH6_2: + case PCI_DEVICE_ID_INTEL_ICH7_2: mode = 3; break; /* UDMA 66 capable */ @@ -687,6 +689,7 @@ case PCI_DEVICE_ID_INTEL_82801E_11: case PCI_DEVICE_ID_INTEL_ESB_2: case PCI_DEVICE_ID_INTEL_ICH6_2: + case PCI_DEVICE_ID_INTEL_ICH7_2: { unsigned int extra = 0; pci_read_config_dword(dev, 0x54, &extra); @@ -886,6 +889,7 @@ #endif { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 19}, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 20}, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 21}, { 0, }, };