2013-03-07 04:16:13

by Matt Porter

[permalink] [raw]
Subject: [PATCH 0/2] AM33xx mmc support

This series enable MMC support on AM33xx platforms. Support for
platforms incorporating the EDMA DMAC is added using the
dma_get_slave_sg_limits() api. AM33xx DTS supported is added for
Beaglebone, AM335x-EVM, and AM335x-EVMSK.

These patches were split out from the v5 version of the AM33xx
DMA series and split from the generic DT/dmanegine omap_hsmmc
changes.

The series has the following dependencies:
- edma private api error check fix
http://www.spinics.net/lists/arm-kernel/msg227886.html
- DMA Engine support for AM33XX
http://www.spinics.net/lists/linux-omap/msg87634.html
- omap_hsmmc DT DMA Client support
http://www.spinics.net/lists/linux-omap/msg87623.html
- dmaengine: add slave sg transfer limits api
https://lkml.org/lkml/2013/3/6/462

Matt Porter (2):
mmc: omap_hsmmc: set max_segs based on dma engine limits
ARM: dts: add AM33XX MMC support

arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
arch/arm/boot/dts/am33xx.dtsi | 28 ++++++++++++++++++++++++++++
drivers/mmc/host/omap_hsmmc.c | 8 ++++++++
5 files changed, 57 insertions(+)

--
1.7.9.5


2013-03-07 04:16:16

by Matt Porter

[permalink] [raw]
Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support

Adds AM33XX MMC support for am335x-bone, am335x-evm, and
am335x-evmsk.

Signed-off-by: Matt Porter <[email protected]>
Acked-by: Tony Lindgren <[email protected]>
---
arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
arch/arm/boot/dts/am33xx.dtsi | 28 ++++++++++++++++++++++++++++
4 files changed, 49 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts
index 11b240c..a154ce0 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -120,6 +120,8 @@
};

ldo3_reg: regulator@5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
regulator-always-on;
};

@@ -136,3 +138,8 @@
&cpsw_emac1 {
phy_id = <&davinci_mdio>, <1>;
};
+
+&mmc1 {
+ status = "okay";
+ vmmc-supply = <&ldo3_reg>;
+};
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index d649644..2907da6 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -232,6 +232,8 @@
};

vmmc_reg: regulator@12 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
@@ -244,3 +246,8 @@
&cpsw_emac1 {
phy_id = <&davinci_mdio>, <1>;
};
+
+&mmc1 {
+ status = "okay";
+ vmmc-supply = <&vmmc_reg>;
+};
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index f5a6162..f050c46 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -244,7 +244,14 @@
};

vmmc_reg: regulator@12 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};
+
+&mmc1 {
+ status = "okay";
+ vmmc-supply = <&vmmc_reg>;
+};
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index c3c781a..e029eea 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -234,6 +234,34 @@
status = "disabled";
};

+ mmc1: mmc@48060000 {
+ compatible = "ti,omap3-hsmmc";
+ ti,hwmods = "mmc1";
+ ti,dual-volt;
+ ti,needs-special-reset;
+ dmas = <&edma 24
+ &edma 25>;
+ dma-names = "tx", "rx";
+ status = "disabled";
+ };
+
+ mmc2: mmc@481d8000 {
+ compatible = "ti,omap3-hsmmc";
+ ti,hwmods = "mmc2";
+ ti,needs-special-reset;
+ dmas = <&edma 2
+ &edma 3>;
+ dma-names = "tx", "rx";
+ status = "disabled";
+ };
+
+ mmc3: mmc@47810000 {
+ compatible = "ti,omap3-hsmmc";
+ ti,hwmods = "mmc3";
+ ti,needs-special-reset;
+ status = "disabled";
+ };
+
wdt2: wdt@44e35000 {
compatible = "ti,omap3-wdt";
ti,hwmods = "wd_timer2";
--
1.7.9.5

2013-03-07 04:16:34

by Matt Porter

[permalink] [raw]
Subject: [PATCH 1/2] mmc: omap_hsmmc: set max_segs based on dma engine limits

The EDMA DMAC has a hardware limitation that prevents supporting
scatter gather lists with any number of segments. The DMA Engine
API reports the maximum number of segments a channel can support
via the optional dma_get_slave_sg_limits() API. If the max_nr_segs
limit is present, the value is used to configure mmc->max_segs
appropriately.

Signed-off-by: Matt Porter <[email protected]>
Acked-by: Tony Lindgren <[email protected]>
---
drivers/mmc/host/omap_hsmmc.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index e79b12d..f74d2ef 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1769,6 +1769,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
const struct of_device_id *match;
dma_cap_mask_t mask;
unsigned tx_req, rx_req;
+ struct dma_slave_sg_limits *dma_sg_limits;
struct pinctrl *pinctrl;

match = of_match_device(of_match_ptr(omap_mmc_of_match), &pdev->dev);
@@ -1935,6 +1936,13 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
goto err_irq;
}

+ /* Some DMA Engines only handle a limited number of SG segments */
+ dma_sg_limits = dma_get_slave_sg_limits(host->rx_chan,
+ DMA_SLAVE_BUSWIDTH_4_BYTES,
+ mmc->max_blk_size / 4);
+ if (dma_sg_limits && dma_sg_limits->max_seg_nr)
+ mmc->max_segs = dma_sg_limits->max_seg_nr;
+
/* Request IRQ for MMC operations */
ret = request_irq(host->irq, omap_hsmmc_irq, 0,
mmc_hostname(mmc), host);
--
1.7.9.5

2013-03-07 05:29:52

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support

> -----Original Message-----
> From: [email protected] [mailto:linux-omap-
> [email protected]] On Behalf Of Porter, Matt
> Sent: Thursday, March 07, 2013 9:47 AM
> To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> Lindgren; Russell King
> Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP List; Linux
> Kernel Mailing List; Linux MMC List
> Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> am335x-evmsk.
>
> Signed-off-by: Matt Porter <[email protected]>
> Acked-by: Tony Lindgren <[email protected]>
> ---
> arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
> arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
> arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
> arch/arm/boot/dts/am33xx.dtsi | 28 ++++++++++++++++++++++++++++
> 4 files changed, 49 insertions(+)
>
> diff --git a/arch/arm/boot/dts/am335x-bone.dts
> b/arch/arm/boot/dts/am335x-bone.dts
> index 11b240c..a154ce0 100644
> --- a/arch/arm/boot/dts/am335x-bone.dts
> +++ b/arch/arm/boot/dts/am335x-bone.dts
> @@ -120,6 +120,8 @@
> };
>
> ldo3_reg: regulator@5 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> regulator-always-on;
> };
>
> @@ -136,3 +138,8 @@
> &cpsw_emac1 {
> phy_id = <&davinci_mdio>, <1>;
> };
> +
> +&mmc1 {
> + status = "okay";
> + vmmc-supply = <&ldo3_reg>;
> +};
> diff --git a/arch/arm/boot/dts/am335x-evm.dts
> b/arch/arm/boot/dts/am335x-evm.dts
> index d649644..2907da6 100644
> --- a/arch/arm/boot/dts/am335x-evm.dts
> +++ b/arch/arm/boot/dts/am335x-evm.dts
> @@ -232,6 +232,8 @@
> };
>
> vmmc_reg: regulator@12 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> regulator-always-on;
> };
> };
> @@ -244,3 +246,8 @@
> &cpsw_emac1 {
> phy_id = <&davinci_mdio>, <1>;
> };
> +
> +&mmc1 {
> + status = "okay";
> + vmmc-supply = <&vmmc_reg>;
> +};
> diff --git a/arch/arm/boot/dts/am335x-evmsk.dts
> b/arch/arm/boot/dts/am335x-evmsk.dts
> index f5a6162..f050c46 100644
> --- a/arch/arm/boot/dts/am335x-evmsk.dts
> +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> @@ -244,7 +244,14 @@
> };
>
> vmmc_reg: regulator@12 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> regulator-always-on;
> };
> };
> };
> +
> +&mmc1 {
> + status = "okay";
> + vmmc-supply = <&vmmc_reg>;
> +};
> diff --git a/arch/arm/boot/dts/am33xx.dtsi
> b/arch/arm/boot/dts/am33xx.dtsi
> index c3c781a..e029eea 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -234,6 +234,34 @@
> status = "disabled";
> };
>
> + mmc1: mmc@48060000 {
> + compatible = "ti,omap3-hsmmc";
> + ti,hwmods = "mmc1";
> + ti,dual-volt;
> + ti,needs-special-reset;
> + dmas = <&edma 24
> + &edma 25>;
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + mmc2: mmc@481d8000 {
> + compatible = "ti,omap3-hsmmc";
> + ti,hwmods = "mmc2";
> + ti,needs-special-reset;
> + dmas = <&edma 2
> + &edma 3>;
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + mmc3: mmc@47810000 {
> + compatible = "ti,omap3-hsmmc";
> + ti,hwmods = "mmc3";
> + ti,needs-special-reset;
> + status = "disabled";
> + };
Any specific reason why you did not add edma entry here as well?

Also, I wonder why "interrupt" property is not coming here, I understand
That hwmod is filling the gap here; but I would still recommend you to complete
The DT node, as we only support DT boot.

I will test the whole patch series today and update you.

Thanks,
Vaibhav


> +
> wdt2: wdt@44e35000 {
> compatible = "ti,omap3-wdt";
> ti,hwmods = "wd_timer2";
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap"
> in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2013-03-07 14:12:05

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > -----Original Message-----
> > From: [email protected] [mailto:linux-omap-
> > [email protected]] On Behalf Of Porter, Matt
> > Sent: Thursday, March 07, 2013 9:47 AM
> > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > Lindgren; Russell King
> > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP List; Linux
> > Kernel Mailing List; Linux MMC List
> > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> >
> > Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> > am335x-evmsk.
> >
> > Signed-off-by: Matt Porter <[email protected]>
> > Acked-by: Tony Lindgren <[email protected]>
> > ---
> > arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
> > arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
> > arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
> > arch/arm/boot/dts/am33xx.dtsi | 28 ++++++++++++++++++++++++++++
> > 4 files changed, 49 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/am335x-bone.dts
> > b/arch/arm/boot/dts/am335x-bone.dts
> > index 11b240c..a154ce0 100644
> > --- a/arch/arm/boot/dts/am335x-bone.dts
> > +++ b/arch/arm/boot/dts/am335x-bone.dts
> > @@ -120,6 +120,8 @@
> > };
> >
> > ldo3_reg: regulator@5 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > regulator-always-on;
> > };
> >
> > @@ -136,3 +138,8 @@
> > &cpsw_emac1 {
> > phy_id = <&davinci_mdio>, <1>;
> > };
> > +
> > +&mmc1 {
> > + status = "okay";
> > + vmmc-supply = <&ldo3_reg>;
> > +};
> > diff --git a/arch/arm/boot/dts/am335x-evm.dts
> > b/arch/arm/boot/dts/am335x-evm.dts
> > index d649644..2907da6 100644
> > --- a/arch/arm/boot/dts/am335x-evm.dts
> > +++ b/arch/arm/boot/dts/am335x-evm.dts
> > @@ -232,6 +232,8 @@
> > };
> >
> > vmmc_reg: regulator@12 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > regulator-always-on;
> > };
> > };
> > @@ -244,3 +246,8 @@
> > &cpsw_emac1 {
> > phy_id = <&davinci_mdio>, <1>;
> > };
> > +
> > +&mmc1 {
> > + status = "okay";
> > + vmmc-supply = <&vmmc_reg>;
> > +};
> > diff --git a/arch/arm/boot/dts/am335x-evmsk.dts
> > b/arch/arm/boot/dts/am335x-evmsk.dts
> > index f5a6162..f050c46 100644
> > --- a/arch/arm/boot/dts/am335x-evmsk.dts
> > +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> > @@ -244,7 +244,14 @@
> > };
> >
> > vmmc_reg: regulator@12 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > regulator-always-on;
> > };
> > };
> > };
> > +
> > +&mmc1 {
> > + status = "okay";
> > + vmmc-supply = <&vmmc_reg>;
> > +};
> > diff --git a/arch/arm/boot/dts/am33xx.dtsi
> > b/arch/arm/boot/dts/am33xx.dtsi
> > index c3c781a..e029eea 100644
> > --- a/arch/arm/boot/dts/am33xx.dtsi
> > +++ b/arch/arm/boot/dts/am33xx.dtsi
> > @@ -234,6 +234,34 @@
> > status = "disabled";
> > };
> >
> > + mmc1: mmc@48060000 {
> > + compatible = "ti,omap3-hsmmc";
> > + ti,hwmods = "mmc1";
> > + ti,dual-volt;
> > + ti,needs-special-reset;
> > + dmas = <&edma 24
> > + &edma 25>;
> > + dma-names = "tx", "rx";
> > + status = "disabled";
> > + };
> > +
> > + mmc2: mmc@481d8000 {
> > + compatible = "ti,omap3-hsmmc";
> > + ti,hwmods = "mmc2";
> > + ti,needs-special-reset;
> > + dmas = <&edma 2
> > + &edma 3>;
> > + dma-names = "tx", "rx";
> > + status = "disabled";
> > + };
> > +
> > + mmc3: mmc@47810000 {
> > + compatible = "ti,omap3-hsmmc";
> > + ti,hwmods = "mmc3";
> > + ti,needs-special-reset;
> > + status = "disabled";
> > + };
> Any specific reason why you did not add edma entry here as well?

Yes, I've answered this one before and I think this illustrates a need
for a comment in the .dtsi. mmc3 edma event are on the crossbar and so
the event that will be mapped is system-specific. Since Luca is still
working on DT support for WiLink, there's no way to show an example of
how this is used upstream as that's the only in-kernel user.

I have a test driver I've cited in the postings that shows how the
crossbar is configured via the board .dts. It doesn't belong in the
.dtsi, however, in this case. When WiLink DT support is ready we can
have an entry in the am335x-evmsk.dts that shows this case.

> Also, I wonder why "interrupt" property is not coming here, I understand
> That hwmod is filling the gap here; but I would still recommend you to complete
> The DT node, as we only support DT boot.

Yeah, I only added needed properties so as to not confuse people as to
where the interrupt resources are coming from. If you feel strongly
about this I don't have a problem with adding unused data in the dts.
I suppose this will help clear things to have a switch away from using
the hwmod data.

> I will test the whole patch series today and update you.

Thanks.

-Matt

2013-03-07 14:40:29

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support


> -----Original Message-----
> From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> Sent: Thursday, March 07, 2013 7:43 PM
> To: Hiremath, Vaibhav
> Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel List;
> Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > > -----Original Message-----
> > > From: [email protected] [mailto:linux-omap-
> > > [email protected]] On Behalf Of Porter, Matt
> > > Sent: Thursday, March 07, 2013 9:47 AM
> > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > Lindgren; Russell King
> > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP List;
> Linux
> > > Kernel Mailing List; Linux MMC List
> > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > >
> > > Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> > > am335x-evmsk.
> > >
> > > Signed-off-by: Matt Porter <[email protected]>
> > > Acked-by: Tony Lindgren <[email protected]>
> > > ---
> > > arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
> > > arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
> > > arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
> > > arch/arm/boot/dts/am33xx.dtsi | 28
> ++++++++++++++++++++++++++++
> > > 4 files changed, 49 insertions(+)
> > >
> > > diff --git a/arch/arm/boot/dts/am335x-bone.dts
> > > b/arch/arm/boot/dts/am335x-bone.dts
> > > index 11b240c..a154ce0 100644
> > > --- a/arch/arm/boot/dts/am335x-bone.dts
> > > +++ b/arch/arm/boot/dts/am335x-bone.dts
> > > @@ -120,6 +120,8 @@
> > > };
> > >
> > > ldo3_reg: regulator@5 {
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <3300000>;
> > > regulator-always-on;
> > > };
> > >
> > > @@ -136,3 +138,8 @@
> > > &cpsw_emac1 {
> > > phy_id = <&davinci_mdio>, <1>;
> > > };
> > > +
> > > +&mmc1 {
> > > + status = "okay";
> > > + vmmc-supply = <&ldo3_reg>;
> > > +};
> > > diff --git a/arch/arm/boot/dts/am335x-evm.dts
> > > b/arch/arm/boot/dts/am335x-evm.dts
> > > index d649644..2907da6 100644
> > > --- a/arch/arm/boot/dts/am335x-evm.dts
> > > +++ b/arch/arm/boot/dts/am335x-evm.dts
> > > @@ -232,6 +232,8 @@
> > > };
> > >
> > > vmmc_reg: regulator@12 {
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <3300000>;
> > > regulator-always-on;
> > > };
> > > };
> > > @@ -244,3 +246,8 @@
> > > &cpsw_emac1 {
> > > phy_id = <&davinci_mdio>, <1>;
> > > };
> > > +
> > > +&mmc1 {
> > > + status = "okay";
> > > + vmmc-supply = <&vmmc_reg>;
> > > +};
> > > diff --git a/arch/arm/boot/dts/am335x-evmsk.dts
> > > b/arch/arm/boot/dts/am335x-evmsk.dts
> > > index f5a6162..f050c46 100644
> > > --- a/arch/arm/boot/dts/am335x-evmsk.dts
> > > +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> > > @@ -244,7 +244,14 @@
> > > };
> > >
> > > vmmc_reg: regulator@12 {
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <3300000>;
> > > regulator-always-on;
> > > };
> > > };
> > > };
> > > +
> > > +&mmc1 {
> > > + status = "okay";
> > > + vmmc-supply = <&vmmc_reg>;
> > > +};
> > > diff --git a/arch/arm/boot/dts/am33xx.dtsi
> > > b/arch/arm/boot/dts/am33xx.dtsi
> > > index c3c781a..e029eea 100644
> > > --- a/arch/arm/boot/dts/am33xx.dtsi
> > > +++ b/arch/arm/boot/dts/am33xx.dtsi
> > > @@ -234,6 +234,34 @@
> > > status = "disabled";
> > > };
> > >
> > > + mmc1: mmc@48060000 {
> > > + compatible = "ti,omap3-hsmmc";
> > > + ti,hwmods = "mmc1";
> > > + ti,dual-volt;
> > > + ti,needs-special-reset;
> > > + dmas = <&edma 24
> > > + &edma 25>;
> > > + dma-names = "tx", "rx";
> > > + status = "disabled";
> > > + };
> > > +
> > > + mmc2: mmc@481d8000 {
> > > + compatible = "ti,omap3-hsmmc";
> > > + ti,hwmods = "mmc2";
> > > + ti,needs-special-reset;
> > > + dmas = <&edma 2
> > > + &edma 3>;
> > > + dma-names = "tx", "rx";
> > > + status = "disabled";
> > > + };
> > > +
> > > + mmc3: mmc@47810000 {
> > > + compatible = "ti,omap3-hsmmc";
> > > + ti,hwmods = "mmc3";
> > > + ti,needs-special-reset;
> > > + status = "disabled";
> > > + };
> > Any specific reason why you did not add edma entry here as well?
>
> Yes, I've answered this one before and I think this illustrates a need
> for a comment in the .dtsi. mmc3 edma event are on the crossbar and so
> the event that will be mapped is system-specific. Since Luca is still
> working on DT support for WiLink, there's no way to show an example of
> how this is used upstream as that's the only in-kernel user.
>
> I have a test driver I've cited in the postings that shows how the
> crossbar is configured via the board .dts. It doesn't belong in the
> .dtsi, however, in this case. When WiLink DT support is ready we can
> have an entry in the am335x-evmsk.dts that shows this case.
>
> > Also, I wonder why "interrupt" property is not coming here, I
> understand
> > That hwmod is filling the gap here; but I would still recommend you
> to complete
> > The DT node, as we only support DT boot.
>
> Yeah, I only added needed properties so as to not confuse people as to
> where the interrupt resources are coming from. If you feel strongly
> about this I don't have a problem with adding unused data in the dts.
> I suppose this will help clear things to have a switch away from using
> the hwmod data.

