Kirjoittaja Aihe: DMA forcetus?  (Luettu 2133 kertaa)

timbba

  • Käyttäjä
  • Viestejä: 1413
    • Profiili
DMA forcetus?
« : 26.08.09 - klo:19.34 »
Onnistuiskohan saada dma päälle Compact Flash lukijalle Dell Latitude X1 koneessa? Ohessa lisätietoja:

hdparm -I
Koodia: [Valitse]
/dev/sdb:

ATA device, with non-removable media
        Media Manufacturer: ��J^��J^��J^
Standards:                             
        Likely used: 1                 
Configuration:                         
        Logical         max     current
        cylinders       0       0       
        heads           0       0       
        sectors/track   0       0       
        --
        device size with M = 1024*1024:           0 MBytes
        device size with M = 1000*1000:           0 MBytes
Capabilities:
        IORDY not likely
        Cannot perform double-word IO
        R/W multiple sector transfer: not supported
        DMA: not supported
        PIO: pio0

hdparm -i
Koodia: [Valitse]
/dev/sdb:

 Model=SMI MODEL                               , FwRev=20071116, SerialNo=            00019762
 Config={ HardSect NotMFM Removeable DTR>10Mbs nonMagnetic }
 RawCHS=15733/16/63, TrkSize=0, SectSize=576, ECCbytes=4
 BuffType=DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=?0?
 CurCHS=15733/16/63, CurSects=15858864, LBA=yes, LBAsects=15858864
 IORDY=no, tPIO={min:120,w/IORDY:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 AdvancedPM=no

 * signifies the current active mode

lspci -vv
Koodia: [Valitse]
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03) (prog-if 8a [Master SecP PriP])                                                                   
        Subsystem: Dell Device 01a3                                                                 
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-                                                                                           
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-                                                                                         
        Latency: 0                                                                                 
        Interrupt: pin A routed to IRQ 16                                                           
        Region 0: I/O ports at 01f0 [size=8]                                                       
        Region 1: I/O ports at 03f4 [size=1]                                                       
        Region 2: I/O ports at 0170 [size=8]                                                       
        Region 3: I/O ports at 0374 [size=1]                                                       
        Region 4: I/O ports at bfa0 [size=16]                                                       
        Kernel driver in use: ata_piix                                                             

02:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
        Subsystem: Dell Device 01a3                     
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-                                                                                           
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-                                                                                         
        Latency: 168                                                                               
        Interrupt: pin A routed to IRQ 19                                                           
        Region 0: Memory at dfc00000 (32-bit, non-prefetchable) [size=4K]                           
        Bus: primary=02, secondary=03, subordinate=06, sec-latency=176                             
        Memory window 0: 60000000-63fff000 (prefetchable)                                           
        Memory window 1: 64000000-67fff000                                                         
        I/O window 0: 00001400-000014ff                                                             
        I/O window 1: 00001800-000018ff                                                             
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+                       
        16-bit legacy interface ports at 0001                                                       
        Kernel driver in use: yenta_cardbus                                                         
        Kernel modules: yenta_socket   

interrupts
Koodia: [Valitse]
           CPU0
  0:      73552   IO-APIC-edge      timer
  1:       2564   IO-APIC-edge      i8042
  3:      28171   IO-APIC-edge      pata_pcmcia
  8:          1   IO-APIC-edge      rtc0
  9:          1   IO-APIC-fasteoi   acpi
 12:       1710   IO-APIC-edge      i8042
 14:      18449   IO-APIC-edge      ata_piix
 15:          0   IO-APIC-edge      ata_piix
 16:      22952   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2, Intel ICH6, i915@pci:0000:00:02.0, eth0
 17:      64057   IO-APIC-fasteoi   uhci_hcd:usb3, mmc0, ipw2200
 18:          2   IO-APIC-fasteoi   uhci_hcd:usb4, ohci1394
 19:          0   IO-APIC-fasteoi   uhci_hcd:usb5, yenta
NMI:          0   Non-maskable interrupts
LOC:     125176   Local timer interrupts
RES:          0   Rescheduling interrupts
CAL:          0   Function call interrupts
TLB:          0   TLB shootdowns
SPU:          0   Spurious interrupts
ERR:          0
MIS:          0

