Skip to contentSkip to conversation

omap2/3/4: Multi-omap updates to boot test with omap3_defconfig

PATCH In review Tony Lindgren 6 participants 40 messages Apr 30, 2010 – May 6, 2010

Subsystems (3)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

cover omap2/3/4: Multi-omap updates to boot test with omap3_defconfig

Hi all,

This series makes the omap3_defconfig bootable on most mach-omap2 boards. So far I've boot tested omap3_defconfig on:

BOARD OMAP ARM NOTES
n800 2420 ARMv6 Userspace won't boot because of TLS and VFP issues
n900 3430 ARMV7
zoom3 3630 ARMV7
blaze 4430 ARMV7 CONFIG_SMP disabled

I've pushed these into multi-omap branch in the linux omap tree, would like to hear status of other boards booting with omap3_defconfig with these patches.

CONFIG_FB_OMAP is now disabled until some weirdness on at least zoom3 is sorted out. And, you need to disable CONFIG_KPROBES on 2.6.34-rc6 until that fix is in mainline.

Anyways, let's use omap3_defconfing from now on to compile and boot test every patch as a sanity test.

Regards,

Tony

---

Tony Lindgren (11):
omap2/3/4: Fix multi.h when omap3 and omap4 are selected without omap2 omap2/3: Fix DEBUG_LL for omap zoom2/3
omap3: Fix compile for board-cm-t35
omap3: Remove non-muxable ball entries for 3630
omap4: Fix multiboot with CONFIG_PM and CONFIG_ARCH_OMAP3 selected
omap4: Fix omap_l2_cache_init not to run for other omaps omap2/3/4: Add new boards to omap3_defconfig
omap2/3/4: Make omap3_defconfig usable on Nokia boards omap2/3/4: Update PMIC options for TWL and Menelaus chips omap2/3/4: Dissable CONFIG_PM_VERBOSE in omap3_defconfig omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

 arch/arm/configs/omap3_defconfig               |   34 ++++-----
 arch/arm/kernel/head.S                         |   10 +++
 arch/arm/mach-omap2/board-4430sdp.c            |    3 +
 arch/arm/mach-omap2/board-cm-t35.c             |    1 
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 -
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 +
 arch/arm/mach-omap2/io.c                       |    9 +++
 arch/arm/mach-omap2/mux34xx.c                  |   86 ------------------------
 arch/arm/plat-omap/include/plat/multi.h        |   16 +++-
 arch/arm/plat-omap/include/plat/serial.h       |    2 -
 arch/arm/plat-omap/sram.c                      |   16 ++++
 11 files changed, 68 insertions(+), 115 deletions(-)
Signature · 1 line
Signature
author maintainer
#1 lore raw

PATCH 1/11 omap2/3/4: Fix multi.h when omap3 and omap4 are selected without omap2

Otherwise we'll get an error about get_irqnr_and_base being defined twice. Add an entry for omap4, and use ARCH_OMAP3 for omap3 instead of ARCH_OMAP3430.

Also fix the check for omap1 to use ARCH_OMAP2PLUS to avoid having to add ARCH_OMAP4 separately there.

---
 arch/arm/plat-omap/include/plat/multi.h |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)
arch/arm/plat-omap/include/plat/multi.h +12 -4
index f235d32..ffd909f 100644
@@ -61,9 +61,9 @@
 #  define OMAP_NAME omap16xx
 # endif
 #endif
-#if (defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
+#ifdef CONFIG_ARCH_OMAP2PLUS
 # if (defined(OMAP_NAME) || defined(MULTI_OMAP1))
-#  error "OMAP1 and OMAP2 can't be selected at the same time"
+#  error "OMAP1 and OMAP2PLUS can't be selected at the same time"
 # endif
 #endif
 #ifdef CONFIG_ARCH_OMAP2420
@@ -82,12 +82,20 @@
 #  define OMAP_NAME omap2430
 # endif
 #endif
-#ifdef CONFIG_ARCH_OMAP3430
+#ifdef CONFIG_ARCH_OMAP3
 # ifdef OMAP_NAME
 #  undef  MULTI_OMAP2
 #  define MULTI_OMAP2
 # else
-#  define OMAP_NAME omap3430
+#  define OMAP_NAME omap3
+# endif
+#endif
+#ifdef CONFIG_ARCH_OMAP4
+# ifdef OMAP_NAME
+#  undef  MULTI_OMAP2
+#  define MULTI_OMAP2
+# else
+#  define OMAP_NAME omap4
 # endif
 #endif
 
author maintainer
#2 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

In reply to Tony Lindgren

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 ++++++++++
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
 arch/arm/mach-omap2/io.c                       |    9 +++++++++
 arch/arm/plat-omap/include/plat/serial.h       |    2 +-
 5 files changed, 23 insertions(+), 4 deletions(-)
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
#3 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 30 lines · Tony Lindgren

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 ++++++++++
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
 arch/arm/mach-omap2/io.c                       |    9 +++++++++
 arch/arm/plat-omap/include/plat/serial.h       |    2 +-
 5 files changed, 23 insertions(+), 4 deletions(-)
arch/arm/kernel/head.S +0 -0
index eb62bf9..fd870e1 100644
@@ -328,6 +328,16 @@ __create_page_tables:
 	add	r0, r4, #0xd8000000 >> 18
 	str	r3, [r0]
 #endif

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 10 lines
arch/arm/kernel/head.S +10 -0
+#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

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Kevin

author maintainer
#4 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 38 lines · Kevin Hilman
Quoted 36 lines · Tony Lindgren

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 ++++++++++
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
 arch/arm/mach-omap2/io.c                       |    9 +++++++++
 arch/arm/plat-omap/include/plat/serial.h       |    2 +-
 5 files changed, 23 insertions(+), 4 deletions(-)
arch/arm/kernel/head.S +6 -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
Quoted 8 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 4 lines
arch/arm/kernel/head.S +4 -0
+	orr	r0, r0, #0x00400000 >> 18	@ ZOOM_UART_VIRT
+	orr	r3, r7, #0x10000000		@ ZOOM_UART_BASE
+	str	r3, [r0]
+#endif

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

That mapping does not cover the GPMC area where this UART is.

Tony

#5 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 48 lines · Tony Lindgren
Quoted 38 lines · Kevin Hilman
Quoted 36 lines · Tony Lindgren

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 ++++++++++
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
 arch/arm/mach-omap2/io.c                       |    9 +++++++++
 arch/arm/plat-omap/include/plat/serial.h       |    2 +-
 5 files changed, 23 insertions(+), 4 deletions(-)
arch/arm/kernel/head.S +6 -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
Quoted 8 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 4 lines
arch/arm/kernel/head.S +4 -0
+	orr	r0, r0, #0x00400000 >> 18	@ ZOOM_UART_VIRT
+	orr	r3, r7, #0x10000000		@ ZOOM_UART_BASE
+	str	r3, [r0]
+#endif

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Quoted 1 line

That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed? I understood the .phys_io and and .io_pg_offset fields of the mach_desc to be specifically for mapping the early UART, and nothing else.

Kevin

#6 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 61 lines