Its not true, if you specify interrupt property in the DTS file
It is being used. Please refer to the omap_device.c file. I am pasting
Comments from code for your reference -


389 /*
390 * Non-DT Boot:
391 * Here, pdev->num_resources = 0, and we should get all the
392 * resources from hwmod.
393 *
394 * DT Boot:
395 * OF framework will construct the resource structure (currently
396 * does for MEM & IRQ resource) and we should respect/use these
397 * resources, killing hwmod dependency.
398 * If pdev->num_resources > 0, we assume that MEM & IRQ resources
399 * have been allocated by OF layer already (through DTB).
400 * As preparation for the future we examine the OF provided resources
401 * to see if we have DMA resources provided already. In this case
402 * there is no need to update the resources for the device, we use the
403 * OF provided ones.
404 *
405 * TODO: Once DMA resource is available from OF layer, we should
406 * kill filling any resources from hwmod.
407 */


>
> > I will test the whole patch series today and update you.
>
I just booted up the EVM with all the patches you have submitted recently,
There are two issues I can see,

1. Stack dump from MMC driver.
This happens because you do not have "interrupt" property mentioned
In the dts file. I have added "interrupt" property and dump went away.

2. And MMC rootFS mount is __not__ working for me.

3. I get following error message -

[ 2.118207] omap_hsmmc mmc.3: unable to obtain RX DMA engine channel 25




I haven?t debugged it yet, just thought I should report it before
Proceeding further.


Boot Log:
======================================

U-Boot# mmc rescan 0
U-Boot# fatload mmc 0 82000000 uImage
reading uImage
4026992 bytes read in 441 ms (8.7 MiB/s)
U-Boot# fatload mmc 0 81000000 am335x-evm.dtb
reading am335x-evm.dtb
11371 bytes read in 10 ms (1.1 MiB/s)
U-Boot# run mmcargs
U-Boot# bootm 82000000 - 81000000
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4026928 Bytes = 3.8 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 81000000
Booting using the fdt blob at 0x81000000
Loading Kernel Image ... OK
OK
Using Device Tree in place at 81000000, end 81005c6a

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.9.0-rc1-00122-g106e3c6 (XXX@psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #2 SMP Thu Mar 7 16:57:39 IST 2013
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x EVM
[ 0.000000] cma: CMA: reserved 16 MiB at ae800000
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.0 (neon )
[ 0.000000] PERCPU: Embedded 9 pages/cpu @c181d000 s13632 r8192 d15040 u36864
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260368
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] __ex_table already sorted, skipping sort
[ 0.000000] Memory: 1023MB = 1023MB total
[ 0.000000] Memory: 1008260k/1008260k available, 40316k reserved, 269312K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc071fa34 (7263 kB)
[ 0.000000] .init : 0xc0720000 - 0xc0775540 ( 342 kB)
[ 0.000000] .data : 0xc0776000 - 0xc080f0e0 ( 613 kB)
[ 0.000000] .bss : 0xc080f0e0 - 0xc0d6a348 (5485 kB)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[ 0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.000000] ... MAX_LOCK_DEPTH: 48
[ 0.000000] ... MAX_LOCKDEP_KEYS: 8191
[ 0.000000] ... CLASSHASH_SIZE: 4096
[ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384
[ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768
[ 0.000000] ... CHAINHASH_SIZE: 16384
[ 0.000000] memory used by lock dependency info: 3695 kB
[ 0.000000] per task-struct memory footprint: 1152 bytes
[ 0.000989] Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
[ 0.109762] pid_max: default: 32768 minimum: 301
[ 0.110250] Security Framework initialized
[ 0.110399] Mount-cache hash table entries: 512
[ 0.121898] CPU: Testing write buffer coherency: ok
[ 0.123398] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.123476] Setting up static identity map for 0xc0510518 - 0xc0510588
[ 0.126105] Brought up 1 CPUs
[ 0.126130] SMP: Total of 1 processors activated (530.84 BogoMIPS).
[ 0.126142] CPU: All CPU(s) started in SVC mode.
[ 0.129134] devtmpfs: initialized
[ 0.199323] pinctrl core: initialized pinctrl subsystem
[ 0.205505] regulator-dummy: no parameters
[ 0.209247] NET: Registered protocol family 16
[ 0.217051] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.236271] platform 49000000.edma: alias fck already exists
[ 0.236311] platform 49000000.edma: alias fck already exists
[ 0.236333] platform 49000000.edma: alias fck already exists
[ 0.241486] OMAP GPIO hardware version 0.1
[ 0.265045] No ATAGs?
[ 0.265073] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.271061] Serial: AMBA PL011 UART driver
[ 0.329077] bio: create slab <bio-0> at 0
[ 0.406141] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
[ 0.408010] vbat: 5000 mV
[ 0.409244] lis3_reg: no parameters
[ 0.417237] SCSI subsystem initialized
[ 0.419384] usbcore: registered new interface driver usbfs
[ 0.420409] usbcore: registered new interface driver hub
[ 0.421312] usbcore: registered new device driver usb
[ 0.423218] omap_i2c 44e0b000.i2c: did not get pins for i2c error: -19
[ 0.425064] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 0.427105] tps65910 0-002d: No interrupt support, no core IRQ
[ 0.433470] vrtc: 1800 mV
[ 0.433880] vrtc: supplied by vbat
[ 0.437014] vio: at 1500 mV
[ 0.437157] vio: supplied by vbat
[ 0.440177] vdd_mpu: 912 <--> 1312 mV at 1262 mV
[ 0.440331] vdd_mpu: supplied by vbat
[ 0.443151] vdd_core: 912 <--> 1150 mV at 1137 mV
[ 0.443293] vdd_core: supplied by vbat
[ 0.445806] vdd3: 5000 mV
[ 0.448346] vdig1: at 1800 mV
[ 0.448486] vdig1: supplied by vbat
[ 0.451824] vdig2: at 1800 mV
[ 0.451967] vdig2: supplied by vbat
[ 0.454524] vpll: at 1800 mV
[ 0.454652] vpll: supplied by vbat
[ 0.457185] vdac: at 1800 mV
[ 0.457311] vdac: supplied by vbat
[ 0.459975] vaux1: at 1800 mV
[ 0.460112] vaux1: supplied by vbat
[ 0.462698] vaux2: at 3300 mV
[ 0.462830] vaux2: supplied by vbat
[ 0.465339] vaux33: at 3300 mV
[ 0.465466] vaux33: supplied by vbat
[ 0.467947] vmmc: omap_i2c 4802a000.i2c: did not get pins for i2c error: -19
[ 0.471641] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
[ 0.482881] Switching to clocksource gp_timer
[ 0.607600] NET: Registered protocol family 2
[ 0.609603] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.609956] TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
[ 0.613521] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.613821] TCP: reno registered
[ 0.613863] UDP hash table entries: 512 (order: 3, 40960 bytes)
[ 0.614323] UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
[ 0.615553] NET: Registered protocol family 1
[ 0.617700] RPC: Registered named UNIX socket transport module.
[ 0.617727] RPC: Registered udp transport module.
[ 0.617739] RPC: Registered tcp transport module.
[ 0.617752] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.618827] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.619316] CPU PMU: probing PMU on CPU 0
[ 0.619350] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
[ 0.776940] bounce pool size: 64 pages
[ 0.777782] VFS: Disk quotas dquot_6.5.2
[ 0.777995] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.780682] NFS: Registering the id_resolver key type
[ 0.781239] Key type id_resolver registered
[ 0.781263] Key type id_legacy registered
[ 0.781406] jffs2: version 2.2. (NAND) (SUMMARY) ? 2001-2006 Red Hat, Inc.
[ 0.781933] msgmni has been set to 1475
[ 0.785529] io scheduler noop registered
[ 0.785553] io scheduler deadline registered
[ 0.785652] io scheduler cfq registered (default)
[ 0.787072] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.791600] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.798575] omap_uart 44e09000.serial: did not get pins for uart0 error: -19
[ 0.799200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88) is a OMAP UART0
[ 1.549008] console [ttyO0] enabled
[ 1.586206] brd: module loaded
[ 1.608954] loop: module loaded
[ 1.617979] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.626230] OneNAND driver initializing
[ 1.636711] usbcore: registered new interface driver asix
[ 1.642874] usbcore: registered new interface driver ax88179_178a
[ 1.650170] usbcore: registered new interface driver cdc_ether
[ 1.657216] usbcore: registered new interface driver smsc95xx
[ 1.663954] usbcore: registered new interface driver net1080
[ 1.670358] usbcore: registered new interface driver cdc_subset
[ 1.677253] usbcore: registered new interface driver zaurus
[ 1.683851] usbcore: registered new interface driver cdc_ncm
[ 1.691998] usbcore: registered new interface driver cdc_wdm
[ 1.698149] Initializing USB Mass Storage driver...
[ 1.703927] usbcore: registered new interface driver usb-storage
[ 1.710287] USB Mass Storage support registered.
[ 1.715804] usbcore: registered new interface driver usbtest
[ 1.724258] mousedev: PS/2 mouse device common for all mice
[ 1.735860] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[ 1.745083] i2c /dev entries driver
[ 1.751902] Driver for 1-wire Dallas network protocol.
[ 1.762053] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.773746] omap-dma-engine omap-dma-engine: allocating channel for 25
[ 1.780741] BUG: spinlock bad magic on CPU#0, swapper/0/1
[ 1.786477] lock: dma_chan_lock+0x0/0x20, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
[ 1.795523] [<c001acb8>] (unwind_backtrace+0x0/0xf0) from [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c)
[ 1.805284] [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c) from [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58)
[ 1.815692] [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58) from [<c0040450>] (omap_request_dma+0x24/0x1b8)
[ 1.826014] [<c0040450>] (omap_request_dma+0x24/0x1b8) from [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
[ 1.836970] [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50) from [<c02fdfc8>] (dma_chan_get+0x5c/0xfc)
[ 1.847457] [<c02fdfc8>] (dma_chan_get+0x5c/0xfc) from [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0)
[ 1.857322] [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0) from [<c0422398>] (omap_hsmmc_probe+0x38c/0x908)
[ 1.867732] [<c0422398>] (omap_hsmmc_probe+0x38c/0x908) from [<c0339dc4>] (platform_drv_probe+0x18/0x1c)
[ 1.877767] [<c0339dc4>] (platform_drv_probe+0x18/0x1c) from [<c0338a68>] (really_probe+0x74/0x200)
[ 1.887342] [<c0338a68>] (really_probe+0x74/0x200) from [<c0338d0c>] (driver_probe_device+0x30/0x48)
[ 1.897010] [<c0338d0c>] (driver_probe_device+0x30/0x48) from [<c0338db8>] (__driver_attach+0x94/0x98)
[ 1.906860] [<c0338db8>] (__driver_attach+0x94/0x98) from [<c0337424>] (bus_for_each_dev+0x64/0x88)
[ 1.916433] [<c0337424>] (bus_for_each_dev+0x64/0x88) from [<c03383a8>] (bus_add_driver+0x1c0/0x240)
[ 1.926098] [<c03383a8>] (bus_add_driver+0x1c0/0x240) from [<c03392ec>] (driver_register+0x78/0x144)
[ 1.935758] [<c03392ec>] (driver_register+0x78/0x144) from [<c00086a4>] (do_one_initcall+0x34/0x180)
[ 1.945432] [<c00086a4>] (do_one_initcall+0x34/0x180) from [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8)
[ 1.955553] [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8) from [<c0502664>] (kernel_init+0x8/0xe4)
[ 1.965139] [<c0502664>] (kernel_init+0x8/0xe4) from [<c00133f0>] (ret_from_fork+0x14/0x24)
[ 1.974061] omap_hsmmc mmc.3: unable to obtain RX DMA engine channel 25
[ 1.982218] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.989997] usbcore: registered new interface driver usbhid
[ 1.995997] usbhid: USB HID core driver
[ 2.001076] oprofile: using arm/armv7
[ 2.005481] TCP: cubic registered
[ 2.008992] Initializing XFRM netlink socket
[ 2.013601] NET: Registered protocol family 17
[ 2.018370] NET: Registered protocol family 15
[ 2.023292] Key type dns_resolver registered
[ 2.027918] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 2.036074] ThumbEE CPU extension supported.
[ 2.103314] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 2.109789] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[ 2.117400] libphy: 4a101000.mdio: probed
[ 2.121661] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
[ 2.130442] Random MACID = aa:e0:1c:4f:40:25
[ 2.137280] of_get_named_gpio_flags exited with status 2
[ 2.143115] of_get_named_gpio_flags exited with status 3
[ 2.149951] input: volume_keys.7 as /devices/volume_keys.7/input/input0
[ 2.158349] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
[ 2.168602] Waiting for root device /dev/mmcblk0p2...


Thanks.
Vaibhav

2013-03-07 14:46:27

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
>
> > -----Original Message-----
> > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> > Sent: Thursday, March 07, 2013 7:43 PM
> > To: Hiremath, Vaibhav
> > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel List;
> > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> >
> > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > > > -----Original Message-----
> > > > From: [email protected] [mailto:linux-omap-
> > > > [email protected]] On Behalf Of Porter, Matt
> > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > Lindgren; Russell King
> > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP List;
> > Linux
> > > > Kernel Mailing List; Linux MMC List
> > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > >
> > > > Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> > > > am335x-evmsk.
> > > >
> > > > Signed-off-by: Matt Porter <[email protected]>
> > > > Acked-by: Tony Lindgren <[email protected]>
> > > > ---
> > > > arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
> > > > arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
> > > > arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
> > > > arch/arm/boot/dts/am33xx.dtsi | 28
> > ++++++++++++++++++++++++++++
> > > > 4 files changed, 49 insertions(+)
> > > >
> > > > diff --git a/arch/arm/boot/dts/am335x-bone.dts
> > > > b/arch/arm/boot/dts/am335x-bone.dts
> > > > index 11b240c..a154ce0 100644
> > > > --- a/arch/arm/boot/dts/am335x-bone.dts
> > > > +++ b/arch/arm/boot/dts/am335x-bone.dts
> > > > @@ -120,6 +120,8 @@
> > > > };
> > > >
> > > > ldo3_reg: regulator@5 {
> > > > + regulator-min-microvolt = <1800000>;
> > > > + regulator-max-microvolt = <3300000>;
> > > > regulator-always-on;
> > > > };
> > > >
> > > > @@ -136,3 +138,8 @@
> > > > &cpsw_emac1 {
> > > > phy_id = <&davinci_mdio>, <1>;
> > > > };
> > > > +
> > > > +&mmc1 {
> > > > + status = "okay";
> > > > + vmmc-supply = <&ldo3_reg>;
> > > > +};
> > > > diff --git a/arch/arm/boot/dts/am335x-evm.dts
> > > > b/arch/arm/boot/dts/am335x-evm.dts
> > > > index d649644..2907da6 100644
> > > > --- a/arch/arm/boot/dts/am335x-evm.dts
> > > > +++ b/arch/arm/boot/dts/am335x-evm.dts
> > > > @@ -232,6 +232,8 @@
> > > > };
> > > >
> > > > vmmc_reg: regulator@12 {
> > > > + regulator-min-microvolt = <1800000>;
> > > > + regulator-max-microvolt = <3300000>;
> > > > regulator-always-on;
> > > > };
> > > > };
> > > > @@ -244,3 +246,8 @@
> > > > &cpsw_emac1 {
> > > > phy_id = <&davinci_mdio>, <1>;
> > > > };
> > > > +
> > > > +&mmc1 {
> > > > + status = "okay";
> > > > + vmmc-supply = <&vmmc_reg>;
> > > > +};
> > > > diff --git a/arch/arm/boot/dts/am335x-evmsk.dts
> > > > b/arch/arm/boot/dts/am335x-evmsk.dts
> > > > index f5a6162..f050c46 100644
> > > > --- a/arch/arm/boot/dts/am335x-evmsk.dts
> > > > +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> > > > @@ -244,7 +244,14 @@
> > > > };
> > > >
> > > > vmmc_reg: regulator@12 {
> > > > + regulator-min-microvolt = <1800000>;
> > > > + regulator-max-microvolt = <3300000>;
> > > > regulator-always-on;
> > > > };
> > > > };
> > > > };
> > > > +
> > > > +&mmc1 {
> > > > + status = "okay";
> > > > + vmmc-supply = <&vmmc_reg>;
> > > > +};
> > > > diff --git a/arch/arm/boot/dts/am33xx.dtsi
> > > > b/arch/arm/boot/dts/am33xx.dtsi
> > > > index c3c781a..e029eea 100644
> > > > --- a/arch/arm/boot/dts/am33xx.dtsi
> > > > +++ b/arch/arm/boot/dts/am33xx.dtsi
> > > > @@ -234,6 +234,34 @@
> > > > status = "disabled";
> > > > };
> > > >
> > > > + mmc1: mmc@48060000 {
> > > > + compatible = "ti,omap3-hsmmc";
> > > > + ti,hwmods = "mmc1";
> > > > + ti,dual-volt;
> > > > + ti,needs-special-reset;
> > > > + dmas = <&edma 24
> > > > + &edma 25>;
> > > > + dma-names = "tx", "rx";
> > > > + status = "disabled";
> > > > + };
> > > > +
> > > > + mmc2: mmc@481d8000 {
> > > > + compatible = "ti,omap3-hsmmc";
> > > > + ti,hwmods = "mmc2";
> > > > + ti,needs-special-reset;
> > > > + dmas = <&edma 2
> > > > + &edma 3>;
> > > > + dma-names = "tx", "rx";
> > > > + status = "disabled";
> > > > + };
> > > > +
> > > > + mmc3: mmc@47810000 {
> > > > + compatible = "ti,omap3-hsmmc";
> > > > + ti,hwmods = "mmc3";
> > > > + ti,needs-special-reset;
> > > > + status = "disabled";
> > > > + };
> > > Any specific reason why you did not add edma entry here as well?
> >
> > Yes, I've answered this one before and I think this illustrates a need
> > for a comment in the .dtsi. mmc3 edma event are on the crossbar and so
> > the event that will be mapped is system-specific. Since Luca is still
> > working on DT support for WiLink, there's no way to show an example of
> > how this is used upstream as that's the only in-kernel user.
> >
> > I have a test driver I've cited in the postings that shows how the
> > crossbar is configured via the board .dts. It doesn't belong in the
> > .dtsi, however, in this case. When WiLink DT support is ready we can
> > have an entry in the am335x-evmsk.dts that shows this case.
> >
> > > Also, I wonder why "interrupt" property is not coming here, I
> > understand
> > > That hwmod is filling the gap here; but I would still recommend you
> > to complete
> > > The DT node, as we only support DT boot.
> >
> > Yeah, I only added needed properties so as to not confuse people as to
> > where the interrupt resources are coming from. If you feel strongly
> > about this I don't have a problem with adding unused data in the dts.
> > I suppose this will help clear things to have a switch away from using
> > the hwmod data.
>
> Its not true, if you specify interrupt property in the DTS file
> It is being used. Please refer to the omap_device.c file. I am pasting
> Comments from code for your reference -
>
>
> 389 /*
> 390 * Non-DT Boot:
> 391 * Here, pdev->num_resources = 0, and we should get all the
> 392 * resources from hwmod.
> 393 *
> 394 * DT Boot:
> 395 * OF framework will construct the resource structure (currently
> 396 * does for MEM & IRQ resource) and we should respect/use these
> 397 * resources, killing hwmod dependency.
> 398 * If pdev->num_resources > 0, we assume that MEM & IRQ resources
> 399 * have been allocated by OF layer already (through DTB).
> 400 * As preparation for the future we examine the OF provided resources
> 401 * to see if we have DMA resources provided already. In this case
> 402 * there is no need to update the resources for the device, we use the
> 403 * OF provided ones.
> 404 *
> 405 * TODO: Once DMA resource is available from OF layer, we should
> 406 * kill filling any resources from hwmod.
> 407 */

