From nobody Tue Jun 30 09:22:24 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43D23C433EF for ; Thu, 20 Jan 2022 15:38:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376747AbiATPix (ORCPT ); Thu, 20 Jan 2022 10:38:53 -0500 Received: from mail-108-mta7.mxroute.com ([136.175.108.7]:34517 "EHLO mail-108-mta7.mxroute.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346185AbiATPiw (ORCPT ); Thu, 20 Jan 2022 10:38:52 -0500 X-Greylist: delayed 305 seconds by postgrey-1.27 at vger.kernel.org; Thu, 20 Jan 2022 10:38:52 EST Received: from filter004.mxroute.com ([149.28.56.236] filter004.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta7.mxroute.com (ZoneMTA) with ESMTPSA id 17e781f46b8000bdf2.004 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Thu, 20 Jan 2022 15:33:42 +0000 X-Zone-Loop: 13ec3d5ad16e198006be126f61fe4b7eec300da23bd7 X-Originating-IP: [149.28.56.236] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ds0.me; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=JVQnv3AVsUWy3ZjxZJjNI7QObG4R6sq0+QS/JmmuFdE=; b=u03I9mr+yLR8sj2v2P3qclRMMA nqbjX2CfKrPbs3dDvG9F32jr178v2vgMUUYkGJtMaqRpAfcfCcCZXxX0m/xHYMNfXeRrQ+jnzcfvF 3tG/enGOARjTowatBTdDxeivfcMq1kTkcdtbc3LOZwayyvFSTiyyQcOB5WnNpYMpKJ5iX9PBH+eox trKlxLtrwJdKD656LQybcnmITxvMqZqFBNIPikceEnyZBTamkJKl3lbLnhjiD9ou0O0mwxnA23RXb E4XM44YJiFoJtovTsS+ZRkmGzwFfA3ZE+kfb54VYgrxQ7zlbBmYH8b9N11ODAvjcwGA4jfIpjTI9Y 763zKt4Q==; From: Myrtle Shah To: linux-riscv@lists.infradead.org, paul.walmsley@sifive.com, palmer@dabbelt.com Cc: linux-kernel@vger.kernel.org Subject: [PATCH 1/2] riscv: Fix XIP_FIXUP_FLASH_OFFSET Date: Thu, 20 Jan 2022 15:33:37 +0000 Message-Id: <20220120153338.4093003-2-gatecat@ds0.me> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220120153338.4093003-1-gatecat@ds0.me> References: <20220120153338.4093003-1-gatecat@ds0.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-AuthUser: dave@ds0.me X-Zone-Spam-Resolution: no action X-Zone-Spam-Status: No, score=5, required=15, tests=[ARC_NA=0, MID_CONTAINS_FROM=1, FROM_HAS_DN=0, RCPT_COUNT_THREE=0, R_MISSING_CHARSET=2.5, RCVD_COUNT_ZERO=0, FROM_EQ_ENVFROM=0, MIME_TRACE=0, BROKEN_CONTENT_TYPE=1.5, TO_DN_NONE=0, NEURAL_SPAM=0] Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" There were several problems with the calculation. Not only was an 'and' being computed into t1 but thrown away; but the 'and' itself would cause problems if the granularity of the XIP physical address was less than XIP_OFFSET - in my case I had the kernel image at 2MB in SPI flash. I believe this approach is more generic. Fixes: f9ace4ede49b ("riscv: remove .text section size limitation for XIP") Signed-off-by: Myrtle Shah --- arch/riscv/kernel/head.S | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S index 604d60292dd8..b1ca65abeb1e 100644 --- a/arch/riscv/kernel/head.S +++ b/arch/riscv/kernel/head.S @@ -21,14 +21,13 @@ add \reg, \reg, t0 .endm .macro XIP_FIXUP_FLASH_OFFSET reg - la t1, __data_loc - li t0, XIP_OFFSET_MASK - and t1, t1, t0 - li t1, XIP_OFFSET - sub t0, t0, t1 - sub \reg, \reg, t0 + la t0, __data_loc + REG_L t1, _xip_phys_offset + sub \reg, \reg, t1 + add \reg, \reg, t0 .endm _xip_fixup: .dword CONFIG_PHYS_RAM_BASE - CONFIG_XIP_PHYS_ADDR - XIP_OFFSET +_xip_phys_offset: .dword CONFIG_XIP_PHYS_ADDR + XIP_OFFSET #else .macro XIP_FIXUP_OFFSET reg .endm --=20 2.34.1 From nobody Tue Jun 30 09:22:24 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C6B4C433F5 for ; Thu, 20 Jan 2022 15:39:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376772AbiATPjA (ORCPT ); Thu, 20 Jan 2022 10:39:00 -0500 Received: from mail-108-mta203.mxroute.com ([136.175.108.203]:46841 "EHLO mail-108-mta203.mxroute.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346434AbiATPi5 (ORCPT ); Thu, 20 Jan 2022 10:38:57 -0500 X-Greylist: delayed 305 seconds by postgrey-1.27 at vger.kernel.org; Thu, 20 Jan 2022 10:38:57 EST Received: from filter004.mxroute.com ([149.28.56.236] filter004.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta203.mxroute.com (ZoneMTA) with ESMTPSA id 17e781f48d9000bdf2.004 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Thu, 20 Jan 2022 15:33:43 +0000 X-Zone-Loop: 3d98f9efd6ccd63bc54141b42fd397e453021556aae9 X-Originating-IP: [149.28.56.236] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ds0.me; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=f5DSyw8Jktl2OVLrktO0AZ8z+S3qRtxlhEygciHsFM0=; b=vwaGUQdtU23VDN98+q07TkVvD6 Xn85oBlpqKE6QsPksa1RTtD1jnxOZLJKpkkPFXw0cKyVly2WUOs5u5CvsQlXG8IGVJAx5dwgOBpXY ccFSGtMWfZqWvqDqe6ulPzihLeVzttDlZaEUuyeUTXenVjHh/99GOha1kiLJ06QWsuSiG+X/bp8O9 c1+6Upspv6NquhPdZmjFfUE62qBrHKV8T9eiSak9iiYPyx/j/XpU6xXO28wHtI9I5HwG1Tjuurgok WCUYLLkS/tZqTELl3mMtZ3tjNC4LpdBXv58vejcOEfKKrygaR+nXGfz21R/hrX+qZP/u0k24tbAn1 xPR+uqug==; From: Myrtle Shah To: linux-riscv@lists.infradead.org, paul.walmsley@sifive.com, palmer@dabbelt.com Cc: linux-kernel@vger.kernel.org Subject: [PATCH 2/2] riscv/mm: Add some missing XIP_FIXUPs Date: Thu, 20 Jan 2022 15:33:38 +0000 Message-Id: <20220120153338.4093003-3-gatecat@ds0.me> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220120153338.4093003-1-gatecat@ds0.me> References: <20220120153338.4093003-1-gatecat@ds0.me> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-AuthUser: dave@ds0.me X-Zone-Spam-Resolution: no action X-Zone-Spam-Status: No, score=5, required=15, tests=[ARC_NA=0, MID_CONTAINS_FROM=1, FROM_HAS_DN=0, RCPT_COUNT_THREE=0, R_MISSING_CHARSET=2.5, RCVD_COUNT_ZERO=0, FROM_EQ_ENVFROM=0, MIME_TRACE=0, BROKEN_CONTENT_TYPE=1.5, TO_DN_NONE=0, NEURAL_SPAM=0] Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Signed-off-by: Myrtle Shah --- arch/riscv/mm/init.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index 0624c68331d8..eeafefd1c2b3 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -41,6 +41,7 @@ phys_addr_t phys_ram_base __ro_after_init; EXPORT_SYMBOL(phys_ram_base); =20 #ifdef CONFIG_XIP_KERNEL +#define phys_ram_base (*(phys_addr_t *)XIP_FIXUP(&phys_ram_base)) extern char _xiprom[], _exiprom[], __data_loc; #endif =20 @@ -248,6 +249,7 @@ pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(P= AGE_SIZE); static pmd_t __maybe_unused early_dtb_pmd[PTRS_PER_PMD] __initdata __align= ed(PAGE_SIZE); =20 #ifdef CONFIG_XIP_KERNEL +#define riscv_pfn_base (*(unsigned long *)XIP_FIXUP(&riscv_pfn_ba= se)) #define trampoline_pg_dir ((pgd_t *)XIP_FIXUP(trampoline_pg_dir)) #define fixmap_pte ((pte_t *)XIP_FIXUP(fixmap_pte)) #define early_pg_dir ((pgd_t *)XIP_FIXUP(early_pg_dir)) --=20 2.34.1