![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.26.216] |
![]() |
|
Сообщ.
#1
,
|
|
|
Мать Epox 8KRAI с южным мостом vt8237 (SATA-1). Подключен жестяной диск Seagate Barracuda 7200.12 500Gb SATA-2. На винте, разумеется, стоит джампер, чтоб работало в режиме SATA-1.
На прошлогодних ядрах всё работает без ошибок. Новые ядра (2.6.37/38) попросту виснут с ошибкой типа sata_via: ICRC ABRT, а в смарте при этом растёт значение UDMA_CRC_Error_Count. Камрады с аналогичным железом (vt8237+SATA2), у вас такие же проблемы не вылезли, не? |
Сообщ.
#2
,
|
|
|
Цитата CBP @ Камрады с аналогичным железом (vt8237+SATA2), у вас такие же проблемы не вылезли, не? Что-то я сомневаюсь, что камрады с аналогичным железом тут тебе встретяться... ![]() |
Сообщ.
#3
,
|
|
|
Цитата Мяут-Настоящий @ Багрепорт-то сделал? Нет, по-фнглийски читаю сносно, а говорю с трудом %) Вот нашёл декабрьские изменения в drivers/ata/sata_via.c ![]() ![]() /* * vt6420/1 has problems talking to some drives. The following * is the fix from Joseph Chan <JosephChan@via.com.tw>. * * When host issues HOLD, device may send up to 20DW of data * before acknowledging it with HOLDA and the host should be * able to buffer them in FIFO. Unfortunately, some WD drives * send upto 40DW before acknowledging HOLD and, in the * default configuration, this ends up overflowing vt6421's * FIFO, making the controller abort the transaction with * R_ERR. * * Rx52[2] is the internal 128DW FIFO Flow control watermark * adjusting mechanism enable bit and the default value 0 * means host will issue HOLD to device when the left FIFO * size goes below 32DW. Setting it to 1 makes the watermark * 64DW. * * https://bugzilla.kernel.org/show_bug.cgi?id=15173 * http://article.gmane.org/gmane.linux.ide/46352 * http://thread.gmane.org/gmane.linux.kernel/1062139 */ if (board_id == vt6420 || board_id == vt6421) { pci_read_config_byte(pdev, 0x52, &tmp8); tmp8 |= 1 << 2; pci_write_config_byte(pdev, 0x52, tmp8); } Если закомментить /*board_id == vt6420 ||*/ всё снова работает как часы! щаз ещё даташиты посмотрю |
Сообщ.
#4
,
|
|
|
Цитата Мяут-Настоящий @ Что-то я сомневаюсь, что камрады с аналогичным железом тут тебе встретяться... А зря... ![]() ![]() 00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] Правда, я за ядрышками не гонюсь, поэтому ничего не могу сказать по багу. Если получится, то завтра могу ради интереса проверить. |
Сообщ.
#5
,
|
|
|
Откопал даташиты:
VT8237R ![]() ![]() Offset 52 – Transport Miscellaneous Control (00h).......RW ... 2 SATA Flow Control Water Flag 0 Based on FIFO threshold value (Rx43)..default 1 32DW ... VT6421A ![]() ![]() Offset 52 – Transport Miscellaneous Control (00h) ......RW ... 2 S-ATA Flow Control Water Flag 1 FFF0 threshold (the value is based on RX43) 0 32DW.....................................................default ... Выходит, значения этого бита 0x52[2] прямо противоположные у vt8237(6240) и vt6241.. Если даташит не врёт ![]() Цитата gruy @ Правда, я за ядрышками не гонюсь, поэтому ничего не могу сказать по багу. Если получится, то завтра могу ради интереса проверить. Было бы неплохо. Да, если я правильно понял, винт должен быть достаточно шустрым, чтоб фифошник захлебнулся. У меня линейно читает 120-80 Мб/сек. |