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

14 messages, 4 authors, 2013-06-14 · open the first message on its own page

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

From: Matt Porter <hidden>
Date: 2013-03-07 14:12:05

On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav Hiremath wrote:
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] 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 <redacted>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 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 at 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 at 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 at 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 at 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 at 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 at 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

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

From: Hiremath, Vaibhav <hidden>
Date: 2013-03-07 14:40:29

-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] 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
quoted
quoted
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 <redacted>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 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
++++++++++++++++++++++++++++
quoted
quoted
 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 at 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 at 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 at 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 at 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 at 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 at 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.
quoted
Also, I wonder why "interrupt" property is not coming here, I
understand
quoted
That hwmod is filling the gap here; but I would still recommend you
to complete
quoted
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          */

quoted
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 at 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

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

From: Matt Porter <hidden>
Date: 2013-03-07 14:46:27

On Thu, Mar 07, 2013 at 02:39:55PM +0000, Vaibhav Hiremath wrote:
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] 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
quoted
quoted
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 <redacted>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 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
++++++++++++++++++++++++++++
quoted
quoted
 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 at 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 at 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 at 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 at 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 at 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 at 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.
quoted
Also, I wonder why "interrupt" property is not coming here, I
understand
quoted
That hwmod is filling the gap here; but I would still recommend you
to complete
quoted
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.
 
quoted
quoted
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 at 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
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

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

From: Matt Porter <hidden>
Date: 2013-03-07 14:50:41

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:
quoted
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

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

From: Hiremath, Vaibhav <hidden>
Date: 2013-03-07 14:54:14

-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] 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
quoted
quoted
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 <redacted>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 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
++++++++++++++++++++++++++++
quoted
quoted
 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 at 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 at 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 at 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 at 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 at 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 at 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
quoted
quoted
for a comment in the .dtsi. mmc3 edma event are on the crossbar and
so
quoted
quoted
the event that will be mapped is system-specific. Since Luca is
still
quoted
quoted
working on DT support for WiLink, there's no way to show an example
of
quoted
quoted
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
quoted
quoted
have an entry in the am335x-evmsk.dts that shows this case.
quoted
Also, I wonder why "interrupt" property is not coming here, I
understand
quoted
That hwmod is filling the gap here; but I would still recommend
you
quoted
quoted
to complete
quoted
The DT node, as we only support DT boot.
Yeah, I only added needed properties so as to not confuse people as
to
quoted
quoted
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.
quoted
quoted
I suppose this will help clear things to have a switch away from
using
quoted
quoted
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
quoted
Comments from code for your reference -


389         /*
390          * Non-DT Boot:
391          *   Here, pdev->num_resources = 0, and we should get all
the
quoted
392          *   resources from hwmod.
393          *
394          * DT Boot:
395          *   OF framework will construct the resource structure
(currently
quoted
396          *   does for MEM & IRQ resource) and we should
respect/use these
quoted
397          *   resources, killing hwmod dependency.
398          *   If pdev->num_resources > 0, we assume that MEM & IRQ
resources
quoted
399          *   have been allocated by OF layer already (through
DTB).
quoted
400          *   As preparation for the future we examine the OF
provided resources
quoted
401          *   to see if we have DMA resources provided already. In
this case
quoted
402          *   there is no need to update the resources for the
device, we use the
quoted
403          *   OF provided ones.
404          *
405          * TODO: Once DMA resource is available from OF layer, we
should
quoted
406          *   kill filling any resources from hwmod.
407          */
Ok thanks, we'll add it in.
quoted
quoted
quoted
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,
quoted
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.
quoted
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 at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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 at arago /]#
[root at arago /]#



