2012-10-02 22:20:07

by Tim Bird

[permalink] [raw]
Subject: Problem with mmc DMA on panda board in 3.6

This is an early report - I'm just checking if anyone else has seen this.

With Linux version v3.6, my PandaBoard (OMAP-based) no longer boots. The
system appears to fail to initialize the mmc controller.

The kernel log message of interest appears to be this:
[ 1.690002] omap_hsmmc omap_hsmmc.0: unable to obtain RX DMA engine channel 6

I can supply full kernel log messages and my .config if needed.

I bisected the code and arrived at the following commit:
-------
commit 26b88520b80695a6fa5fd95b5d97c03f4daf87e0
Author: Russell King <[email protected]>
Date: Fri Apr 13 12:27:37 2012 +0100

mmc: omap_hsmmc: remove private DMA API implementation

Remove the private DMA API implementation from omap_hsmmc, making it
use entirely the DMA engine API.

Tested-by: Tony Lindgren <[email protected]>
Tested-by: Venkatraman S <[email protected]>
Signed-off-by: Russell King <[email protected]>
-------
The board works up until this commit.
After this commit, the board hangs during boot after the message:
[ 1.852508] Waiting for root device /dev/mmcblk0p3...
(and some other USB and network messages, which I presume
are unrelated.)

My questions are these:
Has anyone else had problems with the PandaBoard (or other OMAP) on 3.6?
Are there any related CONFIG_ variables I could change to try alternatives?
What should I try next to debug this?

-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Workgroup of the Linux Foundation
Senior Staff Engineer, Sony Network Entertainment
=============================


2012-10-02 22:28:59

by Robert Nelson

[permalink] [raw]
Subject: Re: Problem with mmc DMA on panda board in 3.6

On Tue, Oct 2, 2012 at 5:24 PM, Tim Bird <[email protected]> wrote:
> This is an early report - I'm just checking if anyone else has seen this.
>
> With Linux version v3.6, my PandaBoard (OMAP-based) no longer boots. The
> system appears to fail to initialize the mmc controller.
>
> The kernel log message of interest appears to be this:
> [ 1.690002] omap_hsmmc omap_hsmmc.0: unable to obtain RX DMA engine channel 6
>
> I can supply full kernel log messages and my .config if needed.
>
> I bisected the code and arrived at the following commit:
> -------
> commit 26b88520b80695a6fa5fd95b5d97c03f4daf87e0
> Author: Russell King <[email protected]>
> Date: Fri Apr 13 12:27:37 2012 +0100
>
> mmc: omap_hsmmc: remove private DMA API implementation
>
> Remove the private DMA API implementation from omap_hsmmc, making it
> use entirely the DMA engine API.
>
> Tested-by: Tony Lindgren <[email protected]>
> Tested-by: Venkatraman S <[email protected]>
> Signed-off-by: Russell King <[email protected]>
> -------
> The board works up until this commit.
> After this commit, the board hangs during boot after the message:
> [ 1.852508] Waiting for root device /dev/mmcblk0p3...
> (and some other USB and network messages, which I presume
> are unrelated.)
>
> My questions are these:
> Has anyone else had problems with the PandaBoard (or other OMAP) on 3.6?
> Are there any related CONFIG_ variables I could change to try alternatives?
> What should I try next to debug this?

Check your config, to see if these are enabled:

CONFIG_DMADEVICES=y
CONFIG_DMA_OMAP=y

Regards,

--
Robert Nelson
http://www.rcn-ee.com/

2012-10-02 22:59:54

by Tim Bird

[permalink] [raw]
Subject: Re: Problem with mmc DMA on panda board in 3.6

On 10/02/2012 03:28 PM, Robert Nelson wrote:
> On Tue, Oct 2, 2012 at 5:24 PM, Tim Bird <[email protected]> wrote:
>> This is an early report - I'm just checking if anyone else has seen this.
>>
>> With Linux version v3.6, my PandaBoard (OMAP-based) no longer boots. The
>> system appears to fail to initialize the mmc controller.
>>
>> The kernel log message of interest appears to be this:
>> [ 1.690002] omap_hsmmc omap_hsmmc.0: unable to obtain RX DMA engine channel 6
>>
>> I can supply full kernel log messages and my .config if needed.
>>
>> I bisected the code and arrived at the following commit:
>> -------
>> commit 26b88520b80695a6fa5fd95b5d97c03f4daf87e0
>> Author: Russell King <[email protected]>
>> Date: Fri Apr 13 12:27:37 2012 +0100
>>
>> mmc: omap_hsmmc: remove private DMA API implementation
>>
>> Remove the private DMA API implementation from omap_hsmmc, making it
>> use entirely the DMA engine API.
>>
>> Tested-by: Tony Lindgren <[email protected]>
>> Tested-by: Venkatraman S <[email protected]>
>> Signed-off-by: Russell King <[email protected]>
>> -------
>> The board works up until this commit.
>> After this commit, the board hangs during boot after the message:
>> [ 1.852508] Waiting for root device /dev/mmcblk0p3...
>> (and some other USB and network messages, which I presume
>> are unrelated.)
>>
>> My questions are these:
>> Has anyone else had problems with the PandaBoard (or other OMAP) on 3.6?
>> Are there any related CONFIG_ variables I could change to try alternatives?
>> What should I try next to debug this?
>
> Check your config, to see if these are enabled:
>
> CONFIG_DMADEVICES=y
> CONFIG_DMA_OMAP=y

They were not. After enabling them, things work as expected.

Thanks very much!! :-)

I've been doing the following on a mainline kernel to generate the
.config for my panda board:

make omap2plus_defconfig
ttc set_config CONFIG_USB_EHCI_HCD=y CONFIG_MFD_OMAP_USB_HOST=y CONFIG_USB_EHCI_ROOT_HUB_TT=N CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_HCD_OMAP=y CONFIG_USB_EHCI_MV=n
ttc set_config CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_SISUSBVGA=n
make oldconfig

I've kind of lost track of the preferred method of doing board-specific configurations,
since the big defconfig purge of 2011. I think I need to go back to the drawing board
on my automatic config-setting.

In any event, thanks again.
-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Workgroup of the Linux Foundation
Senior Staff Engineer, Sony Network Entertainment
=============================