-----Original Message-----
From: Kevin Hilman [mailto:khilman at deeprootsystems.com]
Sent: Friday, April 30, 2010 4:21 PM
To: Tony Lindgren
Cc: linux-arm-kernel at lists.infradead.org; Pandita, Vikram; linux- omap at vger.kernel.org; Pais, Allen
Subject: Re: [PATCH 02/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 25 lines · Tony Lindgren
Quoted 24 lines · Kevin Hilman
Quoted 22 lines · Tony Lindgren

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 ++++++++++
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
 arch/arm/mach-omap2/io.c                       |    9 +++++++++
 arch/arm/plat-omap/include/plat/serial.h       |    2 +-
 5 files changed, 23 insertions(+), 4 deletions(-)
Quoted 9 lines
Quoted 9 lines

arch/arm/kernel/head.S __create_page_tables: · line 331

Quoted 9 lines
arch/arm/kernel/head.S +1 -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)

Quoted 14 lines
Quoted 13 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 9 lines
arch/arm/kernel/head.S +9 -0
+	/*
+	 * 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

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Quoted 5 lines
Quoted 1 line

That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed? I understood the .phys_io and and .io_pg_offset fields of the mach_desc to be specifically for mapping the early UART, and nothing else.

Here is the problem -
with current approach we need two mappings to happen and the MACHINE_START() code allows for only one via .io_pg_offset and .phys_io

Why:
Tony's approach is to pass the information about the debug uart number from the UART1 Scratchpad register.

this introduces a dependency that
UART1 registers also be mapped (virt<->phy).

So for Tony's approach to work, .phys_io/.io_pg_offset continued to have 0x4800000 based mapping and for external uart zoom3 port, create this extra mapping.

So find a better way from compressed.S to pass the uart number to kernel, and we can solve the problem.

Quoted 3 lines

Kevin

#7 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 3 lines

-----Original Message-----

From: [email protected] [mailto:linux-omap-

Quoted 85 lines

owner at vger.kernel.org] On Behalf Of Pandita, Vikram
Sent: Friday, April 30, 2010 4:37 PM
To: Kevin Hilman; Tony Lindgren
Cc: linux-arm-kernel at lists.infradead.org; linux-omap at vger.kernel.org; Pais, Allen
Subject: RE: [PATCH 02/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 59 lines

-----Original Message-----
From: Kevin Hilman [mailto:khilman at deeprootsystems.com]
Sent: Friday, April 30, 2010 4:21 PM
To: Tony Lindgren
Cc: linux-arm-kernel at lists.infradead.org; Pandita, Vikram; linux- omap at vger.kernel.org; Pais, Allen
Subject: Re: [PATCH 02/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 25 lines · Tony Lindgren
Quoted 24 lines · Kevin Hilman
Quoted 22 lines · Tony Lindgren

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 ++++++++++
 arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
 arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
 arch/arm/mach-omap2/io.c                       |    9 +++++++++
 arch/arm/plat-omap/include/plat/serial.h       |    2 +-
 5 files changed, 23 insertions(+), 4 deletions(-)
Quoted 9 lines
Quoted 9 lines

arch/arm/kernel/head.S __create_page_tables: · line 331

Quoted 9 lines
arch/arm/kernel/head.S +1 -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)

Quoted 14 lines
Quoted 13 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 9 lines
arch/arm/kernel/head.S +9 -0
+	/*
+	 * 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

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Quoted 5 lines
Quoted 1 line

That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed? I understood the .phys_io and and .io_pg_offset fields of the mach_desc to be specifically for mapping the early UART, and nothing else.

Here is the problem -
with current approach we need two mappings to happen and the MACHINE_START() code allows for only one via .io_pg_offset and .phys_io

Why:
Tony's approach is to pass the information about the debug uart number from the UART1 Scratchpad register.

this introduces a dependency that
UART1 registers also be mapped (virt<->phy).

Quoted 6 lines

So for Tony's approach to work, .phys_io/.io_pg_offset continued to have 0x4800000 based mapping and for external uart zoom3 port, create this extra mapping.

So find a better way from compressed.S to pass the uart number to kernel, and we can solve the problem.

Reference to that dependency:
Commit: 0c8219f0
<snip/start>
+/*
+ * Store the DEBUG_LL uart number into UART1 scratchpad register.
+ * See also debug-macro.S, and serial.c for related code.
+ *
+ * Please note that we currently assume that:
+ * - UART1 clocks are enabled for register access
+ * - UART1 scratchpad register can be used
+ */
+static void set_uart1_scratchpad(unsigned char port) <snip/end>

Quoted 9 lines
Quoted 4 lines

Kevin

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

#8 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

In reply to Pandita, Vikram

"Pandita, Vikram" <[email protected]> writes:

[...]

Quoted 40 lines
Quoted 22 lines
Quoted 7 lines
Quoted 7 lines

arch/arm/kernel/head.S __create_page_tables: · line 331

Quoted 7 lines
arch/arm/kernel/head.S +1 -0
@@ -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)

