DMA-problemen met compact flash

Pagina: 1
Acties:

  • m-m
  • Registratie: Augustus 2001
  • Niet online
Hai,

Ik heb een VIA Epia bordje, met bijbehorende controller. Daarop heb ik al enige tijd Linux draaien, maar nu komt de crux: het systeem draait (middels een convertortje) vanaf een Sandisk Extreme III kaartje van 4 gig.

Nu krijg ik alleen DMA niet aan de praat, wat het systeem hinderlijk traag maakt. De controller kan het uiteraard aan, en zou ook prima support moeten hebben. Het kaartje kan het ook aan, volgens de specs en ook als ik 'm ernaar vraag met hdparm:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/dev/hda:

 Model=SanDisk SDCFX3-4096, FwRev=HDX 4.03, SerialNo=012121G1207U4509
 Config={ HardSect NotMFM Removeable DTR>10Mbs nonMagnetic }
 RawCHS=7964/16/63, TrkSize=0, SectSize=576, ECCbytes=4
 BuffType=DualPort, BuffSize=1kB, MaxMultSect=4, MultSect=off
 CurCHS=7964/16/63, CurSects=8027712, LBA=yes, LBAsects=8027712
 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 
 AdvancedPM=no WriteCache=disabled
 Drive conforms to: Unspecified:  ATA/ATAPI-4

 * signifies the current active mode


M.a.w., hieruit leid ik af dat hij niet alleen DMA ondersteunt, maar dat DMA zelfs actief zou moeten zijn. hdparm -d /dev/hda geeft echter:

code:
1
2
/dev/hda:
 using_dma    =  0 (off)


Kortom, het staat uit. Zet ik het alsnog aan met hdparm (hdparm -d1 /dev/hda), krijg ik in eerste instantie geen errors. Bij de eerstvolgende i/o-actie hangt het systeem echter een paar seconde, gevolgd door het volgende in de logs:

code:
1
2
3
4
May  5 17:23:12 menelaos kernel: [  591.489812] hda: dma_timer_expiry: dma status == 0x21
May  5 17:23:23 menelaos kernel: [  601.485705] hda: DMA timeout error
May  5 17:23:23 menelaos kernel: [  601.485737] hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
May  5 17:23:23 menelaos kernel: [  601.485765] ide: failed opcode was: unknown


En vervolgens staat DMA weer uit. Dit proces vindt ook plaats tijdens de boot, maw hij wordt als DMA-ready herkend en gebruikt en het vervolgens valt hij met wat errors terug op PIO.

Op de wereldwijde internetten kwam ik het volgende vergelijkbare tegen. Hier wordt aangeraden om ofwel geen DMA te gebruiken (geen optie wat mij betreft), ofwel om je filesystem op /dev/hdx te pleuren in plaats van /dev/hdx1.

Dat laatste klinkt mij wat raar in de oren, kan dat daadwerkelijk de boel oplossen? Volgens mij kan ik zonder partitietabel ook niet meer van 't ding booten immers. Een bekende van me heeft hetzelfde moederbordje, met ook een Extreme 3 kaartje, maar dan 2 gig. Bij hem werkt het wel en ik kan geen verschil ontdekken.

Ik draai Ubuntu, met stock-kernel 2.6.20-16-generic. De onboard IDE-controller wordt geidentificeerd als:

code:
1
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)



hetgeen vrij standaard spul is.

Thanks :)

(topic in NOS omdat ik vermoed dat het softwarematig op te lossen moet zijn, indien ik dat verkeerd inschat zie ik 't topic vanzelf wel verhuizen :) )

  • m-m
  • Registratie: Augustus 2001
  • Niet online
schopje

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

QnJhaGlld2FoaWV3YQ==


  • m-m
  • Registratie: Augustus 2001
  • Niet online
voor zover ik kan beoordelen (op basis van wat er niet klopte in het geval van die link), is het gewoon een echt kaartje.