Skip to contentSkip to conversation

correct cacheflush loop in zImage

PATCH In review Olaf Hering 1 participant 2 messages Mar 4, 2006 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 correct cacheflush loop in zImage

Correct the loop for cacheflush. No idea where I copied the code from, but the original does not work correct. Maybe the flush is not needed.

 arch/powerpc/boot/crt0.S |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
arch/powerpc/boot/crt0.S +3 -2
Index: linux-2.6.16-rc5-olh/arch/powerpc/boot/crt0.S
===================================================================
@@ -45,7 +45,8 @@ _zimage_start:
 	bdnz	2b
 
 	/* Do a cache flush for our text, in case OF didn't */
-3:	lis	r9,_start@h
+3:	lis	r9,_start@ha
+	addi	r9,r9,_start@l
 	add	r9,r0,r9
 	lis	r8,_etext@ha
 	addi	r8,r8,_etext@l
@@ -53,7 +54,7 @@ _zimage_start:
 4:	dcbf	r0,r9
 	icbi	r0,r9
 	addi	r9,r9,0x20
-	cmplwi	0,r9,8
+	cmplw	cr0,r9,r8
 	blt	4b
 	sync
 	isync
#1 lore raw
Quoted 14 lines · Olaf Hering

Correct the loop for cacheflush. No idea where I copied the code from, but the original does not work correct. Maybe the flush is not needed.

 arch/powerpc/boot/crt0.S |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

Index: linux-2.6.16-rc5-olh/arch/powerpc/boot/crt0.S
===================================================================

arch/powerpc/boot/crt0.S _zimage_start: · line 50

Quoted 7 lines
arch/powerpc/boot/crt0.S +2 -1
@@ -45,7 +45,8 @@ _zimage_start:
 	bdnz	2b
 
 	/* Do a cache flush for our text, in case OF didn't */
-3:	lis	r9,_start@h
+3:	lis	r9,_start@ha
+	addi	r9,r9,_start@l
 	add	r9,r0,r9

I think this part is not required. Segments must be 64k aligned, so the lower bits will be always zero (modulo the _start offset into .text)