LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Laptop and Netbook
User Name
Password
Linux - Laptop and Netbook Having a problem installing or configuring Linux on your laptop? Need help running Linux on your netbook? This forum is for you. This forum is for any topics relating to Linux and either traditional laptops or netbooks (such as the Asus EEE PC, Everex CloudBook or MSI Wind).

Notices


Reply
  Search this Thread
Old 01-18-2009, 07:51 AM   #1
Glasswlkr
LQ Newbie
 
Registered: Oct 2008
Posts: 16

Rep: Reputation: 0
Problems Disabling DMA on IDE CompactFlash HDD on Web Pad Tablet


Hello everyone, I have been working for some time now on a project at:
http://visionplate.samuraipotato.com/

Trying to get a linux OS running on the Hitachi VisionPlate tablet. There is alot of documentation and information on my efforts in that wiki.

Right now I have been making the most progress with a Debian based build.

I have everything working quite well, except that the new kernel I compiled for it is using libata, and I am having trouble disabling DMA on the CompactFlash HDD. So during boot at the point where it mounts root, I get a spam of DMA timeout errors and the tablet runs slowly.

I had this problem on the previous kernel as well, and when I tried using the typical ide=nodma or ide0=nodma, or just nodma at boot... None of those options worked. I learned that if I dropped a file in /etc/modprobe.d/ with the option for the ide0=nodma option for the ide_core module in there, then update the initramfs, then it worked fine.

When I boot the new kernel with this same thing in the initramfs, then it fails out at ide_core with "invalid option" and ide_core refuses to load... I read through the ide.txt documentation in the kernel on disabling DMA. And tried every variation of the option I can find. Nothing seems to work.

Then I found this article: http://ubuntuforums.org/showthread.php?p=6391996

I read up more on those details, and tried every variant of that I could think of as well... Still nothing DMA is still forcing on boot.

I have also tried hdparm but the option doesn't stick at reboot, and there is no way I know of to get hdparm to load before the root mount. (other than some creative script editing in the initramfs) but I can't imagine that being the "proper" way...

I know I am just missing something here, there MUST be a proper way to disable DMA for IDE on the newer kernel.

Anyway, here is the dmesg showing the IDE detection. It runs the alim15x3 chipset. you can see that detected a little ways in, and then see it enable DMA mode for ide0, then it detects the drive. Then shortly after the USB lines, it starts the dma timeout spamming.

Any help would be appreciated.

DMESG:
Code:
00000000000e8800 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000006ff0000 (usable)
 BIOS-e820: 0000000006ff0000 - 0000000006fffc00 (ACPI data)
 BIOS-e820: 0000000006fffc00 - 0000000007000000 (ACPI NVS)
 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
DMI 2.3 present.
last_pfn = 0x6ff0 max_arch_pfn = 0x100000
kernel direct mapping tables up to 6ff0000 @ 7000-d000
RAMDISK: 04f49000 - 054331a9
111MB LOWMEM available.
  mapped low ram: 0 - 06ff0000
  low ram: 00000000 - 06ff0000
  bootmap 00001000 - 00001e00
(7 early reservations) ==> bootmem [0000000000 - 0006ff0000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000100000 - 00003b0e88]    TEXT DATA BSS ==> [0000100000 - 00003b0e88]
  #2 [0004f49000 - 00054331a9]          RAMDISK ==> [0004f49000 - 00054331a9]
  #3 [00003b1000 - 00003b3000]    INIT_PG_TABLE ==> [00003b1000 - 00003b3000]
  #4 [000009b400 - 0000100000]    BIOS reserved ==> [000009b400 - 0000100000]
  #5 [0000007000 - 0000009000]          PGTABLE ==> [0000007000 - 0000009000]
  #6 [0000001000 - 0000002000]          BOOTMAP ==> [0000001000 - 0000002000]
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  Normal   0x00001000 -> 0x00006ff0
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000000 -> 0x0000009b
    0: 0x00000100 -> 0x00006ff0
On node 0 totalpages: 28555
free_area_init_node: node 0, pgdat c032d1e0, node_mem_map c1000000
  DMA zone: 3963 pages, LIFO batch:0
  Normal zone: 24368 pages, LIFO batch:3
