
-----Original Message----- From: Scott Wood [mailto:scottwood@freescale.com] Sent: Tuesday, December 29, 2015 5:52 AM To: Qianyu Gong qianyu.gong@nxp.com; u-boot@lists.denx.de Cc: Mingkai Hu mingkai.hu@nxp.com; R58495@freescale.com; B48286@freescale.com; Shaohui.Xie@freescale.com; Wenbin.Song@freescale.com; B07421@freescale.com; Gong Qianyu Qianyu.Gong@freescale.com Subject: Re: [PATCH 2/3] armv8/ls1043aqds: add QSPI support in SD boot
On Thu, 2015-12-24 at 16:40 +0800, Gong Qianyu wrote:
From: Gong Qianyu Qianyu.Gong@freescale.com
QSPI and IFC are pin-multiplexed on LS1043A. So we use ls1043aqds_sdcard_ifc_defconfig to support IFC in SD boot and ls1043aqds_sdcard_qspi_defconfig to support QSPI in SD boot. If QSPI is enabled, IFC should be disabled in kernel as well.
Signed-off-by: Gong Qianyu Qianyu.Gong@freescale.com Signed-off-by: Gong Qianyu Qianyu.Gong@nxp.com
arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 5 +++++ arch/arm/cpu/armv8/fsl-layerscape/soc.c | 3 +++ arch/arm/dts/fsl-ls1043a-qds.dts | 14 +++++++++++++ arch/arm/dts/fsl-ls1043a.dtsi | 11 +++++++++++ board/freescale/ls1043aqds/MAINTAINERS | 1 + .../ls1043aqds/ls1043aqds_rcw_sd_qspi.cfg | 8 ++++++++ configs/ls1043aqds_sdcard_qspi_defconfig | 10 ++++++++++ include/configs/ls1043a_common.h | 13 ++++++++++++ include/configs/ls1043aqds.h | 23 ++++++++++++++++++++++ 9 files changed, 88 insertions(+)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c index eafdd71..a247510 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -201,4 +201,9 @@ void ft_cpu_setup(void *blob, bd_t *bd) #ifdef CONFIG_FSL_LSCH3 fdt_fixup_smmu(blob); #endif
+#ifdef CONFIG_FSL_QSPI
- do_fixup_by_compat(blob, "fsl,ifc",
"status", "disabled", 8 + 1, 1); #endif
This needs to only happen on LS1043A (and any other chips that have the same muxing).
Hi Scott,
Yes, LS1046A and LS1088A also have the same muxing and it's only different on LS2085A. Or we can just remove this fixup in U-Boot and make kernel deal with it respectively. Which do you prefer?
} diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c b/arch/arm/cpu/armv8/fsl-layerscape/soc.c index 23d6b73..4b1f792 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c @@ -219,6 +219,9 @@ void fsl_lsch2_early_init_f(void) init_early_memctl_regs(); /* tighten IFC timing */ #endif
+#ifdef CONFIG_FSL_QSPI
- out_be32(&scfg->qspi_cfg, SCFG_QSPI_CLKSEL); #endif
Likewise.
-Scott
fsl_lsch2_early_init_f() isn't called on LS2085A. I think currently it's ok with known chips.
Regards, Qianyu