Skip to contentSkip to conversation

ARM: socfpga: Fix broken implementation and enhancing boot header

PATCH New tien.fong.chee at intel.com 3 participants 3 messages Mar 28, 2017 – Mar 29, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: socfpga: Fix broken implementation and enhancing boot header

From: "Chee, Tien Fong" <[email protected]>

Fixing the broken implementation caused by the patch commit:ce62e57fc57177352a02b76dace0173bd13404b6, ARM: boot0 hook:
remove macro, include whole header file. This patch also enhances boot header to contain more special data.

---
 arch/arm/mach-socfpga/include/mach/boot0.h | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)
arch/arm/mach-socfpga/include/mach/boot0.h +16 -14
index aaada31..877866a 100644
@@ -8,21 +8,23 @@
 #define __BOOT0_H
 
 #ifdef CONFIG_SPL_BUILD
-#define ARM_SOC_BOOT0_HOOK						\
-	.balignl 64,0xf33db33f;						\
-									\
-	.word	0x1337c0d3;	/* SoCFPGA preloader validation word */	\
-	.word	0xc01df00d;	/* Version, flags, length */		\
-	.word	0xcafec0d3;	/* Checksum, zero-pad */		\
-	nop;								\
-									\
-	b reset;		/* SoCFPGA jumps here */		\
-	nop;								\
-	nop;								\
-	nop;
-#else
-#define ARM_SOC_BOOT0_HOOK
+	.balignl 64,0xf33db33f;
+
+	/* Start of header offset */
+	.word	0x1337c0d3; /* SoCFPGA preloader validation word(4B) */
+	.word	0xc01df00d; /* Header length(2B),flags(1B),version(1B) */
+#ifndef CONFIG_TARGET_SOCFPGA_GEN5
+	.word	0xcafec0d3; /* Program length(4B) */
+	.word	0xf00dcafe; /* Program entry offset(4B),relative to  */
+			    /* the start of program header */
 #endif
+	.word	0xfeedface; /* Simple checksum(2B),spare offset(2B) */
+	nop;
 
+	b reset;	    /* SoCFPGA jumps here */
+	nop;
+	nop;
+	nop;
+#endif
 
 #endif /* __BOOT0_H */
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 ARM: socfpga: Fix broken implementation and enhancing boot header

Quoted 4 lines · tien.fong.chee at intel.com

From: "Chee, Tien Fong" <[email protected]>

Fixing the broken implementation caused by the patch commit:ce62e57fc57177352a02b76dace0173bd13404b6, ARM: boot0 hook:

See section 2) here [1] , in particular the part about referencing commits and the Fixes: tag .

[1] https://www.kernel.org/doc/html/latest/process/submitting-patches.html

Quoted 2 lines

remove macro, include whole header file. This patch also enhances boot header to contain more special data.

This should be a separate patch then.

Quoted 48 lines
---
 arch/arm/mach-socfpga/include/mach/boot0.h | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)
arch/arm/mach-socfpga/include/mach/boot0.h +16 -14
index aaada31..877866a 100644
@@ -8,21 +8,23 @@
 #define __BOOT0_H
 
 #ifdef CONFIG_SPL_BUILD
-#define ARM_SOC_BOOT0_HOOK						\
-	.balignl 64,0xf33db33f;						\
-									\
-	.word	0x1337c0d3;	/* SoCFPGA preloader validation word */	\
-	.word	0xc01df00d;	/* Version, flags, length */		\
-	.word	0xcafec0d3;	/* Checksum, zero-pad */		\
-	nop;								\
-									\
-	b reset;		/* SoCFPGA jumps here */		\
-	nop;								\
-	nop;								\
-	nop;
-#else
-#define ARM_SOC_BOOT0_HOOK
+	.balignl 64,0xf33db33f;
+
+	/* Start of header offset */
+	.word	0x1337c0d3; /* SoCFPGA preloader validation word(4B) */
+	.word	0xc01df00d; /* Header length(2B),flags(1B),version(1B) */
+#ifndef CONFIG_TARGET_SOCFPGA_GEN5
+	.word	0xcafec0d3; /* Program length(4B) */
+	.word	0xf00dcafe; /* Program entry offset(4B),relative to  */
+			    /* the start of program header */
 #endif
