linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* socfpga: mmc problems
@ 2013-07-03 15:01 Jack Mitchell
  2013-07-03 15:09 ` Dinh Nguyen
  0 siblings, 1 reply; 5+ messages in thread
From: Jack Mitchell @ 2013-07-03 15:01 UTC (permalink / raw)
  To: linux-arm-kernel

Having received one of the new Arrow SoCkit boards at a recent training 
day I set about seeing how far mainline was in successfully booting this 
board.

As I wanted to boot from mmc, I first checked out linux-next [1] in 
order to get the newly merged mmc driver, I then applied the device-tree 
enablement series [2] on top before finally attempting to boot. I then 
found that the standard socfpga_defconfig didn't enable the MMC drivers, 
which I also did (should this be part of the socfpga_defconfig...?).

However, the boot hangs at:

Synopsys Designware Multimedia Card Interface Driver
dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host 
data width, 1024 deep fifo

To fix this I checked out the diff between the Altera vendor mmc driver 
and the mainline driver and found that if I added this small change:


   if (of_property_read_u32(dev->of_node, "pwr-en", &pwr_en)) {
     dev_info(dev, "couldn't determine pwr-en, assuming pwr-en = 0\n");
     pwr_en = 0;
   }

   /* Set PWREN bit */
   mci_writel(host, PWREN, pwr_en);

In the dw_mci_socfpga_priv_init function, the board would boot.

Synopsys Designware Multimedia Card Interface Driver
dwmmc_socfpga ff704000.dwmmc0: couldn't determine pwr-en, assuming 
pwr-en = 0
dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host 
data width, 1024 deep fifo
mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz, 
actual 400000HZ div = 125)
dwmmc_socfpga ff704000.dwmmc0: 1 slots initialized
dwmmc_socfpga ff704000.dwmmc0: Version ID is 240a
.....
.....
.....


Has this been overlooked, or are there some other changes elsewhere that 
I haven't yet come across which addresses this?

Cheers,

[1] fa1383200d289afdff2f5678eb89483daa537465
[2] http://comments.gmane.org/gmane.linux.ports.arm.kernel/243529

-- 

   Jack Mitchell (jack at embed.me.uk)
   Embedded Systems Engineer
   http://www.embed.me.uk

--

^ permalink raw reply	[flat|nested] 5+ messages in thread

* socfpga: mmc problems
  2013-07-03 15:01 socfpga: mmc problems Jack Mitchell
@ 2013-07-03 15:09 ` Dinh Nguyen
  2013-07-04  8:31   ` Jack Mitchell
  0 siblings, 1 reply; 5+ messages in thread
From: Dinh Nguyen @ 2013-07-03 15:09 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Jack,

On Wed, 2013-07-03 at 16:01 +0100, Jack Mitchell wrote:
> Having received one of the new Arrow SoCkit boards at a recent training 
> day I set about seeing how far mainline was in successfully booting this 
> board.
> 
> As I wanted to boot from mmc, I first checked out linux-next [1] in 
> order to get the newly merged mmc driver, I then applied the device-tree 
> enablement series [2] on top before finally attempting to boot. I then 
> found that the standard socfpga_defconfig didn't enable the MMC drivers, 
> which I also did (should this be part of the socfpga_defconfig...?).

I was going to update this when I enable ethernet as well to avoid less
churn on the defconfig.

> 
> However, the boot hangs at:
> 
> Synopsys Designware Multimedia Card Interface Driver
> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host 
> data width, 1024 deep fifo
> 
> To fix this I checked out the diff between the Altera vendor mmc driver 
> and the mainline driver and found that if I added this small change:
> 
> 
>    if (of_property_read_u32(dev->of_node, "pwr-en", &pwr_en)) {
>      dev_info(dev, "couldn't determine pwr-en, assuming pwr-en = 0\n");
>      pwr_en = 0;
>    }
> 
>    /* Set PWREN bit */
>    mci_writel(host, PWREN, pwr_en);

I tested this on my devkit, which was not made by Arrow, but is _almost_
the same. I'll try to see if I can get my hands on an Arrow board to
reproduce.

> 
> In the dw_mci_socfpga_priv_init function, the board would boot.
> 
> Synopsys Designware Multimedia Card Interface Driver
> dwmmc_socfpga ff704000.dwmmc0: couldn't determine pwr-en, assuming 
> pwr-en = 0
> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host 
> data width, 1024 deep fifo
> mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz, 
> actual 400000HZ div = 125)
> dwmmc_socfpga ff704000.dwmmc0: 1 slots initialized
> dwmmc_socfpga ff704000.dwmmc0: Version ID is 240a
> .....
> .....
> .....
> 
> 
> Has this been overlooked, or are there some other changes elsewhere that 
> I haven't yet come across which addresses this?

I'm not aware of any other changes.

Dinh
> 
> Cheers,
> 
> [1] fa1383200d289afdff2f5678eb89483daa537465
> [2] http://comments.gmane.org/gmane.linux.ports.arm.kernel/243529
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* socfpga: mmc problems
  2013-07-03 15:09 ` Dinh Nguyen
