SATA - wyłaczenie UDMA
Krzysztof Szwaba
mailing_ks w kasztanowe.net
Nie, 11 Kwi 2010, 13:36:15 CEST
W jaki sposób można wyłączyć w kontrolerze SATA obsługiwanie UDMA na
jednym z kanałów ?
Mam podłączoną kartę CF PQI x120 na takim kontrolerze
http://allegro.pl/item993329556_ssd_na_sata_cf_microdysk.html
Karta zgłasza się jako obsługująca UDMA
# hdparm -i /dev/sdc
/dev/sdc:
Model=FLASH CARD, FwRev=20080308, SerialNo=CF0000000000000001E5
Config={ HardSect NotMFM Removeable DTR>10Mbs nonMagnetic }
RawCHS=1942/16/63, TrkSize=0, SectSize=576, ECCbytes=4
BuffType=DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=off
CurCHS=1942/16/63, CurSects=1957536, LBA=yes, LBAsects=1957536
IORDY=no, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 *udma4
AdvancedPM=yes: disabled (255)
Drive conforms to: Unspecified: ATA/ATAPI-4
* signifies the current active mode
# hdparm -I /dev/sdc
/dev/sdc:
CompactFlash ATA device
Model Number: FLASH CARD
Serial Number: CF0000000000000001E5
Firmware Revision: 20080308
Standards:
Supported: 4
Likely used: 6
Configuration:
Logical max current
cylinders 1942 1942
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 1957536
LBA user addressable sectors: 1957536
Logical/Physical Sector size: 512 bytes
device size with M = 1024*1024: 955 MBytes
device size with M = 1000*1000: 1002 MBytes (1 GB)
cache/buffer size = 1 KBytes (type=DualPort)
Capabilities:
LBA, IORDY(may be)(cannot be disabled)
Standby timer values: spec'd by Vendor
R/W multiple sector transfer: Max = 1 Current = 0
Advanced power management level: disabled
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 *udma3 udma4
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
Power Management feature set
WRITE_BUFFER command
READ_BUFFER command
NOP cmd
CFA feature set
Advanced Power Management feature set
* Gen1 signaling speed (1.5Gb/s)
* Host-initiated interface power management
Device-initiated interface power management
* CFA advanced modes: pio5 *pio6 mdma3 *mdma4
* CFA Power Level 1 (max 500mA)
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
2min for SECURITY ERASE UNIT.
HW reset results:
CBLID- below Vih
Device num = 0
Integrity word not set (found 0x0000, expected 0xc3a5)
W rzeczywistości jest to tania karta nie posiadająca kontrolera UDMA.
Wyłączenie w BIOS-ie trybu UDMA (zostawianie tylko MWDMA2) niczego nie
zmieniło, krenel pewnie ignoruje ustawienia w BIOSIE.
Następstwem powyższego są powtarzające się błędy CRC:
[134732.966636] ata4.00: exception Emask 0x50 SAct 0x0 SErr 0x1280900 action 0x6 frozen
[134732.966650] ata4: SError: { UnrecovData HostInt 10B8B BadCRC TrStaTrns }
[134732.966659] ata4.00: failed command: READ DMA
[134732.966677] ata4.00: cmd c8/00:08:c0:d7:01/00:00:00:00:00/e0 tag 0 dma 4096 in
[134732.966681] res 40/00:00:00:00:00/00:00:00:00:00/e0 Emask 0x54 (ATA bus error)
[134732.966689] ata4.00: status: { DRDY }
[134732.966704] ata4: hard resetting link
[134733.493363] ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[134733.513452] ata4.00: configured for UDMA/66
[134733.513462] ata4.00: device reported invalid CHS sector 0
[134733.513480] ata4: EH complete
[134745.372614] ata4.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[134745.372621] ata4.00: BMDMA stat 0x24
[134745.372628] ata4.00: failed command: WRITE DMA
[134745.372642] ata4.00: cmd ca/00:00:00:3d:01/00:00:00:00:00/e0 tag 0 dma 131072 out
[134745.372645] res 51/84:00:ff:3d:01/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
[134745.372652] ata4.00: status: { DRDY ERR }
[134745.372656] ata4.00: error: { ICRC ABRT }
[134745.372668] ata4: hard resetting link
[134745.896690] ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[134745.916784] ata4.00: configured for UDMA/66
[134745.916806] ata4: EH complete
[134763.988311] ata4.00: exception Emask 0x52 SAct 0x0 SErr 0x880d00 action 0x6
[134763.988318] ata4.00: BMDMA stat 0x26
[134763.988325] ata4: SError: { UnrecovData Proto HostInt 10B8B LinkSeq }
[134763.988332] ata4.00: failed command: READ DMA
[134763.988346] ata4.00: cmd c8/00:08:e8:6b:03/00:00:00:00:00/e0 tag 0 dma 4096 in
[134763.988349] res 50/00:00:e8:6b:03/00:00:00:00:00/e0 Emask 0x72 (host bus error)
Opisywany problem występuje na płycie X7SPA-HF w serwerze SuperServer
5015A-PHF firmy Supermicro
http://www.supermicro.com/products/system/1U/5015/SYS-5015A-PHF.cfm
# lspci
00:00.0 Host bridge: Intel Corporation Pineview DMI Bridge (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)
00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA IDE Controller (rev 02)
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
04:04.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200eW WPCM450 (rev 0a)
Pamiętam, że kiedyś trzeba było wygenerować initrd z modułem kontrolera IDE (PATA)
ładowanym z odpowiednim parametrem wymuszającym wyłączenie UDMA.
Jak to wygląda teraz ?
Korzystam ze sterownika ata_piix ponieważ w trybie ahci nie udało mi się podnieć systemu na karcie CF z
używanym adapterem.
Czy poleceniem sdparm można wyłączyć tryb UDMA na danym kanale ?
Z góry dziękuję za pomoc.
Krzysztof
Więcej informacji o liście dyskusyjnej pld-users-pl