Re: [PATCH 1/1] ide: Allow disabling of UDMA for Compact Flash devices



On 4/18/06, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
On Maw, 2006-04-18 at 13:34 +0200, Andreas Mohr wrote:
However, while this is much better than a compile-time setting, it's still
not fully satisfying since many users won't realize that they're hitting this
problem and thus won't search for and find this obscure boot parameter.
Is there any way at all to get this condition detected automatically?

Not that I can think off immediately. The controller and the drive both
report the modes they support. If that is wrong then we either need to
be able to identify the specific device (as libata does with the Palmax
systems) or try it and see (which we indeed do but takes time to error
out).

For PCMCIA CF adapters we are ok because they are ISA bus so PIO 0
cycles are all that are supported. For other controllers it will depend
whether the CF adapter is integrated into a PCI card with unique
subvendor/dev identifiers which can be blacklisted, or a motherboard
with DMI entries that can be used.

If it's just some poorly engineered 'shove a cable in one end and a CF
card the other' device which is therefore not directly detectable I
think you lose.


This is exactly the situation that I have with 2 separate "dumb" (just
physical interfaces, essentially - not at all detectable) IDE->CF
adapters - both the IDE controller and the CF media support several
UDMA modes, so the IDE driver throws the CF device into UDMA mode on
bootup. However, as the physical interface between the IDE cable and
the CF socket is poorly engineered, it cannot handle the higher
speeds, causing the timeout errors. For some people, this can just be
fixed with an ide=nodma boot option, but as I also have a (quite
large) rotating media device on the controller, this is not an option,
as, if a fsck is performed on a boot, the boot-up time is upwards of
30 minutes.

I would be happy to look into making this a boot option - but my
project schedule won't allow for the kind of time for me to figure out
how to do that :), so this is just a quick hack that works for my
situation.

-James



Alan


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Is it possible to boot from PCI-IDE controller?
    ... > The IDE controller on the motherboard appears to be faulty. ... > Flash IDE disk with an embedded Linux all of which boot up in another ... The floppy controller is separate from the IDE controller, ...
    (comp.os.linux.hardware)
  • Re: How to I get windows to remap drives on bootup
    ... I use 2 pairs of ide buses to control ... > hda - this is where the BIO bootup stuff is written by lilo ... > The motherboard controller. ... > hde - this the first ide device where the BIOS will boot off ...
    (comp.os.linux.setup)
  • Re: libata not working for sis5533
    ... [Adding IDE wizards to CC] ... i tried to switch to libata but i cannot boot. ... but i never got any libata kernel working. ... Controller ...
    (Linux-Kernel)
  • Re: libata not working for sis5533
    ... [Adding IDE wizards to CC] ... i tried to switch to libata but i cannot boot. ... but i never got any libata kernel working. ... Controller ...
    (Linux-Kernel)
  • Re: Install Problem at GUI Startup
    ... After completing the install and getting to the "NTLDR Missing" error, ... directory or trying to boot from a directory other than the root. ... How to troubleshoot the "NTLDR is missing" error message in Windows Server ... I am using the non promise controller exactly as you suggest. ...
    (microsoft.public.windows.server.sbs)