Quoted 14 lines
Quoted 13 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 9 lines
arch/arm/kernel/head.S +9 -0
+	/*
+	 * 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

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Quoted 5 lines
Quoted 1 line

That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed? I understood the .phys_io and and .io_pg_offset fields of the mach_desc to be specifically for mapping the early UART, and nothing else.

Here is the problem - with current approach we need two mappings to happen and the MACHINE_START() code allows for only one via .io_pg_offset and .phys_io

Why:

Tony's approach is to pass the information about the debug uart number from the UART1 Scratchpad register.

this introduces a dependency that
UART1 registers also be mapped (virt<->phy).

Quoted 6 lines

So for Tony's approach to work, .phys_io/.io_pg_offset continued to have 0x4800000 based mapping and for external uart zoom3 port, create this extra mapping.

So find a better way from compressed.S to pass the uart number to kernel, and we can solve the problem.

Ah, yet another reason to use a memory location instead of UART1 SCR to pass the UART info (c.f. [1])

Kevin

[1] http://marc.info/?l=linux-omap&m=127266219130713&w=2

author maintainer
#9 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 48 lines · Kevin Hilman

"Pandita, Vikram" <[email protected]> writes:

[...]

Quoted 44 lines
Quoted 22 lines
Quoted 7 lines
Quoted 7 lines

arch/arm/kernel/head.S __create_page_tables: · line 331

Quoted 7 lines
arch/arm/kernel/head.S +1 -0
@@ -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)

Quoted 14 lines
Quoted 13 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 9 lines
arch/arm/kernel/head.S +9 -0
+	/*
+	 * 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

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Quoted 5 lines
Quoted 1 line

That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed? I understood the .phys_io and and .io_pg_offset fields of the mach_desc to be specifically for mapping the early UART, and nothing else.

Here is the problem - with current approach we need two mappings to happen and the MACHINE_START() code allows for only one via .io_pg_offset and .phys_io

Why:

Tony's approach is to pass the information about the debug uart number from the UART1 Scratchpad register.

this introduces a dependency that
UART1 registers also be mapped (virt<->phy).

So for Tony's approach to work, .phys_io/.io_pg_offset continued to have 0x4800000 based mapping and for external uart zoom3 port, create this extra mapping.

Quoted 5 lines
Quoted 2 lines

So find a better way from compressed.S to pass the uart number to kernel, and we can solve the problem.

Ah, yet another reason to use a memory location instead of UART1 SCR to pass the UART info (c.f. [1])

That should work if we don't need to access any L4 registers early on before .map_io.

Regards,

Tony

Quoted 3 lines

Kevin

[1] http://marc.info/?l=linux-omap&m=127266219130713&w=2

#10 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 49 lines · Tony Lindgren
Quoted 48 lines · Kevin Hilman

"Pandita, Vikram" <[email protected]> writes:

[...]

Quoted 44 lines
Quoted 22 lines
Quoted 7 lines
Quoted 7 lines

arch/arm/kernel/head.S __create_page_tables: · line 331

Quoted 7 lines
arch/arm/kernel/head.S +1 -0
@@ -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)

Quoted 14 lines
Quoted 13 lines

arch/arm/kernel/head.S __create_page_tables: · line 340

Quoted 9 lines
arch/arm/kernel/head.S +9 -0
+	/*
+	 * 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

I don't see why this part is needed. The same mapping is done using the .io_pg_offset in the machine description which is done just before this in head.S

Quoted 5 lines
Quoted 1 line

That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed? I understood the .phys_io and and .io_pg_offset fields of the mach_desc to be specifically for mapping the early UART, and nothing else.

Here is the problem - with current approach we need two mappings to happen and the MACHINE_START() code allows for only one via .io_pg_offset and .phys_io

Why:

Tony's approach is to pass the information about the debug uart number from the UART1 Scratchpad register.

this introduces a dependency that
UART1 registers also be mapped (virt<->phy).

So for Tony's approach to work, .phys_io/.io_pg_offset continued to have 0x4800000 based mapping and for external uart zoom3 port, create this extra mapping.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

So find a better way from compressed.S to pass the uart number to kernel, and we can solve the problem.

Ah, yet another reason to use a memory location instead of UART1 SCR to pass the UART info (c.f. [1])

That should work if we don't need to access any L4 registers early on before .map_io.

I'd say if we're accessing L4 regs before .map_io, it's a bug that needs to be fixed, but I don't think we are. If we were, we'd notice a hang when !CONFIG_DEBUG_LL since the .phys_io and .io_pg_offst are only mapped in when CONFIG_DEBUG_LL=y.

I think we've been using .phys_io/.io_pg_offset incorrectly in OMAP as an early mapping of all the IO space, when it is intended just for use as early UART access, indicated by the comments in head.S and the fact that it's only used when CONFIG_DEBUG_LL=y

Kevin

author maintainer
#11 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 15 lines · Kevin Hilman
Quoted 13 lines · Tony Lindgren
Quoted 11 lines · Kevin Hilman
Quoted 7 lines · Vikram

So for Tony's approach to work, .phys_io/.io_pg_offset continued to have 0x4800000 based mapping and for external uart zoom3 port, create this extra mapping.

So find a better way from compressed.S to pass the uart number to kernel, and we can solve the problem.

Ah, yet another reason to use a memory location instead of UART1 SCR to pass the UART info (c.f. [1])

Quoted 7 lines
Quoted 2 lines

That should work if we don't need to access any L4 registers early on before .map_io.

I'd say if we're accessing L4 regs before .map_io, it's a bug that needs to be fixed, but I don't think we are. If we were, we'd notice a hang when !CONFIG_DEBUG_LL since the .phys_io and .io_pg_offst are only mapped in when CONFIG_DEBUG_LL=y.

Yeah the current approach uses both, but only when CONFIG_DEBUG_LL=y as you noted.

Quoted 4 lines

I think we've been using .phys_io/.io_pg_offset incorrectly in OMAP as an early mapping of all the IO space, when it is intended just for use as early UART access, indicated by the comments in head.S and the fact that it's only used when CONFIG_DEBUG_LL=y

That's probably just a left over from when we could map L3 and L4 with one mapping..

Anyways, here's an experimental patch for using a memory address instead of UART1 for storing the debug port configuration in uncompress.h.

So far only tested on n900, will give it a try also on zoom3 after updating the zoom3 related patch.

Now the real question is: Is it safe to use the fixed memory address?

#define OMAP_UART_INFO (PHYS_OFFSET + 0x3ff8)

Also, another thing that needs to be checked is what happens if nothing calls printk early and the debug port address configuration is not set early.. Needs to be tested by adding printascii call only later on.

Regards,

Tony

author maintainer
#12 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 3 lines · Tony Lindgren

So far only tested on n900, will give it a try also on zoom3 after updating the zoom3 related patch.

And here's the updated zoom debug_ll patch, seems to work.

arch/arm/plat-omap/include/plat/uncompress.h line 27

Quoted 11 lines
arch/arm/plat-omap/include/plat/uncompress.h +2 -0
@@ -20,27 +20,22 @@
 #include <linux/types.h>
 #include <linux/serial_reg.h>
 
+#include <asm/memory.h>
+#include <asm/io.h>
 #include <asm/mach-types.h>
 
 #include <plat/serial.h>

BTW, the include of asm/io.h is not needed, I'll remove that.

Regards,

Tony

#13 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 10 lines

-----Original Message-----
From: Tony Lindgren [mailto:tony at atomide.com]
Sent: Friday, April 30, 2010 8:51 PM
To: Kevin Hilman
Cc: Pandita, Vikram; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pais, Allen
Subject: Re: [PATCH 02/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 6 lines
Quoted 3 lines · Tony Lindgren

So far only tested on n900, will give it a try also on zoom3 after updating the zoom3 related patch.

And here's the updated zoom debug_ll patch, seems to work.

For testing if I put this printk hack (the good old days patch), Zoom3 does not boot after applying your patch.

So looks like we are still missing something for zoom2/3 to work. Can debug tomorrow.

Quoted 11 lines
Quoted 11 lines
arch/arm/plat-omap/include/plat/uncompress.h +2 -0
@@ -20,27 +20,22 @@
 #include <linux/types.h>
 #include <linux/serial_reg.h>
 
+#include <asm/memory.h>
+#include <asm/io.h>
 #include <asm/mach-types.h>
 
Quoted 7 lines

arch/arm/plat-omap/include/plat/uncompress.h line 27

Quoted 1 line
arch/arm/plat-omap/include/plat/uncompress.h +0 -0
 #include <plat/serial.h>

BTW, the include of asm/io.h is not needed, I'll remove that.

Regards,

Tony

-------------- next part --------------
A non-text attachment was scrubbed...
Name: printk-dbg.patch
Type: application/octet-stream
Size: 570 bytes
Desc: printk-dbg.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100504/5065861b/attachment.obj>

author maintainer
#14 lore raw

PATCH 2/11 omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 12 lines · Pandita, Vikram
Quoted 12 lines

-----Original Message-----
From: Tony Lindgren [mailto:tony at atomide.com]
Sent: Friday, April 30, 2010 8:51 PM
To: Kevin Hilman
Cc: Pandita, Vikram; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pais, Allen
Subject: Re: [PATCH 02/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

Quoted 1 line · Tony Lindgren
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

So far only tested on n900, will give it a try also on zoom3 after updating the zoom3 related patch.

And here's the updated zoom debug_ll patch, seems to work.

For testing if I put this printk hack (the good old days patch), Zoom3 does not boot after applying your patch.

You should not need that any longer if you have set CONFIG_DEBUG_LL and CONFIG_EARLY_PRINTK and have earlyprintk in the kernel cmdline.

Quoted 2 lines

So looks like we are still missing something for zoom2/3 to work. Can debug tomorrow.

Hmm works just fine for me. Sounds like you only applied one of the two patches needed to make DEBUG_LL work on zoom?

Anyways, I'll repost both patches needed for zoom as a reply to this mail.

Regards,

Tony

author maintainer
#15 lore raw

PATCH 1/1 omap: Use a memory address for storing the debug port info instead of UART1 scratchpad

Here's this patch one more time. I updated the comments for what I think the new shortcomings are.

I also changed #define OMAP_UART_INFO (PHYS_OFFSET + 0x3ffc) instead of 0x3ff8 as it's set as u32.

Regards,

Tony

author maintainer
#16 lore raw

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

In reply to Tony Lindgren

And here's this patch one more time. Both 2a and 2b are needed for zoom debug uart to work.

Regards,

Tony

#17 lore raw

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

Tony

Quoted 10 lines

-----Original Message-----
From: Tony Lindgren [mailto:tony at atomide.com]
Sent: Monday, May 03, 2010 7:59 PM
To: Pandita, Vikram
Cc: Kevin Hilman; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pais, Allen
Subject: [PATCH 02b/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

And here's this patch one more time. Both 2a and 2b are needed for zoom debug uart to work.

Test 1:
Tested on Zoom3 with 02a and 02b applied. Enabled DEBUG_LL. Booted fine.

Test 2:
Applied Hack printk.patch (attached)
Booted fine and duplicate logs can be seen on console => printascii is working.

Quoted 4 lines

Regards,

Tony

-------------- next part --------------
A non-text attachment was scrubbed...
Name: printk.patch
Type: application/octet-stream
Size: 570 bytes
Desc: printk.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100504/023b8b66/attachment-0001.obj>

author maintainer
#18 lore raw

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

Quoted 18 lines · Pandita, Vikram

Tony

Quoted 10 lines

-----Original Message-----
From: Tony Lindgren [mailto:tony at atomide.com]
Sent: Monday, May 03, 2010 7:59 PM
To: Pandita, Vikram
Cc: Kevin Hilman; linux-arm-kernel at lists.infradead.org; linux- omap at vger.kernel.org; Pais, Allen
Subject: [PATCH 02b/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

And here's this patch one more time. Both 2a and 2b are needed for zoom debug uart to work.

Test 1:
Tested on Zoom3 with 02a and 02b applied. Enabled DEBUG_LL. Booted fine.

Quoted 5 lines

Test 2:
Applied Hack printk.patch (attached)
Booted fine and duplicate logs can be seen on console => printascii is working.

Good to hear it works for you now, thanks for testing.

Tony

author maintainer
#19 lore raw

PATCH 3/11 omap3: Fix compile for board-cm-t35

In reply to Tony Lindgren

Otherwise we can get the following error:

error: variable 'tdo24m_mcspi_config' has initializer but incomplete type
...

---
 arch/arm/mach-omap2/board-cm-t35.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-cm-t35.c +1 -0
index 2de4f79..e679a2c 100644
@@ -45,6 +45,7 @@
 #include <plat/gpmc.h>
 #include <plat/usb.h>
 #include <plat/display.h>
+#include <plat/mcspi.h>
 
 #include <mach/hardware.h>
 
author maintainer
#20 lore raw

PATCH 4/11 omap3: Remove non-muxable ball entries for 3630

In reply to Tony Lindgren

These are currently non-muxable, so let's save some memory and remove them. Otherwise we get the following warnings:

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

---
 arch/arm/mach-omap2/mux34xx.c |   86 -----------------------------------------
 1 files changed, 0 insertions(+), 86 deletions(-)
arch/arm/mach-omap2/mux34xx.c +0 -86
index 07aa7b3..2ff4dce 100644
@@ -1901,26 +1901,15 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
 	_OMAP3_BALLENTRY(GPMC_A8, "m3", "ab18"),
 	_OMAP3_BALLENTRY(GPMC_A9, "l3", "ac19"),
 	_OMAP3_BALLENTRY(GPMC_CLK, "t4", "w2"),
-	_OMAP3_BALLENTRY(GPMC_D0, "k1", "m2"),
-	_OMAP3_BALLENTRY(GPMC_D1, "l1", "m1"),
 	_OMAP3_BALLENTRY(GPMC_D10, "p1", "ab4"),
 	_OMAP3_BALLENTRY(GPMC_D11, "r1", "ac4"),
 	_OMAP3_BALLENTRY(GPMC_D12, "r2", "ab6"),
 	_OMAP3_BALLENTRY(GPMC_D13, "t2", "ac6"),
 	_OMAP3_BALLENTRY(GPMC_D14, "w1", "ab7"),
 	_OMAP3_BALLENTRY(GPMC_D15, "y1", "ac7"),
-	_OMAP3_BALLENTRY(GPMC_D2, "l2", "n2"),
-	_OMAP3_BALLENTRY(GPMC_D3, "p2", "n1"),
-	_OMAP3_BALLENTRY(GPMC_D4, "t1", "r2"),
-	_OMAP3_BALLENTRY(GPMC_D5, "v1", "r1"),
-	_OMAP3_BALLENTRY(GPMC_D6, "v2", "t2"),
-	_OMAP3_BALLENTRY(GPMC_D7, "w2", "t1"),
-	_OMAP3_BALLENTRY(GPMC_D8, "h2", "ab3"),
 	_OMAP3_BALLENTRY(GPMC_D9, "k2", "ac3"),
-	_OMAP3_BALLENTRY(GPMC_NADV_ALE, "f3", "w1"),
 	_OMAP3_BALLENTRY(GPMC_NBE0_CLE, "g3", "ac12"),
 	_OMAP3_BALLENTRY(GPMC_NBE1, "u3", NULL),
-	_OMAP3_BALLENTRY(GPMC_NCS0, "g4", "y2"),
 	_OMAP3_BALLENTRY(GPMC_NCS1, "h3", "y1"),
 	_OMAP3_BALLENTRY(GPMC_NCS2, "v8", NULL),
 	_OMAP3_BALLENTRY(GPMC_NCS3, "u8", NULL),
@@ -1928,10 +1917,7 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
 	_OMAP3_BALLENTRY(GPMC_NCS5, "r8", NULL),
 	_OMAP3_BALLENTRY(GPMC_NCS6, "p8", NULL),
 	_OMAP3_BALLENTRY(GPMC_NCS7, "n8", NULL),
-	_OMAP3_BALLENTRY(GPMC_NOE, "g2", "v2"),
-	_OMAP3_BALLENTRY(GPMC_NWE, "f4", "v1"),
 	_OMAP3_BALLENTRY(GPMC_NWP, "h1", "ab10"),
-	_OMAP3_BALLENTRY(GPMC_WAIT0, "m8", "ab12"),
 	_OMAP3_BALLENTRY(GPMC_WAIT1, "l8", "ac10"),
 	_OMAP3_BALLENTRY(GPMC_WAIT2, "k8", NULL),
 	_OMAP3_BALLENTRY(GPMC_WAIT3, "j8", NULL),
@@ -1948,8 +1934,6 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
 	_OMAP3_BALLENTRY(HSUSB0_DIR, "r28", NULL),
 	_OMAP3_BALLENTRY(HSUSB0_NXT, "t26", NULL),
 	_OMAP3_BALLENTRY(HSUSB0_STP, "t25", NULL),
-	_OMAP3_BALLENTRY(I2C1_SCL, "k21", NULL),
-	_OMAP3_BALLENTRY(I2C1_SDA, "j21", NULL),
 	_OMAP3_BALLENTRY(I2C2_SCL, "af15", NULL),
 	_OMAP3_BALLENTRY(I2C2_SDA, "ae15", NULL),
 	_OMAP3_BALLENTRY(I2C3_SCL, "af14", NULL),
@@ -1958,11 +1942,6 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
 	_OMAP3_BALLENTRY(I2C4_SDA, "ae26", NULL),
 	_OMAP3_BALLENTRY(JTAG_EMU0, "aa11", NULL),
 	_OMAP3_BALLENTRY(JTAG_EMU1, "aa10", NULL),
-	_OMAP3_BALLENTRY(JTAG_RTCK, "aa12", NULL),
-	_OMAP3_BALLENTRY(JTAG_TCK, "aa13", NULL),
-	_OMAP3_BALLENTRY(JTAG_TDI, "aa20", NULL),
-	_OMAP3_BALLENTRY(JTAG_TDO, "aa19", NULL),
-	_OMAP3_BALLENTRY(JTAG_TMS_TMSC, "aa18", NULL),
 	_OMAP3_BALLENTRY(MCBSP1_CLKR, "y21", NULL),
 	_OMAP3_BALLENTRY(MCBSP1_CLKX, "w21", NULL),
 	_OMAP3_BALLENTRY(MCBSP1_DR, "u21", NULL),
@@ -2010,77 +1989,12 @@ struct omap_ball __initdata omap36xx_cbp_ball[] = {
 	_OMAP3_BALLENTRY(SDMMC2_DAT5, "ah3", NULL),
 	_OMAP3_BALLENTRY(SDMMC2_DAT6, "af3", NULL),
 	_OMAP3_BALLENTRY(SDMMC2_DAT7, "ae3", NULL),
-	_OMAP3_BALLENTRY(SDRC_A0, NULL, "n22"),
-	_OMAP3_BALLENTRY(SDRC_A1, NULL, "n23"),
-	_OMAP3_BALLENTRY(SDRC_A10, NULL, "v22"),
-	_OMAP3_BALLENTRY(SDRC_A11, NULL, "v23"),
-	_OMAP3_BALLENTRY(SDRC_A12, NULL, "w22"),
-	_OMAP3_BALLENTRY(SDRC_A13, NULL, "w23"),
-	_OMAP3_BALLENTRY(SDRC_A14, NULL, "y22"),
-	_OMAP3_BALLENTRY(SDRC_A2, NULL, "p22"),
-	_OMAP3_BALLENTRY(SDRC_A3, NULL, "p23"),
-	_OMAP3_BALLENTRY(SDRC_A4, NULL, "r22"),
-	_OMAP3_BALLENTRY(SDRC_A5, NULL, "r23"),
-	_OMAP3_BALLENTRY(SDRC_A6, NULL, "t22"),
-	_OMAP3_BALLENTRY(SDRC_A7, NULL, "t23"),
-	_OMAP3_BALLENTRY(SDRC_A8, NULL, "u22"),
-	_OMAP3_BALLENTRY(SDRC_A9, NULL, "u23"),
-	_OMAP3_BALLENTRY(SDRC_BA0, "h9", "ab21"),
-	_OMAP3_BALLENTRY(SDRC_BA1, "h10", "ac21"),
 	_OMAP3_BALLENTRY(SDRC_CKE0, "h16", "j22"),
 	_OMAP3_BALLENTRY(SDRC_CKE1, "h17", "j23"),
-	_OMAP3_BALLENTRY(SDRC_CLK, "a13", "a11"),
-	_OMAP3_BALLENTRY(SDRC_D0, NULL, "j2"),
-	_OMAP3_BALLENTRY(SDRC_D1, NULL, "j1"),
-	_OMAP3_BALLENTRY(SDRC_D10, "c15", "b14"),
-	_OMAP3_BALLENTRY(SDRC_D11, "b16", "a14"),
-	_OMAP3_BALLENTRY(SDRC_D12, "d17", "b16"),
-	_OMAP3_BALLENTRY(SDRC_D13, "c17", "a16"),
-	_OMAP3_BALLENTRY(SDRC_D14, "b17", "b19"),
-	_OMAP3_BALLENTRY(SDRC_D15, "d18", "a19"),
-	_OMAP3_BALLENTRY(SDRC_D16, NULL, "b3"),
-	_OMAP3_BALLENTRY(SDRC_D17, NULL, "a3"),
-	_OMAP3_BALLENTRY(SDRC_D18, NULL, "b5"),
-	_OMAP3_BALLENTRY(SDRC_D19, NULL, "a5"),
-	_OMAP3_BALLENTRY(SDRC_D2, NULL, "g2"),
-	_OMAP3_BALLENTRY(SDRC_D20, NULL, "b8"),
-	_OMAP3_BALLENTRY(SDRC_D21, NULL, "a8"),
-	_OMAP3_BALLENTRY(SDRC_D22, NULL, "b9"),
-	_OMAP3_BALLENTRY(SDRC_D23, NULL, "a9"),
-	_OMAP3_BALLENTRY(SDRC_D24, NULL, "b21"),
-	_OMAP3_BALLENTRY(SDRC_D25, NULL, "a21"),
-	_OMAP3_BALLENTRY(SDRC_D26, NULL, "d22"),
-	_OMAP3_BALLENTRY(SDRC_D27, NULL, "d23"),
-	_OMAP3_BALLENTRY(SDRC_D28, NULL, "e22"),
-	_OMAP3_BALLENTRY(SDRC_D29, NULL, "e23"),
-	_OMAP3_BALLENTRY(SDRC_D3, NULL, "g1"),
-	_OMAP3_BALLENTRY(SDRC_D30, NULL, "g22"),
-	_OMAP3_BALLENTRY(SDRC_D31, NULL, "g23"),
-	_OMAP3_BALLENTRY(SDRC_D4, NULL, "f2"),
-	_OMAP3_BALLENTRY(SDRC_D5, NULL, "f1"),
-	_OMAP3_BALLENTRY(SDRC_D6, NULL, "d2"),
-	_OMAP3_BALLENTRY(SDRC_D7, NULL, "d1"),
-	_OMAP3_BALLENTRY(SDRC_D8, "c14", "b13"),
-	_OMAP3_BALLENTRY(SDRC_D9, "b14", "a13"),
-	_OMAP3_BALLENTRY(SDRC_DM0, NULL, "c1"),
-	_OMAP3_BALLENTRY(SDRC_DM1, "a16", "a17"),
-	_OMAP3_BALLENTRY(SDRC_DM2, NULL, "a6"),
-	_OMAP3_BALLENTRY(SDRC_DM3, NULL, "a20"),
-	_OMAP3_BALLENTRY(SDRC_DQS0, NULL, "c2"),
-	_OMAP3_BALLENTRY(SDRC_DQS1, "a17", "b17"),
-	_OMAP3_BALLENTRY(SDRC_DQS2, NULL, "b6"),
-	_OMAP3_BALLENTRY(SDRC_DQS3, NULL, "b20"),
-	_OMAP3_BALLENTRY(SDRC_NCAS, "h13", "l22"),
-	_OMAP3_BALLENTRY(SDRC_NCLK, "a14", "b11"),
-	_OMAP3_BALLENTRY(SDRC_NCS0, "h11", "m22"),
-	_OMAP3_BALLENTRY(SDRC_NCS1, "h12", "m23"),
-	_OMAP3_BALLENTRY(SDRC_NRAS, "h14", "l23"),
-	_OMAP3_BALLENTRY(SDRC_NWE, "h15", "k23"),
 	_OMAP3_BALLENTRY(SIM_CLK, "p26", NULL),
 	_OMAP3_BALLENTRY(SIM_IO, "p27", NULL),
 	_OMAP3_BALLENTRY(SIM_PWRCTRL, "r27", NULL),
 	_OMAP3_BALLENTRY(SIM_RST, "r25", NULL),
-	_OMAP3_BALLENTRY(SYS_32K, "ae25", NULL),
 	_OMAP3_BALLENTRY(SYS_BOOT0, "ah26", NULL),
 	_OMAP3_BALLENTRY(SYS_BOOT1, "ag26", NULL),
 	_OMAP3_BALLENTRY(SYS_BOOT2, "ae14", NULL),
author maintainer
#21 lore raw

PATCH 5/11 omap4: Fix multiboot with CONFIG_PM and CONFIG_ARCH_OMAP3 selected

In reply to Tony Lindgren

We cannot use the omap34xx_sram_init(). It needs to be implemented for omap4. Otherwise we get an error and the system won't boot:

Unhandled fault: imprecise external abort (0x1406) at 0xea963e94
...

Fix this by adding a dummy omap44xx_sram_init().

---
 arch/arm/plat-omap/sram.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)
arch/arm/plat-omap/sram.c +15 -1
index 51f4dfb..226b2e8 100644
@@ -437,6 +437,20 @@ static inline int omap34xx_sram_init(void)
 }
 #endif
 
+#ifdef CONFIG_ARCH_OMAP4
+int __init omap44xx_sram_init(void)
+{
+	printk(KERN_ERR "FIXME: %s not implemented\n", __func__);
+
+	return -ENODEV;
+}
+#else
+static inline int omap44xx_sram_init(void)
+{
+	return 0;
+}
+#endif
+
 int __init omap_sram_init(void)
 {
 	omap_detect_sram();
@@ -451,7 +465,7 @@ int __init omap_sram_init(void)
 	else if (cpu_is_omap34xx())
 		omap34xx_sram_init();
 	else if (cpu_is_omap44xx())
-		omap34xx_sram_init(); /* FIXME: */
+		omap44xx_sram_init();
 
 	return 0;
 }