+	.word	0xfeedface; /* Simple checksum(2B),spare offset(2B) */
+	nop;
 
+	b reset;	    /* SoCFPGA jumps here */
+	nop;
+	nop;
+	nop;
+#endif
 
 #endif /* __BOOT0_H */
Signature · 2 lines
Best regards,
Marek Vasut
#2 lore raw

PATCH 1/1 ARM: socfpga: Fix broken implementation and enhancing boot header

Quoted 9 lines · Marek Vasut
Quoted 5 lines · tien.fong.chee at intel.com

From: "Chee, Tien Fong" <[email protected]>

Fixing the broken implementation caused by the patch commit:ce62e57fc57177352a02b76dace0173bd13404b6, ARM: boot0 hook:

See section 2) here [1] , in particular the part about referencing commits and the Fixes: tag .

Quoted 8 lines

[1] https://www.kernel.org/doc/html/latest/process/submitting-patches
.html

Quoted 3 lines

remove macro, include whole header file. This patch also enhances boot header to contain more special data.

This should be a separate patch then.

okay. Thanks.

Quoted 67 lines
Quoted 66 lines

---
 arch/arm/mach-socfpga/include/mach/boot0.h | 30 ++++++++++++++++
--------------

 1 file changed, 16 insertions(+), 14 deletions(-)
arch/arm/mach-socfpga/include/mach/boot0.h +0 -0
index aaada31..877866a 100644
@@ -8,21 +8,23 @@
  #define __BOOT0_H


 #ifdef CONFIG_SPL_BUILD
-#define ARM_SOC_BOOT0_HOOK
\

arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	.balignl 64,0xf33db33f;					
	\
arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-									

\

arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	.word	0x1337c0d3;	/* SoCFPGA preloader

validation word */ \

arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	.word	0xc01df00d;	/* Version, flags, length

*/ \

arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	.word	0xcafec0d3;	/* Checksum, zero-pad */	
	\
arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	nop;							
	\
arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-									

\

arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	b reset;		/* SoCFPGA jumps here */		

\

arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	nop;							
	\
arch/arm/mach-socfpga/include/mach/boot0.h +0 -1
-	nop;							
	\
arch/arm/mach-socfpga/include/mach/boot0.h +4 -3
-	nop;
-#else
-#define ARM_SOC_BOOT0_HOOK
+	.balignl 64,0xf33db33f;
+
+	/* Start of header offset */
+	.word	0x1337c0d3; /* SoCFPGA preloader validation

word(4B) */

arch/arm/mach-socfpga/include/mach/boot0.h +1 -0
+	.word	0xc01df00d; /* Header

length(2B),flags(1B),version(1B) */

arch/arm/mach-socfpga/include/mach/boot0.h +3 -0
+#ifndef CONFIG_TARGET_SOCFPGA_GEN5
+	.word	0xcafec0d3; /* Program length(4B) */
+	.word	0xf00dcafe; /* Program entry

offset(4B),relative to  */

arch/arm/mach-socfpga/include/mach/boot0.h +1 -0
+			    /* the start of program header */

 #endif

arch/arm/mach-socfpga/include/mach/boot0.h +1 -0
+	.word	0xfeedface; /* Simple checksum(2B),spare

offset(2B) */

arch/arm/mach-socfpga/include/mach/boot0.h +1 -0
+	nop;

arch/arm/mach-socfpga/include/mach/boot0.h +5 -0
+	b reset;	    /* SoCFPGA jumps here */
+	nop;
+	nop;
+	nop;
+#endif


 #endif /* __BOOT0_H */