@ 2013-07-04  8:31   ` Jack Mitchell
  2013-07-08 15:22     ` Dinh Nguyen
  0 siblings, 1 reply; 5+ messages in thread
From: Jack Mitchell @ 2013-07-04  8:31 UTC (permalink / raw)
  To: linux-arm-kernel

Morning Dinh,

On 03/07/13 16:09, Dinh Nguyen wrote:
> Hi Jack,
>
> On Wed, 2013-07-03 at 16:01 +0100, Jack Mitchell wrote:
>> Having received one of the new Arrow SoCkit boards at a recent training
>> day I set about seeing how far mainline was in successfully booting this
>> board.
>>
>> As I wanted to boot from mmc, I first checked out linux-next [1] in
>> order to get the newly merged mmc driver, I then applied the device-tree
>> enablement series [2] on top before finally attempting to boot. I then
>> found that the standard socfpga_defconfig didn't enable the MMC drivers,
>> which I also did (should this be part of the socfpga_defconfig...?).
>
> I was going to update this when I enable ethernet as well to avoid less
> churn on the defconfig.

That's great!

>
>>
>> However, the boot hangs at:
>>
>> Synopsys Designware Multimedia Card Interface Driver
>> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
>> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host
>> data width, 1024 deep fifo
>>
>> To fix this I checked out the diff between the Altera vendor mmc driver
>> and the mainline driver and found that if I added this small change:
>>
>>
>>     if (of_property_read_u32(dev->of_node, "pwr-en", &pwr_en)) {
>>       dev_info(dev, "couldn't determine pwr-en, assuming pwr-en = 0\n");
>>       pwr_en = 0;
>>     }
>>
>>     /* Set PWREN bit */
>>     mci_writel(host, PWREN, pwr_en);
>
> I tested this on my devkit, which was not made by Arrow, but is _almost_
> the same. I'll try to see if I can get my hands on an Arrow board to
> reproduce.

Now, I think I made a _slight_ mistake, in that I accidentally copied 
the Altera vendor kernel onto the sdcard instead of the linux-next 
kernel. Re-testing this morning with a fresh mind, I checked the config 
again and now I find the Arrow board still won't boot from MMC, even 
with the above change, with the code hanging at the same place.

I know you don't have an Arrow board, but if you have a tree which I 
could pull from with your amalgamated changes; that would rule out me 
missing any patches and it actually being a board problem. I can't seem 
to see if the V8 device tree patches were pulled into anyones tree, 
otherwise I would just wait till they appeared in 3.11-rc1...?

Sorry for the confusion!

>
>>
>> In the dw_mci_socfpga_priv_init function, the board would boot.
>>
>> Synopsys Designware Multimedia Card Interface Driver
>> dwmmc_socfpga ff704000.dwmmc0: couldn't determine pwr-en, assuming
>> pwr-en = 0
>> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
>> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host
>> data width, 1024 deep fifo
>> mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz,
>> actual 400000HZ div = 125)
>> dwmmc_socfpga ff704000.dwmmc0: 1 slots initialized
>> dwmmc_socfpga ff704000.dwmmc0: Version ID is 240a
>> .....
>> .....
>> .....
>>
>>
>> Has this been overlooked, or are there some other changes elsewhere that
>> I haven't yet come across which addresses this?
>
> I'm not aware of any other changes.
>
> Dinh
>>
>> Cheers,
>>
>> [1] fa1383200d289afdff2f5678eb89483daa537465
>> [2] http://comments.gmane.org/gmane.linux.ports.arm.kernel/243529
>>
>
>
>


-- 

   Jack Mitchell (jack at embed.me.uk)
   Embedded Systems Engineer
   http://www.embed.me.uk

--

^ permalink raw reply	[flat|nested] 5+ messages in thread

