[U-Boot] [Patch v2] fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

IFC is considered as a required component in Layerscape platforms' Linux. But if IFC is not enabled in U-Boot on some boards, accessing IFC memory space would cause kernel call trace. So disable IFC node in such cases.
Signed-off-by: Gong Qianyu Qianyu.Gong@nxp.com --- V2: - Revised the title and message. - Used #ifndef CONFIG_FSL_IFC rather than #ifdef CONFIG_FSL_QSPI.
arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c index 1e875c4..96dab56 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -98,4 +98,9 @@ void ft_cpu_setup(void *blob, bd_t *bd) #ifdef CONFIG_SYS_DPAA_FMAN fdt_fixup_fman_firmware(blob); #endif + +#ifndef CONFIG_FSL_IFC + do_fixup_by_compat(blob, "fsl,ifc", + "status", "disabled", 8 + 1, 1); +#endif }

-----Original Message----- From: Gong Qianyu [mailto:Qianyu.Gong@nxp.com] Sent: Thursday, April 28, 2016 2:05 PM To: u-boot@lists.denx.de; york sun; oss@buserror.net Cc: Mingkai Hu; Qianyu Gong Subject: [Patch v2] fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot
IFC is considered as a required component in Layerscape platforms' Linux. But if IFC is not enabled in U-Boot on some boards, accessing IFC memory space would cause kernel call trace. So disable IFC node in such cases.
Signed-off-by: Gong Qianyu Qianyu.Gong@nxp.com
V2:
- Revised the title and message.
- Used #ifndef CONFIG_FSL_IFC rather than #ifdef CONFIG_FSL_QSPI.
arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl- layerscape/fdt.c index 1e875c4..96dab56 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -98,4 +98,9 @@ void ft_cpu_setup(void *blob, bd_t *bd) #ifdef CONFIG_SYS_DPAA_FMAN fdt_fixup_fman_firmware(blob); #endif
+#ifndef CONFIG_FSL_IFC
- do_fixup_by_compat(blob, "fsl,ifc",
"status", "disabled", 8 + 1, 1);
+#endif }
Reviewed-by: Mingkai Hu mingkai.hu@nxp.com
Regards, Mingkai

On Thu, 2016-04-28 at 14:04 +0800, Gong Qianyu wrote:
IFC is considered as a required component in Layerscape platforms' Linux.
What does this mean?
But if IFC is not enabled in U-Boot on some boards, accessing IFC memory space would cause kernel call trace. So disable IFC node in such cases.
That's the symptom, not the problem. The problem is that the kernel is assuming that U-Boot has done certain initialization, such as the chipselect registers, and clearing SRAM (though Linux really should be doing the latter). Why is U-Boot being configured without this?
-Scott

-----Original Message----- From: U-Boot [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Scott Wood Sent: Tuesday, May 03, 2016 10:02 AM To: Qianyu Gong qianyu.gong@nxp.com; u-boot@lists.denx.de; york sun york.sun@nxp.com Cc: Mingkai Hu mingkai.hu@nxp.com Subject: Re: [U-Boot] [Patch v2] fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot
On Thu, 2016-04-28 at 14:04 +0800, Gong Qianyu wrote:
IFC is considered as a required component in Layerscape platforms' Linux.
I don't think IFC is considered as a required component on all SoCs. The LS1012A does not have IFC.
What does this mean?
But if IFC is not enabled in U-Boot on some boards, accessing IFC memory space would cause kernel call trace. So disable IFC node in such
cases.
That's the symptom, not the problem. The problem is that the kernel is assuming that U-Boot has done certain initialization, such as the chipselect registers, and clearing SRAM (though Linux really should be doing the latter). Why is U-Boot being configured without this?
-Scott
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Calvin

On 04/27/2016 11:19 PM, Gong Qianyu wrote:
IFC is considered as a required component in Layerscape platforms' Linux. But if IFC is not enabled in U-Boot on some boards, accessing IFC memory space would cause kernel call trace. So disable IFC node in such cases.
Signed-off-by: Gong Qianyu Qianyu.Gong@nxp.com
V2:
- Revised the title and message.
- Used #ifndef CONFIG_FSL_IFC rather than #ifdef CONFIG_FSL_QSPI.
arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c index 1e875c4..96dab56 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -98,4 +98,9 @@ void ft_cpu_setup(void *blob, bd_t *bd) #ifdef CONFIG_SYS_DPAA_FMAN fdt_fixup_fman_firmware(blob); #endif
+#ifndef CONFIG_FSL_IFC
- do_fixup_by_compat(blob, "fsl,ifc",
"status", "disabled", 8 + 1, 1);
+#endif }
Qianyu,
For the platforms you are testing, is IFC disabled/enabled at SoC level (eg. RCW) or board level (eg. FPGA)? Can you detect if IFC is enabled by checking registers?
York

Hi York,
-----Original Message----- From: York Sun [mailto:york.sun@nxp.com] Sent: Tuesday, May 17, 2016 12:47 AM To: Qianyu Gong qianyu.gong@nxp.com; u-boot@lists.denx.de; oss@buserror.net Cc: Mingkai Hu mingkai.hu@nxp.com Subject: Re: [Patch v2] fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U- Boot
On 04/27/2016 11:19 PM, Gong Qianyu wrote:
IFC is considered as a required component in Layerscape platforms' Linux. But if IFC is not enabled in U-Boot on some boards, accessing IFC memory space would cause kernel call trace. So disable IFC node in such cases.
Signed-off-by: Gong Qianyu Qianyu.Gong@nxp.com
V2:
- Revised the title and message.
- Used #ifndef CONFIG_FSL_IFC rather than #ifdef CONFIG_FSL_QSPI.
arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c index 1e875c4..96dab56 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -98,4 +98,9 @@ void ft_cpu_setup(void *blob, bd_t *bd) #ifdef CONFIG_SYS_DPAA_FMAN fdt_fixup_fman_firmware(blob); #endif
+#ifndef CONFIG_FSL_IFC
- do_fixup_by_compat(blob, "fsl,ifc",
"status", "disabled", 8 + 1, 1); #endif
}
Qianyu,
For the platforms you are testing, is IFC disabled/enabled at SoC level (eg. RCW) or board level (eg. FPGA)? Can you detect if IFC is enabled by checking registers?
York
For LS1043AQDS, IFC is disabled at board level(at SoC level, only IFC NOR is disabled). Yes, I can detect if IFC is enabled by checking QIXIS registers.
Regards, Qianyu
participants (6)
-
Calvin Johnson
-
Gong Qianyu
-
Mingkai Hu
-
Qianyu Gong
-
Scott Wood
-
York Sun