Skip to contentSkip to conversation

arm: Fix DEBUG_LL for omap zoom2/3

PATCH New Tony Lindgren 8 participants 20 messages Mar 20, 2010 – Apr 6, 2010

Subsystems (5)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL + earlyprintk.

Regards,

Tony

Quoted 1 line

From d1fa6f3fbc46546f3ade9026dcba80d6fd5bd6bd Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Fri, 19 Mar 2010 17:18:45 -0700
Subject: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Zoom2 and 3 have UARTs only on the external debug board. GPMC needs to be mapped early to use it for DEBUG_LL.

Note that with the pending serial.c patches you need to set console=ttyS0,115200n8 as it will be the only UART mapped. To use DEBUG_LL, you need to pass also earlyprintk in cmdline.

Cc Allen Pais <[email protected]>
Cc Vikram Pandita <[email protected]>
arch/arm/kernel/head.S +9 -0
index eb62bf9..bd23aa9 100644
@@ -328,6 +328,15 @@ __create_page_tables:
 	add	r0, r4, #0xd8000000 >> 18
 	str	r3, [r0]
 #endif
+if defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3)
+	/*
+	 * Zoom2 and Zoom3 have UARTs only on the debug board.
+	 * The debug board is connected to the GPMC.
+	 */
+	add	r0, r4, #0xfb000000 >> 18
+	orr	r3, r7, #0x10000000
+	str	r3, [r0]
+#endif
 #endif
 	mov	pc, lr
 ENDPROC(__create_page_tables)
author maintainer
#1 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 3 lines · Tony Lindgren

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL + earlyprintk.

And of course it won't compile because of a missing #. Here's the working version.

Tony

Quoted 1 line

From d1d25009c085a2ea677da6bc2c905fbcf98e224e Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Fri, 19 Mar 2010 17:18:45 -0700
Subject: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Zoom2 and 3 have UARTs only on the external debug board. GPMC needs to be mapped early to use it for DEBUG_LL.

Note that with the pending serial.c patches you need to set console=ttyS0,115200n8 as it will be the only UART mapped. To use DEBUG_LL, you need to pass also earlyprintk in cmdline.

Cc Allen Pais <[email protected]>
Cc Vikram Pandita <[email protected]>
arch/arm/kernel/head.S +9 -0
index eb62bf9..355e87d 100644
@@ -328,6 +328,15 @@ __create_page_tables:
 	add	r0, r4, #0xd8000000 >> 18
 	str	r3, [r0]
 #endif
+#if defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3)
+	/*
+	 * Zoom2 and Zoom3 have UARTs only on the debug board.
+	 * The debug board is connected to the GPMC.
+	 */
+	add	r0, r4, #0xfb000000 >> 18
+	orr	r3, r7, #0x10000000
+	str	r3, [r0]
+#endif
 #endif
 	mov	pc, lr
 ENDPROC(__create_page_tables)
author maintainer
#2 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL + earlyprintk.

And of course it won't compile because of a missing #. Here's the working version.

One more time. Looks like what I posted is not enough, we also need to make sure the mapping does not overlap with other regions. So basically we can't use 0xfb000000 like we currently have, let's use 0xf7000000 instead unless somebody has better ideas.

Regards,

Tony

Quoted 1 line

From e1b58f9dec794a9ed7fb999a38874f9d785617b7 Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Fri, 19 Mar 2010 17:18:45 -0700
Subject: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Zoom2 and 3 have UARTs only on the external debug board. GPMC needs to be mapped early to use it for DEBUG_LL.

Additionally, 0xfb000000 overlaps with other areas, so use 0xf7000000 for the virtual address instead.

Note that with the pending serial.c patches you need to set console=ttyS0,115200n8 as it will be the only UART mapped. To use DEBUG_LL, you need to pass also earlyprintk in cmdline.

Cc Allen Pais <[email protected]>
Cc Vikram Pandita <[email protected]>
arch/arm/kernel/head.S +9 -0
index eb62bf9..d13af88 100644
@@ -328,6 +328,15 @@ __create_page_tables:
 	add	r0, r4, #0xd8000000 >> 18
 	str	r3, [r0]
 #endif
+#if defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3)
+	/*
+	 * Zoom2 and Zoom3 have UARTs only on the debug board.
+	 * The debug board is connected to the GPMC.
+	 */
+	add	r0, r4, #0xf7000000 >> 18
+	orr	r3, r7, #0x10000000
+	str	r3, [r0]
+#endif
 #endif
 	mov	pc, lr
 ENDPROC(__create_page_tables)
arch/arm/mach-omap2/board-zoom-debugboard.c +1 -1
index e15d2e8..1d7f827 100644
@@ -82,7 +82,7 @@ static inline void __init zoom_init_smsc911x(void)
 
 static struct plat_serial8250_port serial_platform_data[] = {
 	{
-		.mapbase	= 0x10000000,
+		.mapbase	= ZOOM_UART_BASE,
 		.irq		= OMAP_GPIO_IRQ(102),
 		.flags		= UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
 		.irqflags	= IRQF_SHARED | IRQF_TRIGGER_RISING,
arch/arm/mach-omap2/io.c +9 -0
index 87f676a..1803aac 100644
@@ -166,6 +166,15 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
 		.length		= L4_EMU_34XX_SIZE,
 		.type		= MT_DEVICE
 	},
+#if defined(CONFIG_DEBUG_LL) &&						\
+	(defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3))
+	{
+		.virtual	= ZOOM_UART_VIRT,
+		.pfn		= __phys_to_pfn(ZOOM_UART_BASE),
+		.length		= SZ_1M,
+		.type		= MT_DEVICE
+	},
+#endif
 };
 #endif
 #ifdef	CONFIG_ARCH_OMAP4
arch/arm/plat-omap/include/plat/serial.h +1 -1
index 83dce4c..a18f617 100644
@@ -39,7 +39,7 @@
 
 /* External port on Zoom2/3 */
 #define ZOOM_UART_BASE		0x10000000
-#define ZOOM_UART_VIRT		0xfb000000
+#define ZOOM_UART_VIRT		0xf7000000
 
 #define OMAP_PORT_SHIFT		2
 #define OMAP7XX_PORT_SHIFT	0
author maintainer
#3 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 6 lines · Tony Lindgren
Quoted 5 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL + earlyprintk.

Quoted 8 lines
Quoted 2 lines

And of course it won't compile because of a missing #. Here's the working version.

One more time. Looks like what I posted is not enough, we also need to make sure the mapping does not overlap with other regions. So basically we can't use 0xfb000000 like we currently have, let's use 0xf7000000 instead unless somebody has better ideas.

And now 0xf7000000 is in vmalloc area.. Needs to be looked more.

Tony

#4 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 20 lines

-----Original Message-----
From: Tony Lindgren [mailto:tony at atomide.com]
Sent: Friday, March 19, 2010 10:03 PM
To: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org
Cc: Pais, Allen; Pandita, Vikram
Subject: Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 5 lines · Tony Lindgren
Quoted 4 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL +

earlyprintk.

Quoted 4 lines
Quoted 3 lines

And of course it won't compile because of a missing #. Here's the working version.

Quoted 8 lines
Quoted 5 lines

One more time. Looks like what I posted is not enough, we also need to make sure the mapping does not overlap with other regions. So basically we can't use 0xfb000000 like we currently have, let's use 0xf7000000 instead unless somebody has better ideas.

And now 0xf7000000 is in vmalloc area.. Needs to be looked more.

On internal TI trees, we do have 0xfa400000 working. Guess that is the magic number.

Quoted 2 lines

Tony

author maintainer
#5 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 26 lines · Pandita, Vikram
Quoted 26 lines

-----Original Message-----
From: Tony Lindgren [mailto:[email protected]]
Sent: Friday, March 19, 2010 10:03 PM
To: [email protected]; [email protected]
Cc: Pais, Allen; Pandita, Vikram
Subject: Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 5 lines · Tony Lindgren
Quoted 4 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL +

earlyprintk.

Quoted 9 lines
Quoted 3 lines

And of course it won't compile because of a missing #. Here's the working version.

One more time. Looks like what I posted is not enough, we also need to make sure the mapping does not overlap with other regions. So basically we can't use 0xfb000000 like we currently have, let's use 0xf7000000 instead unless somebody has better ideas.

Quoted 5 lines
Quoted 2 lines

And now 0xf7000000 is in vmalloc area.. Needs to be looked more.

On internal TI trees, we do have 0xfa400000 working. Guess that is the magic number.

Great and thanks for pointing out that hole in the mapping.

Here's an updated version of this patch using 0xfa400000. Few other things had to be updated accordingly.

Regards,

Tony

Quoted 1 line

From 5b1cf8010cbb847803db7a1a325f93b3b586005f Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Fri, 19 Mar 2010 17:18:45 -0700
Subject: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Zoom2 and 3 have UARTs only on the external debug board. GPMC needs to be mapped early to use it for DEBUG_LL.

Additionally, 0xfb000000 overlaps with other areas, so use 0xfa400000 for the virtual address instead.

Note that with the pending serial.c patches you need to set console=ttyS0,115200n8 as it will be the only UART mapped. To use DEBUG_LL, you need to pass also earlyprintk in cmdline.

Cc Allen Pais <[email protected]>
Cc Vikram Pandita <[email protected]>
arch/arm/kernel/head.S +10 -0
index eb62bf9..fd870e1 100644
@@ -328,6 +328,16 @@ __create_page_tables:
 	add	r0, r4, #0xd8000000 >> 18
 	str	r3, [r0]
 #endif
+#if defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3)
+	/*
+	 * Zoom2 and Zoom3 have UARTs only on the debug board.
+	 * The debug board is connected to the GPMC.
+	 */
+	add	r0, r4, #0xfa000000 >> 18
+	orr	r0, r0, #0x00400000 >> 18	@ ZOOM_UART_VIRT
+	orr	r3, r7, #0x10000000		@ ZOOM_UART_BASE
+	str	r3, [r0]
+#endif
 #endif
 	mov	pc, lr
 ENDPROC(__create_page_tables)