author maintainer
#22 lore raw

PATCH 6/11 omap4: Fix omap_l2_cache_init not to run for other omaps

In reply to Tony Lindgren

In multi-omap configuration all the initcalls run. To avoid bad things from happening with 44xx specific initcalls on other omaps, we need to check that the booted system is omap4 before running.

---
 arch/arm/mach-omap2/board-4430sdp.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-4430sdp.c +3 -0
index b88f28c..e603b00 100644
@@ -55,6 +55,9 @@ static int __init omap_l2_cache_init(void)
 	extern void omap_smc1(u32 fn, u32 arg);
 	void __iomem *l2cache_base;
 
+	if (!cpu_is_omap44xx())
+		return -ENODEV;
+
 	/* To avoid code running on other OMAPs in
 	 * multi-omap builds
 	 */
#23 lore raw

PATCH 6/11 omap4: Fix omap_l2_cache_init not to run for other omaps

Tony,

Quoted 23 lines

-----Original Message-----
From: linux-arm-kernel-bounces at lists.infradead.org [mailto:linux-arm-kernel- bounces at lists.infradead.org] On Behalf Of Tony Lindgren
Sent: Saturday, May 01, 2010 2:04 AM
To: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Subject: [PATCH 06/11] omap4: Fix omap_l2_cache_init not to run for other omaps