dmesg
Koodia: [Valitse]
[   14.472096] pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0               
[   14.485962] Intel ICH 0000:00:1e.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16                   
[   14.486179] Intel ICH 0000:00:1e.2: setting latency timer to 64                                 
[   14.532244] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x100-0x3af: clean.                 
[   14.534088] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x3e0-0x4ff: clean.                 
[   14.534878] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x820-0x8ff: clean.                 
[   14.535537] pcmcia_socket pcmcia_socket0: cs: IO port probe 0xc00-0xcf7: clean.                 
[   14.536466] pcmcia_socket pcmcia_socket0: cs: IO port probe 0xa00-0xaff: clean.                 
[   14.537218] pcmcia_socket pcmcia_socket0: cs: memory probe 0xdfc00000-0xdfcfffff: excluding 0xdfc00000-0xdfc0ffff 0xdfcf0000-0xdfcfffff                                                             
[   14.548151] pcmcia 0.0: pcmcia: registering new device pcmcia0.0                                 
[   14.662828] scsi2 : pata_pcmcia                                                                 
[   14.663146] ata3: PATA max PIO0 cmd 0x100 ctl 0x10e irq 3                                       
[   14.832744] ata3.00: CFA: SMI MODEL, 20071116, max MWDMA4                                       
[   14.832749] ata3.00: 15858864 sectors, multi 0: LBA                                             
[   14.840783] ata3.00: configured for PIO0                                                         
[   14.856774] ata3.00: configured for PIO0                                                         
[   14.856779] ata3: EH complete                                                                   


Eli voipi tosiaan olla niin, että kone ei tue ollenkaa DMA:ta tuolle CF:lle. Sattuipa silti googlettemalla silmään tälläinen (linkki):
Koodia: [Valitse]
ICH6: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xbfa0-0xbfa7, BIOS settings: hda:DMA, hdb:pio


Eli voisiko syy kuitenkin olla vain biosin rajoituksissa? Biosissa ei pysty mitään ihmeempiä itsessää säädellä, joten voiko softalla ohittaa biosin asetuksia jotenkin ja forcettaa DMA päälle? Mitä vain voisi kokeilla, kun hdparmilla se ei suoranaisesti onnistu? Miten säätää niin, että ICH6 piirisarja ei välittäisi biosin ide-asetuksista?

Edit: Lisätty dmesg
« Viimeksi muokattu: 26.08.09 - klo:19.44 kirjoittanut timbba »

timbba

  • Käyttäjä
  • Viestejä: 1413
    • Profiili
Vs: DMA forcetus?
« Vastaus #1 : 27.08.09 - klo:07.23 »
Itse itselleni vastaten. Kyse ei taida ollakaa biosista ja sen rajoituksista:
Koodia: [Valitse]
[    2.461447] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xbfa0 irq 14
[    2.461453] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xbfa8 irq 15
[    2.624885] ata1.00: ATA-6: TOSHIBA MK3006GAL, BY102A, max UDMA/100
[    2.624890] ata1.00: 58605120 sectors, multi 8: LBA48
[    2.632845] ata1.00: configured for UDMA/100
[    2.632890] ata2: port disabled. ignoring.

Eli syy taitaakin olla siinä että pata_pcmcia moduuli on rajoitettu käyttämään vain ainoastaan PIO0 moodia?! Ainakin tästä päätellen:
http://lists.infradead.org/pipermail/linux-pcmcia/2007-December/005217.html

Kuka osaisi jeesata, miten pääsee testailemaan vaihtoehtoista (ilmeisesti legacy-ajuria) ide-cs:ää? Enää en löydä sitä linkkiä, jossa joku käyttäjä oli saanut vanhoilla kerneleillä ide-cs:ää käyttäen paljon nopeamman siirtonopeuden. Sama ketjuhan se olikin kuin tuossa ensimmäisessä linkissä:
http://lists.infradead.org/pipermail/linux-pcmcia/2007-December/005212.html
« Viimeksi muokattu: 27.08.09 - klo:07.45 kirjoittanut timbba »

timbba

  • Käyttäjä
  • Viestejä: 1413
    • Profiili
Vs: DMA forcetus?
« Vastaus #2 : 29.08.09 - klo:09.43 »
Kukaan ei ilmeisemmin tiedä kuinka ide-cs:n saa käyttöön testimielessä? Pitääköhän ite käännellä kerneli, jos noin haluaa? Toisaalta sekin opettaisi aika paljon ku en ole moista koskaan vielä tehnyt :)

timbba

  • Käyttäjä
  • Viestejä: 1413
    • Profiili
Vs: DMA forcetus?
« Vastaus #3 : 29.08.09 - klo:20.57 »
Kukaan ei ilmeisemmin tiedä kuinka ide-cs:n saa käyttöön testimielessä? Pitääköhän ite käännellä kerneli, jos noin haluaa? Toisaalta sekin opettaisi aika paljon ku en ole moista koskaan vielä tehnyt :)

No miksei kukaan sitä mulle sanonu.. eli testaa vanhalla Ubuntun live-cd:llä :) Voi idiootti mua ;)

Tuli testattua ja live-cd käytti ide-cs:ää, mutta PIO0 moodi tuli silläkin käyttöön eikä DMA:ta tuettu. Eli taitaa olla raudan rajoitus eikä sille taida mahtaa mitää.. Harmi, sillä olis ollu aika hyvä kun olis saanu tuon DMA:n käyttöön.