arch/arm/mach-omap2/board-zoom-debugboard.c +1 -1
index e15d2e8..1d7f827 100644
@@ -82,7 +82,7 @@ static inline void __init zoom_init_smsc911x(void)
 
 static struct plat_serial8250_port serial_platform_data[] = {
 	{
-		.mapbase	= 0x10000000,
+		.mapbase	= ZOOM_UART_BASE,
 		.irq		= OMAP_GPIO_IRQ(102),
 		.flags		= UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
 		.irqflags	= IRQF_SHARED | IRQF_TRIGGER_RISING,
arch/arm/mach-omap2/include/mach/debug-macro.S +2 -2
index 4a63a2e..231ea27 100644
@@ -87,10 +87,10 @@ omap_uart_lsr:	.word	0
 		b	98f
 44:		mov	\rx, #UART_OFFSET(OMAP4_UART4_BASE)
 		b	98f
-95:		mov	\rx, #ZOOM_UART_BASE
+95:		ldr	\rx, =ZOOM_UART_BASE
 		ldr	\tmp, =omap_uart_phys
 		str	\rx, [\tmp, #0]
-		mov	\rx, #ZOOM_UART_VIRT
+		ldr	\rx, =ZOOM_UART_VIRT
 		ldr	\tmp, =omap_uart_virt
 		str	\rx, [\tmp, #0]
 		mov	\rx, #(UART_LSR << ZOOM_PORT_SHIFT)
arch/arm/mach-omap2/io.c +9 -0
index 87f676a..3cfb425 100644
@@ -166,6 +166,15 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
 		.length		= L4_EMU_34XX_SIZE,
 		.type		= MT_DEVICE
 	},
+#if defined(CONFIG_DEBUG_LL) &&							\
+	(defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3))
+	{
+		.virtual	= ZOOM_UART_VIRT,
+		.pfn		= __phys_to_pfn(ZOOM_UART_BASE),
+		.length		= SZ_1M,
+		.type		= MT_DEVICE
+	},
+#endif
 };
 #endif
 #ifdef	CONFIG_ARCH_OMAP4
arch/arm/plat-omap/include/plat/serial.h +1 -1
index 83dce4c..9ec7eab 100644
@@ -39,7 +39,7 @@
 
 /* External port on Zoom2/3 */
 #define ZOOM_UART_BASE		0x10000000
-#define ZOOM_UART_VIRT		0xfb000000
+#define ZOOM_UART_VIRT		0xfa400000
 
 #define OMAP_PORT_SHIFT		2
 #define OMAP7XX_PORT_SHIFT	0
#6 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

In reply to Tony Lindgren
Quoted 6 lines
Quoted 4 lines
Quoted 4 lines

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL

+ earlyprintk.

Quoted 1 line
Quoted 8 lines
Quoted 2 lines

And of course it won't compile because of a missing #. Here's the working version.

One more time. Looks like what I posted is not enough, we also need to make sure the mapping does not overlap with other regions. So basically we can't use 0xfb000000 like we currently have, let's use 0xf7000000 instead unless somebody has better ideas.

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

The commit am using is : a842b5f9ce70e1b738eabb4d719860070180ed1c

- Allen

Quoted 5 lines

Regards,

Tony

author maintainer
#7 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 15 lines · Pais, Allen
Quoted 6 lines
Quoted 4 lines
Quoted 4 lines

Hi all,

Got a zoom3 finally! This is needed to boot with DEBUG_LL

+ earlyprintk.

Quoted 1 line
Quoted 8 lines
Quoted 2 lines

And of course it won't compile because of a missing #. Here's the working version.

One more time. Looks like what I posted is not enough, we also need to make sure the mapping does not overlap with other regions. So basically we can't use 0xfb000000 like we currently have, let's use 0xf7000000 instead unless somebody has better ideas.

Quoted 5 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

The commit am using is : a842b5f9ce70e1b738eabb4d719860070180ed1c

I think you will also need the 3630 serial fixes series posted recently.

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

BTW, I'm still seeing mux errors on zoom3, have not yet looked into those.

Regards,

Tony

author maintainer
#8 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 3 lines · Tony Lindgren

BTW, I'm still seeing mux errors on zoom3, have not yet looked into those.

Looks like we're currently missing these pins. Still need to be checked for GPIO values and modes though, posting just for reference as this fixes the "mux: Unknown ball offset" on 3630.

Regards,

Tony

Quoted 1 line

From 70b0af58f42609cd16bebc8abe17fa065c594898 Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Mon, 22 Mar 2010 18:22:10 -0700
Subject: [PATCH] omap2/3/4: Add missing uninitialized pins

Otherwise we'll get errors on 3630:

mux: Unknown ball offset 0x5e
mux: Unknown ball offset 0x60
mux: Unknown ball offset 0x62
...

REVISIT: These still need to be checked for the GPIO values and available modes.

arch/arm/mach-omap2/mux34xx.c +218 -0
index 07aa7b3..8712b91 100644
@@ -650,6 +650,224 @@ static struct omap_mux __initdata omap3_muxmodes[] = {
 		"uart3_tx_irtx", NULL, NULL, NULL,
 		"gpio_166", NULL, NULL, "safe_mode"),
 
+	/* REVISIT: The should be initialized with GPIO number and modes */
+	_OMAP3_MUXENTRY(I2C1_SCL, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(I2C1_SDA, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(JTAG_RTCK, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(JTAG_TCK, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(JTAG_TDI, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(JTAG_TDO, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(JTAG_TMS_TMSC, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A0, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A1, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A10, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A11, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A12, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A13, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A14, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A2, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A3, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A4, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A5, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A6, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A7, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A8, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_A9, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_BA0, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_BA1, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_CLK, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D0, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D1, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D10, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D11, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D12, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D13, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D14, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D15, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D16, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D17, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D18, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D19, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D2, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D20, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D21, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D22, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D23, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D24, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D25, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D26, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D27, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D28, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D29, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D3, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D30, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D31, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D4, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D5, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D6, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D7, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D8, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_D9, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DM0, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DM1, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DM2, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DM3, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DQS0, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DQS1, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DQS2, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_DQS3, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_NCAS, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_NCLK, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_NCS0, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_NCS1, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_NRAS, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SDRC_NWE, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+	_OMAP3_MUXENTRY(SYS_32K, 0,
+		NULL, NULL, NULL, NULL,
+		NULL, NULL, NULL, NULL),
+
 	/* Only on 3630, see omap36xx_cbp_subset for the signals */
 	_OMAP3_MUXENTRY(GPMC_A11, 0,
 		NULL, NULL, NULL, NULL,
#9 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

In reply to Tony Lindgren
Quoted 5 lines
Quoted 5 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

Quoted 8 lines
Quoted 1 line

The commit am using is : a842b5f9ce70e1b738eabb4d719860070180ed1c

I think you will also need the 3630 serial fixes series posted recently.

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

Thanks, I'll pull in those fixes.
I believe the mux errors are fixed. Have a look at
http://dev.omapzoom.org/?p=manju/kernel-omap3-dev.git;a=commit;h=3499f5023ee90dc6ee3868a3147b87fe22a1d9b7

Patch must have been missed some how.

- Allen

Quoted 8 lines

BTW, I'm still seeing mux errors on zoom3, have not yet looked into those.

Regards,

Tony

author maintainer
#10 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 14 lines · Pais, Allen
Quoted 5 lines
Quoted 5 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

Quoted 8 lines
Quoted 1 line

The commit am using is : a842b5f9ce70e1b738eabb4d719860070180ed1c

I think you will also need the 3630 serial fixes series posted recently.

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

Quoted 5 lines

Thanks, I'll pull in those fixes.
I believe the mux errors are fixed. Have a look at
http://dev.omapzoom.org/?p=manju/kernel-omap3-dev.git;a=commit;h=3499f5023ee90dc6ee3868a3147b87fe22a1d9b7

Patch must have been missed some how.

OK, we really should get fixes like that to mainline kernel ASAP to avoid duplicating the effort.

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status 0x900
end_request: I/O error, dev mmcblk1, sector 2097024
...

Any ideas if that's fixed somewhere also?

Regards,

Tony

#11 lore raw

mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Tony Lindgren had written, on 03/23/2010 10:27 AM, the following:
[...]

Quoted 7 lines

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status 0x900
end_request: I/O error, dev mmcblk1, sector 2097024
...

I have seen this on few platforms and seem to be related to eMMC usage.

Quoted 1 line

Any ideas if that's fixed somewhere also?

Madhu, any comments?

Signature · 2 lines
Regards,
Nishanth Menon
#12 lore raw

mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Hi Nishant,

The eMMC on Zoom2 has an issue with respect to detection as a high capacity card. This was discussed on the list with Pierre sometime back. I don't have an acceptable solution to make this device work. Rather I prefer to submit a patch which disables MMC2 on these boards.

You can still use MMC1 to mount your file system. This is the card you can plug in to the cage.

Regards,
Madhu

Quoted 26 lines

-----Original Message-----
From: Nishanth Menon [mailto:nm at ti.com]
Sent: Tuesday, March 23, 2010 5:49 PM
To: Tony Lindgren
Cc: Pais, Allen; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pandita, Vikram; Madhusudhan Chikkature Rajashekar
Subject: mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Tony Lindgren had written, on 03/23/2010 10:27 AM, the following:
[...]

Quoted 4 lines

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status

0x900

Quoted 3 lines

end_request: I/O error, dev mmcblk1, sector 2097024
...

I have seen this on few platforms and seem to be related to eMMC usage.

Quoted 1 line

Any ideas if that's fixed somewhere also?

Madhu, any comments?

--
Regards,
Nishanth Menon

#13 lore raw

mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

In reply to Nishanth Menon
Quoted 51 lines

-----Original Message-----
From: Madhusudhan [mailto:madhu.cr at ti.com]
Sent: Wednesday, March 24, 2010 10:31 AM
To: 'Nishanth Menon'; 'Tony Lindgren'
Cc: 'Pais, Allen'; 'linux-arm-kernel at lists.infradead.org'; 'linux- omap at vger.kernel.org'; 'Pandita, Vikram'
Subject: RE: mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Hi Nishant,

The eMMC on Zoom2 has an issue with respect to detection as a high capacity card. This was discussed on the list with Pierre sometime back. I don't have an acceptable solution to make this device work. Rather I prefer to submit a patch which disables MMC2 on these boards.

You can still use MMC1 to mount your file system. This is the card you can plug in to the cage.

Regards,
Madhu

Quoted 8 lines

-----Original Message-----
From: Nishanth Menon [mailto:nm at ti.com]
Sent: Tuesday, March 23, 2010 5:49 PM
To: Tony Lindgren
Cc: Pais, Allen; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pandita, Vikram; Madhusudhan Chikkature Rajashekar
Subject: mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Quoted 6 lines

Tony Lindgren had written, on 03/23/2010 10:27 AM, the following:
[...]

Quoted 4 lines

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card

status

Quoted 12 lines

0x900

Quoted 3 lines

end_request: I/O error, dev mmcblk1, sector 2097024
...

I have seen this on few platforms and seem to be related to eMMC usage.

Quoted 1 line

Any ideas if that's fixed somewhere also?

Madhu, any comments?

--
Regards,
Nishanth Menon

#14 lore raw

mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

In reply to Nishanth Menon
Quoted 16 lines

-----Original Message-----
From: Nishanth Menon [mailto:nm at ti.com]
Sent: Tuesday, March 23, 2010 5:49 PM
To: Tony Lindgren
Cc: Pais, Allen; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pandita, Vikram; Madhusudhan Chikkature Rajashekar
Subject: mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Tony Lindgren had written, on 03/23/2010 10:27 AM, the following:
[...]

Quoted 4 lines

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status

Quoted 9 lines

0x900

Quoted 3 lines

end_request: I/O error, dev mmcblk1, sector 2097024
...

I have seen this on few platforms and seem to be related to eMMC usage.

Quoted 1 line

Any ideas if that's fixed somewhere also?

Madhu, any comments?

Sorry about multiple replies to this mail. Just wanted to avoid top posting.

The eMMC on Zoom2 has an issue with respect to detection as a high capacity card. This was discussed on the list with Pierre sometime back. I don't have an acceptable solution to make this device work. Rather I prefer to submit a patch which disables MMC2 on these boards.

You can still use MMC1 to mount your file system. This is the card you can plug in to the cage.

Regards,
Madhu

Quoted 3 lines

--
Regards,
Nishanth Menon

#15 lore raw

mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Hello all

I've juste finished a modification about a multi eMMC on own platform.
we used 4 eMMC of 32Gib (micron MTFC32GHKD) on same host (MMC1) and we used it like de big device (128Gib)

I had a similar problem (It was the pbias 1 configuration)

I can't test the effect on SD card
any comments...

drivers/mmc/card/Kconfig +13 -0
index 3f2a912..6054441 100644
@@ -32,6 +32,19 @@ config MMC_BLOCK_BOUNCE
 
  	  If unsure, say Y here.
 
+config MULTI_MMC_AS_ONE
+	bool "Simulate multi mmc card as one big"
+	depends on MMC_BLOCK && MULTI_MMC_ON_HOST
+	default y
+	help
+	  A multiple SD/MMC card can be connected on a single host controller.
+	  with this you can see a large device.
+
+	  Say N here if you want to see as multiple storage devices
+
+	  If unsure, say N here.
+
+
  config SDIO_UART
  	tristate "SDIO UART/GPS class support"
  	help
drivers/mmc/card/block.c +99 -4

160 lines not on this page · raw message

drivers/mmc/core/Kconfig +5 -0
index bb22ffd..b3c854e 100644
@@ -16,3 +16,8 @@ config MMC_UNSAFE_RESUME
 
  	  This option sets a default which can be overridden by the
  	  module parameter "removable=0" or "removable=1".
+
+config MULTI_MMC_ON_HOST
+	bool "Detect multiple MMC/SD cards one same host controller"
+	help
+	  If you say Y here, the MMC layer scan the bus to discover MMC cards
drivers/mmc/core/bus.c +6 -0
index bdb165f..badec96 100644
@@ -221,7 +222,9 @@ struct mmc_card *mmc_alloc_card(struct mmc_host *host, struct device_type *type)
   */
  int mmc_add_card(struct mmc_card *card)
  {
+#ifndef CONFIG_MULTI_MMC_AS_ONE
  	int ret;
+#endif
  	const char *type;
 
  	dev_set_name(&card->dev, "%s:%04x", mmc_hostname(card->host), card->rca);
@@ -255,9 +258,11 @@ int mmc_add_card(struct mmc_card *card)
  			type, card->rca);
  	}
 
+#ifndef CONFIG_MULTI_MMC_AS_ONE
  	ret = device_add(&card->dev);
  	if (ret)
  		return ret;
+#endif
 
  #ifdef CONFIG_DEBUG_FS
  	mmc_add_card_debugfs(card);
@@ -286,7 +291,9 @@ void mmc_remove_card(struct mmc_card *card)
  			printk(KERN_INFO "%s: card %04x removed\n",
  				mmc_hostname(card->host), card->rca);
  		}
+#ifndef CONFIG_MULTI_MMC_AS_ONE
  		device_del(&card->dev);
+#endif
  	}
 
  	put_device(&card->dev);
drivers/mmc/core/core.c +13 -4
index 30acd52..b186933 100644
@@ -910,9 +910,9 @@ static void mmc_power_up(struct mmc_host *host)
  	if (host->f_min > 400000) {
  		pr_warning("%s: Minimum clock frequency too high for "
  				"identification mode\n", mmc_hostname(host));
-		host->ios.clock = host->f_min;
-	} else
  		host->ios.clock = 400000;
+	} else
+		host->ios.clock = host->f_min;
 
  	host->ios.power_mode = MMC_POWER_ON;
  	mmc_set_ios(host);
@@ -1164,8 +1164,6 @@ void mmc_stop_host(struct mmc_host *host)
  	}
  	mmc_bus_put(host);
 
-	BUG_ON(host->card);
-
  	mmc_power_off(host);
  }
 
@@ -1235,10 +1233,21 @@ EXPORT_SYMBOL(mmc_card_sleep);
 
  int mmc_card_can_sleep(struct mmc_host *host)
  {
+
+#ifdef CONFIG_MULTI_MMC_ON_HOST
+	struct mmc_card *card;
+	int i;
+	for (i=0; i<host->card_detected;++i){
+		card = host->cards[i];
+		if (card && mmc_card_mmc(card) && card->ext_csd.rev >= 3)
+			return 1;
+	}
+#else
  	struct mmc_card *card = host->card;
 
  	if (card && mmc_card_mmc(card) && card->ext_csd.rev >= 3)
  		return 1;
+#endif
  	return 0;
  }
  EXPORT_SYMBOL(mmc_card_can_sleep);
drivers/mmc/core/mmc.c +384 -4

525 lines not on this page · raw message

drivers/mmc/core/mmc_ops.c +11 -10
index d2cb5c6..b894481 100644
@@ -29,7 +29,6 @@ static int _mmc_select_card(struct mmc_host *host, struct mmc_card *card)
  	memset(&cmd, 0, sizeof(struct mmc_command));
 
  	cmd.opcode = MMC_SELECT_CARD;
-
  	if (card) {
  		cmd.arg = card->rca << 16;
  		cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
@@ -51,20 +50,21 @@ int mmc_select_card(struct mmc_card *card)
 
  	return _mmc_select_card(card->host, card);
  }
+EXPORT_SYMBOL(mmc_select_card);
 
  int mmc_deselect_cards(struct mmc_host *host)
  {
  	return _mmc_select_card(host, NULL);
  }
+EXPORT_SYMBOL(mmc_deselect_cards);
 
-int mmc_card_sleepawake(struct mmc_host *host, int sleep)
+int mmc_card_sleepawake(struct mmc_card *card, int sleep)
  {
  	struct mmc_command cmd;
-	struct mmc_card *card = host->card;
  	int err;
 
  	if (sleep)
-		mmc_deselect_cards(host);
+		mmc_deselect_cards(card->host);
 
  	memset(&cmd, 0, sizeof(struct mmc_command));
 
@@ -74,7 +74,7 @@ int mmc_card_sleepawake(struct mmc_host *host, int sleep)
  		cmd.arg |= 1 << 15;
 
  	cmd.flags = MMC_RSP_R1B | MMC_CMD_AC;
-	err = mmc_wait_for_cmd(host, &cmd, 0);
+	err = mmc_wait_for_cmd(card->host, &cmd, 0);
  	if (err)
  		return err;
 
@@ -84,7 +84,7 @@ int mmc_card_sleepawake(struct mmc_host *host, int sleep)
  	 * SEND_STATUS command to poll the status because that command (and most
  	 * others) is invalid while the card sleeps.
  	 */
-	if (!(host->caps & MMC_CAP_WAIT_WHILE_BUSY))
+	if (!(card->host->caps & MMC_CAP_WAIT_WHILE_BUSY))
  		mmc_delay(DIV_ROUND_UP(card->ext_csd.sa_timeout, 10000));
 
  	if (!sleep)
@@ -325,14 +325,15 @@ int mmc_send_csd(struct mmc_card *card, u32 *csd)
  	return 0;
  }
 
-int mmc_send_cid(struct mmc_host *host, u32 *cid)
+int mmc_send_cid(struct mmc_host *host, unsigned int rca, u32 *cid)
  {
  	int ret, i;
 
+	if (!host)
+		return -EINVAL;
+
  	if (!mmc_host_is_spi(host)) {
-		if (!host->card)
-			return -EINVAL;
-		return mmc_send_cxd_native(host, host->card->rca << 16,
+		return mmc_send_cxd_native(host, rca << 16,
  				cid, MMC_SEND_CID);
  	}
 
drivers/mmc/core/mmc_ops.h +2 -2
index 653eb8e..d0aee59 100644
@@ -22,10 +22,10 @@ int mmc_send_csd(struct mmc_card *card, u32 *csd);
  int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd);
  int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value);
  int mmc_send_status(struct mmc_card *card, u32 *status);
-int mmc_send_cid(struct mmc_host *host, u32 *cid);
+int mmc_send_cid(struct mmc_host *host, unsigned int rca, u32 *cid);
  int mmc_spi_read_ocr(struct mmc_host *host, int highcap, u32 *ocrp);
  int mmc_spi_set_crc(struct mmc_host *host, int use_crc);
-int mmc_card_sleepawake(struct mmc_host *host, int sleep);
+int mmc_card_sleepawake(struct mmc_card *card, int sleep);
 
  #endif
 
drivers/mmc/core/sd.c +1 -1
index fdd414e..0889de2 100644
@@ -366,7 +366,7 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
  	 * Fetch CID from card.
  	 */
  	if (mmc_host_is_spi(host))
-		err = mmc_send_cid(host, cid);
+		err = mmc_send_cid(host, 0, cid);
  	else
  		err = mmc_all_send_cid(host, cid);
  	if (err)
drivers/mmc/host/omap_hsmmc.c +76 -10

174 lines not on this page · raw message

arch/arm/mach-omap2/hsmmc.c +31 -3
index 9ad2295..7996bcc 100644
@@ -5,6 +5,11 @@
   * Copyright (C) 2008 Nokia Corporation
   * Author: Texas Instruments
   *
+ *
+ * 20100315
+ *          Laurent Epinat <[email protected]>
+ * Add 	cpu_is_omap34xx() for pbias1  (VMMCa1)
+ *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
@@ -83,14 +88,23 @@ static void hsmmc1_before_set_reg(struct device *dev, int slot,
  			prog_io = omap_ctrl_readl(OMAP343X_CONTROL_PROG_IO1);
  			prog_io |= OMAP3630_PRG_SDMMC1_SPEEDCTRL;
  			omap_ctrl_writel(prog_io, OMAP343X_CONTROL_PROG_IO1);
-		} else {
+		}
+		else if (cpu_is_omap34xx()) {
+			reg &= 	~(OMAP343X_PBIASSPEEDCTRL1|OMAP2_PBIASSPEEDCTRL0);
+		}
+		else {
  			reg |= OMAP2_PBIASSPEEDCTRL0;
  		}
  		reg &= ~OMAP2_PBIASLITEPWRDNZ0;
+		if (cpu_is_omap34xx())
+			reg &= ~OMAP343X_PBIASLITEPWRDNZ1;
  		omap_ctrl_writel(reg, control_pbias_offset);
  	} else {
  		reg = omap_ctrl_readl(control_pbias_offset);
  		reg &= ~OMAP2_PBIASLITEPWRDNZ0;
+		if (cpu_is_omap34xx())
+			reg &= ~OMAP343X_PBIASLITEPWRDNZ1;
+
  		omap_ctrl_writel(reg, control_pbias_offset);
  	}
  }
@@ -106,15 +120,29 @@ static void hsmmc1_after_set_reg(struct device *dev, int slot,
  	if (power_on) {
  		reg = omap_ctrl_readl(control_pbias_offset);
  		reg |= (OMAP2_PBIASLITEPWRDNZ0 | OMAP2_PBIASSPEEDCTRL0);
-		if ((1 << vdd) <= MMC_VDD_165_195)
+		if (cpu_is_omap34xx()) {
+			reg |= 	(OMAP343X_PBIASLITEPWRDNZ1 | OMAP343X_PBIASSPEEDCTRL1);
+		}
+		if ((1 << vdd) <= MMC_VDD_165_195) {
  			reg &= ~OMAP2_PBIASLITEVMODE0;
-		else
+			if (cpu_is_omap34xx()) {
+				reg &= ~OMAP343X_PBIASLITEVMODE1;
+			}
+		}
+		else {
  			reg |= OMAP2_PBIASLITEVMODE0;
+			if (cpu_is_omap34xx()) {
+				reg |= OMAP343X_PBIASLITEVMODE1;
+			}
+		}
  		omap_ctrl_writel(reg, control_pbias_offset);
  	} else {
  		reg = omap_ctrl_readl(control_pbias_offset);
  		reg |= (OMAP2_PBIASSPEEDCTRL0 | OMAP2_PBIASLITEPWRDNZ0 |
  			OMAP2_PBIASLITEVMODE0);
+		if (cpu_is_omap34xx())
+			reg |= 	(OMAP343X_PBIASSPEEDCTRL1 | OMAP343X_PBIASLITEPWRDNZ1 |
+						OMAP343X_PBIASLITEVMODE1);
  		omap_ctrl_writel(reg, control_pbias_offset);
  	}
  }
include/linux/mmc/host.h +6 -1
index eaf3636..b925265 100644
@@ -182,7 +182,12 @@ struct mmc_host {
  	unsigned int		disable_delay;	/* disable delay in msecs */
  	struct delayed_work	disable;	/* disabling work */
 
-	struct mmc_card		*card;		/* device attached to this host */
+#ifdef CONFIG_MULTI_MMC_ON_HOST
+#define MMC_MAX_CARD	64		/* spec ~40 in same host ? */
+	struct mmc_card *cards[MMC_MAX_CARD];/* devices attached to this host */
+	int  card_detected;
+#endif
+	struct mmc_card *card;			/* Keep for compatibility SD, SDIO, ...*/
 
  	wait_queue_head_t	wq;
  	struct task_struct	*claimer;	/* task that has host claimed */

---

Le 24.03.2010 16:35, Madhusudhan a ?crit :

Quoted 48 lines
Quoted 16 lines

-----Original Message-----
From: Nishanth Menon [mailto:nm at ti.com]
Sent: Tuesday, March 23, 2010 5:49 PM
To: Tony Lindgren
Cc: Pais, Allen; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pandita, Vikram; Madhusudhan Chikkature Rajashekar
Subject: mmc errors (was Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3)

Tony Lindgren had written, on 03/23/2010 10:27 AM, the following:
[...]

Quoted 4 lines

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status

Quoted 9 lines

0x900

Quoted 3 lines

end_request: I/O error, dev mmcblk1, sector 2097024
...

I have seen this on few platforms and seem to be related to eMMC usage.

Quoted 1 line

Any ideas if that's fixed somewhere also?

Madhu, any comments?

Sorry about multiple replies to this mail. Just wanted to avoid top posting.

The eMMC on Zoom2 has an issue with respect to detection as a high capacity card. This was discussed on the list with Pierre sometime back. I don't have an acceptable solution to make this device work. Rather I prefer to submit a patch which disables MMC2 on these boards.

You can still use MMC1 to mount your file system. This is the card you can plug in to the cage.

Regards,
Madhu

Quoted 3 lines

--
Regards,
Nishanth Menon

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 11 lines
Salutations
Laurent Epinat -> mailto:laurent.epinat at cioinfoindus.fr

CIO Informatique
Le millenium
1, rue de Presse - BP 710
42950 Saint-Etienne Cedex 9

Tel    33 (0) 477 93 34 32
Tcopie 33 (0) 477 79 75 55
WWW : http://www.cioinfoindus.fr/
#16 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

In reply to Tony Lindgren
Quoted 39 lines

-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap- owner at vger.kernel.org] On Behalf Of Tony Lindgren
Sent: Tuesday, March 23, 2010 10:27 AM
To: Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org; Pandita, Vikram
Subject: Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 10 lines · Pais, Allen
Quoted 10 lines
Quoted 6 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

The commit am using is : a842b5f9ce70e1b738eabb4d719860070180ed1c

I think you will also need the 3630 serial fixes series posted recently.

Quoted 7 lines
Quoted 3 lines

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

Thanks, I'll pull in those fixes.
I believe the mux errors are fixed. Have a look at
http://dev.omapzoom.org/?p=manju/kernel-omap3-

dev.git;a=commit;h=3499f5023ee90dc6ee3868a3147b87fe22a1d9b7

Quoted 2 lines

Patch must have been missed some how.

OK, we really should get fixes like that to mainline kernel ASAP to avoid duplicating the effort.

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

Quoted 7 lines

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status 0x900
end_request: I/O error, dev mmcblk1, sector 2097024
...

Any ideas if that's fixed somewhere also?

Tony,

What is the branch on which the kernel is built? I tried the master branch and the omap-fixes-for-linus both does not seem to boot Zoom3.

Regards,
Madhu

Quoted 7 lines

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#17 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Master branch will work fine for omap_zoom3_defconfig. Pls make sure to use ttyS0 in bootargs.

OMAP36XX ZOOM3 # boot
LAN9x18 (0x92210000) detected.
Read mac address: 00:08:EE:03:7D:EE
start Auto negotiation... (take ~2sec)
Auto negotiation complete, 100BaseTX, full duplex
TFTP from server 172.24.136.151; our IP address is 172.24.190.192; sending through gateway 172.24.188.1 Filename 'uImage_zoom3'.
Load address: 0x80300000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##########################################################
done
Bytes transferred = 1959780 (1de764 hex)
## Booting image at 80300000 ...
   Image Name:   Linux-2.6.34-rc2-07865-g2e51807
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1959716 Bytes =  1.9 MB

Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.34-rc2-07865-g2e51807 (manju at u-host) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #5 Wed Mar 31 11:51:19 IST 2010
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP Zoom3 board
Memory policy: ECC disabled, Data cache writeback
OMAP3630 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=172.24.136.151:/home/manju/fs/alsa-fs target,nolock,tcp,rsize=1024,wsize=1024 mem=128M ip=dhcp

Regards,
Manjunath

Quoted 83 lines

-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-owner at vger.kernel.org] On Behalf Of Chikkature Rajashekar, Madhusudhan
Sent: Wednesday, March 31, 2010 5:05 AM
To: 'Tony Lindgren'; Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org; Pandita, Vikram
Subject: RE: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 6 lines

-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap- owner at vger.kernel.org] On Behalf Of Tony Lindgren
Sent: Tuesday, March 23, 2010 10:27 AM
To: Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org;

linux-omap at vger.kernel.org;

Quoted 10 lines

Pandita, Vikram
Subject: Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 6 lines · Pais, Allen
Quoted 6 lines
Quoted 6 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

The commit am using is :

a842b5f9ce70e1b738eabb4d719860070180ed1c

Quoted 15 lines
Quoted 11 lines
Quoted 7 lines

I think you will also need the 3630 serial fixes series posted recently.

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

Thanks, I'll pull in those fixes.
I believe the mux errors are fixed. Have a look at
http://dev.omapzoom.org/?p=manju/kernel-omap3-

dev.git;a=commit;h=3499f5023ee90dc6ee3868a3147b87fe22a1d9b7

Quoted 2 lines

Patch must have been missed some how.

Quoted 7 lines

OK, we really should get fixes like that to mainline kernel ASAP to avoid duplicating the effort.

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr

8, card status

Quoted 6 lines

0x900
end_request: I/O error, dev mmcblk1, sector 2097024
...

Any ideas if that's fixed somewhere also?

Tony,

What is the branch on which the kernel is built? I tried the master branch
and the omap-fixes-for-linus both does not seem to boot Zoom3.