In multi-omap configuration all the initcalls run. To avoid bad things from happening with 44xx specific initcalls on other omaps, we need to check that the booted system is omap4 before running.

---
 arch/arm/mach-omap2/board-4430sdp.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-4430sdp.c +0 -0
index b88f28c..e603b00 100644

arch/arm/mach-omap2/board-4430sdp.c static int __init omap_l2_cache_init(void) · line 60

Quoted 6 lines
arch/arm/mach-omap2/board-4430sdp.c +3 -0
@@ -55,6 +55,9 @@ static int __init omap_l2_cache_init(void)
 	extern void omap_smc1(u32 fn, u32 arg);
 	void __iomem *l2cache_base;
 
+	if (!cpu_is_omap44xx())
+		return -ENODEV;
+

This check is already present just 3 lines below.

Quoted 9 lines
arch/arm/mach-omap2/board-4430sdp.c +0 -0
 	/* To avoid code running on other OMAPs in
 	 * multi-omap builds
 	 */

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author maintainer
#24 lore raw

PATCH 6/11 omap4: Fix omap_l2_cache_init not to run for other omaps

Quoted 28 lines · Shilimkar, Santosh

Tony,

Quoted 26 lines

-----Original Message-----
From: linux-arm-kernel-bounces at lists.infradead.org [mailto:linux-arm-kernel- bounces at lists.infradead.org] On Behalf Of Tony Lindgren
Sent: Saturday, May 01, 2010 2:04 AM
To: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Subject: [PATCH 06/11] omap4: Fix omap_l2_cache_init not to run for other omaps

