[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240617023509.5674-1-jinglin.wen@shingroup.cn>
Date: Mon, 17 Jun 2024 10:35:09 +0800
From: Jinglin Wen <jinglin.wen@...ngroup.cn>
To: npiggin@...il.com
Cc: mpe@...erman.id.au,
christophe.leroy@...roup.eu,
naveen.n.rao@...ux.ibm.com,
masahiroy@...nel.org,
linuxppc-dev@...ts.ozlabs.org,
linux-kernel@...r.kernel.org,
jinglin.wen@...ngroup.cn
Subject: [PATCH] powerpc: Fixed duplicate copying in the early boot.
According to the code logic, when the kernel is loaded to address 0,
no copying operation should be performed, but it is currently being
done.
This patch fixes the issue where the kernel code was incorrectly
duplicated to address 0 when booting from address 0.
Signed-off-by: Jinglin Wen <jinglin.wen@...ngroup.cn>
---
arch/powerpc/kernel/head_64.S | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 4690c219bfa4..6c73551bdc50 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -647,7 +647,9 @@ __after_prom_start:
* Note: This process overwrites the OF exception vectors.
*/
LOAD_REG_IMMEDIATE(r3, PAGE_OFFSET)
- mr. r4,r26 /* In some cases the loader may */
+ tophys(r4,r26)
+ cmplwi cr0,r4,0 /* runtime base addr is zero */
+ mr r4,r26 /* In some cases the loader may */
beq 9f /* have already put us at zero */
li r6,0x100 /* Start offset, the first 0x100 */
/* bytes were copied earlier. */
--
2.25.1
Powered by blists - more mailing lists