diff mbox series

[U-Boot,1/2] fsl: common :qixis: Add ifc and emmc switching via qixis

Message ID 1516171597-29370-1-git-send-email-Ashish.Kumar@nxp.com
State Accepted
Commit fe997689c33b2c36a6eb7b704177a774b3c9131f
Delegated to: York Sun
Headers show
Series [U-Boot,1/2] fsl: common :qixis: Add ifc and emmc switching via qixis | expand

Commit Message

Ashish Kumar Jan. 17, 2018, 6:46 a.m. UTC
Previously only SD, NAND etc were secondary boot source and had
IFC-NOR as primary booting target. But for SoC like LS1088
IFC-NOR can be secondary boot source, while QSPI-NOR is primary
booting target, So add options in qixis to switch to other targets
using new commands.

E.g.
'=> qixis_reset ifc'  : switch to ifc
'=> qixis_reset emmc' : switch to emmc

Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
---
 board/freescale/common/qixis.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

York Sun Jan. 24, 2018, 7:14 p.m. UTC | #1
On 01/16/2018 10:45 PM, Ashish Kumar wrote:
> Previously only SD, NAND etc were secondary boot source and had
> IFC-NOR as primary booting target. But for SoC like LS1088
> IFC-NOR can be secondary boot source, while QSPI-NOR is primary
> booting target, So add options in qixis to switch to other targets
> using new commands.
> 
> E.g.
> '=> qixis_reset ifc'  : switch to ifc
> '=> qixis_reset emmc' : switch to emmc
> 
> Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
> ---

Rewrote commit message.
Applied to fsl-qoriq master. Thanks.

York
diff mbox series

Patch

diff --git a/board/freescale/common/qixis.c b/board/freescale/common/qixis.c
index 0db0ed6..3029fcf 100644
--- a/board/freescale/common/qixis.c
+++ b/board/freescale/common/qixis.c
@@ -236,6 +236,28 @@  int qixis_reset_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 #else
 		printf("Not implemented\n");
 #endif
+	} else if (strcmp(argv[1], "ifc") == 0) {
+#ifdef QIXIS_LBMAP_IFC
+		QIXIS_WRITE(rst_ctl, 0x30);
+		QIXIS_WRITE(rcfg_ctl, 0);
+		set_lbmap(QIXIS_LBMAP_IFC);
+		set_rcw_src(QIXIS_RCW_SRC_IFC);
+		QIXIS_WRITE(rcfg_ctl, 0x20);
+		QIXIS_WRITE(rcfg_ctl, 0x21);
+#else
+		printf("Not implemented\n");
+#endif
+	} else if (strcmp(argv[1], "emmc") == 0) {
+#ifdef QIXIS_LBMAP_EMMC
+		QIXIS_WRITE(rst_ctl, 0x30);
+		QIXIS_WRITE(rcfg_ctl, 0);
+		set_lbmap(QIXIS_LBMAP_EMMC);
+		set_rcw_src(QIXIS_RCW_SRC_EMMC);
+		QIXIS_WRITE(rcfg_ctl, 0x20);
+		QIXIS_WRITE(rcfg_ctl, 0x21);
+#else
+		printf("Not implemented\n");
+#endif
 	} else if (strcmp(argv[1], "sd_qspi") == 0) {
 #ifdef QIXIS_LBMAP_SD_QSPI
 		QIXIS_WRITE(rst_ctl, 0x30);