In multi-omap configuration all the initcalls run. To avoid bad things from happening with 44xx specific initcalls on other omaps, we need to check that the booted system is omap4 before running.

---
 arch/arm/mach-omap2/board-4430sdp.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-4430sdp.c +0 -0
index b88f28c..e603b00 100644
@@ -55,6 +55,9 @@ static int __init omap_l2_cache_init(void)
 	extern void omap_smc1(u32 fn, u32 arg);
 	void __iomem *l2cache_base;
 
Quoted 5 lines

arch/arm/mach-omap2/board-4430sdp.c static int __init omap_l2_cache_init(void) · line 60

Quoted 3 lines
arch/arm/mach-omap2/board-4430sdp.c +3 -0
+	if (!cpu_is_omap44xx())
+		return -ENODEV;
+

This check is already present just 3 lines below.

Oops. Thanks for pointing that out, dropping this patch.

Tony

author maintainer
#25 lore raw

PATCH 7/11 omap2/3/4: Add new boards to omap3_defconfig

In reply to Tony Lindgren

Enable 2430 omaps and the missing boards.

---
 arch/arm/configs/omap3_defconfig |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
arch/arm/configs/omap3_defconfig +3 -2
index d6ad921..01e5986 100644
@@ -264,7 +264,7 @@ CONFIG_MACH_OMAP_GENERIC=y
 # OMAP Core Type
 #
 CONFIG_ARCH_OMAP2420=y
-# CONFIG_ARCH_OMAP2430 is not set
+CONFIG_ARCH_OMAP2430=y
 CONFIG_ARCH_OMAP3430=y
 CONFIG_OMAP_PACKAGE_CBB=y
 CONFIG_OMAP_PACKAGE_CUS=y
@@ -276,8 +276,9 @@ CONFIG_OMAP_PACKAGE_CBP=y
 CONFIG_MACH_OMAP2_TUSB6010=y
 CONFIG_MACH_OMAP_H4=y
 CONFIG_MACH_OMAP_APOLLON=y
-# CONFIG_MACH_OMAP_2430SDP is not set
+CONFIG_MACH_OMAP_2430SDP=y
 CONFIG_MACH_OMAP3_BEAGLE=y
+CONFIG_MACH_DEVKIT8000=y
 CONFIG_MACH_OMAP_LDP=y
 CONFIG_MACH_OVERO=y
 CONFIG_MACH_OMAP3EVM=y
author maintainer
#26 lore raw

PATCH 8/11 omap2/3/4: Make omap3_defconfig usable on Nokia boards

In reply to Tony Lindgren

The bootloader on Nokia boards does not support updating the kernel cmdline. For the other boards, the bootloader provided cmdline will be used instead.

To mount root on n8x0, compile in also the MMC_OMAP. It seems that the best way to mount root with the new kernels on Nokia boards is to mount root on mmcblk0p2.

Note that n8x0 current has several issues booting with
omap3_defconfig: The bootloader has a 2MB limit for loading kernels, so you may want to use kexec. Also ARMv6 does not currently work with ARMv7 for VFP and TLS.

---
 arch/arm/configs/omap3_defconfig |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
