From owner-announce-jp@jp.freebsd.org Mon Dec 4 23:59:22 2000 Received: (from daemon@localhost) by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id XAA30594; Mon, 4 Dec 2000 23:59:22 +0900 (JST) (envelope-from owner-announce-jp@jp.FreeBSD.org) Date: Mon, 4 Dec 2000 22:07:50 +0900 (JST) Message-Id: <200012041307.WAA00355@kces.koganemaru.co.jp> To: announce-jp@jp.freebsd.org Reply-To: FreeBSD98-hackers@jp.freebsd.org From: Nobuyuki Koganemaru X-ML-maintainer: owner-announce-jp@jp.FreeBSD.org Precedence: list X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315 X-Sequence: announce-jp 631 Subject: ANNOUNCE: FreeBSD(98) 4.1.1R-Rev01 Errata98.txt r01 (Update) Errors-To: owner-announce-jp@jp.freebsd.org Sender: owner-announce-jp@jp.freebsd.org FreeBSD(98) 移植チームよりのお知らせです。 FreeBSD(98) 移植チームではリリース後に見つかった障害の情報を Errata98.txt ファイルで提供しています。本アナウンスを行うとともに配布ディレクトリの 98readme に置かれます。 UIDE-66 に関する説明が抜けていましたので、訂正します。 -- FreeBSD(98) 4.1.1R-Rev01 障害情報 日付: 平成12年(2000年)10月14日 (土) 01 版 平成12年(2000年)12月04日 (月) 01 版(訂正) 平成12年(2000年)12月04日 (月) 本ファイルは FreeBSD(98) 4.1.1R-Rev01 リリース後に見つかった障害の情報を記 述しています。 ---- システム更新情報: ・ETHERNET 3COM 3C569B, 3C568B-J-TPO, 3C569B-J-COMBO 用の ep ドライバが 4.0R-Rev01, 4.1R-Rev01, 4.1.1R-Rev01 では動作しない。 以下のパッチを当てることで動作可能。4.2R-Rev01 では修正された。 ---- ここから ---- *** sys/dev/ep/if_ep_isa.c Sun Jan 23 17:46:21 2000 --- sys/dev/ep/if_ep_isa.c Thu Nov 23 19:33:37 2000 *************** *** 73,78 **** --- 73,82 ---- #define ISA_ID_3C509_COMBO 0x506d5094 #define ISA_ID_3C509_TPO 0x506d5095 #define ISA_ID_3C509_TPC 0x506d5098 + #ifdef PC98 + #define ISA_ID_3C569B_COMBO 0x506d5694 + #define ISA_ID_3C569B_TPO 0x506d5695 + #endif static struct isa_ident ep_isa_devs[] = { { ISA_ID_3C509_TP, "3Com 3C509-TP EtherLink III" }, *************** *** 80,85 **** --- 84,93 ---- { ISA_ID_3C509_COMBO, "3Com 3C509-Combo EtherLink III" }, { ISA_ID_3C509_TPO, "3Com 3C509-TPO EtherLink III" }, { ISA_ID_3C509_TPC, "3Com 3C509-TPC EtherLink III" }, + #ifdef PC98 + { ISA_ID_3C569B_COMBO, "3Com 3C569B-J-Combo EtherLink III" }, + { ISA_ID_3C569B_TPO, "3Com 3C569B-J-TPO EtherLink III" }, + #endif { 0, NULL }, }; *** sys/pc98/conf/GENERIC98 Thu Apr 13 05:41:02 2000 --- sys/pc98/conf/GENERIC98 Thu Nov 23 20:28:47 2000 *************** *** 284,290 **** device fe0 at isa? port 0x00d0 irq 3 device fe1 at isa? port 0x73d0 irq 5 ! device ep0 at isa? port 0x40d0 irq 3 device lnc0 at isa? port 0x03d0 irq 6 # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really --- 284,290 ---- device fe0 at isa? port 0x00d0 irq 3 device fe1 at isa? port 0x73d0 irq 5 ! device ep device lnc0 at isa? port 0x03d0 irq 6 # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really ---- ここまで ---- ・UIDE-66 で DMA 転送できない場合があります。これは ata ドライバでの DMA 転送設定が正しくされていないためでした。以下のパッチを適応してください。 ---- ここから ---- --- sys/dev/ata/ata-dma.c.orig Sat Oct 7 19:15:26 2000 +++ sys/dev/ata/ata-dma.c Thu Nov 30 23:30:55 2000 @@ -636,11 +636,9 @@ (error) ? "failed" : "success"); if (!error) { artop_timing(scp, devno, ATA_UDMA4); - pci_write_config(parent, 0x40 + (devno << 1), 0x0401, 2); - pci_write_config(parent, 0x44 + (devno >> 1), - pci_read_config(parent, 0x44, 2) | - (0x3 << (devno * 4)), 2); + pci_write_config(parent, 0x40 + devno, 0x31, 1); pci_write_config(parent, 0x4a, 0xa6, 1); + pci_write_config(parent, 0x49, 3, 1); scp->mode[ATA_DEV(device)] = ATA_UDMA4; return; } @@ -654,12 +652,8 @@ (error) ? "failed" : "success"); if (!error) { artop_timing(scp, devno, ATA_UDMA2); - if (scp->chiptype == 0x00071191) { - pci_write_config(scp->dev, 0x40 + (devno << 1), 0x0401, 2); - pci_write_config(parent, 0x44 + (devno >> 1), - pci_read_config(parent, 0x44, 2) | - (0x3 <<(devno * 4)), 2); - } + if (scp->chiptype == 0x00071191) + pci_write_config(scp->dev, 0x40 + devno, 0x31, 1); else pci_write_config(parent, 0x40 + (devno << 1), 0x0301, 2); pci_write_config(parent, 0x4a, 0xa6, 1); @@ -676,12 +670,8 @@ (error) ? "failed" : "success"); if (!error) { artop_timing(scp, devno, ATA_WDMA2); - if (scp->chiptype == 0x00071191) { - pci_write_config(parent, 0x40 + (devno << 1), 0x0401, 2); - pci_write_config(parent, 0x44 + (devno >> 1), - pci_read_config(parent, 0x44, 2) | - (0x3 <<(devno * 4)), 2); - } + if (scp->chiptype == 0x00071191) + pci_write_config(parent, 0x40 + devno, 0x31, 1); else pci_write_config(parent, 0x40 + (devno << 1), 0x0301, 2); pci_write_config(parent, 0x4a, 0xa6, 1); @@ -933,6 +923,8 @@ artop_timing(struct ata_softc *scp, int32_t devno, int32_t mode) { u_int32_t timing = 0; + u_int8_t new54=0; + u_int16_t new44=0; switch (scp->chiptype) { case 0x00051191: /* ATP850UF */ @@ -946,6 +938,10 @@ case ATA_WDMA2: timing = 0; break; case ATA_UDMA2: timing = 3; break; } + new54 = pci_read_config(device_get_parent(scp->dev), 0x54, 1); + new54 &= ~(3 << (devno << 1)); + new54 |= timing << (devno << 1); + pci_write_config(device_get_parent(scp->dev), 0x54, new54, 1); break; case 0x00071191: /* ATP860 */ @@ -957,13 +953,15 @@ case ATA_PIO3: case ATA_PIO4: case ATA_WDMA2: timing = 0; break; - case ATA_UDMA2: timing = 2; break; - case ATA_UDMA4: timing = 4; break; + case ATA_UDMA2: timing = 3; break; + case ATA_UDMA4: timing = 5; break; } + new44 = pci_read_config(device_get_parent(scp->dev), 0x44, 2); + new44 &= ~(0xf << (devno << 2)); + new44 |= timing << (devno << 2); + pci_write_config(device_get_parent(scp->dev), 0x44, new44, 2); break; } - - pci_write_config(device_get_parent(scp->dev), 0x54, timing<<(devno*2), 1); } #else /* NPCI > 0 */ ---- ここまで ---- 以上. -- kogane@jp.freebsd.org