Allocating PCI resources starting at 10000000 (gap: 7000000:f8f80000)
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 28331
Kernel command line: BOOT_IMAGE=(hd0,1)/vmlinuz-2.6.27.10-visionplate root=/dev/hda2 ro
Initializing CPU#0
PID hash table entries: 512 (order: 9, 2048 bytes)
TSC: Using PIT calibration value
Detected 397.867 MHz processor.
Console: colour VGA+ 80x25
console [tty0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 105344k/114624k available (1628k kernel code, 8812k reserved, 625k data, 300k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)
    vmalloc : 0xc7800000 - 0xffff8000   ( 903 MB)
    lowmem  : 0xc0000000 - 0xc6ff0000   ( 111 MB)
      .init : 0xc0336000 - 0xc0381000   ( 300 kB)
      .data : 0xc029724c - 0xc03339d0   ( 625 kB)
      .text : 0xc0100000 - 0xc029724c   (1628 kB)
Checking if this processor honours the WP bit even in supervisor mode...Ok.
CPA: page pool initialized 1 of 1 pages preallocated
Calibrating delay loop (skipped), value calculated using timer frequency.. 795.73 BogoMIPS (lpj=397867)
Security Framework initialized
Mount-cache hash table entries: 512
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
CPU: L1 I Cache: 64K (64 bytes/line), D cache 32K (32 bytes/line)
CPU: Processor revision 1.1.0.2, 400 MHz
CPU: Code Morphing Software revision 3.0.9-4-886
CPU: 20010118 20:11 official build cand-3.0.9#1
CPU serial number disabled.
CPU: Transmeta(tm) Crusoe(tm) Processor stepping 02
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 0k freed
net_namespace: 832 bytes
Booting paravirtualized kernel on bare hardware
NET: Registered protocol family 16
EISA bus registered
PCI: PCI BIOS revision 2.10 entry at 0xfd8be, last bus=0
PCI: Using configuration type 1 for base access
Linux Plug and Play Support v0.97 (c) Adam Belay
PnPBIOS: Scanning system for PnP BIOS support...
PnPBIOS: Found PnP BIOS installation structure at 0xc00f82d0
PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xb21a, dseg 0x400
PnPBIOS: 15 nodes reported by PnP BIOS; 15 recorded by driver
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: 0000:00:00.0 reg 10 32bit mmio: [0, fffff]
PCI: 0000:00:04.0 reg 10 io port: [1000, 10ff]
PCI: 0000:00:04.0 reg 14 32bit mmio: [fc000000, fc000fff]
pci 0000:00:04.0: supports D1
pci 0000:00:04.0: supports D2
pci 0000:00:04.0: PME# supported from D2 D3hot D3cold
pci 0000:00:04.0: PME# disabled
PCI: 0000:00:06.0 reg 10 32bit mmio: [fd000000, fdffffff]
pci 0000:00:06.0: supports D1
pci 0000:00:06.0: supports D2
PCI: 0000:00:0c.0 reg 10 32bit mmio: [0, fff]
pci 0000:00:0c.0: supports D1
pci 0000:00:0c.0: supports D2
pci 0000:00:0c.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:0c.0: PME# disabled
PCI: 0000:00:0c.1 reg 10 32bit mmio: [0, fff]
pci 0000:00:0c.1: supports D1
pci 0000:00:0c.1: supports D2
pci 0000:00:0c.1: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:0c.1: PME# disabled
PCI: 0000:00:0f.0 reg 10 io port: [1f0, 1ff]
PCI: 0000:00:0f.0 reg 14 io port: [3f4, 3f7]
PCI: 0000:00:0f.0 reg 18 io port: [170, 17f]
PCI: 0000:00:0f.0 reg 1c io port: [374, 377]
PCI: 0000:00:0f.0 reg 20 io port: [1400, 140f]
pci 0000:00:11.0: quirk: region 8000-803f claimed by ali7101 ACPI
pci 0000:00:11.0: quirk: region 8040-805f claimed by ali7101 SMB
PCI: 0000:00:14.0 reg 10 32bit mmio: [d0000, d0fff]
pci 0000:00:07.0: ALI IRQ router [10b9/1533]
NET: Registered protocol family 8
NET: Registered protocol family 20
system 00:01: iomem range 0x0-0x9bf could not be reserved
system 00:01: iomem range 0xe00-0xfff could not be reserved
system 00:01: iomem range 0xde0-0xdff could not be reserved
system 00:01: iomem range 0x100000-0x70ffbff could not be reserved
system 00:02: ioport range 0x260-0x267 has been reserved
system 00:02: ioport range 0x40b-0x40b has been reserved
system 00:02: ioport range 0x480-0x48f has been reserved
system 00:02: ioport range 0x4d6-0x4d6 has been reserved
system 00:02: iomem range 0xfff80000-0xffffffff could not be reserved
system 00:03: ioport range 0x4d0-0x4d1 has been reserved
system 00:03: ioport range 0x8000-0x803f has been reserved
system 00:03: ioport range 0x8040-0x804f has been reserved
system 00:0b: iomem range 0x9c000-0x9ffff has been reserved
system 00:0c: iomem range 0xd8000-0xdbfff has been reserved
pci 0000:00:0c.0: CardBus bridge, secondary bus 0000:01
pci 0000:00:0c.0:   IO window: 0x001800-0x0018ff
pci 0000:00:0c.0:   IO window: 0x001c00-0x001cff
pci 0000:00:0c.0:   PREFETCH window: 0x10000000-0x13ffffff
pci 0000:00:0c.0:   MEM window: 0x14000000-0x17ffffff
pci 0000:00:0c.1: CardBus bridge, secondary bus 0000:05
pci 0000:00:0c.1:   IO window: 0x002000-0x0020ff
pci 0000:00:0c.1:   IO window: 0x002400-0x0024ff
pci 0000:00:0c.1:   PREFETCH window: 0x18000000-0x1bffffff
pci 0000:00:0c.1:   MEM window: 0x1c000000-0x1fffffff
PCI: setting IRQ 9 as level-triggered
pci 0000:00:0c.0: found PCI INT A -> IRQ 9
pci 0000:00:0c.0: sharing IRQ 9 with 0000:00:0c.1
pci 0000:00:0c.0: setting latency timer to 64
pci 0000:00:0c.1: found PCI INT A -> IRQ 9
pci 0000:00:0c.1: sharing IRQ 9 with 0000:00:0c.0
pci 0000:00:0c.1: setting latency timer to 64
bus: 00 index 0 io port: [0, ffff]
bus: 00 index 1 mmio: [0, ffffffff]
bus: 01 index 0 io port: [1800, 18ff]
bus: 01 index 1 io port: [1c00, 1cff]
bus: 01 index 2 mmio: [10000000, 13ffffff]
bus: 01 index 3 mmio: [14000000, 17ffffff]
bus: 05 index 0 io port: [2000, 20ff]
bus: 05 index 1 io port: [2400, 24ff]
bus: 05 index 2 mmio: [18000000, 1bffffff]
bus: 05 index 3 mmio: [1c000000, 1fffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs... it is
Freeing initrd memory: 5032k freed
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
audit: initializing netlink socket (disabled)
type=2000 audit(1232226862.802:1): initialized
HugeTLB registered 4 MB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
msgmni has been set to 215
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci 0000:00:06.0: Boot video device
pci 0000:00:07.0: Activating ISA DMA hang workarounds
isapnp: Scanning for PnP cards...
Clocksource tsc unstable (delta = 225006871 ns)
isapnp: No Plug & Play device found
Serial: 8250/16550 driver4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0f: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
brd: module loaded
Uniform Multi-Platform E-IDE driver
alim15x3 0000:00:0f.0: IDE controller (0x10b9:0x5229 rev 0xc3)
alim15x3 0000:00:0f.0: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x1400-0x1407
alim15x3 0000:00:0f.0: simplex device: DMA forced
    ide1: BM-DMA at 0x1408-0x140f
Probing IDE interface ide0...
hda: CF 2GB, ATA DISK drive
hda: host max PIO5 wanted PIO255(auto-tune) selected PIO2
hda: MWDMA2 mode selected
Probing IDE interface ide1...
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports
ide_generic: I/O resource 0x1F0-0x1F7 not free.
ide_generic: I/O resource 0x170-0x177 not free.
PNP: No PS/2 controller found. Probing ports directly.
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
EISA: Probing bus 0 at eisa.0
Cannot allocate resource for EISA slot 1
Cannot allocate resource for EISA slot 2
Cannot allocate resource for EISA slot 8
EISA: Detected 0 cards.
cpuidle: using governor ladder
cpuidle: using governor menu
TCP bic registered
NET: Registered protocol family 17
Using IPI Shortcut mode
registered taskstats version 1
Freeing unused kernel memory: 300k freed
hda: max request size: 128KiB
hda: 3964464 sectors (2029 MB) w/1KiB Cache, CHS=3933/16/63
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
 hda:<7>ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
------------[ cut here ]------------
WARNING: at arch/x86/pci/irq.c:208 pirq_ali_get+0x23/0x50()
Modules linked in: ohci_hcd(+) ide_disk(+) usbcore
Pid: 495, comm: modprobe Not tainted 2.6.27.10-visionplate #3
 [<c011ac60>] warn_on_slowpath+0x40/0x70
 [<c01075a0>] apply_paravirt+0x80/0x90
 [<c012ed6d>] update_wall_time+0x5bd/0x770
 [<c01caacf>] vsnprintf+0x28f/0x440
 [<c012e472>] getnstimeofday+0x32/0xb0
 [<c022a64d>] raw_pci_read+0x4d/0x60
 [<c022a6dc>] pci_read+0x1c/0x30
 [<c022a0b3>] pirq_ali_get+0x23/0x50
 [<c022a090>] pirq_ali_get+0x0/0x50
 [<c022a342>] pcibios_lookup_irq+0x242/0x450
 [<c022a581>] pirq_enable_irq+0x31/0xb0
 [<c022a76f>] pcibios_enable_device+0x1f/0x30
 [<c01d192f>] do_pci_enable_device+0x1f/0x40
 [<c01d199c>] __pci_enable_device_flags+0x4c/0x60
 [<c78364c5>] usb_hcd_pci_probe+0x35/0x260 [usbcore]
 [<c01d2bf6>] pci_device_probe+0x36/0x60
 [<c020a32c>] driver_probe_device+0x9c/0x130
 [<c020a3f7>] __driver_attach+0x37/0x60
 [<c0209d65>] bus_for_each_dev+0x35/0x60
 [<c020a1c1>] driver_attach+0x11/0x20
 [<c020a3c0>] __driver_attach+0x0/0x60
 [<c02097a1>] bus_add_driver+0x91/0x1b0
 [<c7814000>] ohci_hcd_mod_init+0x0/0x4a [ohci_hcd]
 [<c020a58d>] driver_register+0x7d/0xe0
 [<c7814000>] ohci_hcd_mod_init+0x0/0x4a [ohci_hcd]
 [<c01d2da5>] __pci_register_driver+0x35/0x60
 [<c7814038>] ohci_hcd_mod_init+0x38/0x4a [ohci_hcd]
 [<c0101037>] _stext+0x37/0x110
 [<c01374d7>] sys_init_module+0x87/0x180
 [<c0103916>] syscall_call+0x7/0xb
 =======================
---[ end trace ef30dd4b10380df4 ]---
ohci_hcd 0000:00:14.0: found PCI INT A -> IRQ 9
ohci_hcd 0000:00:14.0: OHCI Host Controller
ohci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
ohci_hcd 0000:00:14.0: irq 9, io mem 0x000d0000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda: DMA disabled
ide0: reset: success
 hda1 hda2
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda: DMA disabled
ide0: reset: success
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda: DMA disabled
ide0: reset: success
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda: DMA disabled
ide0: reset: success
input: PC Speaker as /class/input/input0
Linux agpgart interface v0.103
ali15x3_smbus 0000:00:11.0: ALI15X3_smb region uninitialized - upgrade BIOS or use force_addr=0xaddr
ali15x3_smbus 0000:00:11.0: ALI15X3 not detected, module not inserted.
ali1535_smbus 0000:00:11.0: ALI1535_smb region 0x8040 already in use!
Yenta: CardBus bridge found at 0000:00:0c.0 [1054:0110]
Yenta: Enabling burst memory read transactions
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:0c.0, mfunc 0x00000002, devctl 0x64
Yenta: ISA IRQ mask 0x0cf8, PCI irq 9
Socket status: 30000006
Yenta: CardBus bridge found at 0000:00:0c.1 [1054:0110]
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:0c.1, mfunc 0x00000002, devctl 0x64
Yenta: ISA IRQ mask 0x0cf8, PCI irq 9
Socket status: 30000010
PCI: setting IRQ 11 as level-triggered
ALI 5451 0000:00:04.0: found PCI INT A -> IRQ 11
pccard: PCMCIA card inserted into slot 1
cs: IO port probe 0x100-0x3af: excluding 0x200-0x207 0x220-0x22f 0x330-0x337 0x388-0x38f
cs: IO port probe 0x100-0x3af: excluding 0x200-0x207 0x220-0x22f 0x330-0x337 0x388-0x38f
cs: IO port probe 0x3e0-0x4ff: clean.
cs: IO port probe 0x3e0-0x4ff: clean.
cs: IO port probe 0x820-0x8ff: clean.
cs: IO port probe 0xc00-0xcf7: clean.
cs: IO port probe 0x820-0x8ff: clean.
cs: IO port probe 0xc00-0xcf7: clean.
cs: IO port probe 0xa00-0xaff: clean.
cs: IO port probe 0xa00-0xaff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
pcmcia: registering new device pcmcia1.0
orinoco 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)
orinoco_cs 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)
eth0: Hardware identity 8002:0001:0001:0000
eth0: Station identity  001f:0009:0001:0004
eth0: Firmware determined as Intersil 1.4.9
eth0: Ad-hoc demo mode supported
eth0: IEEE standard IBSS ad-hoc mode supported
eth0: WEP supported, 104-bit key
eth0: MAC address 00:02:78:e4:9b:68
eth0: Station name "Prism  I"
eth0: ready
eth0: orinoco_cs at 1.0, irq 3, io 0x0100-0x013f
ieee80211_crypt: registered algorithm 'NULL'
udev: renamed network interface eth0 to eth1
loop: module loaded
eth1: New link status: Connected (0001)
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
eth1: no IPv6 routers present
ADDRCONF(NETDEV_UP): eth1: link is not ready
eth1: New link status: Connected (0001)
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
eth1: no IPv6 routers present
 