* socfpga: mmc problems
  2013-07-04  8:31   ` Jack Mitchell
@ 2013-07-08 15:22     ` Dinh Nguyen
  2013-07-08 16:00       ` Jack Mitchell
  0 siblings, 1 reply; 5+ messages in thread
From: Dinh Nguyen @ 2013-07-08 15:22 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Jack,

On Thu, 2013-07-04 at 09:31 +0100, Jack Mitchell wrote:
> Morning Dinh,
> 
> On 03/07/13 16:09, Dinh Nguyen wrote:
> > Hi Jack,
> >
> > On Wed, 2013-07-03 at 16:01 +0100, Jack Mitchell wrote:
> >> Having received one of the new Arrow SoCkit boards at a recent training
> >> day I set about seeing how far mainline was in successfully booting this
> >> board.
> >>
> >> As I wanted to boot from mmc, I first checked out linux-next [1] in
> >> order to get the newly merged mmc driver, I then applied the device-tree
> >> enablement series [2] on top before finally attempting to boot. I then
> >> found that the standard socfpga_defconfig didn't enable the MMC drivers,
> >> which I also did (should this be part of the socfpga_defconfig...?).
> >
> > I was going to update this when I enable ethernet as well to avoid less
> > churn on the defconfig.
> 
> That's great!
> 
> >
> >>
> >> However, the boot hangs at:
> >>
> >> Synopsys Designware Multimedia Card Interface Driver
> >> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
> >> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host
> >> data width, 1024 deep fifo
> >>
> >> To fix this I checked out the diff between the Altera vendor mmc driver
> >> and the mainline driver and found that if I added this small change:
> >>
> >>
> >>     if (of_property_read_u32(dev->of_node, "pwr-en", &pwr_en)) {
> >>       dev_info(dev, "couldn't determine pwr-en, assuming pwr-en = 0\n");
> >>       pwr_en = 0;
> >>     }
> >>
> >>     /* Set PWREN bit */
> >>     mci_writel(host, PWREN, pwr_en);
> >
> > I tested this on my devkit, which was not made by Arrow, but is _almost_
> > the same. I'll try to see if I can get my hands on an Arrow board to
> > reproduce.
> 
> Now, I think I made a _slight_ mistake, in that I accidentally copied 
> the Altera vendor kernel onto the sdcard instead of the linux-next 
> kernel. Re-testing this morning with a fresh mind, I checked the config 
> again and now I find the Arrow board still won't boot from MMC, even 
> with the above change, with the code hanging at the same place.
> 
> I know you don't have an Arrow board, but if you have a tree which I 
> could pull from with your amalgamated changes; that would rule out me 
> missing any patches and it actually being a board problem. I can't seem 
> to see if the V8 device tree patches were pulled into anyones tree, 
> otherwise I would just wait till they appeared in 3.11-rc1...?

Unfortunately, the device tree bindings for the SD/MMC did not make it
into the arm-soc tree for 3.11, only the sd/mmc platform driver. Will
try for 3.12.

I'm sure you have seen git.rocketboards.org?

Dinh
> 
> Sorry for the confusion!
> 
> >
> >>
> >> In the dw_mci_socfpga_priv_init function, the board would boot.
> >>
> >> Synopsys Designware Multimedia Card Interface Driver
> >> dwmmc_socfpga ff704000.dwmmc0: couldn't determine pwr-en, assuming
> >> pwr-en = 0
> >> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
> >> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host
> >> data width, 1024 deep fifo
> >> mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz,
> >> actual 400000HZ div = 125)
> >> dwmmc_socfpga ff704000.dwmmc0: 1 slots initialized
> >> dwmmc_socfpga ff704000.dwmmc0: Version ID is 240a
> >> .....
> >> .....
> >> .....
> >>
> >>
> >> Has this been overlooked, or are there some other changes elsewhere that
> >> I haven't yet come across which addresses this?
> >
> > I'm not aware of any other changes.
> >
> > Dinh
> >>
> >> Cheers,
> >>
> >> [1] fa1383200d289afdff2f5678eb89483daa537465
> >> [2] http://comments.gmane.org/gmane.linux.ports.arm.kernel/243529
> >>
> >
> >
> >
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* socfpga: mmc problems
  2013-07-08 15:22     ` Dinh Nguyen
