Problems Disabling DMA on IDE CompactFlash HDD on Web Pad Tablet
Linux - Laptop and NetbookHaving 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
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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
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.
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
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.
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.
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!
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...
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.