Ok thanks, we'll add it in.

> >
> > > I will test the whole patch series today and update you.
> >
> I just booted up the EVM with all the patches you have submitted recently,
> There are two issues I can see,
>
> 1. Stack dump from MMC driver.
> This happens because you do not have "interrupt" property mentioned
> In the dts file. I have added "interrupt" property and dump went away.
>
> 2. And MMC rootFS mount is __not__ working for me.
>
> 3. I get following error message -
>
> [ 2.118207] omap_hsmmc mmc.3: unable to obtain RX DMA engine channel 25

See below, you don't have CONFIG_EDMA on most likely.

> I haven’t debugged it yet, just thought I should report it before
> Proceeding further.
>
>
> Boot Log:
> ======================================
>
> U-Boot# mmc rescan 0
> U-Boot# fatload mmc 0 82000000 uImage
> reading uImage
> 4026992 bytes read in 441 ms (8.7 MiB/s)
> U-Boot# fatload mmc 0 81000000 am335x-evm.dtb
> reading am335x-evm.dtb
> 11371 bytes read in 10 ms (1.1 MiB/s)
> U-Boot# run mmcargs
> U-Boot# bootm 82000000 - 81000000
> ## Booting kernel from Legacy Image at 82000000 ...
> Image Name: Linux
> Image Type: ARM Linux Kernel Image (uncompressed)
> Data Size: 4026928 Bytes = 3.8 MiB
> Load Address: 80008000
> Entry Point: 80008000
> Verifying Checksum ... OK
> ## Flattened Device Tree blob at 81000000
> Booting using the fdt blob at 0x81000000
> Loading Kernel Image ... OK
> OK
> Using Device Tree in place at 81000000, end 81005c6a
>
> Starting kernel ...
>
> [ 0.000000] Booting Linux on physical CPU 0x0
> [ 0.000000] Linux version 3.9.0-rc1-00122-g106e3c6 (XXX@psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #2 SMP Thu Mar 7 16:57:39 IST 2013
> [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
> [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
> [ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x EVM
> [ 0.000000] cma: CMA: reserved 16 MiB at ae800000
> [ 0.000000] Memory policy: ECC disabled, Data cache writeback
> [ 0.000000] CPU: All CPU(s) started in SVC mode.
> [ 0.000000] AM335X ES2.0 (neon )
> [ 0.000000] PERCPU: Embedded 9 pages/cpu @c181d000 s13632 r8192 d15040 u36864
> [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260368
> [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
> [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
> [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
> [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
> [ 0.000000] __ex_table already sorted, skipping sort
> [ 0.000000] Memory: 1023MB = 1023MB total
> [ 0.000000] Memory: 1008260k/1008260k available, 40316k reserved, 269312K highmem
> [ 0.000000] Virtual kernel memory layout:
> [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
> [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
> [ 0.000000] vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
> [ 0.000000] lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
> [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
> [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
> [ 0.000000] .text : 0xc0008000 - 0xc071fa34 (7263 kB)
> [ 0.000000] .init : 0xc0720000 - 0xc0775540 ( 342 kB)
> [ 0.000000] .data : 0xc0776000 - 0xc080f0e0 ( 613 kB)
> [ 0.000000] .bss : 0xc080f0e0 - 0xc0d6a348 (5485 kB)
> [ 0.000000] Hierarchical RCU implementation.
> [ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
> [ 0.000000] NR_IRQS:16 nr_irqs:16 16
> [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
> [ 0.000000] Total of 128 interrupts on 1 active controller
> [ 0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
> [ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
> [ 0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
> [ 0.000000] Console: colour dummy device 80x30
> [ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
> [ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8
> [ 0.000000] ... MAX_LOCK_DEPTH: 48
> [ 0.000000] ... MAX_LOCKDEP_KEYS: 8191
> [ 0.000000] ... CLASSHASH_SIZE: 4096
> [ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384
> [ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768
> [ 0.000000] ... CHAINHASH_SIZE: 16384
> [ 0.000000] memory used by lock dependency info: 3695 kB
> [ 0.000000] per task-struct memory footprint: 1152 bytes
> [ 0.000989] Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
> [ 0.109762] pid_max: default: 32768 minimum: 301
> [ 0.110250] Security Framework initialized
> [ 0.110399] Mount-cache hash table entries: 512
> [ 0.121898] CPU: Testing write buffer coherency: ok
> [ 0.123398] CPU0: thread -1, cpu 0, socket -1, mpidr 0
> [ 0.123476] Setting up static identity map for 0xc0510518 - 0xc0510588
> [ 0.126105] Brought up 1 CPUs
> [ 0.126130] SMP: Total of 1 processors activated (530.84 BogoMIPS).
> [ 0.126142] CPU: All CPU(s) started in SVC mode.
> [ 0.129134] devtmpfs: initialized
> [ 0.199323] pinctrl core: initialized pinctrl subsystem
> [ 0.205505] regulator-dummy: no parameters
> [ 0.209247] NET: Registered protocol family 16
> [ 0.217051] DMA: preallocated 256 KiB pool for atomic coherent allocations
> [ 0.236271] platform 49000000.edma: alias fck already exists
> [ 0.236311] platform 49000000.edma: alias fck already exists
> [ 0.236333] platform 49000000.edma: alias fck already exists

This is from the private edma api.

> [ 0.241486] OMAP GPIO hardware version 0.1
> [ 0.265045] No ATAGs?
> [ 0.265073] hw-breakpoint: debug architecture 0x4 unsupported.
> [ 0.271061] Serial: AMBA PL011 UART driver
> [ 0.329077] bio: create slab <bio-0> at 0
> [ 0.406141] omap-dma-engine omap-dma-engine: OMAP DMA engine driver

Only OMAP dmaengine driver appears to be built in.

> [ 0.408010] vbat: 5000 mV
> [ 0.409244] lis3_reg: no parameters
> [ 0.417237] SCSI subsystem initialized
> [ 0.419384] usbcore: registered new interface driver usbfs
> [ 0.420409] usbcore: registered new interface driver hub
> [ 0.421312] usbcore: registered new device driver usb
> [ 0.423218] omap_i2c 44e0b000.i2c: did not get pins for i2c error: -19
> [ 0.425064] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
> [ 0.427105] tps65910 0-002d: No interrupt support, no core IRQ
> [ 0.433470] vrtc: 1800 mV
> [ 0.433880] vrtc: supplied by vbat
> [ 0.437014] vio: at 1500 mV
> [ 0.437157] vio: supplied by vbat
> [ 0.440177] vdd_mpu: 912 <--> 1312 mV at 1262 mV
> [ 0.440331] vdd_mpu: supplied by vbat
> [ 0.443151] vdd_core: 912 <--> 1150 mV at 1137 mV
> [ 0.443293] vdd_core: supplied by vbat
> [ 0.445806] vdd3: 5000 mV
> [ 0.448346] vdig1: at 1800 mV
> [ 0.448486] vdig1: supplied by vbat
> [ 0.451824] vdig2: at 1800 mV
> [ 0.451967] vdig2: supplied by vbat
> [ 0.454524] vpll: at 1800 mV
> [ 0.454652] vpll: supplied by vbat
> [ 0.457185] vdac: at 1800 mV
> [ 0.457311] vdac: supplied by vbat
> [ 0.459975] vaux1: at 1800 mV
> [ 0.460112] vaux1: supplied by vbat
> [ 0.462698] vaux2: at 3300 mV
> [ 0.462830] vaux2: supplied by vbat
> [ 0.465339] vaux33: at 3300 mV
> [ 0.465466] vaux33: supplied by vbat
> [ 0.467947] vmmc: omap_i2c 4802a000.i2c: did not get pins for i2c error: -19
> [ 0.471641] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
> [ 0.482881] Switching to clocksource gp_timer
> [ 0.607600] NET: Registered protocol family 2
> [ 0.609603] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
> [ 0.609956] TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
> [ 0.613521] TCP: Hash tables configured (established 8192 bind 8192)
> [ 0.613821] TCP: reno registered
> [ 0.613863] UDP hash table entries: 512 (order: 3, 40960 bytes)
> [ 0.614323] UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
> [ 0.615553] NET: Registered protocol family 1
> [ 0.617700] RPC: Registered named UNIX socket transport module.
> [ 0.617727] RPC: Registered udp transport module.
> [ 0.617739] RPC: Registered tcp transport module.
> [ 0.617752] RPC: Registered tcp NFSv4.1 backchannel transport module.
> [ 0.618827] NetWinder Floating Point Emulator V0.97 (double precision)
> [ 0.619316] CPU PMU: probing PMU on CPU 0
> [ 0.619350] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
> [ 0.776940] bounce pool size: 64 pages
> [ 0.777782] VFS: Disk quotas dquot_6.5.2
> [ 0.777995] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
> [ 0.780682] NFS: Registering the id_resolver key type
> [ 0.781239] Key type id_resolver registered
> [ 0.781263] Key type id_legacy registered
> [ 0.781406] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
> [ 0.781933] msgmni has been set to 1475
> [ 0.785529] io scheduler noop registered
> [ 0.785553] io scheduler deadline registered
> [ 0.785652] io scheduler cfq registered (default)
> [ 0.787072] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
> [ 0.791600] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
> [ 0.798575] omap_uart 44e09000.serial: did not get pins for uart0 error: -19
> [ 0.799200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88) is a OMAP UART0
> [ 1.549008] console [ttyO0] enabled
> [ 1.586206] brd: module loaded
> [ 1.608954] loop: module loaded
> [ 1.617979] mtdoops: mtd device (mtddev=name/number) must be supplied
> [ 1.626230] OneNAND driver initializing
> [ 1.636711] usbcore: registered new interface driver asix
> [ 1.642874] usbcore: registered new interface driver ax88179_178a
> [ 1.650170] usbcore: registered new interface driver cdc_ether
> [ 1.657216] usbcore: registered new interface driver smsc95xx
> [ 1.663954] usbcore: registered new interface driver net1080
> [ 1.670358] usbcore: registered new interface driver cdc_subset
> [ 1.677253] usbcore: registered new interface driver zaurus
> [ 1.683851] usbcore: registered new interface driver cdc_ncm
> [ 1.691998] usbcore: registered new interface driver cdc_wdm
> [ 1.698149] Initializing USB Mass Storage driver...
> [ 1.703927] usbcore: registered new interface driver usb-storage
> [ 1.710287] USB Mass Storage support registered.
> [ 1.715804] usbcore: registered new interface driver usbtest
> [ 1.724258] mousedev: PS/2 mouse device common for all mice
> [ 1.735860] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
> [ 1.745083] i2c /dev entries driver
> [ 1.751902] Driver for 1-wire Dallas network protocol.
> [ 1.762053] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
> [ 1.773746] omap-dma-engine omap-dma-engine: allocating channel for 25

Because the EDMA DMA engine driver isn't active, the driver tries to use
the OMAP DMA engine driver.

> [ 1.780741] BUG: spinlock bad magic on CPU#0, swapper/0/1
> [ 1.786477] lock: dma_chan_lock+0x0/0x20, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
> [ 1.795523] [<c001acb8>] (unwind_backtrace+0x0/0xf0) from [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c)
> [ 1.805284] [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c) from [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58)
> [ 1.815692] [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58) from [<c0040450>] (omap_request_dma+0x24/0x1b8)
> [ 1.826014] [<c0040450>] (omap_request_dma+0x24/0x1b8) from [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
> [ 1.836970] [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50) from [<c02fdfc8>] (dma_chan_get+0x5c/0xfc)
> [ 1.847457] [<c02fdfc8>] (dma_chan_get+0x5c/0xfc) from [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0)
> [ 1.857322] [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0) from [<c0422398>] (omap_hsmmc_probe+0x38c/0x908)
> [ 1.867732] [<c0422398>] (omap_hsmmc_probe+0x38c/0x908) from [<c0339dc4>] (platform_drv_probe+0x18/0x1c)
> [ 1.877767] [<c0339dc4>] (platform_drv_probe+0x18/0x1c) from [<c0338a68>] (really_probe+0x74/0x200)
> [ 1.887342] [<c0338a68>] (really_probe+0x74/0x200) from [<c0338d0c>] (driver_probe_device+0x30/0x48)
> [ 1.897010] [<c0338d0c>] (driver_probe_device+0x30/0x48) from [<c0338db8>] (__driver_attach+0x94/0x98)
> [ 1.906860] [<c0338db8>] (__driver_attach+0x94/0x98) from [<c0337424>] (bus_for_each_dev+0x64/0x88)
> [ 1.916433] [<c0337424>] (bus_for_each_dev+0x64/0x88) from [<c03383a8>] (bus_add_driver+0x1c0/0x240)
> [ 1.926098] [<c03383a8>] (bus_add_driver+0x1c0/0x240) from [<c03392ec>] (driver_register+0x78/0x144)
> [ 1.935758] [<c03392ec>] (driver_register+0x78/0x144) from [<c00086a4>] (do_one_initcall+0x34/0x180)
> [ 1.945432] [<c00086a4>] (do_one_initcall+0x34/0x180) from [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8)
> [ 1.955553] [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8) from [<c0502664>] (kernel_init+0x8/0xe4)
> [ 1.965139] [<c0502664>] (kernel_init+0x8/0xe4) from [<c00133f0>] (ret_from_fork+0x14/0x24)
> [ 1.974061] omap_hsmmc mmc.3: unable to obtain RX DMA engine channel 25
> [ 1.982218] ledtrig-cpu: registered to indicate activity on CPUs
> [ 1.989997] usbcore: registered new interface driver usbhid
> [ 1.995997] usbhid: USB HID core driver
> [ 2.001076] oprofile: using arm/armv7
> [ 2.005481] TCP: cubic registered
> [ 2.008992] Initializing XFRM netlink socket
> [ 2.013601] NET: Registered protocol family 17
> [ 2.018370] NET: Registered protocol family 15
> [ 2.023292] Key type dns_resolver registered
> [ 2.027918] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
> [ 2.036074] ThumbEE CPU extension supported.
> [ 2.103314] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
> [ 2.109789] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
> [ 2.117400] libphy: 4a101000.mdio: probed
> [ 2.121661] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
> [ 2.130442] Random MACID = aa:e0:1c:4f:40:25
> [ 2.137280] of_get_named_gpio_flags exited with status 2
> [ 2.143115] of_get_named_gpio_flags exited with status 3
> [ 2.149951] input: volume_keys.7 as /devices/volume_keys.7/input/input0
> [ 2.158349] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
> [ 2.168602] Waiting for root device /dev/mmcblk0p2...
>
>
> Thanks.
> Vaibhav
> _______________________________________________
> devicetree-discuss mailing list
> [email protected]
> https://lists.ozlabs.org/listinfo/devicetree-discuss

2013-03-07 14:50:41

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 09:46:56AM -0500, Matt Porter wrote:
> On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > 2. And MMC rootFS mount is __not__ working for me.
> >
> > 3. I get following error message -
> >
> > [ 2.118207] omap_hsmmc mmc.3: unable to obtain RX DMA engine channel 25
>
> See below, you don't have CONFIG_EDMA on most likely.

That's CONFIG_TI_EDMA, of course.

-Matt

2013-03-07 14:54:14

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support

> -----Original Message-----
> From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> Sent: Thursday, March 07, 2013 8:17 PM
> To: Hiremath, Vaibhav
> Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T; Devicetree
> Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> ARM Kernel List
> Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> >
> > > -----Original Message-----
> > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> Matt
> > > Sent: Thursday, March 07, 2013 7:43 PM
> > > To: Hiremath, Vaibhav
> > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel List;
> > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > >
> > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > > > > -----Original Message-----
> > > > > From: [email protected] [mailto:linux-omap-
> > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > > Lindgren; Russell King
> > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP List;
> > > Linux
> > > > > Kernel Mailing List; Linux MMC List
> > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > >
> > > > > Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> > > > > am335x-evmsk.
> > > > >
> > > > > Signed-off-by: Matt Porter <[email protected]>
> > > > > Acked-by: Tony Lindgren <[email protected]>
> > > > > ---
> > > > > arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
> > > > > arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
> > > > > arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
> > > > > arch/arm/boot/dts/am33xx.dtsi | 28
> > > ++++++++++++++++++++++++++++
> > > > > 4 files changed, 49 insertions(+)
> > > > >
> > > > > diff --git a/arch/arm/boot/dts/am335x-bone.dts
> > > > > b/arch/arm/boot/dts/am335x-bone.dts
> > > > > index 11b240c..a154ce0 100644
> > > > > --- a/arch/arm/boot/dts/am335x-bone.dts
> > > > > +++ b/arch/arm/boot/dts/am335x-bone.dts
> > > > > @@ -120,6 +120,8 @@
> > > > > };
> > > > >
> > > > > ldo3_reg: regulator@5 {
> > > > > + regulator-min-microvolt = <1800000>;
> > > > > + regulator-max-microvolt = <3300000>;
> > > > > regulator-always-on;
> > > > > };
> > > > >
> > > > > @@ -136,3 +138,8 @@
> > > > > &cpsw_emac1 {
> > > > > phy_id = <&davinci_mdio>, <1>;
> > > > > };
> > > > > +
> > > > > +&mmc1 {
> > > > > + status = "okay";
> > > > > + vmmc-supply = <&ldo3_reg>;
> > > > > +};
> > > > > diff --git a/arch/arm/boot/dts/am335x-evm.dts
> > > > > b/arch/arm/boot/dts/am335x-evm.dts
> > > > > index d649644..2907da6 100644
> > > > > --- a/arch/arm/boot/dts/am335x-evm.dts
> > > > > +++ b/arch/arm/boot/dts/am335x-evm.dts
> > > > > @@ -232,6 +232,8 @@
> > > > > };
> > > > >
> > > > > vmmc_reg: regulator@12 {
> > > > > + regulator-min-microvolt = <1800000>;
> > > > > + regulator-max-microvolt = <3300000>;
> > > > > regulator-always-on;
> > > > > };
> > > > > };
> > > > > @@ -244,3 +246,8 @@
> > > > > &cpsw_emac1 {
> > > > > phy_id = <&davinci_mdio>, <1>;
> > > > > };
> > > > > +
> > > > > +&mmc1 {
> > > > > + status = "okay";
> > > > > + vmmc-supply = <&vmmc_reg>;
> > > > > +};
> > > > > diff --git a/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > b/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > index f5a6162..f050c46 100644
> > > > > --- a/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > @@ -244,7 +244,14 @@
> > > > > };
> > > > >
> > > > > vmmc_reg: regulator@12 {
> > > > > + regulator-min-microvolt = <1800000>;
> > > > > + regulator-max-microvolt = <3300000>;
> > > > > regulator-always-on;
> > > > > };
> > > > > };
> > > > > };
> > > > > +
> > > > > +&mmc1 {
> > > > > + status = "okay";
> > > > > + vmmc-supply = <&vmmc_reg>;
> > > > > +};
> > > > > diff --git a/arch/arm/boot/dts/am33xx.dtsi
> > > > > b/arch/arm/boot/dts/am33xx.dtsi
> > > > > index c3c781a..e029eea 100644
> > > > > --- a/arch/arm/boot/dts/am33xx.dtsi
> > > > > +++ b/arch/arm/boot/dts/am33xx.dtsi
> > > > > @@ -234,6 +234,34 @@
> > > > > status = "disabled";
> > > > > };
> > > > >
> > > > > + mmc1: mmc@48060000 {
> > > > > + compatible = "ti,omap3-hsmmc";
> > > > > + ti,hwmods = "mmc1";
> > > > > + ti,dual-volt;
> > > > > + ti,needs-special-reset;
> > > > > + dmas = <&edma 24
> > > > > + &edma 25>;
> > > > > + dma-names = "tx", "rx";
> > > > > + status = "disabled";
> > > > > + };
> > > > > +
> > > > > + mmc2: mmc@481d8000 {
> > > > > + compatible = "ti,omap3-hsmmc";
> > > > > + ti,hwmods = "mmc2";
> > > > > + ti,needs-special-reset;
> > > > > + dmas = <&edma 2
> > > > > + &edma 3>;
> > > > > + dma-names = "tx", "rx";
> > > > > + status = "disabled";
> > > > > + };
> > > > > +
> > > > > + mmc3: mmc@47810000 {
> > > > > + compatible = "ti,omap3-hsmmc";
> > > > > + ti,hwmods = "mmc3";
> > > > > + ti,needs-special-reset;
> > > > > + status = "disabled";
> > > > > + };
> > > > Any specific reason why you did not add edma entry here as well?
> > >
> > > Yes, I've answered this one before and I think this illustrates a
> need
> > > for a comment in the .dtsi. mmc3 edma event are on the crossbar and
> so
> > > the event that will be mapped is system-specific. Since Luca is
> still
> > > working on DT support for WiLink, there's no way to show an example
> of
> > > how this is used upstream as that's the only in-kernel user.
> > >
> > > I have a test driver I've cited in the postings that shows how the
> > > crossbar is configured via the board .dts. It doesn't belong in the
> > > .dtsi, however, in this case. When WiLink DT support is ready we
> can
> > > have an entry in the am335x-evmsk.dts that shows this case.
> > >
> > > > Also, I wonder why "interrupt" property is not coming here, I
> > > understand
> > > > That hwmod is filling the gap here; but I would still recommend
> you
> > > to complete
> > > > The DT node, as we only support DT boot.
> > >
> > > Yeah, I only added needed properties so as to not confuse people as
> to
> > > where the interrupt resources are coming from. If you feel strongly
> > > about this I don't have a problem with adding unused data in the
> dts.
> > > I suppose this will help clear things to have a switch away from
> using
> > > the hwmod data.
> >
> > Its not true, if you specify interrupt property in the DTS file
> > It is being used. Please refer to the omap_device.c file. I am
> pasting
> > Comments from code for your reference -
> >
> >
> > 389 /*
> > 390 * Non-DT Boot:
> > 391 * Here, pdev->num_resources = 0, and we should get all
> the
> > 392 * resources from hwmod.
> > 393 *
> > 394 * DT Boot:
> > 395 * OF framework will construct the resource structure
> (currently
> > 396 * does for MEM & IRQ resource) and we should
> respect/use these
> > 397 * resources, killing hwmod dependency.
> > 398 * If pdev->num_resources > 0, we assume that MEM & IRQ
> resources
> > 399 * have been allocated by OF layer already (through
> DTB).
> > 400 * As preparation for the future we examine the OF
> provided resources
> > 401 * to see if we have DMA resources provided already. In
> this case
> > 402 * there is no need to update the resources for the
> device, we use the
> > 403 * OF provided ones.
> > 404 *
> > 405 * TODO: Once DMA resource is available from OF layer, we
> should
> > 406 * kill filling any resources from hwmod.
> > 407 */
>
> Ok thanks, we'll add it in.
>
> > >
> > > > I will test the whole patch series today and update you.
> > >
> > I just booted up the EVM with all the patches you have submitted
> recently,
> > There are two issues I can see,
> >
> > 1. Stack dump from MMC driver.
> > This happens because you do not have "interrupt" property mentioned
> > In the dts file. I have added "interrupt" property and dump went
> away.
> >
> > 2. And MMC rootFS mount is __not__ working for me.
> >
> > 3. I get following error message -
> >
> > [ 2.118207] omap_hsmmc mmc.3: unable to obtain RX DMA engine
> channel 25
>
> See below, you don't have CONFIG_EDMA on most likely.
>

I believe you meant "CONFIG_TI_EDMA" right?

Yes, I just enabled it and the result is still same.



[root@arago /]# dmesg | grep -ir mmc
[ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[ 0.506970] vmmc: supplied by vbat
[root@arago /]#
[root@arago /]#
[root@arago /]# dmesg | grep -ir dma
[ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.236321] platform 49000000.edma: alias fck already exists
[ 0.236360] platform 49000000.edma: alias fck already exists
[ 0.236381] platform 49000000.edma: alias fck already exists
[ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
[root@arago /]#
[root@arago /]#



Thanks,
Vaibhav

> > I haven’t debugged it yet, just thought I should report it before
> > Proceeding further.
> >
> >
> > Boot Log:
> > ======================================
> >
> > U-Boot# mmc rescan 0
> > U-Boot# fatload mmc 0 82000000 uImage
> > reading uImage
> > 4026992 bytes read in 441 ms (8.7 MiB/s)
> > U-Boot# fatload mmc 0 81000000 am335x-evm.dtb
> > reading am335x-evm.dtb
> > 11371 bytes read in 10 ms (1.1 MiB/s)
> > U-Boot# run mmcargs
> > U-Boot# bootm 82000000 - 81000000
> > ## Booting kernel from Legacy Image at 82000000 ...
> > Image Name: Linux
> > Image Type: ARM Linux Kernel Image (uncompressed)
> > Data Size: 4026928 Bytes = 3.8 MiB
> > Load Address: 80008000
> > Entry Point: 80008000
> > Verifying Checksum ... OK
> > ## Flattened Device Tree blob at 81000000
> > Booting using the fdt blob at 0x81000000
> > Loading Kernel Image ... OK
> > OK
> > Using Device Tree in place at 81000000, end 81005c6a
> >
> > Starting kernel ...
> >
> > [ 0.000000] Booting Linux on physical CPU 0x0
> > [ 0.000000] Linux version 3.9.0-rc1-00122-g106e3c6
> (XXX@psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #2
> SMP Thu Mar 7 16:57:39 IST 2013
> > [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7),
> cr=10c53c7d
> > [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> instruction cache
> > [ 0.000000] Machine: Generic AM33XX (Flattened Device Tree),
> model: TI AM335x EVM
> > [ 0.000000] cma: CMA: reserved 16 MiB at ae800000
> > [ 0.000000] Memory policy: ECC disabled, Data cache writeback
> > [ 0.000000] CPU: All CPU(s) started in SVC mode.
> > [ 0.000000] AM335X ES2.0 (neon )
> > [ 0.000000] PERCPU: Embedded 9 pages/cpu @c181d000 s13632 r8192
> d15040 u36864
> > [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on.
> Total pages: 260368
> > [ 0.000000] Kernel command line: console=ttyO0,115200n8
> root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
> > [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
> > [ 0.000000] Dentry cache hash table entries: 131072 (order: 7,
> 524288 bytes)
> > [ 0.000000] Inode-cache hash table entries: 65536 (order: 6,
> 262144 bytes)
> > [ 0.000000] __ex_table already sorted, skipping sort
> > [ 0.000000] Memory: 1023MB = 1023MB total
> > [ 0.000000] Memory: 1008260k/1008260k available, 40316k reserved,
> 269312K highmem
> > [ 0.000000] Virtual kernel memory layout:
> > [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
> > [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
> > [ 0.000000] vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
> > [ 0.000000] lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
> > [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
> > [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
> > [ 0.000000] .text : 0xc0008000 - 0xc071fa34 (7263 kB)
> > [ 0.000000] .init : 0xc0720000 - 0xc0775540 ( 342 kB)
> > [ 0.000000] .data : 0xc0776000 - 0xc080f0e0 ( 613 kB)
> > [ 0.000000] .bss : 0xc080f0e0 - 0xc0d6a348 (5485 kB)
> > [ 0.000000] Hierarchical RCU implementation.
> > [ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
> > [ 0.000000] NR_IRQS:16 nr_irqs:16 16
> > [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with
> 128 interrupts
> > [ 0.000000] Total of 128 interrupts on 1 active controller
> > [ 0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
> > [ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps
> every 178956ms
> > [ 0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
> > [ 0.000000] Console: colour dummy device 80x30
> > [ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat,
> Inc., Ingo Molnar
> > [ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8
> > [ 0.000000] ... MAX_LOCK_DEPTH: 48
> > [ 0.000000] ... MAX_LOCKDEP_KEYS: 8191
> > [ 0.000000] ... CLASSHASH_SIZE: 4096
> > [ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384
> > [ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768
> > [ 0.000000] ... CHAINHASH_SIZE: 16384
> > [ 0.000000] memory used by lock dependency info: 3695 kB
> > [ 0.000000] per task-struct memory footprint: 1152 bytes
> > [ 0.000989] Calibrating delay loop... 530.84 BogoMIPS
> (lpj=2654208)
> > [ 0.109762] pid_max: default: 32768 minimum: 301
> > [ 0.110250] Security Framework initialized
> > [ 0.110399] Mount-cache hash table entries: 512
> > [ 0.121898] CPU: Testing write buffer coherency: ok
> > [ 0.123398] CPU0: thread -1, cpu 0, socket -1, mpidr 0
> > [ 0.123476] Setting up static identity map for 0xc0510518 -
> 0xc0510588
> > [ 0.126105] Brought up 1 CPUs
> > [ 0.126130] SMP: Total of 1 processors activated (530.84
> BogoMIPS).
> > [ 0.126142] CPU: All CPU(s) started in SVC mode.
> > [ 0.129134] devtmpfs: initialized
> > [ 0.199323] pinctrl core: initialized pinctrl subsystem
> > [ 0.205505] regulator-dummy: no parameters
> > [ 0.209247] NET: Registered protocol family 16
> > [ 0.217051] DMA: preallocated 256 KiB pool for atomic coherent
> allocations
> > [ 0.236271] platform 49000000.edma: alias fck already exists
> > [ 0.236311] platform 49000000.edma: alias fck already exists
> > [ 0.236333] platform 49000000.edma: alias fck already exists
>
> This is from the private edma api.
>
> > [ 0.241486] OMAP GPIO hardware version 0.1
> > [ 0.265045] No ATAGs?
> > [ 0.265073] hw-breakpoint: debug architecture 0x4 unsupported.
> > [ 0.271061] Serial: AMBA PL011 UART driver
> > [ 0.329077] bio: create slab <bio-0> at 0
> > [ 0.406141] omap-dma-engine omap-dma-engine: OMAP DMA engine
> driver
>
> Only OMAP dmaengine driver appears to be built in.
>
> > [ 0.408010] vbat: 5000 mV
> > [ 0.409244] lis3_reg: no parameters
> > [ 0.417237] SCSI subsystem initialized
> > [ 0.419384] usbcore: registered new interface driver usbfs
> > [ 0.420409] usbcore: registered new interface driver hub
> > [ 0.421312] usbcore: registered new device driver usb
> > [ 0.423218] omap_i2c 44e0b000.i2c: did not get pins for i2c error:
> -19
> > [ 0.425064] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
> > [ 0.427105] tps65910 0-002d: No interrupt support, no core IRQ
> > [ 0.433470] vrtc: 1800 mV
> > [ 0.433880] vrtc: supplied by vbat
> > [ 0.437014] vio: at 1500 mV
> > [ 0.437157] vio: supplied by vbat
> > [ 0.440177] vdd_mpu: 912 <--> 1312 mV at 1262 mV
> > [ 0.440331] vdd_mpu: supplied by vbat
> > [ 0.443151] vdd_core: 912 <--> 1150 mV at 1137 mV
> > [ 0.443293] vdd_core: supplied by vbat
> > [ 0.445806] vdd3: 5000 mV
> > [ 0.448346] vdig1: at 1800 mV
> > [ 0.448486] vdig1: supplied by vbat
> > [ 0.451824] vdig2: at 1800 mV
> > [ 0.451967] vdig2: supplied by vbat
> > [ 0.454524] vpll: at 1800 mV
> > [ 0.454652] vpll: supplied by vbat
> > [ 0.457185] vdac: at 1800 mV
> > [ 0.457311] vdac: supplied by vbat
> > [ 0.459975] vaux1: at 1800 mV
> > [ 0.460112] vaux1: supplied by vbat
> > [ 0.462698] vaux2: at 3300 mV
> > [ 0.462830] vaux2: supplied by vbat
> > [ 0.465339] vaux33: at 3300 mV
> > [ 0.465466] vaux33: supplied by vbat
> > [ 0.467947] vmmc: omap_i2c 4802a000.i2c: did not get pins for i2c
> error: -19
> > [ 0.471641] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
> > [ 0.482881] Switching to clocksource gp_timer
> > [ 0.607600] NET: Registered protocol family 2
> > [ 0.609603] TCP established hash table entries: 8192 (order: 4,
> 65536 bytes)
> > [ 0.609956] TCP bind hash table entries: 8192 (order: 6, 294912
> bytes)
> > [ 0.613521] TCP: Hash tables configured (established 8192 bind
> 8192)
> > [ 0.613821] TCP: reno registered
> > [ 0.613863] UDP hash table entries: 512 (order: 3, 40960 bytes)
> > [ 0.614323] UDP-Lite hash table entries: 512 (order: 3, 40960
> bytes)
> > [ 0.615553] NET: Registered protocol family 1
> > [ 0.617700] RPC: Registered named UNIX socket transport module.
> > [ 0.617727] RPC: Registered udp transport module.
> > [ 0.617739] RPC: Registered tcp transport module.
> > [ 0.617752] RPC: Registered tcp NFSv4.1 backchannel transport
> module.
> > [ 0.618827] NetWinder Floating Point Emulator V0.97 (double
> precision)
> > [ 0.619316] CPU PMU: probing PMU on CPU 0
> > [ 0.619350] hw perfevents: enabled with ARMv7 Cortex-A8 PMU
> driver, 5 counters available
> > [ 0.776940] bounce pool size: 64 pages
> > [ 0.777782] VFS: Disk quotas dquot_6.5.2
> > [ 0.777995] Dquot-cache hash table entries: 1024 (order 0, 4096
> bytes)
> > [ 0.780682] NFS: Registering the id_resolver key type
> > [ 0.781239] Key type id_resolver registered
> > [ 0.781263] Key type id_legacy registered
> > [ 0.781406] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red
> Hat, Inc.
> > [ 0.781933] msgmni has been set to 1475
> > [ 0.785529] io scheduler noop registered
> > [ 0.785553] io scheduler deadline registered
> > [ 0.785652] io scheduler cfq registered (default)
> > [ 0.787072] pinctrl-single 44e10800.pinmux: 142 pins at pa
> f9e10800 size 568
> > [ 0.791600] Serial: 8250/16550 driver, 4 ports, IRQ sharing
> enabled
> > [ 0.798575] omap_uart 44e09000.serial: did not get pins for uart0
> error: -19
> > [ 0.799200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88)
> is a OMAP UART0
> > [ 1.549008] console [ttyO0] enabled
> > [ 1.586206] brd: module loaded
> > [ 1.608954] loop: module loaded
> > [ 1.617979] mtdoops: mtd device (mtddev=name/number) must be
> supplied
> > [ 1.626230] OneNAND driver initializing
> > [ 1.636711] usbcore: registered new interface driver asix
> > [ 1.642874] usbcore: registered new interface driver ax88179_178a
> > [ 1.650170] usbcore: registered new interface driver cdc_ether
> > [ 1.657216] usbcore: registered new interface driver smsc95xx
> > [ 1.663954] usbcore: registered new interface driver net1080
> > [ 1.670358] usbcore: registered new interface driver cdc_subset
> > [ 1.677253] usbcore: registered new interface driver zaurus
> > [ 1.683851] usbcore: registered new interface driver cdc_ncm
> > [ 1.691998] usbcore: registered new interface driver cdc_wdm
> > [ 1.698149] Initializing USB Mass Storage driver...
> > [ 1.703927] usbcore: registered new interface driver usb-storage
> > [ 1.710287] USB Mass Storage support registered.
> > [ 1.715804] usbcore: registered new interface driver usbtest
> > [ 1.724258] mousedev: PS/2 mouse device common for all mice
> > [ 1.735860] omap_rtc 44e3e000.rtc: rtc core: registered
> 44e3e000.rtc as rtc0
> > [ 1.745083] i2c /dev entries driver
> > [ 1.751902] Driver for 1-wire Dallas network protocol.
> > [ 1.762053] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial
> timeout 60 sec
> > [ 1.773746] omap-dma-engine omap-dma-engine: allocating channel
> for 25
>
> Because the EDMA DMA engine driver isn't active, the driver tries to
> use
> the OMAP DMA engine driver.
>
> > [ 1.780741] BUG: spinlock bad magic on CPU#0, swapper/0/1
> > [ 1.786477] lock: dma_chan_lock+0x0/0x20, .magic: 00000000,
> .owner: <none>/-1, .owner_cpu: 0
> > [ 1.795523] [<c001acb8>] (unwind_backtrace+0x0/0xf0) from
> [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c)
> > [ 1.805284] [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c) from
> [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58)
> > [ 1.815692] [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58) from
> [<c0040450>] (omap_request_dma+0x24/0x1b8)
> > [ 1.826014] [<c0040450>] (omap_request_dma+0x24/0x1b8) from
> [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
> > [ 1.836970] [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
> from [<c02fdfc8>] (dma_chan_get+0x5c/0xfc)
> > [ 1.847457] [<c02fdfc8>] (dma_chan_get+0x5c/0xfc) from
> [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0)
> > [ 1.857322] [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0) from
> [<c0422398>] (omap_hsmmc_probe+0x38c/0x908)
> > [ 1.867732] [<c0422398>] (omap_hsmmc_probe+0x38c/0x908) from
> [<c0339dc4>] (platform_drv_probe+0x18/0x1c)
> > [ 1.877767] [<c0339dc4>] (platform_drv_probe+0x18/0x1c) from
> [<c0338a68>] (really_probe+0x74/0x200)
> > [ 1.887342] [<c0338a68>] (really_probe+0x74/0x200) from
> [<c0338d0c>] (driver_probe_device+0x30/0x48)
> > [ 1.897010] [<c0338d0c>] (driver_probe_device+0x30/0x48) from
> [<c0338db8>] (__driver_attach+0x94/0x98)
> > [ 1.906860] [<c0338db8>] (__driver_attach+0x94/0x98) from
> [<c0337424>] (bus_for_each_dev+0x64/0x88)
> > [ 1.916433] [<c0337424>] (bus_for_each_dev+0x64/0x88) from
> [<c03383a8>] (bus_add_driver+0x1c0/0x240)
> > [ 1.926098] [<c03383a8>] (bus_add_driver+0x1c0/0x240) from
> [<c03392ec>] (driver_register+0x78/0x144)
> > [ 1.935758] [<c03392ec>] (driver_register+0x78/0x144) from
> [<c00086a4>] (do_one_initcall+0x34/0x180)
> > [ 1.945432] [<c00086a4>] (do_one_initcall+0x34/0x180) from
> [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8)
> > [ 1.955553] [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8) from
> [<c0502664>] (kernel_init+0x8/0xe4)
> > [ 1.965139] [<c0502664>] (kernel_init+0x8/0xe4) from [<c00133f0>]
> (ret_from_fork+0x14/0x24)
> > [ 1.974061] omap_hsmmc mmc.3: unable to obtain RX DMA engine
> channel 25
> > [ 1.982218] ledtrig-cpu: registered to indicate activity on CPUs
> > [ 1.989997] usbcore: registered new interface driver usbhid
> > [ 1.995997] usbhid: USB HID core driver
> > [ 2.001076] oprofile: using arm/armv7
> > [ 2.005481] TCP: cubic registered
> > [ 2.008992] Initializing XFRM netlink socket
> > [ 2.013601] NET: Registered protocol family 17
> > [ 2.018370] NET: Registered protocol family 15
> > [ 2.023292] Key type dns_resolver registered
> > [ 2.027918] VFP support v0.3: implementor 41 architecture 3 part
> 30 variant c rev 3
> > [ 2.036074] ThumbEE CPU extension supported.
> > [ 2.103314] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
> > [ 2.109789] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
> > [ 2.117400] libphy: 4a101000.mdio: probed
> > [ 2.121661] davinci_mdio 4a101000.mdio: phy[0]: device
> 4a101000.mdio:00, driver unknown
> > [ 2.130442] Random MACID = aa:e0:1c:4f:40:25
> > [ 2.137280] of_get_named_gpio_flags exited with status 2
> > [ 2.143115] of_get_named_gpio_flags exited with status 3
> > [ 2.149951] input: volume_keys.7 as
> /devices/volume_keys.7/input/input0
> > [ 2.158349] omap_rtc 44e3e000.rtc: setting system clock to 2000-
> 01-01 00:00:01 UTC (946684801)
> > [ 2.168602] Waiting for root device /dev/mmcblk0p2...
> >
> >
> > Thanks.
> > Vaibhav
> > _______________________________________________
> > devicetree-discuss mailing list
> > [email protected]
> > https://lists.ozlabs.org/listinfo/devicetree-discuss
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?Ý¢j"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?

2013-03-07 15:00:09

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support


> -----Original Message-----
> From: Hiremath, Vaibhav
> Sent: Thursday, March 07, 2013 8:24 PM
> To: Porter, Matt
> Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T; Devicetree
> Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> ARM Kernel List
> Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> > -----Original Message-----
> > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> Matt
> > Sent: Thursday, March 07, 2013 8:17 PM
> > To: Hiremath, Vaibhav
> > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> Devicetree
> > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> > ARM Kernel List
> > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> >
> > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > >
> > > > -----Original Message-----
> > > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> > Matt
> > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > To: Hiremath, Vaibhav
> > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
> List;
> > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > >
> > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > > > > > -----Original Message-----
> > > > > > From: [email protected] [mailto:linux-omap-
> > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
> Tony
> > > > > > Lindgren; Russell King
> > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
> List;
> > > > Linux
> > > > > > Kernel Mailing List; Linux MMC List
> > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > >
<snip>
>
> I believe you meant "CONFIG_TI_EDMA" right?
>
> Yes, I just enabled it and the result is still same.
>
>
>
> [root@arago /]# dmesg | grep -ir mmc
> [ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
> [ 0.506970] vmmc: supplied by vbat
> [root@arago /]#
> [root@arago /]#
> [root@arago /]# dmesg | grep -ir dma
> [ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent
> allocations
> [ 0.236321] platform 49000000.edma: alias fck already exists
> [ 0.236360] platform 49000000.edma: alias fck already exists
> [ 0.236381] platform 49000000.edma: alias fck already exists
> [ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine
> driver
> [ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
> [root@arago /]#
> [root@arago /]#
>
>
I have applied below patches from your recent post


[2/2] ARM: dts: add AM33XX MMC support
[1/2] mmc: omap_hsmmc: set max_segs based on dma engine limits
[v4,3/3] mmc: davinci: get SG segment limits with dma_get_slave_sg_limits()
[v4,2/3] dma: edma: add device_slave_sg_limits() support
[v4,1/3] dmaengine: add dma_get_slave_sg_limits()
[v9,9/9] ARM: dts: add AM33XX SPI DMA support
[v9,8/9] spi: omap2-mcspi: add generic DMA request support to the DT binding
[v9,7/9] spi: omap2-mcspi: convert to dma_request_slave_channel_compat()
[v9,6/9] ARM: dts: add AM33XX EDMA support
[v9,5/9] dmaengine: edma: Add TI EDMA device tree binding
[v9,4/9] dmaengine: edma: enable build for AM33XX
[v9,3/9] ARM: edma: add AM33XX support to the private EDMA API
[v9,2/9] ARM: edma: remove unused transfer controller handlers
[v9,1/9] ARM: davinci: move private EDMA API to arm/common
[v3,2/2] mmc: omap_hsmmc: add generic DMA request support to the DT binding
[v3,1/2] mmc: omap_hsmmc: convert to dma_request_slave_channel_compat()



Am I missing anything here?

Thanks,
Vaibhav


????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?Ý¢j"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?

2013-03-07 15:00:21

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 02:53:51PM +0000, Vaibhav Hiremath wrote:
> > -----Original Message-----
> > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> > Sent: Thursday, March 07, 2013 8:17 PM
> > To: Hiremath, Vaibhav
> > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T; Devicetree
> > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> > ARM Kernel List
> > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> >
> > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > >
> > > > -----Original Message-----
> > > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> > Matt
> > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > To: Hiremath, Vaibhav
> > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel List;
> > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > >
> > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > > > > > -----Original Message-----
> > > > > > From: [email protected] [mailto:linux-omap-
> > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > > > Lindgren; Russell King
> > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP List;
> > > > Linux
> > > > > > Kernel Mailing List; Linux MMC List
> > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > >
> > > > > > Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> > > > > > am335x-evmsk.
> > > > > >
> > > > > > Signed-off-by: Matt Porter <[email protected]>
> > > > > > Acked-by: Tony Lindgren <[email protected]>
> > > > > > ---
> > > > > > arch/arm/boot/dts/am335x-bone.dts | 7 +++++++
> > > > > > arch/arm/boot/dts/am335x-evm.dts | 7 +++++++
> > > > > > arch/arm/boot/dts/am335x-evmsk.dts | 7 +++++++
> > > > > > arch/arm/boot/dts/am33xx.dtsi | 28
> > > > ++++++++++++++++++++++++++++
> > > > > > 4 files changed, 49 insertions(+)
> > > > > >
> > > > > > diff --git a/arch/arm/boot/dts/am335x-bone.dts
> > > > > > b/arch/arm/boot/dts/am335x-bone.dts
> > > > > > index 11b240c..a154ce0 100644
> > > > > > --- a/arch/arm/boot/dts/am335x-bone.dts
> > > > > > +++ b/arch/arm/boot/dts/am335x-bone.dts
> > > > > > @@ -120,6 +120,8 @@
> > > > > > };
> > > > > >
> > > > > > ldo3_reg: regulator@5 {
> > > > > > + regulator-min-microvolt = <1800000>;
> > > > > > + regulator-max-microvolt = <3300000>;
> > > > > > regulator-always-on;
> > > > > > };
> > > > > >
> > > > > > @@ -136,3 +138,8 @@
> > > > > > &cpsw_emac1 {
> > > > > > phy_id = <&davinci_mdio>, <1>;
> > > > > > };
> > > > > > +
> > > > > > +&mmc1 {
> > > > > > + status = "okay";
> > > > > > + vmmc-supply = <&ldo3_reg>;
> > > > > > +};
> > > > > > diff --git a/arch/arm/boot/dts/am335x-evm.dts
> > > > > > b/arch/arm/boot/dts/am335x-evm.dts
> > > > > > index d649644..2907da6 100644
> > > > > > --- a/arch/arm/boot/dts/am335x-evm.dts
> > > > > > +++ b/arch/arm/boot/dts/am335x-evm.dts
> > > > > > @@ -232,6 +232,8 @@
> > > > > > };
> > > > > >
> > > > > > vmmc_reg: regulator@12 {
> > > > > > + regulator-min-microvolt = <1800000>;
> > > > > > + regulator-max-microvolt = <3300000>;
> > > > > > regulator-always-on;
> > > > > > };
> > > > > > };
> > > > > > @@ -244,3 +246,8 @@
> > > > > > &cpsw_emac1 {
> > > > > > phy_id = <&davinci_mdio>, <1>;
> > > > > > };
> > > > > > +
> > > > > > +&mmc1 {
> > > > > > + status = "okay";
> > > > > > + vmmc-supply = <&vmmc_reg>;
> > > > > > +};
> > > > > > diff --git a/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > > b/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > > index f5a6162..f050c46 100644
> > > > > > --- a/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > > +++ b/arch/arm/boot/dts/am335x-evmsk.dts
> > > > > > @@ -244,7 +244,14 @@
> > > > > > };
> > > > > >
> > > > > > vmmc_reg: regulator@12 {
> > > > > > + regulator-min-microvolt = <1800000>;
> > > > > > + regulator-max-microvolt = <3300000>;
> > > > > > regulator-always-on;
> > > > > > };
> > > > > > };
> > > > > > };
> > > > > > +
> > > > > > +&mmc1 {
> > > > > > + status = "okay";
> > > > > > + vmmc-supply = <&vmmc_reg>;
> > > > > > +};
> > > > > > diff --git a/arch/arm/boot/dts/am33xx.dtsi
> > > > > > b/arch/arm/boot/dts/am33xx.dtsi
> > > > > > index c3c781a..e029eea 100644
> > > > > > --- a/arch/arm/boot/dts/am33xx.dtsi
> > > > > > +++ b/arch/arm/boot/dts/am33xx.dtsi
> > > > > > @@ -234,6 +234,34 @@
> > > > > > status = "disabled";
> > > > > > };
> > > > > >
> > > > > > + mmc1: mmc@48060000 {
> > > > > > + compatible = "ti,omap3-hsmmc";
> > > > > > + ti,hwmods = "mmc1";
> > > > > > + ti,dual-volt;
> > > > > > + ti,needs-special-reset;
> > > > > > + dmas = <&edma 24
> > > > > > + &edma 25>;
> > > > > > + dma-names = "tx", "rx";
> > > > > > + status = "disabled";
> > > > > > + };
> > > > > > +
> > > > > > + mmc2: mmc@481d8000 {
> > > > > > + compatible = "ti,omap3-hsmmc";
> > > > > > + ti,hwmods = "mmc2";
> > > > > > + ti,needs-special-reset;
> > > > > > + dmas = <&edma 2
> > > > > > + &edma 3>;
> > > > > > + dma-names = "tx", "rx";
> > > > > > + status = "disabled";
> > > > > > + };
> > > > > > +
> > > > > > + mmc3: mmc@47810000 {
> > > > > > + compatible = "ti,omap3-hsmmc";
> > > > > > + ti,hwmods = "mmc3";
> > > > > > + ti,needs-special-reset;
> > > > > > + status = "disabled";
> > > > > > + };
> > > > > Any specific reason why you did not add edma entry here as well?
> > > >
> > > > Yes, I've answered this one before and I think this illustrates a
> > need
> > > > for a comment in the .dtsi. mmc3 edma event are on the crossbar and
> > so
> > > > the event that will be mapped is system-specific. Since Luca is
> > still
> > > > working on DT support for WiLink, there's no way to show an example
> > of
> > > > how this is used upstream as that's the only in-kernel user.
> > > >
> > > > I have a test driver I've cited in the postings that shows how the
> > > > crossbar is configured via the board .dts. It doesn't belong in the
> > > > .dtsi, however, in this case. When WiLink DT support is ready we
> > can
> > > > have an entry in the am335x-evmsk.dts that shows this case.
> > > >
> > > > > Also, I wonder why "interrupt" property is not coming here, I
> > > > understand
> > > > > That hwmod is filling the gap here; but I would still recommend
> > you
> > > > to complete
> > > > > The DT node, as we only support DT boot.
> > > >
> > > > Yeah, I only added needed properties so as to not confuse people as
> > to
> > > > where the interrupt resources are coming from. If you feel strongly
> > > > about this I don't have a problem with adding unused data in the
> > dts.
> > > > I suppose this will help clear things to have a switch away from
> > using
> > > > the hwmod data.
> > >
> > > Its not true, if you specify interrupt property in the DTS file
> > > It is being used. Please refer to the omap_device.c file. I am
> > pasting
> > > Comments from code for your reference -
> > >
> > >
> > > 389 /*
> > > 390 * Non-DT Boot:
> > > 391 * Here, pdev->num_resources = 0, and we should get all
> > the
> > > 392 * resources from hwmod.
> > > 393 *
> > > 394 * DT Boot:
> > > 395 * OF framework will construct the resource structure
> > (currently
> > > 396 * does for MEM & IRQ resource) and we should
> > respect/use these
> > > 397 * resources, killing hwmod dependency.
> > > 398 * If pdev->num_resources > 0, we assume that MEM & IRQ
> > resources
> > > 399 * have been allocated by OF layer already (through
> > DTB).
> > > 400 * As preparation for the future we examine the OF
> > provided resources
> > > 401 * to see if we have DMA resources provided already. In
> > this case
> > > 402 * there is no need to update the resources for the
> > device, we use the
> > > 403 * OF provided ones.
> > > 404 *
> > > 405 * TODO: Once DMA resource is available from OF layer, we
> > should
> > > 406 * kill filling any resources from hwmod.
> > > 407 */
> >
> > Ok thanks, we'll add it in.
> >
> > > >
> > > > > I will test the whole patch series today and update you.
> > > >
> > > I just booted up the EVM with all the patches you have submitted
> > recently,
> > > There are two issues I can see,
> > >
> > > 1. Stack dump from MMC driver.
> > > This happens because you do not have "interrupt" property mentioned
> > > In the dts file. I have added "interrupt" property and dump went
> > away.
> > >
> > > 2. And MMC rootFS mount is __not__ working for me.
> > >
> > > 3. I get following error message -
> > >
> > > [ 2.118207] omap_hsmmc mmc.3: unable to obtain RX DMA engine
> > channel 25
> >
> > See below, you don't have CONFIG_EDMA on most likely.
> >
>
> I believe you meant "CONFIG_TI_EDMA" right?
>
> Yes, I just enabled it and the result is still same.

yeah, followed up to correct that.

>
>
>
> [root@arago /]# dmesg | grep -ir mmc
> [ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
> [ 0.506970] vmmc: supplied by vbat
> [root@arago /]#
> [root@arago /]#
> [root@arago /]# dmesg | grep -ir dma
> [ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent allocations
> [ 0.236321] platform 49000000.edma: alias fck already exists
> [ 0.236360] platform 49000000.edma: alias fck already exists
> [ 0.236381] platform 49000000.edma: alias fck already exists
> [ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
> [ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
> [root@arago /]#
> [root@arago /]#

What's the full log now? At least that fragment you show me is better,
you now have the correct dmaengine driver active.

-Matt

> > > Boot Log:
> > > ======================================
> > >
> > > U-Boot# mmc rescan 0
> > > U-Boot# fatload mmc 0 82000000 uImage
> > > reading uImage
> > > 4026992 bytes read in 441 ms (8.7 MiB/s)
> > > U-Boot# fatload mmc 0 81000000 am335x-evm.dtb
> > > reading am335x-evm.dtb
> > > 11371 bytes read in 10 ms (1.1 MiB/s)
> > > U-Boot# run mmcargs
> > > U-Boot# bootm 82000000 - 81000000
> > > ## Booting kernel from Legacy Image at 82000000 ...
> > > Image Name: Linux
> > > Image Type: ARM Linux Kernel Image (uncompressed)
> > > Data Size: 4026928 Bytes = 3.8 MiB
> > > Load Address: 80008000
> > > Entry Point: 80008000
> > > Verifying Checksum ... OK
> > > ## Flattened Device Tree blob at 81000000
> > > Booting using the fdt blob at 0x81000000
> > > Loading Kernel Image ... OK
> > > OK
> > > Using Device Tree in place at 81000000, end 81005c6a
> > >
> > > Starting kernel ...
> > >
> > > [ 0.000000] Booting Linux on physical CPU 0x0
> > > [ 0.000000] Linux version 3.9.0-rc1-00122-g106e3c6
> > (XXX@psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #2
> > SMP Thu Mar 7 16:57:39 IST 2013
> > > [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7),
> > cr=10c53c7d
> > > [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> > instruction cache
> > > [ 0.000000] Machine: Generic AM33XX (Flattened Device Tree),
> > model: TI AM335x EVM
> > > [ 0.000000] cma: CMA: reserved 16 MiB at ae800000
> > > [ 0.000000] Memory policy: ECC disabled, Data cache writeback
> > > [ 0.000000] CPU: All CPU(s) started in SVC mode.
> > > [ 0.000000] AM335X ES2.0 (neon )
> > > [ 0.000000] PERCPU: Embedded 9 pages/cpu @c181d000 s13632 r8192
> > d15040 u36864
> > > [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on.
> > Total pages: 260368
> > > [ 0.000000] Kernel command line: console=ttyO0,115200n8
> > root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
> > > [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
> > > [ 0.000000] Dentry cache hash table entries: 131072 (order: 7,
> > 524288 bytes)
> > > [ 0.000000] Inode-cache hash table entries: 65536 (order: 6,
> > 262144 bytes)
> > > [ 0.000000] __ex_table already sorted, skipping sort
> > > [ 0.000000] Memory: 1023MB = 1023MB total
> > > [ 0.000000] Memory: 1008260k/1008260k available, 40316k reserved,
> > 269312K highmem
> > > [ 0.000000] Virtual kernel memory layout:
> > > [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
> > > [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
> > > [ 0.000000] vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
> > > [ 0.000000] lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
> > > [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
> > > [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
> > > [ 0.000000] .text : 0xc0008000 - 0xc071fa34 (7263 kB)
> > > [ 0.000000] .init : 0xc0720000 - 0xc0775540 ( 342 kB)
> > > [ 0.000000] .data : 0xc0776000 - 0xc080f0e0 ( 613 kB)
> > > [ 0.000000] .bss : 0xc080f0e0 - 0xc0d6a348 (5485 kB)
> > > [ 0.000000] Hierarchical RCU implementation.
> > > [ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
> > > [ 0.000000] NR_IRQS:16 nr_irqs:16 16
> > > [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with
> > 128 interrupts
> > > [ 0.000000] Total of 128 interrupts on 1 active controller
> > > [ 0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
> > > [ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps
> > every 178956ms
> > > [ 0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
> > > [ 0.000000] Console: colour dummy device 80x30
> > > [ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat,
> > Inc., Ingo Molnar
> > > [ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8
> > > [ 0.000000] ... MAX_LOCK_DEPTH: 48
> > > [ 0.000000] ... MAX_LOCKDEP_KEYS: 8191
> > > [ 0.000000] ... CLASSHASH_SIZE: 4096
> > > [ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384
> > > [ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768
> > > [ 0.000000] ... CHAINHASH_SIZE: 16384
> > > [ 0.000000] memory used by lock dependency info: 3695 kB
> > > [ 0.000000] per task-struct memory footprint: 1152 bytes
> > > [ 0.000989] Calibrating delay loop... 530.84 BogoMIPS
> > (lpj=2654208)
> > > [ 0.109762] pid_max: default: 32768 minimum: 301
> > > [ 0.110250] Security Framework initialized
> > > [ 0.110399] Mount-cache hash table entries: 512
> > > [ 0.121898] CPU: Testing write buffer coherency: ok
> > > [ 0.123398] CPU0: thread -1, cpu 0, socket -1, mpidr 0
> > > [ 0.123476] Setting up static identity map for 0xc0510518 -
> > 0xc0510588
> > > [ 0.126105] Brought up 1 CPUs
> > > [ 0.126130] SMP: Total of 1 processors activated (530.84
> > BogoMIPS).
> > > [ 0.126142] CPU: All CPU(s) started in SVC mode.
> > > [ 0.129134] devtmpfs: initialized
> > > [ 0.199323] pinctrl core: initialized pinctrl subsystem
> > > [ 0.205505] regulator-dummy: no parameters
> > > [ 0.209247] NET: Registered protocol family 16
> > > [ 0.217051] DMA: preallocated 256 KiB pool for atomic coherent
> > allocations
> > > [ 0.236271] platform 49000000.edma: alias fck already exists
> > > [ 0.236311] platform 49000000.edma: alias fck already exists
> > > [ 0.236333] platform 49000000.edma: alias fck already exists
> >
> > This is from the private edma api.
> >
> > > [ 0.241486] OMAP GPIO hardware version 0.1
> > > [ 0.265045] No ATAGs?
> > > [ 0.265073] hw-breakpoint: debug architecture 0x4 unsupported.
> > > [ 0.271061] Serial: AMBA PL011 UART driver
> > > [ 0.329077] bio: create slab <bio-0> at 0
> > > [ 0.406141] omap-dma-engine omap-dma-engine: OMAP DMA engine
> > driver
> >
> > Only OMAP dmaengine driver appears to be built in.
> >
> > > [ 0.408010] vbat: 5000 mV
> > > [ 0.409244] lis3_reg: no parameters
> > > [ 0.417237] SCSI subsystem initialized
> > > [ 0.419384] usbcore: registered new interface driver usbfs
> > > [ 0.420409] usbcore: registered new interface driver hub
> > > [ 0.421312] usbcore: registered new device driver usb
> > > [ 0.423218] omap_i2c 44e0b000.i2c: did not get pins for i2c error:
> > -19
> > > [ 0.425064] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
> > > [ 0.427105] tps65910 0-002d: No interrupt support, no core IRQ
> > > [ 0.433470] vrtc: 1800 mV
> > > [ 0.433880] vrtc: supplied by vbat
> > > [ 0.437014] vio: at 1500 mV
> > > [ 0.437157] vio: supplied by vbat
> > > [ 0.440177] vdd_mpu: 912 <--> 1312 mV at 1262 mV
> > > [ 0.440331] vdd_mpu: supplied by vbat
> > > [ 0.443151] vdd_core: 912 <--> 1150 mV at 1137 mV
> > > [ 0.443293] vdd_core: supplied by vbat
> > > [ 0.445806] vdd3: 5000 mV
> > > [ 0.448346] vdig1: at 1800 mV
> > > [ 0.448486] vdig1: supplied by vbat
> > > [ 0.451824] vdig2: at 1800 mV
> > > [ 0.451967] vdig2: supplied by vbat
> > > [ 0.454524] vpll: at 1800 mV
> > > [ 0.454652] vpll: supplied by vbat
> > > [ 0.457185] vdac: at 1800 mV
> > > [ 0.457311] vdac: supplied by vbat
> > > [ 0.459975] vaux1: at 1800 mV
> > > [ 0.460112] vaux1: supplied by vbat
> > > [ 0.462698] vaux2: at 3300 mV
> > > [ 0.462830] vaux2: supplied by vbat
> > > [ 0.465339] vaux33: at 3300 mV
> > > [ 0.465466] vaux33: supplied by vbat
> > > [ 0.467947] vmmc: omap_i2c 4802a000.i2c: did not get pins for i2c
> > error: -19
> > > [ 0.471641] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
> > > [ 0.482881] Switching to clocksource gp_timer
> > > [ 0.607600] NET: Registered protocol family 2
> > > [ 0.609603] TCP established hash table entries: 8192 (order: 4,
> > 65536 bytes)
> > > [ 0.609956] TCP bind hash table entries: 8192 (order: 6, 294912
> > bytes)
> > > [ 0.613521] TCP: Hash tables configured (established 8192 bind
> > 8192)
> > > [ 0.613821] TCP: reno registered
> > > [ 0.613863] UDP hash table entries: 512 (order: 3, 40960 bytes)
> > > [ 0.614323] UDP-Lite hash table entries: 512 (order: 3, 40960
> > bytes)
> > > [ 0.615553] NET: Registered protocol family 1
> > > [ 0.617700] RPC: Registered named UNIX socket transport module.
> > > [ 0.617727] RPC: Registered udp transport module.
> > > [ 0.617739] RPC: Registered tcp transport module.
> > > [ 0.617752] RPC: Registered tcp NFSv4.1 backchannel transport
> > module.
> > > [ 0.618827] NetWinder Floating Point Emulator V0.97 (double
> > precision)
> > > [ 0.619316] CPU PMU: probing PMU on CPU 0
> > > [ 0.619350] hw perfevents: enabled with ARMv7 Cortex-A8 PMU
> > driver, 5 counters available
> > > [ 0.776940] bounce pool size: 64 pages
> > > [ 0.777782] VFS: Disk quotas dquot_6.5.2
> > > [ 0.777995] Dquot-cache hash table entries: 1024 (order 0, 4096
> > bytes)
> > > [ 0.780682] NFS: Registering the id_resolver key type
> > > [ 0.781239] Key type id_resolver registered
> > > [ 0.781263] Key type id_legacy registered
> > > [ 0.781406] jffs2: version 2.2. (NAND) (SUMMARY) ? 2001-2006 Red
> > Hat, Inc.
> > > [ 0.781933] msgmni has been set to 1475
> > > [ 0.785529] io scheduler noop registered
> > > [ 0.785553] io scheduler deadline registered
> > > [ 0.785652] io scheduler cfq registered (default)
> > > [ 0.787072] pinctrl-single 44e10800.pinmux: 142 pins at pa
> > f9e10800 size 568
> > > [ 0.791600] Serial: 8250/16550 driver, 4 ports, IRQ sharing
> > enabled
> > > [ 0.798575] omap_uart 44e09000.serial: did not get pins for uart0
> > error: -19
> > > [ 0.799200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88)
> > is a OMAP UART0
> > > [ 1.549008] console [ttyO0] enabled
> > > [ 1.586206] brd: module loaded
> > > [ 1.608954] loop: module loaded
> > > [ 1.617979] mtdoops: mtd device (mtddev=name/number) must be
> > supplied
> > > [ 1.626230] OneNAND driver initializing
> > > [ 1.636711] usbcore: registered new interface driver asix
> > > [ 1.642874] usbcore: registered new interface driver ax88179_178a
> > > [ 1.650170] usbcore: registered new interface driver cdc_ether
> > > [ 1.657216] usbcore: registered new interface driver smsc95xx
> > > [ 1.663954] usbcore: registered new interface driver net1080
> > > [ 1.670358] usbcore: registered new interface driver cdc_subset
> > > [ 1.677253] usbcore: registered new interface driver zaurus
> > > [ 1.683851] usbcore: registered new interface driver cdc_ncm
> > > [ 1.691998] usbcore: registered new interface driver cdc_wdm
> > > [ 1.698149] Initializing USB Mass Storage driver...
> > > [ 1.703927] usbcore: registered new interface driver usb-storage
> > > [ 1.710287] USB Mass Storage support registered.
> > > [ 1.715804] usbcore: registered new interface driver usbtest
> > > [ 1.724258] mousedev: PS/2 mouse device common for all mice
> > > [ 1.735860] omap_rtc 44e3e000.rtc: rtc core: registered
> > 44e3e000.rtc as rtc0
> > > [ 1.745083] i2c /dev entries driver
> > > [ 1.751902] Driver for 1-wire Dallas network protocol.
> > > [ 1.762053] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial
> > timeout 60 sec
> > > [ 1.773746] omap-dma-engine omap-dma-engine: allocating channel
> > for 25
> >
> > Because the EDMA DMA engine driver isn't active, the driver tries to
> > use
> > the OMAP DMA engine driver.
> >
> > > [ 1.780741] BUG: spinlock bad magic on CPU#0, swapper/0/1
> > > [ 1.786477] lock: dma_chan_lock+0x0/0x20, .magic: 00000000,
> > .owner: <none>/-1, .owner_cpu: 0
> > > [ 1.795523] [<c001acb8>] (unwind_backtrace+0x0/0xf0) from
> > [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c)
> > > [ 1.805284] [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c) from
> > [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58)
> > > [ 1.815692] [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58) from
> > [<c0040450>] (omap_request_dma+0x24/0x1b8)
> > > [ 1.826014] [<c0040450>] (omap_request_dma+0x24/0x1b8) from
> > [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
> > > [ 1.836970] [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
> > from [<c02fdfc8>] (dma_chan_get+0x5c/0xfc)
> > > [ 1.847457] [<c02fdfc8>] (dma_chan_get+0x5c/0xfc) from
> > [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0)
> > > [ 1.857322] [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0) from
> > [<c0422398>] (omap_hsmmc_probe+0x38c/0x908)
> > > [ 1.867732] [<c0422398>] (omap_hsmmc_probe+0x38c/0x908) from
> > [<c0339dc4>] (platform_drv_probe+0x18/0x1c)
> > > [ 1.877767] [<c0339dc4>] (platform_drv_probe+0x18/0x1c) from
> > [<c0338a68>] (really_probe+0x74/0x200)
> > > [ 1.887342] [<c0338a68>] (really_probe+0x74/0x200) from
> > [<c0338d0c>] (driver_probe_device+0x30/0x48)
> > > [ 1.897010] [<c0338d0c>] (driver_probe_device+0x30/0x48) from
> > [<c0338db8>] (__driver_attach+0x94/0x98)
> > > [ 1.906860] [<c0338db8>] (__driver_attach+0x94/0x98) from
> > [<c0337424>] (bus_for_each_dev+0x64/0x88)
> > > [ 1.916433] [<c0337424>] (bus_for_each_dev+0x64/0x88) from
> > [<c03383a8>] (bus_add_driver+0x1c0/0x240)
> > > [ 1.926098] [<c03383a8>] (bus_add_driver+0x1c0/0x240) from
> > [<c03392ec>] (driver_register+0x78/0x144)
> > > [ 1.935758] [<c03392ec>] (driver_register+0x78/0x144) from
> > [<c00086a4>] (do_one_initcall+0x34/0x180)
> > > [ 1.945432] [<c00086a4>] (do_one_initcall+0x34/0x180) from
> > [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8)
> > > [ 1.955553] [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8) from
> > [<c0502664>] (kernel_init+0x8/0xe4)
> > > [ 1.965139] [<c0502664>] (kernel_init+0x8/0xe4) from [<c00133f0>]
> > (ret_from_fork+0x14/0x24)
> > > [ 1.974061] omap_hsmmc mmc.3: unable to obtain RX DMA engine
> > channel 25
> > > [ 1.982218] ledtrig-cpu: registered to indicate activity on CPUs
> > > [ 1.989997] usbcore: registered new interface driver usbhid
> > > [ 1.995997] usbhid: USB HID core driver
> > > [ 2.001076] oprofile: using arm/armv7
> > > [ 2.005481] TCP: cubic registered
> > > [ 2.008992] Initializing XFRM netlink socket
> > > [ 2.013601] NET: Registered protocol family 17
> > > [ 2.018370] NET: Registered protocol family 15
> > > [ 2.023292] Key type dns_resolver registered
> > > [ 2.027918] VFP support v0.3: implementor 41 architecture 3 part
> > 30 variant c rev 3
> > > [ 2.036074] ThumbEE CPU extension supported.
> > > [ 2.103314] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
> > > [ 2.109789] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
> > > [ 2.117400] libphy: 4a101000.mdio: probed
> > > [ 2.121661] davinci_mdio 4a101000.mdio: phy[0]: device
> > 4a101000.mdio:00, driver unknown
> > > [ 2.130442] Random MACID = aa:e0:1c:4f:40:25
> > > [ 2.137280] of_get_named_gpio_flags exited with status 2
> > > [ 2.143115] of_get_named_gpio_flags exited with status 3
> > > [ 2.149951] input: volume_keys.7 as
> > /devices/volume_keys.7/input/input0
> > > [ 2.158349] omap_rtc 44e3e000.rtc: setting system clock to 2000-
> > 01-01 00:00:01 UTC (946684801)
> > > [ 2.168602] Waiting for root device /dev/mmcblk0p2...
> > >
> > >
> > > Thanks.
> > > Vaibhav
> > > _______________________________________________
> > > devicetree-discuss mailing list
> > > [email protected]
> > > https://lists.ozlabs.org/listinfo/devicetree-discuss
> _______________________________________________
> devicetree-discuss mailing list
> [email protected]
> https://lists.ozlabs.org/listinfo/devicetree-discuss

2013-03-07 15:03:22

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support


> -----Original Message-----
> From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> Sent: Thursday, March 07, 2013 8:31 PM
> To: Hiremath, Vaibhav
> Cc: Chris Ball; Russell King; Krishnamoorthy, Balaji T; Devicetree
> Discuss; Linux MMC List; Linux Kernel Mailing List; Linux OMAP List;
> Linux ARM Kernel List
> Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> On Thu, Mar 07, 2013 at 02:53:51PM +0000, Vaibhav Hiremath wrote:
> > > -----Original Message-----
> > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> Matt
> > > Sent: Thursday, March 07, 2013 8:17 PM
> > > To: Hiremath, Vaibhav
> > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> Devicetree
> > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
> Linux
> > > ARM Kernel List
> > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > >
> > > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > > >
> > > > > -----Original Message-----
> > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of
> Porter,
> > > Matt
> > > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > > To: Hiremath, Vaibhav
> > > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
> List;
> > > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > >
> > > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath
> wrote:
> > > > > > > -----Original Message-----
> > > > > > > From: [email protected] [mailto:linux-omap-
> > > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
> Tony
> > > > > > > Lindgren; Russell King
> > > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
> List;
> > > > > Linux
> > > > > > > Kernel Mailing List; Linux MMC List
> > > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > >
> > > > > > > Adds AM33XX MMC support for am335x-bone, am335x-evm, and
> > > > > > > am335x-evmsk.
> > > > > > >
<snip>
>
> What's the full log now? At least that fragment you show me is better,
> you now have the correct dmaengine driver active.
>

Here we go.....


Boot Log:
==========================


U-Boot# mmc rescan 0
U-Boot# fatload mmc 0 80000000 am335x-evm.dtb
reading am335x-evm.dtb
11419 bytes read in 10 ms (1.1 MiB/s)
U-Boot# fatload mmc 0 81000000 uImage
reading uImage
4029168 bytes read in 441 ms (8.7 MiB/s)
U-Boot# fatload mmc 0 82000000 ramdisk.ext2.gz
reading ramdisk.ext2.gz
3274441 bytes read in 363 ms (8.6 MiB/s)
U-Boot# setenv bootargs mem=256M console=ttyO0,115200n8 root=/dev/ram rw initrd=0x82000000,16MB ramdisk_size=65536 earlyprintk=serial omap_debugss_en
U-Boot# bootm 81000000 - 80000000
## Booting kernel from Legacy Image at 81000000 ...
Image Name: Linux-3.9.0-rc1-00124-g68f2d92-d
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4029104 Bytes = 3.8 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 80000000
Booting using the fdt blob at 0x80000000
Loading Kernel Image ... OK
OK
Using Device Tree in place at 80000000, end 80005c9a

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.9.0-rc1-00124-g68f2d92-dirty (XXX@psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #5 SMP Thu Mar 7 20:19:23 IST 2013
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x EVM
[ 0.000000] cma: CMA: reserved 16 MiB at 8e800000
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.0 (neon )
[ 0.000000] PERCPU: Embedded 9 pages/cpu @c0f75000 s13632 r8192 d15040 u36864
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64768
[ 0.000000] Kernel command line: mem=256M console=ttyO0,115200n8 root=/dev/ram rw initrdD hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] __ex_table already sorted, skipping sort
[ 0.000000] Memory: 255MB = 255MB total
[ 0.000000] Memory: 212236k/212236k available, 49908k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc071fa94 (7263 kB)
[ 0.000000] .init : 0xc0720000 - 0xc0775540 ( 342 kB)
[ 0.000000] .data : 0xc0776000 - 0xc080f120 ( 613 kB)
[ 0.000000] .bss : 0xc080f120 - 0xc0d6a3c8 (5485 kB)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[ 0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.000000] ... MAX_LOCK_DEPTH: 48
[ 0.000000] ... MAX_LOCKDEP_KEYS: 8191
[ 0.000000] ... CLASSHASH_SIZE: 4096
[ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384
[ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768
[ 0.000000] ... CHAINHASH_SIZE: 16384
[ 0.000000] memory used by lock dependency info: 3695 kB
[ 0.000000] per task-struct memory footprint: 1152 bytes
[ 0.000973] Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
[ 0.109762] pid_max: default: 32768 minimum: 301
[ 0.110242] Security Framework initialized
[ 0.110391] Mount-cache hash table entries: 512
[ 0.121881] CPU: Testing write buffer coherency: ok
[ 0.123371] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.123454] Setting up static identity map for 0xc0511298 - 0xc0511308
[ 0.126104] Brought up 1 CPUs
[ 0.126131] SMP: Total of 1 processors activated (530.84 BogoMIPS).
[ 0.126142] CPU: All CPU(s) started in SVC mode.
[ 0.129122] devtmpfs: initialized
[ 0.199318] pinctrl core: initialized pinctrl subsystem
[ 0.205542] regulator-dummy: no parameters
[ 0.209272] NET: Registered protocol family 16
[ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.236321] platform 49000000.edma: alias fck already exists
[ 0.236360] platform 49000000.edma: alias fck already exists
[ 0.236381] platform 49000000.edma: alias fck already exists
[ 0.241540] OMAP GPIO hardware version 0.1
[ 0.265323] No ATAGs?
[ 0.265352] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.271325] Serial: AMBA PL011 UART driver
[ 0.329532] bio: create slab <bio-0> at 0
[ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
[ 0.447019] vbat: 5000 mV
[ 0.448222] lis3_reg: no parameters
[ 0.455418] SCSI subsystem initialized
[ 0.457564] usbcore: registered new interface driver usbfs
[ 0.458063] usbcore: registered new interface driver hub
[ 0.458879] usbcore: registered new device driver usb
[ 0.461441] omap_i2c 44e0b000.i2c: did not get pins for i2c error: -19
[ 0.463319] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 0.465437] tps65910 0-002d: No interrupt support, no core IRQ
[ 0.472111] vrtc: 1800 mV
[ 0.472547] vrtc: supplied by vbat
[ 0.475632] vio: at 1500 mV
[ 0.475778] vio: supplied by vbat
[ 0.478599] vdd_mpu: 912 <--> 1312 mV at 1262 mV
[ 0.478743] vdd_mpu: supplied by vbat
[ 0.482082] vdd_core: 912 <--> 1150 mV at 1137 mV
[ 0.482230] vdd_core: supplied by vbat
[ 0.484760] vdd3: 5000 mV
[ 0.487086] vdig1: at 1800 mV
[ 0.487221] vdig1: supplied by vbat
[ 0.490215] vdig2: at 1800 mV
[ 0.490359] vdig2: supplied by vbat
[ 0.492955] vpll: at 1800 mV
[ 0.493091] vpll: supplied by vbat
[ 0.495657] vdac: at 1800 mV
[ 0.496005] vdac: supplied by vbat
[ 0.498596] vaux1: at 1800 mV
[ 0.498729] vaux1: supplied by vbat
[ 0.501589] vaux2: at 3300 mV
[ 0.501725] vaux2: supplied by vbat
[ 0.504228] vaux33: at 3300 mV
[ 0.504358] vaux33: supplied by vbat
[ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[ 0.506970] vmmc: supplied by vbat
[ 0.509180] omap_i2c 4802a000.i2c: did not get pins for i2c error: -19
[ 0.510638] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
[ 0.521697] Switching to clocksource gp_timer
[ 0.646383] NET: Registered protocol family 2
[ 0.648329] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.648530] TCP bind hash table entries: 2048 (order: 4, 73728 bytes)
[ 0.649389] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.649630] TCP: reno registered
[ 0.649665] UDP hash table entries: 256 (order: 2, 20480 bytes)
[ 0.649904] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[ 0.650752] NET: Registered protocol family 1
[ 0.652407] RPC: Registered named UNIX socket transport module.
[ 0.652437] RPC: Registered udp transport module.
[ 0.652449] RPC: Registered tcp transport module.
[ 0.652461] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.653426] Trying to unpack rootfs image as initramfs...
[ 0.655395] rootfs image is not initramfs (no cpio magic); looks like an initrd
[ 0.766995] Freeing initrd memory: 16384K
[ 0.767176] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.767767] CPU PMU: probing PMU on CPU 0
[ 0.767810] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
[ 0.925141] VFS: Disk quotas dquot_6.5.2
[ 0.925367] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.927965] NFS: Registering the id_resolver key type
[ 0.928461] Key type id_resolver registered
[ 0.928483] Key type id_legacy registered
[ 0.928627] jffs2: version 2.2. (NAND) (SUMMARY) ? 2001-2006 Red Hat, Inc.
[ 0.929176] msgmni has been set to 478
[ 0.932770] io scheduler noop registered
[ 0.932796] io scheduler deadline registered
[ 0.932874] io scheduler cfq registered (default)
[ 0.934374] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.938963] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.945966] omap_uart 44e09000.serial: did not get pins for uart0 error: -19
[ 0.946590] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88) is a OMAP UART0
[ 1.721122] console [ttyO0] enabled
[ 1.758203] brd: module loaded
[ 1.781141] loop: module loaded
[ 1.789748] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.798239] OneNAND driver initializing
[ 1.808604] usbcore: registered new interface driver asix
[ 1.815144] usbcore: registered new interface driver ax88179_178a
[ 1.822040] usbcore: registered new interface driver cdc_ether
[ 1.829136] usbcore: registered new interface driver smsc95xx
[ 1.835894] usbcore: registered new interface driver net1080
[ 1.842462] usbcore: registered new interface driver cdc_subset
[ 1.849138] usbcore: registered new interface driver zaurus
[ 1.855643] usbcore: registered new interface driver cdc_ncm
[ 1.863976] usbcore: registered new interface driver cdc_wdm
[ 1.869979] Initializing USB Mass Storage driver...
[ 1.875973] usbcore: registered new interface driver usb-storage
[ 1.882443] USB Mass Storage support registered.
[ 1.887899] usbcore: registered new interface driver usbtest
[ 1.896169] mousedev: PS/2 mouse device common for all mice
[ 1.907755] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[ 1.916762] i2c /dev entries driver
[ 1.924135] Driver for 1-wire Dallas network protocol.
[ 1.934385] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.946490] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.954496] usbcore: registered new interface driver usbhid
[ 1.960405] usbhid: USB HID core driver
[ 1.966224] oprofile: using arm/armv7
[ 1.970946] TCP: cubic registered
[ 1.974660] Initializing XFRM netlink socket
[ 1.979378] NET: Registered protocol family 17
[ 1.984242] NET: Registered protocol family 15
[ 1.989380] Key type dns_resolver registered
[ 1.994118] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 2.002377] ThumbEE CPU extension supported.
[ 2.072224] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 2.078701] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[ 2.087773] libphy: 4a101000.mdio: probed
[ 2.092038] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
[ 2.101063] Random MACID = ba:43:b8:3c:b7:a4
[ 2.111959] input: volume_keys.7 as /devices/volume_keys.7/input/input0
[ 2.122621] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[ 2.135543] RAMDISK: gzip image found at block 0
[ 2.567331] EXT2-fs (ram0): warning: maximal mount count reached, running e2fsck is recommended
[ 2.577192] VFS: Mounted root (ext2 filesystem) on device 1:0.
[ 2.584487] devtmpfs: mounted
[ 2.588238] Freeing init memory: 340K
mount: mounting none on /var/shm failed: No such file or directory
::
:: Enabling hot-plug : [SUCCESS]
::
::
: Populating /dev : [SUCCESS]
[SUCCESS]
::
::
:: Setting PATH
::
: syslogd : [SUCCESS]
: telnetd : [SUCCESS]

Please press Enter to activate this console.
::
:: Setting shell environment ...
::
: Path
: Aliases
: Touch Screen
::
:: Done
::
[root@arago /]#
[root@arago /]#
[root@arago /]# ls -l /dev/m
/dev/mem /dev/mice
[root@arago /]# ls -l /dev/m
/dev/mem /dev/mice
[root@arago /]# ls -l /dev/m
[root@arago /]#
[root@arago /]#
[root@arago /]#
[root@arago /]# dmesg | grep -ir mmc
[ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[ 0.506970] vmmc: supplied by vbat
[root@arago /]#
[root@arago /]#
[root@arago /]# dmesg | grep -ir dma
[ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.236321] platform 49000000.edma: alias fck already exists
[ 0.236360] platform 49000000.edma: alias fck already exists
[ 0.236381] platform 49000000.edma: alias fck already exists
[ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
[root@arago /]#
[root@arago /]#


Thanks,
Vaibhav

2013-03-07 15:03:38

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 02:59:42PM +0000, Vaibhav Hiremath wrote:
>
> > -----Original Message-----
> > From: Hiremath, Vaibhav
> > Sent: Thursday, March 07, 2013 8:24 PM
> > To: Porter, Matt
> > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T; Devicetree
> > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> > ARM Kernel List
> > Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> >
> > > -----Original Message-----
> > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> > Matt
> > > Sent: Thursday, March 07, 2013 8:17 PM
> > > To: Hiremath, Vaibhav
> > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> > Devicetree
> > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> > > ARM Kernel List
> > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > >
> > > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > > >
> > > > > -----Original Message-----
> > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> > > Matt
> > > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > > To: Hiremath, Vaibhav
> > > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit; Tony
> > > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
> > List;
> > > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > >
> > > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
> > > > > > > -----Original Message-----
> > > > > > > From: [email protected] [mailto:linux-omap-
> > > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
> > Tony
> > > > > > > Lindgren; Russell King
> > > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
> > List;
> > > > > Linux
> > > > > > > Kernel Mailing List; Linux MMC List
> > > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > >
> <snip>
> >
> > I believe you meant "CONFIG_TI_EDMA" right?
> >
> > Yes, I just enabled it and the result is still same.
> >
> >
> >
> > [root@arago /]# dmesg | grep -ir mmc
> > [ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
> > [ 0.506970] vmmc: supplied by vbat
> > [root@arago /]#
> > [root@arago /]#
> > [root@arago /]# dmesg | grep -ir dma
> > [ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent
> > allocations
> > [ 0.236321] platform 49000000.edma: alias fck already exists
> > [ 0.236360] platform 49000000.edma: alias fck already exists
> > [ 0.236381] platform 49000000.edma: alias fck already exists
> > [ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine
> > driver
> > [ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine driver
> > [root@arago /]#
> > [root@arago /]#
> >
> >
> I have applied below patches from your recent post
>
>
> [2/2] ARM: dts: add AM33XX MMC support
> [1/2] mmc: omap_hsmmc: set max_segs based on dma engine limits
> [v4,3/3] mmc: davinci: get SG segment limits with dma_get_slave_sg_limits()
> [v4,2/3] dma: edma: add device_slave_sg_limits() support
> [v4,1/3] dmaengine: add dma_get_slave_sg_limits()
> [v9,9/9] ARM: dts: add AM33XX SPI DMA support
> [v9,8/9] spi: omap2-mcspi: add generic DMA request support to the DT binding
> [v9,7/9] spi: omap2-mcspi: convert to dma_request_slave_channel_compat()
> [v9,6/9] ARM: dts: add AM33XX EDMA support
> [v9,5/9] dmaengine: edma: Add TI EDMA device tree binding
> [v9,4/9] dmaengine: edma: enable build for AM33XX
> [v9,3/9] ARM: edma: add AM33XX support to the private EDMA API
> [v9,2/9] ARM: edma: remove unused transfer controller handlers
> [v9,1/9] ARM: davinci: move private EDMA API to arm/common
> [v3,2/2] mmc: omap_hsmmc: add generic DMA request support to the DT binding
> [v3,1/2] mmc: omap_hsmmc: convert to dma_request_slave_channel_compat()
>
>
>
> Am I missing anything here?

Yes, you missed the
http://www.spinics.net/lists/arm-kernel/msg227886.html dependency
mentioned first in the cover letter.

-Matt

2013-03-07 15:50:26

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support


> -----Original Message-----
> From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> Sent: Thursday, March 07, 2013 8:34 PM
> To: Hiremath, Vaibhav
> Cc: Chris Ball; Russell King; Krishnamoorthy, Balaji T; Devicetree
> Discuss; Linux MMC List; Linux Kernel Mailing List; Linux OMAP List;
> Linux ARM Kernel List
> Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> On Thu, Mar 07, 2013 at 02:59:42PM +0000, Vaibhav Hiremath wrote:
> >
> > > -----Original Message-----
> > > From: Hiremath, Vaibhav
> > > Sent: Thursday, March 07, 2013 8:24 PM
> > > To: Porter, Matt
> > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> Devicetree
> > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
> Linux
> > > ARM Kernel List
> > > Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > >
> > > > -----Original Message-----
> > > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> > > Matt
> > > > Sent: Thursday, March 07, 2013 8:17 PM
> > > > To: Hiremath, Vaibhav
> > > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> > > Devicetree
> > > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
> Linux
> > > > ARM Kernel List
> > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > >
> > > > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of
> Porter,
> > > > Matt
> > > > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > > > To: Hiremath, Vaibhav
> > > > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
> Tony
> > > > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
> > > List;
> > > > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > >
> > > > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath
> wrote:
> > > > > > > > -----Original Message-----
> > > > > > > > From: [email protected] [mailto:linux-
> omap-
> > > > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
> Benoit;
> > > Tony
> > > > > > > > Lindgren; Russell King
> > > > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
> > > List;
> > > > > > Linux
> > > > > > > > Kernel Mailing List; Linux MMC List
> > > > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > > >
> > <snip>
> > >
> > > I believe you meant "CONFIG_TI_EDMA" right?
> > >
> > > Yes, I just enabled it and the result is still same.
> > >
> > >
> > >
> > > [root@arago /]# dmesg | grep -ir mmc
> > > [ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
> > > [ 0.506970] vmmc: supplied by vbat
> > > [root@arago /]#
> > > [root@arago /]#
> > > [root@arago /]# dmesg | grep -ir dma
> > > [ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent
> > > allocations
> > > [ 0.236321] platform 49000000.edma: alias fck already exists
> > > [ 0.236360] platform 49000000.edma: alias fck already exists
> > > [ 0.236381] platform 49000000.edma: alias fck already exists
> > > [ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA
> engine
> > > driver
> > > [ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine
> driver
> > > [root@arago /]#
> > > [root@arago /]#
> > >
> > >
> > I have applied below patches from your recent post
> >
> >
> > [2/2] ARM: dts: add AM33XX MMC support
> > [1/2] mmc: omap_hsmmc: set max_segs based on dma engine limits
> > [v4,3/3] mmc: davinci: get SG segment limits with
> dma_get_slave_sg_limits()
> > [v4,2/3] dma: edma: add device_slave_sg_limits() support
> > [v4,1/3] dmaengine: add dma_get_slave_sg_limits()
> > [v9,9/9] ARM: dts: add AM33XX SPI DMA support
> > [v9,8/9] spi: omap2-mcspi: add generic DMA request support to the DT
> binding
> > [v9,7/9] spi: omap2-mcspi: convert to
> dma_request_slave_channel_compat()
> > [v9,6/9] ARM: dts: add AM33XX EDMA support
> > [v9,5/9] dmaengine: edma: Add TI EDMA device tree binding
> > [v9,4/9] dmaengine: edma: enable build for AM33XX
> > [v9,3/9] ARM: edma: add AM33XX support to the private EDMA API
> > [v9,2/9] ARM: edma: remove unused transfer controller handlers
> > [v9,1/9] ARM: davinci: move private EDMA API to arm/common
> > [v3,2/2] mmc: omap_hsmmc: add generic DMA request support to the DT
> binding
> > [v3,1/2] mmc: omap_hsmmc: convert to
> dma_request_slave_channel_compat()
> >
> >
> >
> > Am I missing anything here?
>
> Yes, you missed the
> http://www.spinics.net/lists/arm-kernel/msg227886.html dependency
> mentioned first in the cover letter.
>

Matt, I manually edited the file with above patch and result is still the same.
Can you point me to branch where you have tested MMC code?



diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
index 8c3b1fa..e68ac38 100644
--- a/arch/arm/common/edma.c
+++ b/arch/arm/common/edma.c
@@ -730,6 +730,9 @@ EXPORT_SYMBOL(edma_free_channel);
*/
int edma_alloc_slot(unsigned ctlr, int slot)
{
+ if (!edma_cc[ctlr])
+ return -EINVAL;
+
if (slot >= 0)
slot = EDMA_CHAN_SLOT(slot);

Thanks,
Vaibhav

2013-03-07 16:02:07

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 03:50:01PM +0000, Vaibhav Hiremath wrote:
>
> > -----Original Message-----
> > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> > Sent: Thursday, March 07, 2013 8:34 PM
> > To: Hiremath, Vaibhav
> > Cc: Chris Ball; Russell King; Krishnamoorthy, Balaji T; Devicetree
> > Discuss; Linux MMC List; Linux Kernel Mailing List; Linux OMAP List;
> > Linux ARM Kernel List
> > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> >
> > On Thu, Mar 07, 2013 at 02:59:42PM +0000, Vaibhav Hiremath wrote:
> > >
> > > > -----Original Message-----
> > > > From: Hiremath, Vaibhav
> > > > Sent: Thursday, March 07, 2013 8:24 PM
> > > > To: Porter, Matt
> > > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> > Devicetree
> > > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
> > Linux
> > > > ARM Kernel List
> > > > Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > >
> > > > > -----Original Message-----
> > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> > > > Matt
> > > > > Sent: Thursday, March 07, 2013 8:17 PM
> > > > > To: Hiremath, Vaibhav
> > > > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> > > > Devicetree
> > > > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
> > Linux
> > > > > ARM Kernel List
> > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > >
> > > > > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of
> > Porter,
> > > > > Matt
> > > > > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > > > > To: Hiremath, Vaibhav
> > > > > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
> > Tony
> > > > > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
> > > > List;
> > > > > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC List
> > > > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > >
> > > > > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath
> > wrote:
> > > > > > > > > -----Original Message-----
> > > > > > > > > From: [email protected] [mailto:linux-
> > omap-
> > > > > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
> > Benoit;
> > > > Tony
> > > > > > > > > Lindgren; Russell King
> > > > > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
> > > > List;
> > > > > > > Linux
> > > > > > > > > Kernel Mailing List; Linux MMC List
> > > > > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > > > >
> > > <snip>
> > > >
> > > > I believe you meant "CONFIG_TI_EDMA" right?
> > > >
> > > > Yes, I just enabled it and the result is still same.
> > > >
> > > >
> > > >
> > > > [root@arago /]# dmesg | grep -ir mmc
> > > > [ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
> > > > [ 0.506970] vmmc: supplied by vbat
> > > > [root@arago /]#
> > > > [root@arago /]#
> > > > [root@arago /]# dmesg | grep -ir dma
> > > > [ 0.217063] DMA: preallocated 256 KiB pool for atomic coherent
> > > > allocations
> > > > [ 0.236321] platform 49000000.edma: alias fck already exists
> > > > [ 0.236360] platform 49000000.edma: alias fck already exists
> > > > [ 0.236381] platform 49000000.edma: alias fck already exists
> > > > [ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA
> > engine
> > > > driver
> > > > [ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine
> > driver
> > > > [root@arago /]#
> > > > [root@arago /]#
> > > >
> > > >
> > > I have applied below patches from your recent post
> > >
> > >
> > > [2/2] ARM: dts: add AM33XX MMC support
> > > [1/2] mmc: omap_hsmmc: set max_segs based on dma engine limits
> > > [v4,3/3] mmc: davinci: get SG segment limits with
> > dma_get_slave_sg_limits()
> > > [v4,2/3] dma: edma: add device_slave_sg_limits() support
> > > [v4,1/3] dmaengine: add dma_get_slave_sg_limits()
> > > [v9,9/9] ARM: dts: add AM33XX SPI DMA support
> > > [v9,8/9] spi: omap2-mcspi: add generic DMA request support to the DT
> > binding
> > > [v9,7/9] spi: omap2-mcspi: convert to
> > dma_request_slave_channel_compat()
> > > [v9,6/9] ARM: dts: add AM33XX EDMA support
> > > [v9,5/9] dmaengine: edma: Add TI EDMA device tree binding
> > > [v9,4/9] dmaengine: edma: enable build for AM33XX
> > > [v9,3/9] ARM: edma: add AM33XX support to the private EDMA API
> > > [v9,2/9] ARM: edma: remove unused transfer controller handlers
> > > [v9,1/9] ARM: davinci: move private EDMA API to arm/common
> > > [v3,2/2] mmc: omap_hsmmc: add generic DMA request support to the DT
> > binding
> > > [v3,1/2] mmc: omap_hsmmc: convert to
> > dma_request_slave_channel_compat()
> > >
> > >
> > >
> > > Am I missing anything here?
> >
> > Yes, you missed the
> > http://www.spinics.net/lists/arm-kernel/msg227886.html dependency
> > mentioned first in the cover letter.
> >
>
> Matt, I manually edited the file with above patch and result is still the same.
> Can you point me to branch where you have tested MMC code?

git://github.com/ohporter/linux.git edma-dmaengine-am33xx-mmc-v1

omap2plus_defconfig + CONFIG_TI_EDMA

I just doublechecked MMC rootfs on bone and evmsk as it's the standard
smoke test. My EVM is intermittent now so trying to coax it to power up
to reverify.

-Matt

> diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
> index 8c3b1fa..e68ac38 100644
> --- a/arch/arm/common/edma.c
> +++ b/arch/arm/common/edma.c
> @@ -730,6 +730,9 @@ EXPORT_SYMBOL(edma_free_channel);
> */
> int edma_alloc_slot(unsigned ctlr, int slot)
> {
> + if (!edma_cc[ctlr])
> + return -EINVAL;
> +
> if (slot >= 0)
> slot = EDMA_CHAN_SLOT(slot);
>
> Thanks,
> Vaibhav
> _______________________________________________
> devicetree-discuss mailing list
> [email protected]
> https://lists.ozlabs.org/listinfo/devicetree-discuss

2013-03-08 12:29:28

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support

> -----Original Message-----
> From: Matt Porter [mailto:[email protected]] On Behalf Of Porter, Matt
> Sent: Thursday, March 07, 2013 9:33 PM
> To: Hiremath, Vaibhav
> Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T; Devicetree
> Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball; Linux
> ARM Kernel List
> Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
>
> On Thu, Mar 07, 2013 at 03:50:01PM +0000, Vaibhav Hiremath wrote:
> >
> > > -----Original Message-----
> > > From: Matt Porter [mailto:[email protected]] On Behalf Of Porter,
> Matt
> > > Sent: Thursday, March 07, 2013 8:34 PM
> > > To: Hiremath, Vaibhav
> > > Cc: Chris Ball; Russell King; Krishnamoorthy, Balaji T; Devicetree
> > > Discuss; Linux MMC List; Linux Kernel Mailing List; Linux OMAP
> List;
> > > Linux ARM Kernel List
> > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > >
> > > On Thu, Mar 07, 2013 at 02:59:42PM +0000, Vaibhav Hiremath wrote:
> > > >
> > > > > -----Original Message-----
> > > > > From: Hiremath, Vaibhav
> > > > > Sent: Thursday, March 07, 2013 8:24 PM
> > > > > To: Porter, Matt
> > > > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> > > Devicetree
> > > > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
> > > Linux
> > > > > ARM Kernel List
> > > > > Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of
> Porter,
> > > > > Matt
> > > > > > Sent: Thursday, March 07, 2013 8:17 PM
> > > > > > To: Hiremath, Vaibhav
> > > > > > Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
> > > > > Devicetree
> > > > > > Discuss; Linux MMC List; Linux Kernel Mailing List; Chris
> Ball;
> > > Linux
> > > > > > ARM Kernel List
> > > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > >
> > > > > > On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath
> wrote:
> > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: Matt Porter [mailto:[email protected]] On Behalf Of
> > > Porter,
> > > > > > Matt
> > > > > > > > Sent: Thursday, March 07, 2013 7:43 PM
> > > > > > > > To: Hiremath, Vaibhav
> > > > > > > > Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
> Benoit;
> > > Tony
> > > > > > > > Lindgren; Russell King; Devicetree Discuss; Linux ARM
> Kernel
> > > > > List;
> > > > > > > > Linux OMAP List; Linux Kernel Mailing List; Linux MMC
> List
> > > > > > > > Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > > >
> > > > > > > > On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav
> Hiremath
> > > wrote:
> > > > > > > > > > -----Original Message-----
> > > > > > > > > > From: [email protected] [mailto:linux-
> > > omap-
> > > > > > > > > > [email protected]] On Behalf Of Porter, Matt
> > > > > > > > > > Sent: Thursday, March 07, 2013 9:47 AM
> > > > > > > > > > To: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
> > > Benoit;
> > > > > Tony
> > > > > > > > > > Lindgren; Russell King
> > > > > > > > > > Cc: Devicetree Discuss; Linux ARM Kernel List; Linux
> OMAP
> > > > > List;
> > > > > > > > Linux
> > > > > > > > > > Kernel Mailing List; Linux MMC List
> > > > > > > > > > Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
> > > > > > > > > >
> > > > <snip>
> > > > >
> > > > > I believe you meant "CONFIG_TI_EDMA" right?
> > > > >
> > > > > Yes, I just enabled it and the result is still same.
> > > > >
> > > > >
> > > > >
> > > > > [root@arago /]# dmesg | grep -ir mmc
> > > > > [ 0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
> > > > > [ 0.506970] vmmc: supplied by vbat
> > > > > [root@arago /]#
> > > > > [root@arago /]#
> > > > > [root@arago /]# dmesg | grep -ir dma
> > > > > [ 0.217063] DMA: preallocated 256 KiB pool for atomic
> coherent
> > > > > allocations
> > > > > [ 0.236321] platform 49000000.edma: alias fck already exists
> > > > > [ 0.236360] platform 49000000.edma: alias fck already exists
> > > > > [ 0.236381] platform 49000000.edma: alias fck already exists
> > > > > [ 0.370705] edma-dma-engine edma-dma-engine.0: TI EDMA DMA
> > > engine
> > > > > driver
> > > > > [ 0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine
> > > driver
> > > > > [root@arago /]#
> > > > > [root@arago /]#
> > > > >
> > > > >
> > > > I have applied below patches from your recent post
> > > >
> > > >
> > > > [2/2] ARM: dts: add AM33XX MMC support
> > > > [1/2] mmc: omap_hsmmc: set max_segs based on dma engine limits
> > > > [v4,3/3] mmc: davinci: get SG segment limits with
> > > dma_get_slave_sg_limits()
> > > > [v4,2/3] dma: edma: add device_slave_sg_limits() support
> > > > [v4,1/3] dmaengine: add dma_get_slave_sg_limits()
> > > > [v9,9/9] ARM: dts: add AM33XX SPI DMA support
> > > > [v9,8/9] spi: omap2-mcspi: add generic DMA request support to the
> DT
> > > binding
> > > > [v9,7/9] spi: omap2-mcspi: convert to
> > > dma_request_slave_channel_compat()
> > > > [v9,6/9] ARM: dts: add AM33XX EDMA support
> > > > [v9,5/9] dmaengine: edma: Add TI EDMA device tree binding
> > > > [v9,4/9] dmaengine: edma: enable build for AM33XX
> > > > [v9,3/9] ARM: edma: add AM33XX support to the private EDMA API
> > > > [v9,2/9] ARM: edma: remove unused transfer controller handlers
> > > > [v9,1/9] ARM: davinci: move private EDMA API to arm/common
> > > > [v3,2/2] mmc: omap_hsmmc: add generic DMA request support to the
> DT
> > > binding
> > > > [v3,1/2] mmc: omap_hsmmc: convert to
> > > dma_request_slave_channel_compat()
> > > >
> > > >
> > > >
> > > > Am I missing anything here?
> > >
> > > Yes, you missed the
> > > http://www.spinics.net/lists/arm-kernel/msg227886.html dependency
> > > mentioned first in the cover letter.
> > >
> >
> > Matt, I manually edited the file with above patch and result is still
> the same.
> > Can you point me to branch where you have tested MMC code?
>
> git://github.com/ohporter/linux.git edma-dmaengine-am33xx-mmc-v1
>
> omap2plus_defconfig + CONFIG_TI_EDMA
>
> I just doublechecked MMC rootfs on bone and evmsk as it's the standard
> smoke test. My EVM is intermittent now so trying to coax it to power up
> to reverify.
>

Matt,

Your branch is working for me, I tested it on EVM. Not sure what is wrong with manual rebasing
I did yesterday. I will try to nail-down root-cause here.

And you can submit the next version fixing the comments I have given.

Thanks,
Vaibhav

2013-06-14 19:54:36

by Joel A Fernandes

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

Hi Tony, Vaibhav,

>> I just doublechecked MMC rootfs on bone and evmsk as it's the standard
>> smoke test. My EVM is intermittent now so trying to coax it to power up
>> to reverify.
>>
>
> Matt,
>
> Your branch is working for me, I tested it on EVM. Not sure what is wrong with manual rebasing
> I did yesterday. I will try to nail-down root-cause here.
>
> And you can submit the next version fixing the comments I have given.

The only comment I could find in the whole discussion was adding of
the interrupts property. I tested I don't have any problem booting
with Matt's patch, without having the interrupts property.

Can this patch be pulled in for 3.11?

Tested-by: Joel A Fernandes <[email protected]>

Thanks,
Joel

2013-06-14 22:28:27

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

Hi,

On Fri, Jun 14, 2013 at 02:54:33PM -0500, Joel A Fernandes wrote:
> Hi Tony, Vaibhav,
>
> >> I just doublechecked MMC rootfs on bone and evmsk as it's the standard
> >> smoke test. My EVM is intermittent now so trying to coax it to power up
> >> to reverify.
> >>
> >
> > Matt,
> >
> > Your branch is working for me, I tested it on EVM. Not sure what is wrong with manual rebasing
> > I did yesterday. I will try to nail-down root-cause here.
> >
> > And you can submit the next version fixing the comments I have given.
>
> The only comment I could find in the whole discussion was adding of
> the interrupts property. I tested I don't have any problem booting
> with Matt's patch, without having the interrupts property.

might very well be, but we want to figure out why adding "intrrupts"
causes issues. Why does it have to come through hwmod ? You might have
uncovered a real problem which needs fixing. Besides, at the end of the
day, we want to remove the redundant hwmod data if we already have DTS
bindings covering the same requirements.
--
balbi


Attachments:
(No filename) (1.04 kB)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-06-15 07:23:37

by Joel A Fernandes

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

Hi Felipe,

On Fri, Jun 14, 2013 at 6:43 PM, Joel A Fernandes <[email protected]> wrote:
> Felipe,
>
>
> On Friday, June 14, 2013, Felipe Balbi wrote:
>>
>> Hi,
>>
>> On Fri, Jun 14, 2013 at 02:54:33PM -0500, Joel A Fernandes wrote:
>> > Hi Tony, Vaibhav,
>> >
>> > >> I just doublechecked MMC rootfs on bone and evmsk as it's the
>> > >> standard
>> > >> smoke test. My EVM is intermittent now so trying to coax it to power
>> > >> up
>> > >> to reverify.
>> > >>
>> > >
>> > > Matt,
>> > >
>> > > Your branch is working for me, I tested it on EVM. Not sure what is
>> > > wrong with manual rebasing
>> > > I did yesterday. I will try to nail-down root-cause here.
>> > >
>> > > And you can submit the next version fixing the comments I have given.
>> >
>> > The only comment I could find in the whole discussion was adding of
>> > the interrupts property. I tested I don't have any problem booting
>> > with Matt's patch, without having the interrupts property.
>>
>> might very well be, but we want to figure out why adding "intrrupts"
>> causes issues. Why does it have to come through hwmod ? You might have
>> uncovered a real problem which needs fixing. Besides, at the end of the
>

You are right, adding interrupts property to DT node causes problems
(driver probe doesn't take place). Will debug further on Monday.

Thanks,
Joel

2013-06-15 15:06:56

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

Hi,

On Fri, Jun 14, 2013 at 06:43:51PM -0500, Joel A Fernandes wrote:
> > > >> I just doublechecked MMC rootfs on bone and evmsk as it's the standard
> > > >> smoke test. My EVM is intermittent now so trying to coax it to power
> > up
> > > >> to reverify.
> > > >>
> > > >
> > > > Matt,
> > > >
> > > > Your branch is working for me, I tested it on EVM. Not sure what is
> > wrong with manual rebasing
> > > > I did yesterday. I will try to nail-down root-cause here.
> > > >
> > > > And you can submit the next version fixing the comments I have given.
> > >
> > > The only comment I could find in the whole discussion was adding of
> > > the interrupts property. I tested I don't have any problem booting
> > > with Matt's patch, without having the interrupts property.
> >
> > might very well be, but we want to figure out why adding "intrrupts"
> > causes issues. Why does it have to come through hwmod ? You might have
> > uncovered a real problem which needs fixing. Besides, at the end of the
>
>
> No actually I think I wasn't very descriptive in my post. There is no
> problem here. Whether it comes from DT or not, it works in both cases . (I
> haven't tried adding interrupt node to dts but what I gathered from
> Vaibhav's post is that it works also when added to dts)
>
> But I can revisit Vaibhav's suggestion of adding it to dts for completeness
> sake. My tree currently works and picks up the interrupt info from hwmod. I
> just didn't see any activity on this thread for a while so I thought of
> enquiring it was ok to pull it in for the 3.11 merge window or if the
> consensus was that interrupt node be added to dts even though it works
> without it.

fair enough, then let's just add those interrupts to hwmod which will,
eventually, let us drop all of that data from hwmod.

cheers

--
balbi


Attachments:
(No filename) (1.78 kB)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-06-17 06:21:06

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

* Felipe Balbi <[email protected]> [130615 08:12]:
>
> fair enough, then let's just add those interrupts to hwmod which will,
> eventually, let us drop all of that data from hwmod.

Nope, we're already dropping the duplicate data from hwmod for
am33xx and omap4. See omap-for-v3.11/cleanup branch.

Regards,

Tony