Old 01-18-2009, 08:15 AM   #2
Drakeo
Senior Member
 
Registered: Jan 2008
Location: Urbana IL
Distribution: Slackware, Slacko,
Posts: 3,716
Blog Entries: 3

Rep: Reputation: 483Reputation: 483Reputation: 483Reputation: 483Reputation: 483
I am not going to say I know a lot but to use debian has a different type of run levels then slackware based and bsd unix based systems. when you boot to telinit 1 you are already past the point of configuring the set up varibles as you noted no mater what you do at telinet 1 has alredy run it's course. if the
different systems different ability. To use a debian would be nice for many reasons. at one point you have to ask your self am I limited with my resources . If the hdparm works put that in the start up scripts. I am not on My debian machine right now but I belive it is a udev folder rules.d sorry.
 
Old 01-18-2009, 11:48 AM   #3
Glasswlkr
LQ Newbie
 
Registered: Oct 2008
Posts: 16

Original Poster
Rep: Reputation: 0
Well to be honest I don't really know for sure if hdparm is working. I mean it runs, and it says setting DMA to disabled. but I have no idea if it's solving the problem. (since at reboot it still shows the error.

Thanks for the suggestion though, as it convinced me to dig deeper into using hdparm as a solution.

I checked the hdparm.conf and the /etc/init.d/hdparm. Both those are set to disable DMA, but when I run it via that script I get "/dev/hda failed!" but if I run hdparm -d0 from the commandline it says disabled dma.

The other problem is that on reboot, the error for hda failed from hdparm shows AFTER the errors I see in my bootup. So the hdparm wouldn't be running early enough anyway...

I will do some more digging on this to see if I can somehow make hdparm work for me. But in the end there MUST be a way either in the kernel itself, or via an option line, to disable DMA... It makes no sense, even today there are still plenty of devices that don't support DMA, so there must be a way to disable it.

If I have to recompile the kernel, that's fine! I just can't find any way to turn off DMA for the IDE from within the kernel config. (I found the master switch for DMA as a whole, but I don't want that as the sound and networking both likely use DMA as well... among other things).

Anyway, does anyone have any other suggestions? (while I keep trying to see what I can achieve with hdparm)

EDIT: here is what I get when running hdparm from commandline:

Code:
VisionPlate:/etc/init.d# hdparm -p4 -d0 /dev/hda

/dev/hda:
 attempting to set PIO mode to 4
 setting using_dma to 0 (off)
 using_dma     =  0 (off)
VisionPlate:/etc/init.d# hdparm -i /dev/hda

/dev/hda:

 Model=CF 2GB, FwRev=20071116, SerialNo=TSS20034080423111029
 Config={ HardSect NotMFM Fixed DTR>10Mbs }
 RawCHS=3933/16/63, TrkSize=0, SectSize=576, ECCbytes=4
 BuffType=DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=off
 CurCHS=3933/16/63, CurSects=3964464, LBA=yes, LBAsects=3964464
 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

 * signifies the current active mode
So according to that, it looks like it's not actually working (it still shows mdma2 as the mode even though it disabled dma and set pio mode 4)

Last edited by Glasswlkr; 01-18-2009 at 11:56 AM. Reason: Update
 
Old 01-19-2009, 10:02 AM   #4
Glasswlkr
LQ Newbie
 
Registered: Oct 2008
Posts: 16

Original Poster
Rep: Reputation: 0
Now that I think of it I'm not 100% sure it's using libata... I disabled all the "SATA/PATA Experimental" drivers in the kernel compile. Using only the standard IDE stuff, so that might still be the old IDE stuff..

Honestly I don't know. (I disabled all the sata stuff because I didn't need it, and I knew the chipset on the motherboard is the ALI one, so I enabled only that option, and compiled all the stuff right into the kernel)

I have also adjusted the kernel now to the point that it can boot just fine without an initramfs... So I don't have to keep on rebuilding initramfs to troubleshoot this stuff. (and it makes the kernel more portable between distros)

Anyway, any help anyone has would be greatly appreciated.
 
Old 01-25-2009, 11:59 AM   #5
Glasswlkr
LQ Newbie
 
Registered: Oct 2008
Posts: 16

Original Poster
Rep: Reputation: 0
Bump... Anyone else have any feedback on this? I would REALLY love to get these things working properly, and hand patching the IDE driver source to disable dma is not really something I wanted to do... I know there MUST be a proper way to disable DMA, and so far nothing I have tried has worked...

Any further assistance or suggestions would be much appreciated.
 
Old 05-29-2010, 05:17 PM   #6
rcon303
LQ Newbie
 
Registered: May 2010
Posts: 1

Rep: Reputation: 0
Talking visionplate debian /dsl?

hi glasswlkr was checking out your wiki and saw you had a great working debian linux installed on your visionplate? i just bought one on ebay and wanted to find out if you could sell me a cd/dvd or cflash card with this on it so i can install on my new visionplate? i am not that familiar with linux other than my little asusu eeepc and seems this would totaly transform the visionplate!..thanks for any info!
 
Old 05-29-2010, 10:11 PM   #7
Glasswlkr
LQ Newbie
 
Registered: Oct 2008
Posts: 16

Original Poster
Rep: Reputation: 0
Hey, yeah it's been some time since I've worked on the visionplate. I've been far too busy with work to spend time on the project.

I had the distro 90% of the way there, unfortunately I never solved the DMA issue in the kernel.

With the DMA issue the performance is quite poor... If we can get the DMA issue solved the performance would be excellent, and that would be the last missing piece to get a working distro going on the visionplate. I have several of them so I am very interested in getting this working, unfortunately I haven't the time to spend tinkering with the kernel to figure out the DMA issue right now. I do have one friend who is looking at it, he might have some insight, but he's also fairly busy... So it's a slow process...

If you know any linux gurus out there that have some time to tinker, then send them to my wiki, and get them in touch with me. I would be eager for a solution for sure.

Unfortunately the original image with the finished distro is basically gone, it can be rebuilt easily enough using the instructions on my wiki, which would re-trace my steps re-creating the working distro. But until we solve the dma issue performance is REALLY bad...

Hope that helps some.

Thanks!
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Pepper Pad offers Linux Web tablet for sofa surfing LXer Syndicated Linux News 0 12-19-2006 06:33 PM
DMA problems on SiS746FX IDE channel Ptrs!OP Ubuntu 3 05-05-2005 05:57 PM
Hard Disk and DMA Problems with 160GB ATA/100 HDD Shadowman2oo3 Linux - Hardware 4 08-10-2004 09:19 PM
wacom tablet art pad II Ian_Hawdon Linux - Hardware 2 01-12-2004 10:52 AM
Suse 8.2 change my DMA setting on my DVD-R drive to off & IDE DMA MODE NOT SHOWING IT maximalred Linux - General 0 08-23-2003 04:58 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Laptop and Netbook

All times are GMT -5. The time now is 06:29 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration