diff options
author | Dinh Nguyen <dinguyen@opensource.altera.com> | 2015-03-30 17:01:07 -0500 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2015-04-21 12:23:16 +0200 |
commit | 08e463ee8a7a5641e191be2a8e934d8284d1ca55 (patch) | |
tree | c1f2e0e180d637864b6065bcdc0d1b9698b42c52 | |
parent | 9fd565dbe7eadc9736c496bc67f2a0414b50069f (diff) | |
download | u-boot-imx-08e463ee8a7a5641e191be2a8e934d8284d1ca55.zip u-boot-imx-08e463ee8a7a5641e191be2a8e934d8284d1ca55.tar.gz u-boot-imx-08e463ee8a7a5641e191be2a8e934d8284d1ca55.tar.bz2 |
arm: socfpga: spl: allow bootrom to enable IOs after warm reset
Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: Marek Vasut <marex@denx.de>
-rw-r--r-- | arch/arm/cpu/armv7/socfpga/spl.c | 3 | ||||
-rw-r--r-- | arch/arm/cpu/armv7/socfpga/system_manager.c | 9 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-socfpga/system_manager.h | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/socfpga/spl.c b/arch/arm/cpu/armv7/socfpga/spl.c index 95992f0..787ad7f 100644 --- a/arch/arm/cpu/armv7/socfpga/spl.c +++ b/arch/arm/cpu/armv7/socfpga/spl.c @@ -154,6 +154,9 @@ void spl_board_init(void) /* reconfigure the PLLs */ cm_basic_init(&cm_default_cfg); + /* Enable bootrom to configure IOs. */ + sysmgr_enable_warmrstcfgio(); + /* configure the IOCSR / IO buffer settings */ if (scan_mgr_configure_iocsr()) hang(); diff --git a/arch/arm/cpu/armv7/socfpga/system_manager.c b/arch/arm/cpu/armv7/socfpga/system_manager.c index 11f7bad..8126e0d 100644 --- a/arch/arm/cpu/armv7/socfpga/system_manager.c +++ b/arch/arm/cpu/armv7/socfpga/system_manager.c @@ -66,3 +66,12 @@ void sysmgr_pinmux_init(void) populate_sysmgr_fpgaintf_module(); } + +/* + * This bit allows the bootrom to configure the IOs after a warm reset. + */ +void sysmgr_enable_warmrstcfgio(void) +{ + setbits_le32(&sysmgr_regs->romcodegrp_ctrl, + SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGIO); +} diff --git a/arch/arm/include/asm/arch-socfpga/system_manager.h b/arch/arm/include/asm/arch-socfpga/system_manager.h index 071ec4f..51d9815 100644 --- a/arch/arm/include/asm/arch-socfpga/system_manager.h +++ b/arch/arm/include/asm/arch-socfpga/system_manager.h @@ -10,6 +10,7 @@ #ifndef __ASSEMBLY__ void sysmgr_pinmux_init(void); +void sysmgr_enable_warmrstcfgio(void); /* declaration for handoff table type */ extern unsigned long sys_mgr_init_table[CONFIG_HPS_PINMUX_NUM]; |