@ 2013-07-08 16:00       ` Jack Mitchell
  0 siblings, 0 replies; 5+ messages in thread
From: Jack Mitchell @ 2013-07-08 16:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Dinh,

On 08/07/13 16:22, Dinh Nguyen wrote:
> Hi Jack,
>
> On Thu, 2013-07-04 at 09:31 +0100, Jack Mitchell wrote:
>> Morning Dinh,
>>
>> On 03/07/13 16:09, Dinh Nguyen wrote:
>>> Hi Jack,
>>>
>>> On Wed, 2013-07-03 at 16:01 +0100, Jack Mitchell wrote:
>>>> Having received one of the new Arrow SoCkit boards at a recent training
>>>> day I set about seeing how far mainline was in successfully booting this
>>>> board.
>>>>
>>>> As I wanted to boot from mmc, I first checked out linux-next [1] in
>>>> order to get the newly merged mmc driver, I then applied the device-tree
>>>> enablement series [2] on top before finally attempting to boot. I then
>>>> found that the standard socfpga_defconfig didn't enable the MMC drivers,
>>>> which I also did (should this be part of the socfpga_defconfig...?).
>>>
>>> I was going to update this when I enable ethernet as well to avoid less
>>> churn on the defconfig.
>>
>> That's great!
>>
>>>
>>>>
>>>> However, the boot hangs at:
>>>>
>>>> Synopsys Designware Multimedia Card Interface Driver
>>>> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
>>>> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host
>>>> data width, 1024 deep fifo
>>>>
>>>> To fix this I checked out the diff between the Altera vendor mmc driver
>>>> and the mainline driver and found that if I added this small change:
>>>>
>>>>
>>>>      if (of_property_read_u32(dev->of_node, "pwr-en", &pwr_en)) {
>>>>        dev_info(dev, "couldn't determine pwr-en, assuming pwr-en = 0\n");
>>>>        pwr_en = 0;
>>>>      }
>>>>
>>>>      /* Set PWREN bit */
>>>>      mci_writel(host, PWREN, pwr_en);
>>>
>>> I tested this on my devkit, which was not made by Arrow, but is _almost_
>>> the same. I'll try to see if I can get my hands on an Arrow board to
>>> reproduce.
>>
>> Now, I think I made a _slight_ mistake, in that I accidentally copied
>> the Altera vendor kernel onto the sdcard instead of the linux-next
>> kernel. Re-testing this morning with a fresh mind, I checked the config
>> again and now I find the Arrow board still won't boot from MMC, even
>> with the above change, with the code hanging at the same place.
>>
>> I know you don't have an Arrow board, but if you have a tree which I
>> could pull from with your amalgamated changes; that would rule out me
>> missing any patches and it actually being a board problem. I can't seem
>> to see if the V8 device tree patches were pulled into anyones tree,
>> otherwise I would just wait till they appeared in 3.11-rc1...?
>
> Unfortunately, the device tree bindings for the SD/MMC did not make it
> into the arm-soc tree for 3.11, only the sd/mmc platform driver. Will
> try for 3.12.
>
> I'm sure you have seen git.rocketboards.org?

Yes, I have the 3.9 rocketboards kernel compiling and working so I'm not 
stuck; just interested in keeping up to date with how mainline is 
progressing and helping with testing (and nit picking!).

Cheers,
Jack.

>
> Dinh
>>
>> Sorry for the confusion!
>>
>>>
>>>>
>>>> In the dw_mci_socfpga_priv_init function, the board would boot.
>>>>
>>>> Synopsys Designware Multimedia Card Interface Driver
>>>> dwmmc_socfpga ff704000.dwmmc0: couldn't determine pwr-en, assuming
>>>> pwr-en = 0
>>>> dwmmc_socfpga ff704000.dwmmc0: Using internal DMA controller.
>>>> dwmmc_socfpga ff704000.dwmmc0: DW MMC controller at irq 171, 32 bit host
>>>> data width, 1024 deep fifo
>>>> mmc_host mmc0: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz,
>>>> actual 400000HZ div = 125)
>>>> dwmmc_socfpga ff704000.dwmmc0: 1 slots initialized
>>>> dwmmc_socfpga ff704000.dwmmc0: Version ID is 240a
>>>> .....
>>>> .....
>>>> .....
>>>>
>>>>
>>>> Has this been overlooked, or are there some other changes elsewhere that
>>>> I haven't yet come across which addresses this?
>>>
>>> I'm not aware of any other changes.
>>>
>>> Dinh
>>>>
>>>> Cheers,
>>>>
>>>> [1] fa1383200d289afdff2f5678eb89483daa537465
>>>> [2] http://comments.gmane.org/gmane.linux.ports.arm.kernel/243529
>>>>
>>>
>>>
>>>
>>
>>
>
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>


-- 

   Jack Mitchell (jack at embed.me.uk)
   Embedded Systems Engineer
   http://www.embed.me.uk

--

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-07-08 16:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-03 15:01 socfpga: mmc problems Jack Mitchell
2013-07-03 15:09 ` Dinh Nguyen
2013-07-04  8:31   ` Jack Mitchell
2013-07-08 15:22     ` Dinh Nguyen
2013-07-08 16:00       ` Jack Mitchell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).