Regards,
Madhu

Quoted 5 lines

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe

linux-omap" in

Quoted 2 lines

the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

#18 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

Quoted 10 lines

-----Original Message-----
From: G, Manjunath Kondaiah [mailto:manjugk at ti.com]
Sent: Wednesday, March 31, 2010 1:11 AM
To: Chikkature Rajashekar, Madhusudhan; 'Tony Lindgren'; Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org; Pandita, Vikram
Subject: RE: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 3 lines

Master branch will work fine for omap_zoom3_defconfig. Pls make sure to use ttyS0 in bootargs.

Yes. That works.

Thanks,
Madhu

Quoted 129 lines

OMAP36XX ZOOM3 # boot
LAN9x18 (0x92210000) detected.
Read mac address: 00:08:EE:03:7D:EE
start Auto negotiation... (take ~2sec)
Auto negotiation complete, 100BaseTX, full duplex
TFTP from server 172.24.136.151; our IP address is 172.24.190.192; sending through gateway 172.24.188.1
Filename 'uImage_zoom3'.
Load address: 0x80300000
Loading: #################################################################

         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##########################################################
done
Bytes transferred = 1959780 (1de764 hex)
## Booting image at 80300000 ...
   Image Name:   Linux-2.6.34-rc2-07865-g2e51807
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1959716 Bytes =  1.9 MB

Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.34-rc2-07865-g2e51807 (manju at u-host) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #5 Wed Mar 31 11:51:19 IST 2010
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP Zoom3 board
Memory policy: ECC disabled, Data cache writeback
OMAP3630 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=172.24.136.151:/home/manju/fs/alsa-fs target,nolock,tcp,rsize=1024,wsize=1024 mem=128M ip=dhcp