Thanks,
Vaibhav
quoted
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 at psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #2
SMP Thu Mar 7 16:57:39 IST 2013
quoted
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7),
cr=10c53c7d
quoted
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
quoted
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree),
model: TI AM335x EVM
quoted
[    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
quoted
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 260368
quoted
[    0.000000] Kernel command line: console=ttyO0,115200n8
root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
quoted
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7,
524288 bytes)
quoted
[    0.000000] Inode-cache hash table entries: 65536 (order: 6,
262144 bytes)
quoted
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] Memory: 1023MB = 1023MB total
[    0.000000] Memory: 1008260k/1008260k available, 40316k reserved,
269312K highmem
quoted
[    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
quoted
[    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
quoted
[    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
quoted
[    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)
quoted
[    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
quoted
[    0.126105] Brought up 1 CPUs
[    0.126130] SMP: Total of 1 processors activated (530.84
BogoMIPS).
quoted
[    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
quoted
[    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.
quoted
[    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.
quoted
[    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
quoted
[    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
quoted
[    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)
quoted
[    0.609956] TCP bind hash table entries: 8192 (order: 6, 294912
bytes)
quoted
[    0.613521] TCP: Hash tables configured (established 8192 bind
8192)
quoted
[    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)
quoted
[    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.
quoted
[    0.618827] NetWinder Floating Point Emulator V0.97 (double
precision)
quoted
[    0.619316] CPU PMU: probing PMU on CPU 0
[    0.619350] hw perfevents: enabled with ARMv7 Cortex-A8 PMU
driver, 5 counters available
quoted
[    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)
quoted
[    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.
quoted
[    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
quoted
[    0.791600] Serial: 8250/16550 driver, 4 ports, IRQ sharing
enabled
quoted
[    0.798575] omap_uart 44e09000.serial: did not get pins for uart0
error: -19
quoted
[    0.799200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88)
is a OMAP UART0
quoted
[    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
quoted
[    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
quoted
[    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
quoted
[    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.
quoted
[    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
quoted
[    1.795523] [<c001acb8>] (unwind_backtrace+0x0/0xf0) from
[<c02d4838>] (do_raw_spin_lock+0x15c/0x19c)
quoted
[    1.805284] [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c) from
[<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58)
quoted
[    1.815692] [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58) from
[<c0040450>] (omap_request_dma+0x24/0x1b8)
quoted
[    1.826014] [<c0040450>] (omap_request_dma+0x24/0x1b8) from
[<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
quoted
[    1.836970] [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
from [<c02fdfc8>] (dma_chan_get+0x5c/0xfc)
quoted
[    1.847457] [<c02fdfc8>] (dma_chan_get+0x5c/0xfc) from
[<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0)
quoted
[    1.857322] [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0) from
[<c0422398>] (omap_hsmmc_probe+0x38c/0x908)
quoted
[    1.867732] [<c0422398>] (omap_hsmmc_probe+0x38c/0x908) from
[<c0339dc4>] (platform_drv_probe+0x18/0x1c)
quoted
[    1.877767] [<c0339dc4>] (platform_drv_probe+0x18/0x1c) from
[<c0338a68>] (really_probe+0x74/0x200)
quoted
[    1.887342] [<c0338a68>] (really_probe+0x74/0x200) from
[<c0338d0c>] (driver_probe_device+0x30/0x48)
quoted
[    1.897010] [<c0338d0c>] (driver_probe_device+0x30/0x48) from
[<c0338db8>] (__driver_attach+0x94/0x98)
quoted
[    1.906860] [<c0338db8>] (__driver_attach+0x94/0x98) from
[<c0337424>] (bus_for_each_dev+0x64/0x88)
quoted
[    1.916433] [<c0337424>] (bus_for_each_dev+0x64/0x88) from
[<c03383a8>] (bus_add_driver+0x1c0/0x240)
quoted
[    1.926098] [<c03383a8>] (bus_add_driver+0x1c0/0x240) from
[<c03392ec>] (driver_register+0x78/0x144)
quoted
[    1.935758] [<c03392ec>] (driver_register+0x78/0x144) from
[<c00086a4>] (do_one_initcall+0x34/0x180)
quoted
[    1.945432] [<c00086a4>] (do_one_initcall+0x34/0x180) from
[<c07208f8>] (kernel_init_freeable+0xfc/0x1c8)
quoted
[    1.955553] [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8) from
[<c0502664>] (kernel_init+0x8/0xe4)
quoted
[    1.965139] [<c0502664>] (kernel_init+0x8/0xe4) from [<c00133f0>]
(ret_from_fork+0x14/0x24)
quoted
[    1.974061] omap_hsmmc mmc.3: unable to obtain RX DMA engine
channel 25
quoted
[    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
quoted
[    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
quoted
[    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
quoted
[    2.158349] omap_rtc 44e3e000.rtc: setting system clock to 2000-
01-01 00:00:01 UTC (946684801)
quoted
[    2.168602] Waiting for root device /dev/mmcblk0p2...


Thanks.
Vaibhav
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

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

From: Hiremath, Vaibhav <hidden>
Date: 2013-03-07 15:00:09

-----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
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
Sent: Thursday, March 07, 2013 8:17 PM
To: Hiremath, Vaibhav
Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
Devicetree
quoted
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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
quoted
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;
quoted
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] On Behalf Of Porter, Matt
Sent: Thursday, March 07, 2013 9:47 AM
To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King
Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
List;
quoted
quoted
quoted
Linux
quoted
quoted
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 at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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 at arago /]#
[root at 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

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

From: Matt Porter <hidden>
Date: 2013-03-07 15:00:21

On Thu, Mar 07, 2013 at 02:53:51PM +0000, Vaibhav Hiremath wrote:
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] 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
quoted
quoted
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 <redacted>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 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
++++++++++++++++++++++++++++
quoted
quoted
 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 at 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 at 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 at 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 at 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 at 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 at 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
quoted
quoted
for a comment in the .dtsi. mmc3 edma event are on the crossbar and
so
quoted
quoted
the event that will be mapped is system-specific. Since Luca is
still
quoted
quoted
working on DT support for WiLink, there's no way to show an example
of
quoted
quoted
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
quoted
quoted
have an entry in the am335x-evmsk.dts that shows this case.
quoted
Also, I wonder why "interrupt" property is not coming here, I
understand
quoted
That hwmod is filling the gap here; but I would still recommend
you
quoted
quoted
to complete
quoted
The DT node, as we only support DT boot.
Yeah, I only added needed properties so as to not confuse people as
to
quoted
quoted
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.
quoted
quoted
I suppose this will help clear things to have a switch away from
using
quoted
quoted
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
quoted
Comments from code for your reference -


389         /*
390          * Non-DT Boot:
391          *   Here, pdev->num_resources = 0, and we should get all
the
quoted
392          *   resources from hwmod.
393          *
394          * DT Boot:
395          *   OF framework will construct the resource structure
(currently
quoted
396          *   does for MEM & IRQ resource) and we should
respect/use these
quoted
397          *   resources, killing hwmod dependency.
398          *   If pdev->num_resources > 0, we assume that MEM & IRQ
resources
quoted
399          *   have been allocated by OF layer already (through
DTB).
quoted
400          *   As preparation for the future we examine the OF
provided resources
quoted
401          *   to see if we have DMA resources provided already. In
this case
quoted
402          *   there is no need to update the resources for the
device, we use the
quoted
403          *   OF provided ones.
404          *
405          * TODO: Once DMA resource is available from OF layer, we
should
quoted
406          *   kill filling any resources from hwmod.
407          */
Ok thanks, we'll add it in.
quoted
quoted
quoted
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,
quoted
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.
quoted
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 at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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 at arago /]#
[root at 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
quoted
quoted
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 at psplinux064) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #2
SMP Thu Mar 7 16:57:39 IST 2013
quoted
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7),
cr=10c53c7d
quoted
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
quoted
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree),
model: TI AM335x EVM
quoted
[    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
quoted
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 260368
quoted
[    0.000000] Kernel command line: console=ttyO0,115200n8
root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
quoted
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7,
524288 bytes)
quoted
[    0.000000] Inode-cache hash table entries: 65536 (order: 6,
262144 bytes)
quoted
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] Memory: 1023MB = 1023MB total
[    0.000000] Memory: 1008260k/1008260k available, 40316k reserved,
269312K highmem
quoted
[    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
quoted
[    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
quoted
[    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
quoted
[    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)
quoted
[    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
quoted
[    0.126105] Brought up 1 CPUs
[    0.126130] SMP: Total of 1 processors activated (530.84
BogoMIPS).
quoted
[    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
quoted
[    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.
quoted
[    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.
quoted
[    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
quoted
[    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
quoted
[    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)
quoted
[    0.609956] TCP bind hash table entries: 8192 (order: 6, 294912
bytes)
quoted
[    0.613521] TCP: Hash tables configured (established 8192 bind
8192)
quoted
[    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)
quoted
[    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.
quoted
[    0.618827] NetWinder Floating Point Emulator V0.97 (double
precision)
quoted
[    0.619316] CPU PMU: probing PMU on CPU 0
[    0.619350] hw perfevents: enabled with ARMv7 Cortex-A8 PMU
driver, 5 counters available
quoted
[    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)
quoted
[    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.
quoted
[    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
quoted
[    0.791600] Serial: 8250/16550 driver, 4 ports, IRQ sharing
enabled
quoted
[    0.798575] omap_uart 44e09000.serial: did not get pins for uart0
error: -19
quoted
[    0.799200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88)
is a OMAP UART0
quoted
[    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
quoted
[    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
quoted
[    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
quoted
[    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.
quoted
[    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
quoted
[    1.795523] [<c001acb8>] (unwind_backtrace+0x0/0xf0) from
[<c02d4838>] (do_raw_spin_lock+0x15c/0x19c)
quoted
[    1.805284] [<c02d4838>] (do_raw_spin_lock+0x15c/0x19c) from
[<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58)
quoted
[    1.815692] [<c050a93c>] (_raw_spin_lock_irqsave+0x4c/0x58) from
[<c0040450>] (omap_request_dma+0x24/0x1b8)
quoted
[    1.826014] [<c0040450>] (omap_request_dma+0x24/0x1b8) from
[<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
quoted
[    1.836970] [<c02ffca8>] (omap_dma_alloc_chan_resources+0x3c/0x50)
from [<c02fdfc8>] (dma_chan_get+0x5c/0xfc)
quoted
[    1.847457] [<c02fdfc8>] (dma_chan_get+0x5c/0xfc) from
[<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0)
quoted
[    1.857322] [<c02fe6fc>] (__dma_request_channel+0xfc/0x1c0) from
[<c0422398>] (omap_hsmmc_probe+0x38c/0x908)
quoted
[    1.867732] [<c0422398>] (omap_hsmmc_probe+0x38c/0x908) from
[<c0339dc4>] (platform_drv_probe+0x18/0x1c)
quoted
[    1.877767] [<c0339dc4>] (platform_drv_probe+0x18/0x1c) from
[<c0338a68>] (really_probe+0x74/0x200)
quoted
[    1.887342] [<c0338a68>] (really_probe+0x74/0x200) from
[<c0338d0c>] (driver_probe_device+0x30/0x48)
quoted
[    1.897010] [<c0338d0c>] (driver_probe_device+0x30/0x48) from
[<c0338db8>] (__driver_attach+0x94/0x98)
quoted
[    1.906860] [<c0338db8>] (__driver_attach+0x94/0x98) from
[<c0337424>] (bus_for_each_dev+0x64/0x88)
quoted
[    1.916433] [<c0337424>] (bus_for_each_dev+0x64/0x88) from
[<c03383a8>] (bus_add_driver+0x1c0/0x240)
quoted
[    1.926098] [<c03383a8>] (bus_add_driver+0x1c0/0x240) from
[<c03392ec>] (driver_register+0x78/0x144)
quoted
[    1.935758] [<c03392ec>] (driver_register+0x78/0x144) from
[<c00086a4>] (do_one_initcall+0x34/0x180)
quoted
[    1.945432] [<c00086a4>] (do_one_initcall+0x34/0x180) from
[<c07208f8>] (kernel_init_freeable+0xfc/0x1c8)
quoted
[    1.955553] [<c07208f8>] (kernel_init_freeable+0xfc/0x1c8) from
[<c0502664>] (kernel_init+0x8/0xe4)
quoted
[    1.965139] [<c0502664>] (kernel_init+0x8/0xe4) from [<c00133f0>]
(ret_from_fork+0x14/0x24)
quoted
[    1.974061] omap_hsmmc mmc.3: unable to obtain RX DMA engine
channel 25
quoted
[    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
quoted
[    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
quoted
[    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
quoted
[    2.158349] omap_rtc 44e3e000.rtc: setting system clock to 2000-
01-01 00:00:01 UTC (946684801)
quoted
[    2.168602] Waiting for root device /dev/mmcblk0p2...


Thanks.
Vaibhav
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

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

From: Hiremath, Vaibhav <hidden>
Date: 2013-03-07 15:03:22

-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
quoted
Sent: Thursday, March 07, 2013 8:17 PM
To: Hiremath, Vaibhav
Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
Devicetree
quoted
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
Linux
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of
Porter,
quoted
quoted
Matt
quoted
quoted
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;
quoted
quoted
quoted
quoted
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:
quoted
quoted
quoted
quoted
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] On Behalf Of Porter, Matt
Sent: Thursday, March 07, 2013 9:47 AM
To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
Tony
quoted
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King
Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
List;
quoted
quoted
quoted
quoted
Linux
quoted
quoted
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 at 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 at arago /]#
[root at arago /]#
[root at arago /]# ls -l /dev/m
/dev/mem   /dev/mice
[root at arago /]# ls -l /dev/m
/dev/mem   /dev/mice
[root at arago /]# ls -l /dev/m
[root at arago /]#
[root at arago /]#
[root at arago /]#
[root at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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 at arago /]#
[root at arago /]#


Thanks,
Vaibhav

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

From: Matt Porter <hidden>
Date: 2013-03-07 15:03:38

On Thu, Mar 07, 2013 at 02:59:42PM +0000, Vaibhav Hiremath wrote:
quoted
-----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
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
Sent: Thursday, March 07, 2013 8:17 PM
To: Hiremath, Vaibhav
Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
Devicetree
quoted
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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
quoted
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;
quoted
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] On Behalf Of Porter, Matt
Sent: Thursday, March 07, 2013 9:47 AM
To: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King
Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
List;
quoted
quoted
quoted
Linux
quoted
quoted
Kernel Mailing List; Linux MMC List
Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
<snip>
quoted
I believe you meant "CONFIG_TI_EDMA" right?

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



[root at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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 at arago /]#
[root at 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

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

From: Hiremath, Vaibhav <hidden>
Date: 2013-03-07 15:50:26

-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----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
quoted
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
Linux
quoted
quoted
ARM Kernel List
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
Sent: Thursday, March 07, 2013 8:17 PM
To: Hiremath, Vaibhav
Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
Devicetree
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
Linux
quoted
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of
Porter,
quoted
quoted
quoted
Matt
quoted
quoted
Sent: Thursday, March 07, 2013 7:43 PM
To: Hiremath, Vaibhav
Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
List;
quoted
quoted
quoted
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:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-
omap-
quoted
quoted
quoted
quoted
quoted
quoted
quoted
owner at vger.kernel.org] On Behalf Of Porter, Matt
Sent: Thursday, March 07, 2013 9:47 AM
To: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
Benoit;
quoted
quoted
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King
Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
List;
quoted
quoted
quoted
Linux
quoted
quoted
Kernel Mailing List; Linux MMC List
Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
<snip>
quoted
I believe you meant "CONFIG_TI_EDMA" right?

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



[root at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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
quoted
quoted
driver
[    0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine
driver
quoted
quoted
[root at arago /]#
[root at 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()
quoted
[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
quoted
[v9,7/9] spi: omap2-mcspi: convert to
dma_request_slave_channel_compat()
quoted
[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
quoted
[v3,1/2] mmc: omap_hsmmc: convert to
dma_request_slave_channel_compat()
quoted


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

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

From: Matt Porter <hidden>
Date: 2013-03-07 16:02:07

On Thu, Mar 07, 2013 at 03:50:01PM +0000, Vaibhav Hiremath wrote:
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----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
quoted
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
Linux
quoted
quoted
ARM Kernel List
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
Sent: Thursday, March 07, 2013 8:17 PM
To: Hiremath, Vaibhav
Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
Devicetree
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
Linux
quoted
quoted
quoted
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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of
Porter,
quoted
quoted
quoted
Matt
quoted
quoted
Sent: Thursday, March 07, 2013 7:43 PM
To: Hiremath, Vaibhav
Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson, Benoit;
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King; Devicetree Discuss; Linux ARM Kernel
List;
quoted
quoted
quoted
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:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-
omap-
quoted
quoted
quoted
quoted
quoted
quoted
quoted
owner at vger.kernel.org] On Behalf Of Porter, Matt
Sent: Thursday, March 07, 2013 9:47 AM
To: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
Benoit;
quoted
quoted
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King
Cc: Devicetree Discuss; Linux ARM Kernel List; Linux OMAP
List;
quoted
quoted
quoted
Linux
quoted
quoted
Kernel Mailing List; Linux MMC List
Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
<snip>
quoted
I believe you meant "CONFIG_TI_EDMA" right?

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



[root at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at 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
quoted
quoted
driver
[    0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine
driver
quoted
quoted
[root at arago /]#
[root at 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()
quoted
[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
quoted
[v9,7/9] spi: omap2-mcspi: convert to
dma_request_slave_channel_compat()
quoted
[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
quoted
[v3,1/2] mmc: omap_hsmmc: convert to
dma_request_slave_channel_compat()
quoted


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
quoted hunk
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
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

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

From: Hiremath, Vaibhav <hidden>
Date: 2013-03-08 12:29:28

-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] 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:
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of Porter,
Matt
quoted
quoted
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;
quoted
quoted
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:
quoted
quoted
-----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
quoted
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris Ball;
Linux
quoted
quoted
ARM Kernel List
Subject: RE: [PATCH 2/2] ARM: dts: add AM33XX MMC support
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of
Porter,
quoted
quoted
quoted
quoted
Matt
quoted
Sent: Thursday, March 07, 2013 8:17 PM
To: Hiremath, Vaibhav
Cc: Linux OMAP List; Russell King; Krishnamoorthy, Balaji T;
Devicetree
quoted
Discuss; Linux MMC List; Linux Kernel Mailing List; Chris
Ball;
quoted
quoted
Linux
quoted
quoted
quoted
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:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
-----Original Message-----
From: Matt Porter [mailto:ohiomdp at gmail.com] On Behalf Of
Porter,
quoted
quoted
quoted
Matt
quoted
quoted
Sent: Thursday, March 07, 2013 7:43 PM
To: Hiremath, Vaibhav
Cc: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
Benoit;
quoted
quoted
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King; Devicetree Discuss; Linux ARM
Kernel
quoted
quoted
quoted
quoted
List;
quoted
quoted
quoted
Linux OMAP List; Linux Kernel Mailing List; Linux MMC
List
quoted
quoted
quoted
quoted
quoted
quoted
quoted
Subject: Re: [PATCH 2/2] ARM: dts: add AM33XX MMC support

On Thu, Mar 07, 2013 at 05:29:24AM +0000, Vaibhav
Hiremath
quoted
quoted
wrote:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-
omap-
quoted
quoted
quoted
quoted
quoted
quoted
quoted
owner at vger.kernel.org] On Behalf Of Porter, Matt
Sent: Thursday, March 07, 2013 9:47 AM
To: Krishnamoorthy, Balaji T; Chris Ball; Cousson,
Benoit;
quoted
quoted
Tony
quoted
quoted
quoted
quoted
quoted
Lindgren; Russell King
Cc: Devicetree Discuss; Linux ARM Kernel List; Linux
OMAP
quoted
quoted
quoted
quoted
List;
quoted
quoted
quoted
Linux
quoted
quoted
Kernel Mailing List; Linux MMC List
Subject: [PATCH 2/2] ARM: dts: add AM33XX MMC support
<snip>
quoted
I believe you meant "CONFIG_TI_EDMA" right?

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



[root at arago /]# dmesg | grep -ir mmc
[    0.506844] vmmc: 1800 <--> 3300 mV at 3300 mV
[    0.506970] vmmc: supplied by vbat
[root at arago /]#
[root at arago /]#
[root at arago /]# dmesg | grep -ir dma
[    0.217063] DMA: preallocated 256 KiB pool for atomic
coherent
quoted
quoted
quoted
quoted
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
quoted
quoted
driver
[    0.445156] omap-dma-engine omap-dma-engine: OMAP DMA engine
driver
quoted
quoted
[root at arago /]#
[root at 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()
quoted
[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
quoted
quoted
binding
quoted
[v9,7/9] spi: omap2-mcspi: convert to
dma_request_slave_channel_compat()
quoted
[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
quoted
quoted
binding
quoted
[v3,1/2] mmc: omap_hsmmc: convert to
dma_request_slave_channel_compat()
quoted


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.
quoted
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

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

From: Joel A Fernandes <hidden>
Date: 2013-06-14 19:54:36

Hi Tony, Vaibhav,
quoted
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 <redacted>

Thanks,
Joel

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

From: Felipe Balbi <hidden>
Date: 2013-06-14 22:28:27

Hi,

On Fri, Jun 14, 2013 at 02:54:33PM -0500, Joel A Fernandes wrote:
Hi Tony, Vaibhav,
quoted
quoted
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130615/a214085e/attachment.sig>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help