u-boot-brain/arch/arm/mach-uniphier
Masahiro Yamada d3384bf77e ARM: UniPhier: reset NAND core in SPL for non-NAND boot mode
For all the UniPhier SoCs so far, the reset signal of the NAND core
is automatically deasserted after the PLL gets stabled.
(The bit 2 of SC_RSTCTRL is default to one.)

This causes a fatal problem on the NAND controller of PH1-LD4.
For that SoC, the NAND I/O pins are not set up yet at the power-on
reset except the NAND boot mode.  As a result, the NAND controller
begins automatic device scanning with wrong I/O pins and finally
hangs up.

Actually, U-Boot dies after printing "NAND:" on the console unless
the boot mode latch detected the NAND boot mode.

To work around this problem, reset the NAND core in SPL for non-NAND
boot modes.  If CONFIG_NAND_DENALI is enabled, the reset signal is
deasserted again in U-Boot proper.  At this time, I/O pins have been
correctly set up, the device scanning should succeed.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
2015-03-01 00:02:40 +09:00
..
include/mach ARM: UniPhier: rename SC_CLKCTRL_CLK_* to SC_SCLKCTRL_CEN_* 2015-03-01 00:02:32 +09:00
ph1-ld4 ARM: UniPhier: split clkrst_init() into two functions 2015-03-01 00:02:36 +09:00
ph1-pro4 ARM: UniPhier: reset NAND core in SPL for non-NAND boot mode 2015-03-01 00:02:40 +09:00
ph1-sld8 ARM: UniPhier: split clkrst_init() into two functions 2015-03-01 00:02:36 +09:00
board_common.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
board_early_init_f.c ARM: UniPhier: split clkrst_init() into two functions 2015-03-01 00:02:36 +09:00
board_early_init_r.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
board_late_init.c ARM: UniPhier: move SoC sources to mach-uniphier 2015-03-01 00:01:56 +09:00
cache_uniphier.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
cmd_ddrphy.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
cmd_pinmon.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
cpu_info.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
ddrphy_training.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
dram_init.c ARM: UniPhier: move SoC sources to mach-uniphier 2015-03-01 00:01:56 +09:00
init_page_table.S ARM: UniPhier: move SoC sources to mach-uniphier 2015-03-01 00:01:56 +09:00
Kconfig ARM: UniPhier: move SoC sources to mach-uniphier 2015-03-01 00:01:56 +09:00
lowlevel_init.S ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
Makefile ARM: UniPhier: move SoC sources to mach-uniphier 2015-03-01 00:01:56 +09:00
print_misc_info.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
reset.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
smp.S ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
spl.c ARM: UniPhier: split clkrst_init() into two functions 2015-03-01 00:02:36 +09:00
support_card.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00
timer.c ARM: UniPhier: include <mach/*.h> instead of <asm/arch/*.h> 2015-03-01 00:02:18 +09:00