Regards,
Manjunath

Quoted 83 lines

-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-owner at vger.kernel.org] On Behalf Of Chikkature Rajashekar, Madhusudhan
Sent: Wednesday, March 31, 2010 5:05 AM
To: 'Tony Lindgren'; Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org; Pandita, Vikram
Subject: RE: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 6 lines

-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap- owner at vger.kernel.org] On Behalf Of Tony Lindgren
Sent: Tuesday, March 23, 2010 10:27 AM
To: Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org;

linux-omap at vger.kernel.org;

Quoted 10 lines

Pandita, Vikram
Subject: Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 6 lines · Pais, Allen
Quoted 6 lines
Quoted 6 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

The commit am using is :

a842b5f9ce70e1b738eabb4d719860070180ed1c

Quoted 15 lines
Quoted 11 lines
Quoted 7 lines

I think you will also need the 3630 serial fixes series posted recently.

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

Thanks, I'll pull in those fixes.
I believe the mux errors are fixed. Have a look at
http://dev.omapzoom.org/?p=manju/kernel-omap3-

dev.git;a=commit;h=3499f5023ee90dc6ee3868a3147b87fe22a1d9b7

Quoted 2 lines

Patch must have been missed some how.

Quoted 7 lines

OK, we really should get fixes like that to mainline kernel ASAP to avoid duplicating the effort.

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr

8, card status

Quoted 6 lines

0x900
end_request: I/O error, dev mmcblk1, sector 2097024
...

Any ideas if that's fixed somewhere also?

Tony,

What is the branch on which the kernel is built? I tried the master branch
and the omap-fixes-for-linus both does not seem to boot Zoom3.

Regards,
Madhu

Quoted 5 lines

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe

linux-omap" in

Quoted 2 lines

the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

#19 lore raw

PATCH 1/1 arm: Fix DEBUG_LL for omap zoom2/3

In reply to Tony Lindgren
Quoted 29 lines

-----Original Message-----
From: linux-omap-owner at vger.kernel.org [mailto:linux-omap- owner at vger.kernel.org] On Behalf Of Tony Lindgren
Sent: Tuesday, March 23, 2010 10:27 AM
To: Pais, Allen
Cc: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org; Pandita, Vikram
Subject: Re: [PATCH] arm: Fix DEBUG_LL for omap zoom2/3

Quoted 10 lines · Pais, Allen
Quoted 10 lines
Quoted 6 lines

With this patch[DEBUG_LL + earlyprintk],
I still haven't been able to boot the kernel.
Is it working on your side.

The commit am using is : a842b5f9ce70e1b738eabb4d719860070180ed1c

I think you will also need the 3630 serial fixes series posted recently.

Quoted 7 lines
Quoted 3 lines

I just merged those into omap-fixes-for-linus (and master) branch(es). Maybe give it a try with at commit b3c7740a120c8a7775cb63b4d094466da5c01692 + this patch?

Thanks, I'll pull in those fixes.
I believe the mux errors are fixed. Have a look at
http://dev.omapzoom.org/?p=manju/kernel-omap3-

Quoted 6 lines

dev.git;a=commit;h=3499f5023ee90dc6ee3868a3147b87fe22a1d9b7

Quoted 2 lines

Patch must have been missed some how.

OK, we really should get fixes like that to mainline kernel ASAP to avoid duplicating the effort.

Hi,

Without doing cherry-pick of above patch url (that Allen mentioned), there's an error when trying to get uart4_[i,f]ck clocks during bootup.

Is this patch being pushed anywhere already? IMHO, at least it should be on omap-testing, but ideally on omap-fixes-for-linus branch.

What do you think?

Regards,
Sergio

Quoted 18 lines

Then at least one issue remains for zoom3 to be usable.. I'm getting tons of MMC errors trying to mount root on it:

mmcblk1: error -110 transferring data, sector 2097024, nr 8, card status 0x900
end_request: I/O error, dev mmcblk1, sector 2097024
...

Any ideas if that's fixed somewhere also?

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html