arch/arm/configs/omap3_defconfig +2 -2
index 01e5986..d2ab492 100644
@@ -391,7 +391,7 @@ CONFIG_ALIGNMENT_TRAP=y
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:tgt:eth0:off rw console=ttyS2,115200n8"
+CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyS2,115200"
 # CONFIG_XIP_KERNEL is not set
 CONFIG_KEXEC=y
 CONFIG_ATAGS_PROC=y
@@ -1687,7 +1687,7 @@ CONFIG_SDIO_UART=y
 # MMC/SD/SDIO Host Controller Drivers
 #
 # CONFIG_MMC_SDHCI is not set
-# CONFIG_MMC_OMAP is not set
+CONFIG_MMC_OMAP=y
 CONFIG_MMC_OMAP_HS=y
 # CONFIG_MMC_AT91 is not set
 # CONFIG_MMC_ATMELMCI is not set
author maintainer
#27 lore raw

PATCH 9/11 omap2/3/4: Update PMIC options for TWL and Menelaus chips

In reply to Tony Lindgren

These are needed for mounting root on MMC on many boards. Also disable CONFIG_WATCHDOG_NOWAYOUT, that can keep the system from running with external watchdogs.

---
 arch/arm/configs/omap3_defconfig |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
arch/arm/configs/omap3_defconfig +7 -6
index d2ab492..a846836 100644
@@ -1263,7 +1263,7 @@ CONFIG_HWMON=y
 # CONFIG_SENSORS_LIS3_I2C is not set
 # CONFIG_THERMAL is not set
 CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_NOWAYOUT=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
@@ -1292,9 +1292,9 @@ CONFIG_MFD_CORE=y
 # CONFIG_HTC_EGPIO is not set
 # CONFIG_HTC_PASIC3 is not set
 # CONFIG_TPS65010 is not set
-# CONFIG_MENELAUS is not set
+CONFIG_MENELAUS=y
 CONFIG_TWL4030_CORE=y
-# CONFIG_TWL4030_POWER is not set
+CONFIG_TWL4030_POWER=y
 CONFIG_TWL4030_CODEC=y
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_T7L66XB is not set
@@ -1313,7 +1313,7 @@ CONFIG_TWL4030_CODEC=y
 # CONFIG_AB4500_CORE is not set
 CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
 # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
 # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
 # CONFIG_REGULATOR_BQ24022 is not set
@@ -1321,8 +1321,8 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
 # CONFIG_REGULATOR_MAX8660 is not set
 CONFIG_REGULATOR_TWL4030=y
 # CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
+CONFIG_REGULATOR_TPS65023=y
+CONFIG_REGULATOR_TPS6507X=y
 # CONFIG_MEDIA_SUPPORT is not set
 
 #
@@ -1752,6 +1752,7 @@ CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_DRV_PCF8583 is not set
 # CONFIG_RTC_DRV_M41T80 is not set
 # CONFIG_RTC_DRV_BQ32K is not set
+CONFIG_RTC_DRV_TWL92330=y
 CONFIG_RTC_DRV_TWL4030=y
 # CONFIG_RTC_DRV_S35390A is not set
 # CONFIG_RTC_DRV_FM3130 is not set
author maintainer
#28 lore raw

PATCH 10/11 omap2/3/4: Dissable CONFIG_PM_VERBOSE in omap3_defconfig

In reply to Tony Lindgren

It's too noisy.

---
 arch/arm/configs/omap3_defconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/configs/omap3_defconfig +1 -1
index a846836..7855edb 100644
@@ -444,7 +444,7 @@ CONFIG_BINFMT_MISC=y
 #
 CONFIG_PM=y
 CONFIG_PM_DEBUG=y
-CONFIG_PM_VERBOSE=y
+# CONFIG_PM_VERBOSE is not set
 CONFIG_CAN_PM_TRACE=y
 CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
author maintainer
#29 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

In reply to Tony Lindgren

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This allows booting omap3_defconfig on various omaps. Tested on 2420-n8x0, 3430-n900, 3630-zoom3 and 4430-blaze. Note that n8x0 still has issues with starting user space because of TLS and VFP.

---
 arch/arm/configs/omap3_defconfig |   10 +---------
 1 files changed, 1 insertions(+), 9 deletions(-)
arch/arm/configs/omap3_defconfig +1 -9
index 7855edb..1efb833 100644
@@ -1359,16 +1359,8 @@ CONFIG_FB_TILEBLITTING=y
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
-CONFIG_FB_OMAP=y
+# CONFIG_FB_OMAP is not set
 CONFIG_FB_OMAP_LCD_VGA=y
-# CONFIG_FB_OMAP_031M3R is not set
-# CONFIG_FB_OMAP_048M3R is not set
-CONFIG_FB_OMAP_079M3R=y
-# CONFIG_FB_OMAP_092M9R is not set
-# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
-# CONFIG_FB_OMAP_LCD_MIPID is not set
-# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
-CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
 # CONFIG_OMAP2_DSS is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=y
author maintainer
#30 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 3 lines · Tony Lindgren

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This one I'll drop as soon as the problem is sorted out with CONFIG_FB_OMAP.

Tony

author maintainer
#31 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

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

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This one I'll drop as soon as the problem is sorted out with CONFIG_FB_OMAP.

This one seems to be something under drivers/video/omap, so I'll change CONFIG_FB_OMAP to be a module now. Updated patch below.

I'll update omap for-next accordingly, then Tomi can figure it out :)

Regards,

Tony

#32 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Hi,

Quoted 9 lines · ext Tony Lindgren
Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This one I'll drop as soon as the problem is sorted out with CONFIG_FB_OMAP.

Quoted 6 lines

This one seems to be something under drivers/video/omap, so I'll change CONFIG_FB_OMAP to be a module now. Updated patch below.

I'll update omap for-next accordingly, then Tomi can figure it out :)

This sounds... interesting... =) Any more info on what happens? Does it also affect new omapfb driver?

Tomi

author maintainer
#33 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 16 lines · Tomi Valkeinen

Hi,

Quoted 13 lines · ext Tony Lindgren
Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This one I'll drop as soon as the problem is sorted out with CONFIG_FB_OMAP.

This one seems to be something under drivers/video/omap, so I'll change CONFIG_FB_OMAP to be a module now. Updated patch below.

Quoted 5 lines
Quoted 2 lines

I'll update omap for-next accordingly, then Tomi can figure it out :)

This sounds... interesting... =) Any more info on what happens? Does it also affect new omapfb driver?

Yeah this is interesting, it seems like the kernel cmdline gets somehow corrupted for zoom3 with the omap3_defconfig if CONFIG_FB_OMAP=y. Some options seem to be there, but for example rootwait option is ignored and the root on MMC never mounts. This is in the current omap for-next branch.

Hmm, what do you mean with "new omapfb" driver, the stuff you have queued up?

Regards,

Tony

#34 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 20 lines · ext Tony Lindgren
Quoted 19 lines · Tomi Valkeinen

Hi,

Quoted 15 lines · ext Tony Lindgren
Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This one I'll drop as soon as the problem is sorted out with CONFIG_FB_OMAP.

This one seems to be something under drivers/video/omap, so I'll change CONFIG_FB_OMAP to be a module now. Updated patch below.

I'll update omap for-next accordingly, then Tomi can figure it out :)

Quoted 8 lines
Quoted 2 lines

This sounds... interesting... =) Any more info on what happens? Does it also affect new omapfb driver?

Yeah this is interesting, it seems like the kernel cmdline gets somehow corrupted for zoom3 with the omap3_defconfig if CONFIG_FB_OMAP=y. Some options seem to be there, but for example rootwait option is ignored and the root on MMC never mounts. This is in the current omap for-next branch.

