Skip to contentSkip to conversation

fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

PATCH Superseded Gong Qianyu 5 participants 6 messages Apr 28, 2016 – May 17, 2016 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 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.

---
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(+)
arch/arm/cpu/armv8/fsl-layerscape/fdt.c +5 -0
index 1e875c4..96dab56 100644
@@ -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
 }
Signature · 1 line
2.1.0.27.g96db324
#1 lore raw

PATCH v2 1/1 fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

Quoted 30 lines

-----Original Message-----
From: Gong Qianyu [mailto:Qianyu.Gong at nxp.com]
Sent: Thursday, April 28, 2016 2:05 PM
To: u-boot at lists.denx.de; york sun; oss at 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.

---
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(+)
arch/arm/cpu/armv8/fsl- renamed from arch/arm/cpu/armv8/fsl-layerscape/fdt.c +0 -0

layerscape/fdt.c
index 1e875c4..96dab56 100644

arch/arm/cpu/armv8/fsl-layerscape/fdt.c +0 -0
@@ -98,4 +98,9 @@ void ft_cpu_setup(void *blob, bd_t *bd)  #ifdef

CONFIG_SYS_DPAA_FMAN

arch/arm/cpu/armv8/fsl-layerscape/fdt.c void ft_cpu_setup(void *blob, bd_t *bd) · line 106

Quoted 8 lines
arch/arm/cpu/armv8/fsl-layerscape/fdt.c +5 -0
 	fdt_fixup_fman_firmware(blob);
 #endif
+
+#ifndef CONFIG_FSL_IFC
+	do_fixup_by_compat(blob, "fsl,ifc",
+			   "status", "disabled", 8 + 1, 1);
+#endif
 }

Regards,
Mingkai

#2 lore raw

PATCH v2 1/1 fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

In reply to Gong Qianyu
Quoted 1 line · Gong Qianyu

IFC is considered as a required component in Layerscape platforms' Linux.

What does this mean?

Quoted 2 lines

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

#3 lore raw

PATCH v2 1/1 fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

Quoted 9 lines

-----Original Message-----
From: U-Boot [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Scott Wood
Sent: Tuesday, May 03, 2016 10:02 AM
To: Qianyu Gong <[email protected]>; u-boot at lists.denx.de; york sun <[email protected]>
Cc: Mingkai Hu <[email protected]>
Subject: Re: [U-Boot] [Patch v2] fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

Quoted 3 lines
Quoted 1 line · Gong Qianyu

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.

Quoted 11 lines

What does this mean?

Quoted 2 lines

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?

Quoted 6 lines

-Scott

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Calvin

#4 lore raw

PATCH v2 1/1 fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

In reply to Gong Qianyu
Quoted 19 lines · Gong Qianyu

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.

---
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(+)
arch/arm/cpu/armv8/fsl-layerscape/fdt.c +0 -0
index 1e875c4..96dab56 100644

arch/arm/cpu/armv8/fsl-layerscape/fdt.c void ft_cpu_setup(void *blob, bd_t *bd) · line 106

Quoted 9 lines
arch/arm/cpu/armv8/fsl-layerscape/fdt.c +5 -0
@@ -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

#5 lore raw

PATCH v2 1/1 fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U-Boot

Hi York,

Quoted 41 lines

-----Original Message-----
From: York Sun [mailto:york.sun at nxp.com]
Sent: Tuesday, May 17, 2016 12:47 AM
To: Qianyu Gong <[email protected]>; u-boot at lists.denx.de;
oss at buserror.net
Cc: Mingkai Hu <[email protected]>
Subject: Re: [Patch v2] fsl-layerscape: fdt: add IFC fixup if no IFC is avaliable in U- Boot

Quoted 21 lines · Gong Qianyu

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.

---
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(+)
arch/arm/cpu/armv8/fsl-layerscape/fdt.c +0 -0
index 1e875c4..96dab56 100644
@@ -98,4 +98,9 @@ void ft_cpu_setup(void *blob, bd_t *bd)  #ifdef

CONFIG_SYS_DPAA_FMAN

arch/arm/cpu/armv8/fsl-layerscape/fdt.c void ft_cpu_setup(void *blob, bd_t *bd) · line 106

Quoted 7 lines
arch/arm/cpu/armv8/fsl-layerscape/fdt.c +4 -0
 	fdt_fixup_fman_firmware(blob);
 #endif
+
+#ifndef CONFIG_FSL_IFC
+	do_fixup_by_compat(blob, "fsl,ifc",
+			   "status", "disabled", 8 + 1, 1); #endif
 }

Qianyu,

Quoted 5 lines

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