* [U-Boot] [PATCH v2 0/2] ARM: davinci: omapl138_lcdk: fix MMC/SD boot breakage
@ 2019-05-27 13:46 Sekhar Nori
2019-05-27 13:46 ` [U-Boot] [PATCH v2 1/2] ARM: davinci: omal138_lcdk: fix MMC boot breakage due to driver model conversion Sekhar Nori
2019-05-27 13:46 ` [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization Sekhar Nori
0 siblings, 2 replies; 6+ messages in thread
From: Sekhar Nori @ 2019-05-27 13:46 UTC (permalink / raw)
To: u-boot
Hi,
Here is a set of patches that fixes MMC/SD boot breakage introduced
after 2018.09 release.
This was tested with MMC/SD boot on OMAP-L138 LCDK.
Peter,
I dropped your Tested-by: because the patches changed. It will be great
to get your testing done again.
v2:
Move console init to board_init_f() and drop spl_board_init() as its
not needed anymore.
Thanks,
Sekhar
Sekhar Nori (2):
ARM: davinci: omal138_lcdk: fix MMC boot breakage due to driver model
conversion
ARM: davinci: SPL: fix BSS initialization
arch/arm/mach-davinci/spl.c | 2 +-
board/davinci/da8xxevm/omapl138_lcdk.c | 2 +-
configs/da850_am18xxevm_defconfig | 1 -
configs/da850evm_defconfig | 1 -
configs/da850evm_nand_defconfig | 1 -
configs/ipam390_defconfig | 1 -
configs/omapl138_lcdk_defconfig | 1 -
7 files changed, 2 insertions(+), 7 deletions(-)
--
2.16.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 1/2] ARM: davinci: omal138_lcdk: fix MMC boot breakage due to driver model conversion
2019-05-27 13:46 [U-Boot] [PATCH v2 0/2] ARM: davinci: omapl138_lcdk: fix MMC/SD boot breakage Sekhar Nori
@ 2019-05-27 13:46 ` Sekhar Nori
2019-05-27 13:46 ` [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization Sekhar Nori
1 sibling, 0 replies; 6+ messages in thread
From: Sekhar Nori @ 2019-05-27 13:46 UTC (permalink / raw)
To: u-boot
commit 21af33ed0319 ("ARM: davinci: omapl138_lcdk: Enable DM_MMC")
wanted to enable DM_MMC only for U-Boot and not for SPL.
But CONFIG_DM_MMC is defined for SPL build too. Because of this
MMC device was not getting registered for SPL causing MMC/SD
boot breakage.
Instead use CONFIG_IS_ENABLED(DM_MMC) which will remain false until
CONFIG_SPL_DM_MMC is defined.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
board/davinci/da8xxevm/omapl138_lcdk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
index 2c2f885d43e4..fe1bf4410145 100644
--- a/board/davinci/da8xxevm/omapl138_lcdk.c
+++ b/board/davinci/da8xxevm/omapl138_lcdk.c
@@ -353,7 +353,7 @@ int misc_init_r(void)
return 0;
}
-#ifndef CONFIG_DM_MMC
+#if !CONFIG_IS_ENABLED(DM_MMC)
#ifdef CONFIG_MMC_DAVINCI
static struct davinci_mmc mmc_sd0 = {
.reg_base = (struct davinci_mmc_regs *)DAVINCI_MMC_SD0_BASE,
--
2.16.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization
2019-05-27 13:46 [U-Boot] [PATCH v2 0/2] ARM: davinci: omapl138_lcdk: fix MMC/SD boot breakage Sekhar Nori
2019-05-27 13:46 ` [U-Boot] [PATCH v2 1/2] ARM: davinci: omal138_lcdk: fix MMC boot breakage due to driver model conversion Sekhar Nori
@ 2019-05-27 13:46 ` Sekhar Nori
2019-05-28 15:14 ` Adam Ford
1 sibling, 1 reply; 6+ messages in thread
From: Sekhar Nori @ 2019-05-27 13:46 UTC (permalink / raw)
To: u-boot
U-Boot README recommends initializing SDRAM in board_init_f(). DA850
was doing it as part of board_init_r() (through call to spl_board_init()
which calls arch_cpu_init() which calls da850_ddr_setup())
This worked fine till commit 15b8c7505819 ("davinci:
da850evm/omapl138-lcdk: Move BSS to SDRAM because SRAM is full") moved
BSS to SDRAM.
Functions like mmc_initialize() called in board_init_r() assume BSS is
available. Since SDRAM was not initialized when arch/arm/lib/crt0.S tried
to initialize BSS to 0, BSS is not initialized correctly.
Fix this by simply calling arch_cpu_init() from board_init_f(). Also move
preloader_console_init() there to help debug issues with board_init_r().
With this spl_board_init() is no longer needed, we remove it.
Tested using MMC/SD boot on OMAP-L138 LCDK board.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
arch/arm/mach-davinci/spl.c | 2 +-
configs/da850_am18xxevm_defconfig | 1 -
configs/da850evm_defconfig | 1 -
configs/da850evm_nand_defconfig | 1 -
configs/ipam390_defconfig | 1 -
configs/omapl138_lcdk_defconfig | 1 -
6 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/arch/arm/mach-davinci/spl.c b/arch/arm/mach-davinci/spl.c
index 103639e34757..9861afd820a1 100644
--- a/arch/arm/mach-davinci/spl.c
+++ b/arch/arm/mach-davinci/spl.c
@@ -31,7 +31,7 @@ void putc(char c)
}
#endif /* CONFIG_SPL_LIBCOMMON_SUPPORT */
-void spl_board_init(void)
+void board_init_f(ulong dummy)
{
arch_cpu_init();
preloader_console_init();
diff --git a/configs/da850_am18xxevm_defconfig b/configs/da850_am18xxevm_defconfig
index f09822211312..7ecdc361ce85 100644
--- a/configs/da850_am18xxevm_defconfig
+++ b/configs/da850_am18xxevm_defconfig
@@ -20,7 +20,6 @@ CONFIG_VERSION_VARIABLE=y
# CONFIG_DISPLAY_BOARDINFO is not set
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_SPL_TEXT_BASE=0x80000000
-CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="U-Boot > "
diff --git a/configs/da850evm_defconfig b/configs/da850evm_defconfig
index 8c16d5c4f5a7..c09505828255 100644
--- a/configs/da850evm_defconfig
+++ b/configs/da850evm_defconfig
@@ -21,7 +21,6 @@ CONFIG_VERSION_VARIABLE=y
# CONFIG_DISPLAY_BOARDINFO is not set
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_SPL_TEXT_BASE=0x80000000
-CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
CONFIG_SPL_SEPARATE_BSS=y
CONFIG_SPL_SPI_LOAD=y
diff --git a/configs/da850evm_nand_defconfig b/configs/da850evm_nand_defconfig
index b8eac0e65995..727101634679 100644
--- a/configs/da850evm_nand_defconfig
+++ b/configs/da850evm_nand_defconfig
@@ -19,7 +19,6 @@ CONFIG_VERSION_VARIABLE=y
# CONFIG_DISPLAY_BOARDINFO is not set
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_SPL_TEXT_BASE=0x80000000
-CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
CONFIG_SPL_SEPARATE_BSS=y
CONFIG_SPL_NAND_SUPPORT=y
diff --git a/configs/ipam390_defconfig b/configs/ipam390_defconfig
index f2270264bda4..88a0d971ef28 100644
--- a/configs/ipam390_defconfig
+++ b/configs/ipam390_defconfig
@@ -14,7 +14,6 @@ CONFIG_VERSION_VARIABLE=y
# CONFIG_DISPLAY_BOARDINFO is not set
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_SPL_TEXT_BASE=0x80000000
-CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_NAND_SUPPORT=y
CONFIG_SPL_OS_BOOT=y
CONFIG_HUSH_PARSER=y
diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
index e43141844a10..48f251ebb804 100644
--- a/configs/omapl138_lcdk_defconfig
+++ b/configs/omapl138_lcdk_defconfig
@@ -18,7 +18,6 @@ CONFIG_VERSION_VARIABLE=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_SPL_TEXT_BASE=0x80000000
-CONFIG_SPL_BOARD_INIT=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0xb5
CONFIG_SPL_NAND_SUPPORT=y
CONFIG_HUSH_PARSER=y
--
2.16.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization
2019-05-27 13:46 ` [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization Sekhar Nori
@ 2019-05-28 15:14 ` Adam Ford
2019-05-29 13:13 ` Sekhar Nori
0 siblings, 1 reply; 6+ messages in thread
From: Adam Ford @ 2019-05-28 15:14 UTC (permalink / raw)
To: u-boot
On Mon, May 27, 2019 at 6:46 AM Sekhar Nori <nsekhar@ti.com> wrote:
>
> U-Boot README recommends initializing SDRAM in board_init_f(). DA850
> was doing it as part of board_init_r() (through call to spl_board_init()
> which calls arch_cpu_init() which calls da850_ddr_setup())
>
> This worked fine till commit 15b8c7505819 ("davinci:
> da850evm/omapl138-lcdk: Move BSS to SDRAM because SRAM is full") moved
> BSS to SDRAM.
>
> Functions like mmc_initialize() called in board_init_r() assume BSS is
> available. Since SDRAM was not initialized when arch/arm/lib/crt0.S tried
> to initialize BSS to 0, BSS is not initialized correctly.
>
> Fix this by simply calling arch_cpu_init() from board_init_f(). Also move
> preloader_console_init() there to help debug issues with board_init_r().
>
> With this spl_board_init() is no longer needed, we remove it.
I like this idea.
>
> Tested using MMC/SD boot on OMAP-L138 LCDK board.
>
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> ---
> arch/arm/mach-davinci/spl.c | 2 +-
> configs/da850_am18xxevm_defconfig | 1 -
> configs/da850evm_defconfig | 1 -
> configs/da850evm_nand_defconfig | 1 -
> configs/ipam390_defconfig | 1 -
> configs/omapl138_lcdk_defconfig | 1 -
> 6 files changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/spl.c b/arch/arm/mach-davinci/spl.c
> index 103639e34757..9861afd820a1 100644
> --- a/arch/arm/mach-davinci/spl.c
> +++ b/arch/arm/mach-davinci/spl.c
> @@ -31,7 +31,7 @@ void putc(char c)
> }
> #endif /* CONFIG_SPL_LIBCOMMON_SUPPORT */
>
> -void spl_board_init(void)
> +void board_init_f(ulong dummy)
> {
The da850 uses the device tree to get the serial port information, and
someone else just submitted a patch to enable the device tree for the
LCDK. At least for the da850-evm, we need to initialize the spl stuff
here to fetch the device tree info in order to enable the serial port
for preload_console_init() or it hangs.
I think we should add spl_early_init(); If you don't want it enabled
all the time, we could encapsulate it in an ifdef checking for the
presence of OF_CONTROL, but I think it should be harmless to have it
executed all the time based on my interpretation of the readme file.
> arch_cpu_init();
> preloader_console_init();
> diff --git a/configs/da850_am18xxevm_defconfig b/configs/da850_am18xxevm_defconfig
> index f09822211312..7ecdc361ce85 100644
> --- a/configs/da850_am18xxevm_defconfig
> +++ b/configs/da850_am18xxevm_defconfig
> @@ -20,7 +20,6 @@ CONFIG_VERSION_VARIABLE=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_BOARD_EARLY_INIT_F=y
> CONFIG_SPL_TEXT_BASE=0x80000000
> -CONFIG_SPL_BOARD_INIT=y
> CONFIG_SPL_SPI_LOAD=y
> CONFIG_HUSH_PARSER=y
> CONFIG_SYS_PROMPT="U-Boot > "
> diff --git a/configs/da850evm_defconfig b/configs/da850evm_defconfig
> index 8c16d5c4f5a7..c09505828255 100644
> --- a/configs/da850evm_defconfig
> +++ b/configs/da850evm_defconfig
> @@ -21,7 +21,6 @@ CONFIG_VERSION_VARIABLE=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_BOARD_EARLY_INIT_F=y
> CONFIG_SPL_TEXT_BASE=0x80000000
> -CONFIG_SPL_BOARD_INIT=y
> CONFIG_SPL_SYS_MALLOC_SIMPLE=y
> CONFIG_SPL_SEPARATE_BSS=y
> CONFIG_SPL_SPI_LOAD=y
> diff --git a/configs/da850evm_nand_defconfig b/configs/da850evm_nand_defconfig
> index b8eac0e65995..727101634679 100644
> --- a/configs/da850evm_nand_defconfig
> +++ b/configs/da850evm_nand_defconfig
> @@ -19,7 +19,6 @@ CONFIG_VERSION_VARIABLE=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_BOARD_EARLY_INIT_F=y
> CONFIG_SPL_TEXT_BASE=0x80000000
> -CONFIG_SPL_BOARD_INIT=y
> CONFIG_SPL_SYS_MALLOC_SIMPLE=y
> CONFIG_SPL_SEPARATE_BSS=y
> CONFIG_SPL_NAND_SUPPORT=y
> diff --git a/configs/ipam390_defconfig b/configs/ipam390_defconfig
> index f2270264bda4..88a0d971ef28 100644
> --- a/configs/ipam390_defconfig
> +++ b/configs/ipam390_defconfig
> @@ -14,7 +14,6 @@ CONFIG_VERSION_VARIABLE=y
> # CONFIG_DISPLAY_BOARDINFO is not set
> CONFIG_BOARD_EARLY_INIT_F=y
> CONFIG_SPL_TEXT_BASE=0x80000000
> -CONFIG_SPL_BOARD_INIT=y
> CONFIG_SPL_NAND_SUPPORT=y
> CONFIG_SPL_OS_BOOT=y
> CONFIG_HUSH_PARSER=y
> diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> index e43141844a10..48f251ebb804 100644
> --- a/configs/omapl138_lcdk_defconfig
> +++ b/configs/omapl138_lcdk_defconfig
> @@ -18,7 +18,6 @@ CONFIG_VERSION_VARIABLE=y
> # CONFIG_DISPLAY_CPUINFO is not set
> CONFIG_BOARD_EARLY_INIT_F=y
> CONFIG_SPL_TEXT_BASE=0x80000000
> -CONFIG_SPL_BOARD_INIT=y
> CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0xb5
> CONFIG_SPL_NAND_SUPPORT=y
> CONFIG_HUSH_PARSER=y
> --
> 2.16.2
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization
2019-05-28 15:14 ` Adam Ford
@ 2019-05-29 13:13 ` Sekhar Nori
2019-05-29 13:45 ` Adam Ford
0 siblings, 1 reply; 6+ messages in thread
From: Sekhar Nori @ 2019-05-29 13:13 UTC (permalink / raw)
To: u-boot
On 28/05/19 8:44 PM, Adam Ford wrote:
>> -void spl_board_init(void)
>> +void board_init_f(ulong dummy)
>> {
> The da850 uses the device tree to get the serial port information, and
> someone else just submitted a patch to enable the device tree for the
> LCDK. At least for the da850-evm, we need to initialize the spl stuff
> here to fetch the device tree info in order to enable the serial port
> for preload_console_init() or it hangs.
>
> I think we should add spl_early_init(); If you don't want it enabled
> all the time, we could encapsulate it in an ifdef checking for the
> presence of OF_CONTROL, but I think it should be harmless to have it
> executed all the time based on my interpretation of the readme file.
I added it in my branch:
http://git.ti.com/cgit/cgit.cgi/~dmurphy/ti-u-boot/nsekhar-ti-u-boot.git/log/?h=omapl138-mmc-boot
It works well on my LCDK for MMC boot. Can you please check it on DA850
EVM and then I will submit to mailing list.
Thanks,
Sekhar
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization
2019-05-29 13:13 ` Sekhar Nori
@ 2019-05-29 13:45 ` Adam Ford
0 siblings, 0 replies; 6+ messages in thread
From: Adam Ford @ 2019-05-29 13:45 UTC (permalink / raw)
To: u-boot
On Wed, May 29, 2019 at 8:13 AM Sekhar Nori <nsekhar@ti.com> wrote:
>
> On 28/05/19 8:44 PM, Adam Ford wrote:
> >> -void spl_board_init(void)
> >> +void board_init_f(ulong dummy)
> >> {
>
> > The da850 uses the device tree to get the serial port information, and
> > someone else just submitted a patch to enable the device tree for the
> > LCDK. At least for the da850-evm, we need to initialize the spl stuff
> > here to fetch the device tree info in order to enable the serial port
> > for preload_console_init() or it hangs.
> >
> > I think we should add spl_early_init(); If you don't want it enabled
> > all the time, we could encapsulate it in an ifdef checking for the
> > presence of OF_CONTROL, but I think it should be harmless to have it
> > executed all the time based on my interpretation of the readme file.
>
> I added it in my branch:
>
> http://git.ti.com/cgit/cgit.cgi/~dmurphy/ti-u-boot/nsekhar-ti-u-boot.git/log/?h=omapl138-mmc-boot
>
> It works well on my LCDK for MMC boot. Can you please check it on DA850
> EVM and then I will submit to mailing list.
Looks find to me. Go ahead and add
Tested-by: Adam Ford <aford173@gmail.com> #da850evm
>
> Thanks,
> Sekhar
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-05-29 13:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-27 13:46 [U-Boot] [PATCH v2 0/2] ARM: davinci: omapl138_lcdk: fix MMC/SD boot breakage Sekhar Nori
2019-05-27 13:46 ` [U-Boot] [PATCH v2 1/2] ARM: davinci: omal138_lcdk: fix MMC boot breakage due to driver model conversion Sekhar Nori
2019-05-27 13:46 ` [U-Boot] [PATCH v2 2/2] ARM: davinci: SPL: fix BSS initialization Sekhar Nori
2019-05-28 15:14 ` Adam Ford
2019-05-29 13:13 ` Sekhar Nori
2019-05-29 13:45 ` Adam Ford
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.