Ok, so the cmdline parsing in omapfb could be broken. I'll check it out.

Quoted 2 lines

Hmm, what do you mean with "new omapfb" driver, the stuff you have queued up?

No, I mean the DSS2 version. drivers/video/omap is the old one, written mostly by Imre, and drivers/video/omap2 is the new one, written mostly by me.

I guess most boards are still using the old omapfb driver.

Tomi

author maintainer
#35 lore raw

PATCH 11/11 omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 24 lines · Tomi Valkeinen
Quoted 23 lines · ext Tony Lindgren
Quoted 21 lines · Tomi Valkeinen

Hi,

Quoted 9 lines · ext Tony Lindgren
Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This one I'll drop as soon as the problem is sorted out with CONFIG_FB_OMAP.

Quoted 6 lines

This one seems to be something under drivers/video/omap, so I'll change CONFIG_FB_OMAP to be a module now. Updated patch below.

I'll update omap for-next accordingly, then Tomi can figure it out :)

This sounds... interesting... =) Any more info on what happens? Does it also affect new omapfb driver?

Quoted 7 lines
Quoted 5 lines

Yeah this is interesting, it seems like the kernel cmdline gets somehow corrupted for zoom3 with the omap3_defconfig if CONFIG_FB_OMAP=y. Some options seem to be there, but for example rootwait option is ignored and the root on MMC never mounts. This is in the current omap for-next branch.

Ok, so the cmdline parsing in omapfb could be broken. I'll check it out.

OK thanks. Hmm, it could be that it works on n8x0 and n900 because they are using the kernel built in cmdline.

Quoted 8 lines
Quoted 2 lines

Hmm, what do you mean with "new omapfb" driver, the stuff you have queued up?

No, I mean the DSS2 version. drivers/video/omap is the old one, written mostly by Imre, and drivers/video/omap2 is the new one, written mostly by me.

I guess most boards are still using the old omapfb driver.

Ah I see, it does not have CONFIG_FB_OMAP2 set. I did a quick test with that and the bootloader passed cmdline on zoom3 works just fine. I used the options below.

Nothing on the LCD panel on zoom or n900 though, I guess some updates are still needed for that.

Regards,

Tony
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fb-omap2.patch
Type: text/x-diff
Size: 1388 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100504/cf575178/attachment.bin>

#36 lore raw

Old DSS code broken as module (was "RE: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig")

In reply to Tony Lindgren

Tony,

Quoted 9 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: Friday, April 30, 2010 3:34 PM
To: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Subject: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 8 lines

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This allows booting omap3_defconfig on various omaps. Tested on 2420-n8x0, 3430-n900, 3630-zoom3 and 4430-blaze. Note that n8x0 still has issues with starting user space because of TLS and VFP.

(Looping Tomi)

Unfortunately, your patch is uncovering an issue with old DSS code to compile it as module, which I think is caused by this:

A single omapfb.ko is attempted to be created in drivers/video/omap/ folder, but the included source files (DSS code + lcd drivers), results in multiple module_init entries added in a single module, and therefore giving errors of duplicate init_module entries between omapfb_main.c and the lcd_*.c files.

So, either you disable old DSS driver completely, or you have it as built-in.

Regards,
Sergio

author maintainer
#37 lore raw

Old DSS code broken as module (was "RE: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig")

Quoted 25 lines · Aguirre, Sergio

Tony,

Quoted 9 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: Friday, April 30, 2010 3:34 PM
To: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Subject: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 8 lines

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This allows booting omap3_defconfig on various omaps. Tested on 2420-n8x0, 3430-n900, 3630-zoom3 and 4430-blaze. Note that n8x0 still has issues with starting user space because of TLS and VFP.

(Looping Tomi)

Unfortunately, your patch is uncovering an issue with old DSS code to compile it as module, which I think is caused by this:

Quoted 7 lines

A single omapfb.ko is attempted to be created in drivers/video/omap/ folder, but the included source files (DSS code + lcd drivers), results in multiple module_init entries added in a single module, and therefore giving errors of duplicate init_module entries between omapfb_main.c and the lcd_*.c files.

So, either you disable old DSS driver completely, or you have it as built-in.

OK thanks for pointing that out. I'll disable it so we have a booting omap3_defconfig (with the modules compiling).

Regards,

Tony

#38 lore raw

Old DSS code broken as module (was "RE: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig")

From: Tony Lindgren [mailto:tony at atomide.com]
Sent: Wednesday, May 05, 2010 12:44 PM

Quoted 32 lines · Aguirre, Sergio
Quoted 20 lines

Tony,

Quoted 9 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: Friday, April 30, 2010 3:34 PM
To: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Subject: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 8 lines

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This allows booting omap3_defconfig on various omaps. Tested on 2420-n8x0, 3430-n900, 3630-zoom3 and 4430-blaze. Note that n8x0 still has issues with starting user space because of TLS and VFP.

Quoted 6 lines

(Looping Tomi)

Unfortunately, your patch is uncovering an issue with old DSS code to compile it as module, which I think is caused by this:

A single omapfb.ko is attempted to be created in drivers/video/omap/

folder,

Quoted 1 line

but the included source files (DSS code + lcd drivers), results in

multiple

Quoted 1 line

module_init entries added in a single module, and therefore giving

errors of

Quoted 8 lines
Quoted 1 line

duplicate init_module entries between omapfb_main.c and the lcd_*.c

files.

Quoted 3 lines

So, either you disable old DSS driver completely, or you have it as built-in.

OK thanks for pointing that out. I'll disable it so we have a booting omap3_defconfig (with the modules compiling).

In my local tree, I just have created this simple change, which could be reverted IF old DSS is intended to be used as a module in the future.

I don't know how acceptable is to have it officially applied though.

Regards,
Sergio

Quoted 4 lines

Regards,

Tony

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-omapfb-Remove-tristate-option-in-Kconfig.patch
Type: application/octet-stream
Size: 836 bytes
Desc: 0001-omapfb-Remove-tristate-option-in-Kconfig.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100505/36154020/attachment.obj>

#39 lore raw

Old DSS code broken as module (was "RE: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig")

In reply to Aguirre, Sergio
Quoted 25 lines · Sergio

Tony,

Quoted 9 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: Friday, April 30, 2010 3:34 PM
To: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Subject: [PATCH 11/11] omap2/3/4: Disable CONFIG_FB_OMAP in omap3_defconfig

Quoted 8 lines

Looks like CONFIG_FB_OMAP prevents somehow mounting root on MMC at least on zoom3 for multi-omap. Disable CONFIG_FB until the omap FB code is fixed.

This allows booting omap3_defconfig on various omaps. Tested on 2420-n8x0, 3430-n900, 3630-zoom3 and 4430-blaze. Note that n8x0 still has issues with starting user space because of TLS and VFP.

(Looping Tomi)

Unfortunately, your patch is uncovering an issue with old DSS code to compile it as module, which I think is caused by this:

Quoted 7 lines

A single omapfb.ko is attempted to be created in drivers/video/omap/ folder, but the included source files (DSS code + lcd drivers), results in multiple module_init entries added in a single module, and therefore giving errors of duplicate init_module entries between omapfb_main.c and the lcd_*.c files.

So, either you disable old DSS driver completely, or you have it as built-in.

Ah, yes. I'm not sure if the older omapfb was ever really designed to be used as module... If this is the problem, then my suggestion is to either use it built-in, or use the new DSS2 which works well as modules.

I guess the option to compile the older omapfb as a module should be removed? Or if some brave soul wants to start fixing omapfb, that's ok too =).

Tomi