2007-10-29 13:05:55

by Wijnand Rietman

[permalink] [raw]
Subject: CONFIG_IDEDMA_AUTO & 2.4.32 & hdparm -d1

Hello,

I am running Linux on a PC104 board from a compact flash card. Because
the physical DMA lines are missing on some of the compact flash
carrier cards, I would like to be able to boot with DMA disabled and
to enable DMA in a later stage if desired (and supported by hardware).

The problem is that when I set CONFIG_IDEDMA_AUTO to FALSE, I cannot
enable DMA anymore with hdparm, not even with hardware that supports
DMA. If I set CONFIG_IDEDMA_AUTO to TRUE, I can use hdparm to disable
and enable DMA (but of course I get long timeouts with the carrier
cards that do not have the physical DMA lines).

Q1: Is this how the CONFIG_IDEDMA_AUTO setting is supposed to work in
combination with hdparm?
Q2: Is there a way to boot with DMA disabled and to enable it later on
once the system is up and running?

Kernel: 2.4.32
Chipset: CS5530

Any help is highly appreciated!

Regards,
Whinyan


2007-10-29 19:46:39

by Lennart Sorensen

[permalink] [raw]
Subject: Re: CONFIG_IDEDMA_AUTO & 2.4.32 & hdparm -d1

On Mon, Oct 29, 2007 at 02:05:44PM +0100, Wijnand Rietman wrote:
> I am running Linux on a PC104 board from a compact flash card. Because
> the physical DMA lines are missing on some of the compact flash
> carrier cards, I would like to be able to boot with DMA disabled and
> to enable DMA in a later stage if desired (and supported by hardware).
>
> The problem is that when I set CONFIG_IDEDMA_AUTO to FALSE, I cannot
> enable DMA anymore with hdparm, not even with hardware that supports
> DMA. If I set CONFIG_IDEDMA_AUTO to TRUE, I can use hdparm to disable
> and enable DMA (but of course I get long timeouts with the carrier
> cards that do not have the physical DMA lines).
>
> Q1: Is this how the CONFIG_IDEDMA_AUTO setting is supposed to work in
> combination with hdparm?
> Q2: Is there a way to boot with DMA disabled and to enable it later on
> once the system is up and running?
>
> Kernel: 2.4.32
> Chipset: CS5530
>
> Any help is highly appreciated!

I had trouble with DMA and compact flash cards on our board (prior to
the new revision) since it did not have the DMA lines (they weren't part
of the CF spec when the board was designed). The way I booted was to
pass 'ide=nodma' and that worked fine (at least on the sc1200).

I could enable dma with hdparm later if I wanted (which of course made
the ide driver rather upset when it tried to then use the non existant
dma lines).

--
Len Sorensen

2007-10-29 20:52:46

by Wijnand Rietman

[permalink] [raw]
Subject: Re: CONFIG_IDEDMA_AUTO & 2.4.32 & hdparm -d1

> The way I booted was to
> pass 'ide=nodma' and that worked fine (at least on the sc1200).
>
> I could enable dma with hdparm later if I wanted (which of course made
> the ide driver rather upset when it tried to then use the non existant
> dma lines).
>
> --
> Len Sorensen
>

Thanks Lens for the suggestion!

Unfortunately this option doesn't work either. When I pass the "nodma"
paramater to the kernel, it boots with DMA disabled (like it should),
but doesn't allow DMA to be enabled anymore with hdparm.

2007-10-29 21:46:00

by Lennart Sorensen

[permalink] [raw]
Subject: Re: CONFIG_IDEDMA_AUTO & 2.4.32 & hdparm -d1

On Mon, Oct 29, 2007 at 09:52:35PM +0100, Wijnand Rietman wrote:
> Thanks Lens for the suggestion!
>
> Unfortunately this option doesn't work either. When I pass the "nodma"
> paramater to the kernel, it boots with DMA disabled (like it should),
> but doesn't allow DMA to be enabled anymore with hdparm.

Hmm, I was pretty sure I had the ability to turn it on after the fact
before. Perhaps I was wrong. That would be silly. There has to be
some option to do what you want.

--
Len Sorensen

2007-10-30 05:33:22

by Willy Tarreau

[permalink] [raw]
Subject: Re: CONFIG_IDEDMA_AUTO & 2.4.32 & hdparm -d1

On Mon, Oct 29, 2007 at 05:45:52PM -0400, Lennart Sorensen wrote:
> On Mon, Oct 29, 2007 at 09:52:35PM +0100, Wijnand Rietman wrote:
> > Thanks Lens for the suggestion!
> >
> > Unfortunately this option doesn't work either. When I pass the "nodma"
> > paramater to the kernel, it boots with DMA disabled (like it should),
> > but doesn't allow DMA to be enabled anymore with hdparm.
>
> Hmm, I was pretty sure I had the ability to turn it on after the fact
> before. Perhaps I was wrong. That would be silly. There has to be
> some option to do what you want.

I too had to completely disable the config option with some CF which
caused long timeouts at boot time. I don't remember having been able
to re-enable anything afterwards (including other hard disks).

Willy