* [PATCH] OMAP3 updates
@ 2013-03-04 19:37 Sascha Hauer
2013-03-04 19:37 ` [PATCH 1/2] ARM: OMAP3: invalidate L2 cache using ROM API Sascha Hauer
2013-03-04 19:37 ` [PATCH 2/2] ARM: OMAP: beagle: Add missing MMC iomux setup Sascha Hauer
0 siblings, 2 replies; 10+ messages in thread
From: Sascha Hauer @ 2013-03-04 19:37 UTC (permalink / raw)
To: barebox
Two patches for OMAP3. One calls the internal ROM to invalidate
the L2 cache and removes the previously used omap3_invalidate_dcache
function. I don't know exactly what'S going on here, but it makes
the beagle board much more stable. In earlier days this was not
needed, maybe because we didn't enable the MMU.
The other one adds the iomux setup for MMC cards on the beagle board.
My hope was that with this the MMC slot would work even when not
booting from it. Unfortunately this was not the case. I also tried
and enabled VMMC in the twl4030, but this didn't help either.
So if anyone has an idea what needs to be done to make the MMC
slot work I'd be glad to hear.
Sascha
----------------------------------------------------------------
Sascha Hauer (2):
ARM: OMAP3: invalidate L2 cache using ROM API
ARM: OMAP: beagle: Add missing MMC iomux setup
arch/arm/boards/beagle/lowlevel.c | 13 +++-
arch/arm/boards/omap343xdsp/lowlevel.c | 2 -
arch/arm/mach-omap/Makefile | 4 +-
arch/arm/mach-omap/auxcr.S | 12 ++++
arch/arm/mach-omap/include/mach/omap3-silicon.h | 8 ++-
arch/arm/mach-omap/omap3_core.S | 87 -------------------------
arch/arm/mach-omap/omap3_generic.c | 4 +-
7 files changed, 35 insertions(+), 95 deletions(-)
delete mode 100644 arch/arm/mach-omap/omap3_core.S
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: OMAP3: invalidate L2 cache using ROM API
2013-03-04 19:37 [PATCH] OMAP3 updates Sascha Hauer
@ 2013-03-04 19:37 ` Sascha Hauer
2013-03-04 19:37 ` [PATCH 2/2] ARM: OMAP: beagle: Add missing MMC iomux setup Sascha Hauer
1 sibling, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2013-03-04 19:37 UTC (permalink / raw)
To: barebox
Code taken from U-Boot. This makes the beagle board much more
reliable.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/boards/beagle/lowlevel.c | 2 -
arch/arm/boards/omap343xdsp/lowlevel.c | 2 -
arch/arm/mach-omap/Makefile | 4 +-
arch/arm/mach-omap/auxcr.S | 12 ++++
arch/arm/mach-omap/include/mach/omap3-silicon.h | 8 ++-
arch/arm/mach-omap/omap3_core.S | 87 -------------------------
arch/arm/mach-omap/omap3_generic.c | 4 +-
7 files changed, 24 insertions(+), 95 deletions(-)
delete mode 100644 arch/arm/mach-omap/omap3_core.S
diff --git a/arch/arm/boards/beagle/lowlevel.c b/arch/arm/boards/beagle/lowlevel.c
index 8afcb75..2c1232c 100644
--- a/arch/arm/boards/beagle/lowlevel.c
+++ b/arch/arm/boards/beagle/lowlevel.c
@@ -169,8 +169,6 @@ static int beagle_board_init(void)
void __naked barebox_arm_reset_vector(void)
{
- omap3_invalidate_dcache();
-
arm_cpu_lowlevel_init();
beagle_board_init();
diff --git a/arch/arm/boards/omap343xdsp/lowlevel.c b/arch/arm/boards/omap343xdsp/lowlevel.c
index 5629655..ed675ad 100644
--- a/arch/arm/boards/omap343xdsp/lowlevel.c
+++ b/arch/arm/boards/omap343xdsp/lowlevel.c
@@ -547,8 +547,6 @@ static int sdp343x_board_init(void)
void __naked barebox_arm_reset_vector(void)
{
- omap3_invalidate_dcache();
-
arm_cpu_lowlevel_init();
sdp343x_board_init();
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index aaa0cea..38786b2 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -19,8 +19,8 @@ obj-$(CONFIG_ARCH_OMAP) += syslib.o omap_devices.o
pbl-$(CONFIG_ARCH_OMAP) += syslib.o
obj-$(CONFIG_OMAP_CLOCK_SOURCE_S32K) += s32k_clksource.o
obj-$(CONFIG_OMAP_CLOCK_SOURCE_DMTIMER0) += dmtimer0.o
-obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o auxcr.o
-pbl-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o auxcr.o
+obj-$(CONFIG_ARCH_OMAP3) += omap3_generic.o auxcr.o
+pbl-$(CONFIG_ARCH_OMAP3) += omap3_generic.o auxcr.o
obj-$(CONFIG_ARCH_OMAP4) += omap4_generic.o omap4_clock.o
pbl-$(CONFIG_ARCH_OMAP4) += omap4_generic.o omap4_clock.o
obj-$(CONFIG_ARCH_AM33XX) += am33xx_generic.o am33xx_clock.o am33xx_mux.o
diff --git a/arch/arm/mach-omap/auxcr.S b/arch/arm/mach-omap/auxcr.S
index 2debc15..aaac0f2 100644
--- a/arch/arm/mach-omap/auxcr.S
+++ b/arch/arm/mach-omap/auxcr.S
@@ -31,3 +31,15 @@ ENTRY(setup_auxcr)
.word 0xE1600070 @ SMC
bx lr
ENDPROC(setup_auxcr)
+
+.arm
+ENTRY(omap3_gp_romcode_call)
+ push {r4-r12, lr} @ Save all registers from ROM code!
+ mov r12, r0 @ Copy the Service ID in R12
+ mov r0, r1 @ Copy parameter to R0
+ mcr p15, 0, r0, c7, c10, 4 @ DSB
+ mcr p15, 0, r0, c7, c10, 5 @ DMB
+ .word 0xe1600070 @ SMC #0 to enter monitor - hand assembled
+ @ because we use -march=armv5
+ pop {r4-r12, pc}
+ENDPROC(omap3_gp_romcode_call)
diff --git a/arch/arm/mach-omap/include/mach/omap3-silicon.h b/arch/arm/mach-omap/include/mach/omap3-silicon.h
index 43b2953..9138057 100644
--- a/arch/arm/mach-omap/include/mach/omap3-silicon.h
+++ b/arch/arm/mach-omap/include/mach/omap3-silicon.h
@@ -130,10 +130,16 @@
/* PRM */
#define OMAP3_PRM_RSTCTRL_RESET 0x04
+/*
+ * ROM code API related flags
+ */
+#define OMAP3_GP_ROMCODE_API_L2_INVAL 1
+#define OMAP3_GP_ROMCODE_API_WRITE_ACR 3
+
/* If Architecture specific init functions are present */
#ifndef __ASSEMBLY__
void omap3_core_init(void);
-void omap3_invalidate_dcache(void);
+void omap3_gp_romcode_call(u32 service_id, u32 parameter);
#endif /* __ASSEMBLY__ */
#endif /* __ASM_ARCH_OMAP3_H */
diff --git a/arch/arm/mach-omap/omap3_core.S b/arch/arm/mach-omap/omap3_core.S
deleted file mode 100644
index a47e248..0000000
--- a/arch/arm/mach-omap/omap3_core.S
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * @file
- * @brief Provide Architecture level Initialization
- *
- * This provides OMAP3 Architecture initialization. Among these,
- * @li OMAP ROM Code is located in SRAM, we can piggy back on
- * the same addresses
- * @li If clock initialization is required, call the same.
- * @li Setup a temporary SRAM stack which is necessary to call C
- * functions.
- * @li Call architecture initialization function a_init
- *
- * (C) Copyright 2006-2008
- * Texas Instruments, <www.ti.com>
- * Nishanth Menon <x0nishan@ti.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <mach/omap3-silicon.h>
-#include <mach/wdt.h>
-#include <mach/clocks.h>
-#include <asm/barebox-arm-head.h>
-
-.section .text.__omap3_invalidate_dcache
-ENTRY(omap3_invalidate_dcache)
- /* Invalidate all Dcaches */
-#ifndef CONFIG_CPU_V7_DCACHE_SKIP
- /* If Arch specific ROM code SMI handling does not exist */
- mrc p15, 1, r0, c0, c0, 1 /* read clidr */
- ands r3, r0, #0x7000000 /* extract loc from clidr */
- mov r3, r3, lsr #23 /* left align loc bit field */
- beq finished_inval /* if loc is 0, then no need to clean */
- mov r10, #0 /* start clean at cache level 0 */
-inval_loop1:
- add r2, r10, r10, lsr #1 /* work out 3x current cache level */
- mov r1, r0, lsr r2 /* extract cache type bits from clidr */
- and r1, r1, # 7 /* mask of the bits for current cache only */
- cmp r1, #2 /* see what cache we have at this level */
- blt skip_inval /* skip if no cache, or just i-cache */
- mcr p15, 2, r10, c0, c0, 0 /* select current cache level in cssr */
- isb /* isb to sych the new cssr&csidr */
- mrc p15, 1, r1, c0, c0, 0 /* read the new csidr */
- and r2, r1, #7 /* extract the length of the cache lines */
- add r2, r2, #4 /* add 4 (line length offset) */
- ldr r4, =0x3ff
- ands r4, r4, r1, lsr #3 /* find maximum number on the way size*/
- clz r5, r4 /* find bit position of way size increment */
- ldr r7, =0x7fff
- ands r7, r7, r1, lsr #13 /* extract max number of the index size */
-inval_loop2:
- mov r9, r4 /* create working copy of max way size */
-inval_loop3:
-ARM( orr r11, r10, r9, lsl r5 ) /* factor way and cache number into r11 */
-ARM( orr r11, r11, r7, lsl r2 ) /* factor index number into r11 */
-THUMB( lsl r6, r9, r5 )
-THUMB( orr r11, r10, r6 ) /* factor way and cache number into r11 */
-THUMB( lsl r6, r7, r2 )
-THUMB( orr r11, r11, r6 ) /* factor index number into r11 */
- mcr p15, 0, r11, c7, c6, 2 /* invalidate by set/way */
- subs r9, r9, #1 /* decrement the way */
- bge inval_loop3
- subs r7, r7, #1 /* decrement the index */
- bge inval_loop2
-skip_inval:
- add r10, r10, #2 /* increment cache number */
- cmp r3, r10
- bgt inval_loop1
-finished_inval:
- mov r10, #0 /* swith back to cache level 0 */
- mcr p15, 2, r10, c0, c0, 0 /* select current cache level in cssr */
- isb
-#endif /* CONFIG_CPU_V7_DCACHE_SKIP */
- /* back to arch calling code */
- bx lr
-ENDPROC(omap3_invalidate_dcache)
diff --git a/arch/arm/mach-omap/omap3_generic.c b/arch/arm/mach-omap/omap3_generic.c
index 8487f07..a21a938 100644
--- a/arch/arm/mach-omap/omap3_generic.c
+++ b/arch/arm/mach-omap/omap3_generic.c
@@ -451,8 +451,10 @@ void omap3_core_init(void)
/* Currently SMI in Kernel on ES2 devices seems to have an isse
* Once that is resolved, we can postpone this config to kernel
*/
- if (get_device_type() == GP_DEVICE)
+ if (get_device_type() == GP_DEVICE) {
setup_auxcr();
+ omap3_gp_romcode_call(OMAP3_GP_ROMCODE_API_L2_INVAL, 0);
+ }
sdelay(100);
--
1.8.2.rc2
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] ARM: OMAP: beagle: Add missing MMC iomux setup
2013-03-04 19:37 [PATCH] OMAP3 updates Sascha Hauer
2013-03-04 19:37 ` [PATCH 1/2] ARM: OMAP3: invalidate L2 cache using ROM API Sascha Hauer
@ 2013-03-04 19:37 ` Sascha Hauer
2013-03-06 23:45 ` [PATCH 1/1] beagle: add missing mmc twl and control init Jean-Christophe PLAGNIOL-VILLARD
1 sibling, 1 reply; 10+ messages in thread
From: Sascha Hauer @ 2013-03-04 19:37 UTC (permalink / raw)
To: barebox
When the board is booted from NAND we have to setup the iomux to
make the SD card work. Unfortunately this still is not enough :(
The SD card still will only work when booting from it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/boards/beagle/lowlevel.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm/boards/beagle/lowlevel.c b/arch/arm/boards/beagle/lowlevel.c
index 2c1232c..d0fd066 100644
--- a/arch/arm/boards/beagle/lowlevel.c
+++ b/arch/arm/boards/beagle/lowlevel.c
@@ -87,6 +87,17 @@ static void mux_config(void)
MUX_VAL(CP(ETK_D14_ES2), (IEN | PTU | DIS | M3));
MUX_VAL(CP(ETK_D15_ES2), (IEN | PTU | DIS | M3));
MUX_VAL(CP(UART2_RX), (IEN | PTD | DIS | M4)) /*GPIO_147*/;
+ /* Expansion card */
+ MUX_VAL(CP(MMC1_CLK), (IDIS | PTU | EN | M0)); /* MMC1_CLK */
+ MUX_VAL(CP(MMC1_CMD), (IEN | PTU | EN | M0)); /* MMC1_CMD */
+ MUX_VAL(CP(MMC1_DAT0), (IEN | PTU | EN | M0)); /* MMC1_DAT0 */
+ MUX_VAL(CP(MMC1_DAT1), (IEN | PTU | EN | M0)); /* MMC1_DAT1 */
+ MUX_VAL(CP(MMC1_DAT2), (IEN | PTU | EN | M0)); /* MMC1_DAT2 */
+ MUX_VAL(CP(MMC1_DAT3), (IEN | PTU | EN | M0)); /* MMC1_DAT3 */
+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M0)); /* MMC1_DAT4 */
+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M0)); /* MMC1_DAT5 */
+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M0)); /* MMC1_DAT6 */
+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M0)); /* MMC1_DAT7 */
}
/**
--
1.8.2.rc2
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-04 19:37 ` [PATCH 2/2] ARM: OMAP: beagle: Add missing MMC iomux setup Sascha Hauer
@ 2013-03-06 23:45 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-07 2:06 ` Alexander Aring
2013-03-08 7:41 ` Sascha Hauer
0 siblings, 2 replies; 10+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-03-06 23:45 UTC (permalink / raw)
To: barebox
take from xloader
with this the mmc work even when booting from nand
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
arch/arm/boards/beagle/board.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c
index bed4651..6e69e87 100644
--- a/arch/arm/boards/beagle/board.c
+++ b/arch/arm/boards/beagle/board.c
@@ -63,6 +63,7 @@
#include <linux/err.h>
#include <usb/ehci.h>
#include <mach/xload.h>
+#include <mfd/twl4030.h>
#ifdef CONFIG_DRIVER_SERIAL_NS16550
@@ -109,6 +110,32 @@ static struct gpmc_nand_platform_data nand_plat = {
.nand_cfg = &omap3_nand_cfg,
};
+/* T2 Register definitions */
+#define CONTROL_DEV_CONF0 0x48002274
+#define CONTROL_PBIAS_LITE 0x48002520
+
+static void beagle_add_mmc(void)
+{
+ unsigned int value = 0;
+ struct twl4030 *t = twl4030_get();
+
+ if (!t) {
+ pr_warn("twl4030 not ready to setup mmc\n");
+ } else {
+ twl4030_reg_write(t, TWL4030_USB_OTHER_FUNC_CTRL_CLR, 0x20);
+ twl4030_reg_write(t, TWL4030_USB_OTHER_IFC_CTRL_CLR, 0x2);
+ }
+
+ value = readl(CONTROL_PBIAS_LITE);
+ value |= (1 << 2) | (1 << 1) | (1 << 9);
+ writel(value, CONTROL_PBIAS_LITE);
+
+ value = readl(CONTROL_DEV_CONF0);
+ writel(value | (1 << 24), CONTROL_PBIAS_LITE);
+
+ omap3_add_mmc1(NULL);
+}
+
static int beagle_mem_init(void)
{
omap_add_ram0(SZ_128M);
@@ -132,7 +159,7 @@ static int beagle_devices_init(void)
#endif
omap_add_gpmc_nand_device(&nand_plat);
- omap3_add_mmc1(NULL);
+ beagle_add_mmc();
armlinux_set_bootparams((void *)0x80000100);
armlinux_set_architecture(MACH_TYPE_OMAP3_BEAGLE);
--
1.7.10.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-06 23:45 ` [PATCH 1/1] beagle: add missing mmc twl and control init Jean-Christophe PLAGNIOL-VILLARD
@ 2013-03-07 2:06 ` Alexander Aring
2013-03-08 7:41 ` Sascha Hauer
1 sibling, 0 replies; 10+ messages in thread
From: Alexander Aring @ 2013-03-07 2:06 UTC (permalink / raw)
To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox
Hi,
On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> take from xloader
>
> with this the mmc work even when booting from nand
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> ---
> arch/arm/boards/beagle/board.c | 29 ++++++++++++++++++++++++++++-
> 1 file changed, 28 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c
> index bed4651..6e69e87 100644
> --- a/arch/arm/boards/beagle/board.c
> +++ b/arch/arm/boards/beagle/board.c
> @@ -63,6 +63,7 @@
> #include <linux/err.h>
> #include <usb/ehci.h>
> #include <mach/xload.h>
> +#include <mfd/twl4030.h>
>
> #ifdef CONFIG_DRIVER_SERIAL_NS16550
>
> @@ -109,6 +110,32 @@ static struct gpmc_nand_platform_data nand_plat = {
> .nand_cfg = &omap3_nand_cfg,
> };
>
> +/* T2 Register definitions */
> +#define CONTROL_DEV_CONF0 0x48002274
> +#define CONTROL_PBIAS_LITE 0x48002520
> +
> +static void beagle_add_mmc(void)
> +{
> + unsigned int value = 0;
> + struct twl4030 *t = twl4030_get();
> +
> + if (!t) {
> + pr_warn("twl4030 not ready to setup mmc\n");
> + } else {
> + twl4030_reg_write(t, TWL4030_USB_OTHER_FUNC_CTRL_CLR, 0x20);
> + twl4030_reg_write(t, TWL4030_USB_OTHER_IFC_CTRL_CLR, 0x2);
> + }
> +
> + value = readl(CONTROL_PBIAS_LITE);
> + value |= (1 << 2) | (1 << 1) | (1 << 9);
> + writel(value, CONTROL_PBIAS_LITE);
> +
> + value = readl(CONTROL_DEV_CONF0);
> + writel(value | (1 << 24), CONTROL_PBIAS_LITE);
> +
> + omap3_add_mmc1(NULL);
> +}
> +
> static int beagle_mem_init(void)
> {
> omap_add_ram0(SZ_128M);
> @@ -132,7 +159,7 @@ static int beagle_devices_init(void)
> #endif
> omap_add_gpmc_nand_device(&nand_plat);
>
> - omap3_add_mmc1(NULL);
> + beagle_add_mmc();
>
I had a similar problem with twl6030 and pcm049 some time ago...
See commit:
659f150e90d8bfcf8aa4c51bd3ab552f42e288f0
Please make sure this will work when you insert a mmc card after
beagle_mem_init call.
In my case, I need to add the VMMC setup at probing time in omap_hsmmc.
The reason is that twl6030 doesn't setup VMMC if a mmc card is not insert.
Maybe twl4030 do the same.
Alex
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-06 23:45 ` [PATCH 1/1] beagle: add missing mmc twl and control init Jean-Christophe PLAGNIOL-VILLARD
2013-03-07 2:06 ` Alexander Aring
@ 2013-03-08 7:41 ` Sascha Hauer
2013-03-08 12:21 ` Jean-Christophe PLAGNIOL-VILLARD
1 sibling, 1 reply; 10+ messages in thread
From: Sascha Hauer @ 2013-03-08 7:41 UTC (permalink / raw)
To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox
On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> take from xloader
>
> with this the mmc work even when booting from nand
Which beagle board revision do you have? With this patch the MMC
doesn't work at all anymore, even when booting from it.
Sascha
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> ---
> arch/arm/boards/beagle/board.c | 29 ++++++++++++++++++++++++++++-
> 1 file changed, 28 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c
> index bed4651..6e69e87 100644
> --- a/arch/arm/boards/beagle/board.c
> +++ b/arch/arm/boards/beagle/board.c
> @@ -63,6 +63,7 @@
> #include <linux/err.h>
> #include <usb/ehci.h>
> #include <mach/xload.h>
> +#include <mfd/twl4030.h>
>
> #ifdef CONFIG_DRIVER_SERIAL_NS16550
>
> @@ -109,6 +110,32 @@ static struct gpmc_nand_platform_data nand_plat = {
> .nand_cfg = &omap3_nand_cfg,
> };
>
> +/* T2 Register definitions */
> +#define CONTROL_DEV_CONF0 0x48002274
> +#define CONTROL_PBIAS_LITE 0x48002520
> +
> +static void beagle_add_mmc(void)
> +{
> + unsigned int value = 0;
> + struct twl4030 *t = twl4030_get();
> +
> + if (!t) {
> + pr_warn("twl4030 not ready to setup mmc\n");
> + } else {
> + twl4030_reg_write(t, TWL4030_USB_OTHER_FUNC_CTRL_CLR, 0x20);
> + twl4030_reg_write(t, TWL4030_USB_OTHER_IFC_CTRL_CLR, 0x2);
> + }
> +
> + value = readl(CONTROL_PBIAS_LITE);
> + value |= (1 << 2) | (1 << 1) | (1 << 9);
> + writel(value, CONTROL_PBIAS_LITE);
> +
> + value = readl(CONTROL_DEV_CONF0);
> + writel(value | (1 << 24), CONTROL_PBIAS_LITE);
> +
> + omap3_add_mmc1(NULL);
> +}
> +
> static int beagle_mem_init(void)
> {
> omap_add_ram0(SZ_128M);
> @@ -132,7 +159,7 @@ static int beagle_devices_init(void)
> #endif
> omap_add_gpmc_nand_device(&nand_plat);
>
> - omap3_add_mmc1(NULL);
> + beagle_add_mmc();
>
> armlinux_set_bootparams((void *)0x80000100);
> armlinux_set_architecture(MACH_TYPE_OMAP3_BEAGLE);
> --
> 1.7.10.4
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-08 7:41 ` Sascha Hauer
@ 2013-03-08 12:21 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-08 12:45 ` Sascha Hauer
0 siblings, 1 reply; 10+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-03-08 12:21 UTC (permalink / raw)
To: Sascha Hauer; +Cc: barebox
On 08:41 Fri 08 Mar , Sascha Hauer wrote:
> On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > take from xloader
> >
> > with this the mmc work even when booting from nand
>
> Which beagle board revision do you have? With this patch the MMC
> doesn't work at all anymore, even when booting from it.
c3
Best Regards,
J.
>
> Sascha
>
> >
> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> > ---
> > arch/arm/boards/beagle/board.c | 29 ++++++++++++++++++++++++++++-
> > 1 file changed, 28 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c
> > index bed4651..6e69e87 100644
> > --- a/arch/arm/boards/beagle/board.c
> > +++ b/arch/arm/boards/beagle/board.c
> > @@ -63,6 +63,7 @@
> > #include <linux/err.h>
> > #include <usb/ehci.h>
> > #include <mach/xload.h>
> > +#include <mfd/twl4030.h>
> >
> > #ifdef CONFIG_DRIVER_SERIAL_NS16550
> >
> > @@ -109,6 +110,32 @@ static struct gpmc_nand_platform_data nand_plat = {
> > .nand_cfg = &omap3_nand_cfg,
> > };
> >
> > +/* T2 Register definitions */
> > +#define CONTROL_DEV_CONF0 0x48002274
> > +#define CONTROL_PBIAS_LITE 0x48002520
> > +
> > +static void beagle_add_mmc(void)
> > +{
> > + unsigned int value = 0;
> > + struct twl4030 *t = twl4030_get();
> > +
> > + if (!t) {
> > + pr_warn("twl4030 not ready to setup mmc\n");
> > + } else {
> > + twl4030_reg_write(t, TWL4030_USB_OTHER_FUNC_CTRL_CLR, 0x20);
> > + twl4030_reg_write(t, TWL4030_USB_OTHER_IFC_CTRL_CLR, 0x2);
> > + }
> > +
> > + value = readl(CONTROL_PBIAS_LITE);
> > + value |= (1 << 2) | (1 << 1) | (1 << 9);
> > + writel(value, CONTROL_PBIAS_LITE);
> > +
> > + value = readl(CONTROL_DEV_CONF0);
> > + writel(value | (1 << 24), CONTROL_PBIAS_LITE);
> > +
> > + omap3_add_mmc1(NULL);
> > +}
> > +
> > static int beagle_mem_init(void)
> > {
> > omap_add_ram0(SZ_128M);
> > @@ -132,7 +159,7 @@ static int beagle_devices_init(void)
> > #endif
> > omap_add_gpmc_nand_device(&nand_plat);
> >
> > - omap3_add_mmc1(NULL);
> > + beagle_add_mmc();
> >
> > armlinux_set_bootparams((void *)0x80000100);
> > armlinux_set_architecture(MACH_TYPE_OMAP3_BEAGLE);
> > --
> > 1.7.10.4
> >
> >
> > _______________________________________________
> > barebox mailing list
> > barebox@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/barebox
> >
>
> --
> Pengutronix e.K. | |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-08 12:45 ` Sascha Hauer
@ 2013-03-08 12:42 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-08 13:00 ` Sascha Hauer
0 siblings, 1 reply; 10+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-03-08 12:42 UTC (permalink / raw)
To: Sascha Hauer; +Cc: barebox
On 13:45 Fri 08 Mar , Sascha Hauer wrote:
> On Fri, Mar 08, 2013 at 01:21:43PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > On 08:41 Fri 08 Mar , Sascha Hauer wrote:
> > > On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > > take from xloader
> > > >
> > > > with this the mmc work even when booting from nand
> > >
> > > Which beagle board revision do you have? With this patch the MMC
> > > doesn't work at all anymore, even when booting from it.
> > c3
>
> Me too. Have you tested the patch?
I use my current flashed barebox and re-run barebox
and it works
I boot from NAND
Best Regards,
J.
>
> Sascha
>
> --
> Pengutronix e.K. | |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-08 12:21 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2013-03-08 12:45 ` Sascha Hauer
2013-03-08 12:42 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 1 reply; 10+ messages in thread
From: Sascha Hauer @ 2013-03-08 12:45 UTC (permalink / raw)
To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox
On Fri, Mar 08, 2013 at 01:21:43PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 08:41 Fri 08 Mar , Sascha Hauer wrote:
> > On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > take from xloader
> > >
> > > with this the mmc work even when booting from nand
> >
> > Which beagle board revision do you have? With this patch the MMC
> > doesn't work at all anymore, even when booting from it.
> c3
Me too. Have you tested the patch?
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] beagle: add missing mmc twl and control init
2013-03-08 12:42 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2013-03-08 13:00 ` Sascha Hauer
0 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2013-03-08 13:00 UTC (permalink / raw)
To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox
On Fri, Mar 08, 2013 at 01:42:45PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 13:45 Fri 08 Mar , Sascha Hauer wrote:
> > On Fri, Mar 08, 2013 at 01:21:43PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > On 08:41 Fri 08 Mar , Sascha Hauer wrote:
> > > > On Thu, Mar 07, 2013 at 12:45:18AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > > > take from xloader
> > > > >
> > > > > with this the mmc work even when booting from nand
> > > >
> > > > Which beagle board revision do you have? With this patch the MMC
> > > > doesn't work at all anymore, even when booting from it.
> > > c3
> >
> > Me too. Have you tested the patch?
> I use my current flashed barebox and re-run barebox
>
> and it works
>
> I boot from NAND
Just tried again with current master + this patch flashed as xloader +
2nd stage flashed to Nand. It breaks compiling the xloader support btw:
arch/arm/boards/beagle/built-in.o: In function `beagle_devices_init':
lowlevel.c:(.text.beagle_devices_init+0x18): undefined reference to `twl4030_get'
lowlevel.c:(.text.beagle_devices_init+0x2c): undefined reference to `twlcore_reg_write'
lowlevel.c:(.text.beagle_devices_init+0x36): undefined reference to `twlcore_reg_write'
To fix this I enabled the twl support for now.
But still it doesn't work
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-03-08 13:00 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-04 19:37 [PATCH] OMAP3 updates Sascha Hauer
2013-03-04 19:37 ` [PATCH 1/2] ARM: OMAP3: invalidate L2 cache using ROM API Sascha Hauer
2013-03-04 19:37 ` [PATCH 2/2] ARM: OMAP: beagle: Add missing MMC iomux setup Sascha Hauer
2013-03-06 23:45 ` [PATCH 1/1] beagle: add missing mmc twl and control init Jean-Christophe PLAGNIOL-VILLARD
2013-03-07 2:06 ` Alexander Aring
2013-03-08 7:41 ` Sascha Hauer
2013-03-08 12:21 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-08 12:45 ` Sascha Hauer
2013-03-08 12:42 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-08 13:00 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox