From mboxrd@z Thu Jan 1 00:00:00 1970 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 15BFCC77B75 for ; Fri, 19 May 2023 11:08:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230290AbjESLIW (ORCPT ); Fri, 19 May 2023 07:08:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229963AbjESLIU (ORCPT ); Fri, 19 May 2023 07:08:20 -0400 Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E9A9D7 for ; Fri, 19 May 2023 04:08:18 -0700 (PDT) Received: (Authenticated sender: alex@ghiti.fr) by mail.gandi.net (Postfix) with ESMTPSA id CF7CAE000B; Fri, 19 May 2023 11:08:12 +0000 (UTC) Message-ID: <6fc7f0e1-0dde-9b41-0d60-6b0bd65bb630@ghiti.fr> Date: Fri, 19 May 2023 13:08:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v8 1/3] riscv: Introduce CONFIG_RELOCATABLE Content-Language: en-US To: Andreas Schwab Cc: Alexandre Ghiti , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Paul Walmsley , Palmer Dabbelt , Albert Ou , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org References: <20230215143626.453491-1-alexghiti@rivosinc.com> <20230215143626.453491-2-alexghiti@rivosinc.com> <87wn1h5nne.fsf@igel.home> <4adb27d2-325d-3ce0-23b1-ec69a973b4bf@ghiti.fr> <87ttwi91g0.fsf@igel.home> From: Alexandre Ghiti In-Reply-To: <87ttwi91g0.fsf@igel.home> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/11/23 20:18, Andreas Schwab wrote: > On Mai 09 2023, Alexandre Ghiti wrote: > >> On 5/9/23 21:07, Andreas Schwab wrote: >>> That does not work with UEFI booting: >>> >>> Loading Linux 6.4.0-rc1-1.g668187d-default ... >>> Loading initial ramdisk ... >>> Unhandled exception: Instruction access fault >>> EPC: ffffffff80016d56 RA: 000000008020334e TVAL: 0000007f80016d56 >>> EPC: ffffffff002d1d56 RA: 00000000004be34e reloc adjusted >>> Unhandled exception: Load access fault >>> EPC: 00000000fff462d4 RA: 00000000fff462d0 TVAL: ffffffff80016d56 >>> EPC: 00000000802012d4 RA: 00000000802012d0 reloc adjusted >>> >>> Code: c825 8e0d 05b3 40b4 d0ef 0636 7493 ffe4 (d783 0004) >>> UEFI image [0x00000000fe65e000:0x00000000fe6e3fff] '/efi\boot\bootriscv64.efi' >>> UEFI image [0x00000000daa82000:0x00000000dcc2afff] >>> >> I need more details please, as I have a UEFI bootflow and it works great >> (KASLR is based on a relocatable kernel and works fine in UEFI too). > It also crashes without UEFI. Disabling CONFIG_RELOCATABLE fixes that. > This was tested on the HiFive Unmatched board. > The kernel image I tested is available from > . The > same kernel with CONFIG_RELOCATABLE disabled is available from > . > I have tested the following patch successfully, can you give it a try while I make sure this is the only place I forgot to add the -fno-pie flag? diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile index fbdccc21418a..153864e4f399 100644 --- a/arch/riscv/kernel/Makefile +++ b/arch/riscv/kernel/Makefile @@ -23,6 +23,10 @@ ifdef CONFIG_FTRACE  CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)  CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)  endif +ifdef CONFIG_RELOCATABLE +CFLAGS_alternative.o += -fno-pie +CFLAGS_cpufeature.o += -fno-pie +endif  ifdef CONFIG_KASAN  KASAN_SANITIZE_alternative.o := n  KASAN_SANITIZE_cpufeature.o := n Thanks Alex From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 504FCC77B75 for ; Fri, 19 May 2023 11:08:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XAnXChKTaEBzVsjkPA7M7g9Twl8wjHvcgmjaJeKKbgw=; b=tcg7ipJDPkBU9C eSnUX7x2EuXsPSCY+gEScaHveFF2PCwN1wbA/GbzpFhBobRNv8StG//XukwY+68qdDIggs8vnWBRQ Cl30skcaqPUFQnivt4/cr1KYi5sVnkK6k23osuSjpSzTkLECZndk0VeZnQKW2bvUZV2gtneqCjsRT 8YlKmtBHqpa7reCI3nNY+kQu8SH7KGy0xUBOSvOrcvK3tii104xtyuDwW499jR7XRZ01Uqhd4Puz5 PiOmrCIelWMZ+yd2piuHTB+VYSigSYOIxhTImSZMhf01h9y4Siz4hRCJwxuFGcJwZ4yLqEViayNMh cfqW58oRRJImoSnOJ1Nw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pzxyB-00G3fQ-0K; Fri, 19 May 2023 11:08:23 +0000 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pzxy7-00G3ec-2Z for linux-riscv@lists.infradead.org; Fri, 19 May 2023 11:08:21 +0000 Received: (Authenticated sender: alex@ghiti.fr) by mail.gandi.net (Postfix) with ESMTPSA id CF7CAE000B; Fri, 19 May 2023 11:08:12 +0000 (UTC) Message-ID: <6fc7f0e1-0dde-9b41-0d60-6b0bd65bb630@ghiti.fr> Date: Fri, 19 May 2023 13:08:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v8 1/3] riscv: Introduce CONFIG_RELOCATABLE Content-Language: en-US To: Andreas Schwab Cc: Alexandre Ghiti , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Paul Walmsley , Palmer Dabbelt , Albert Ou , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org References: <20230215143626.453491-1-alexghiti@rivosinc.com> <20230215143626.453491-2-alexghiti@rivosinc.com> <87wn1h5nne.fsf@igel.home> <4adb27d2-325d-3ce0-23b1-ec69a973b4bf@ghiti.fr> <87ttwi91g0.fsf@igel.home> From: Alexandre Ghiti In-Reply-To: <87ttwi91g0.fsf@igel.home> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230519_040819_983904_E73979B0 X-CRM114-Status: GOOD ( 13.34 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gNS8xMS8yMyAyMDoxOCwgQW5kcmVhcyBTY2h3YWIgd3JvdGU6Cj4gT24gTWFpIDA5IDIwMjMs IEFsZXhhbmRyZSBHaGl0aSB3cm90ZToKPgo+PiBPbiA1LzkvMjMgMjE6MDcsIEFuZHJlYXMgU2No d2FiIHdyb3RlOgo+Pj4gVGhhdCBkb2VzIG5vdCB3b3JrIHdpdGggVUVGSSBib290aW5nOgo+Pj4K Pj4+IExvYWRpbmcgTGludXggNi40LjAtcmMxLTEuZzY2ODE4N2QtZGVmYXVsdCAuLi4KPj4+IExv YWRpbmcgaW5pdGlhbCByYW1kaXNrIC4uLgo+Pj4gVW5oYW5kbGVkIGV4Y2VwdGlvbjogSW5zdHJ1 Y3Rpb24gYWNjZXNzIGZhdWx0Cj4+PiBFUEM6IGZmZmZmZmZmODAwMTZkNTYgUkE6IDAwMDAwMDAw ODAyMDMzNGUgVFZBTDogMDAwMDAwN2Y4MDAxNmQ1Ngo+Pj4gRVBDOiBmZmZmZmZmZjAwMmQxZDU2 IFJBOiAwMDAwMDAwMDAwNGJlMzRlIHJlbG9jIGFkanVzdGVkCj4+PiBVbmhhbmRsZWQgZXhjZXB0 aW9uOiBMb2FkIGFjY2VzcyBmYXVsdAo+Pj4gRVBDOiAwMDAwMDAwMGZmZjQ2MmQ0IFJBOiAwMDAw MDAwMGZmZjQ2MmQwIFRWQUw6IGZmZmZmZmZmODAwMTZkNTYKPj4+IEVQQzogMDAwMDAwMDA4MDIw MTJkNCBSQTogMDAwMDAwMDA4MDIwMTJkMCByZWxvYyBhZGp1c3RlZAo+Pj4KPj4+IENvZGU6IGM4 MjUgOGUwZCAwNWIzIDQwYjQgZDBlZiAwNjM2IDc0OTMgZmZlNCAoZDc4MyAwMDA0KQo+Pj4gVUVG SSBpbWFnZSBbMHgwMDAwMDAwMGZlNjVlMDAwOjB4MDAwMDAwMDBmZTZlM2ZmZl0gJy9lZmlcYm9v dFxib290cmlzY3Y2NC5lZmknCj4+PiBVRUZJIGltYWdlIFsweDAwMDAwMDAwZGFhODIwMDA6MHgw MDAwMDAwMGRjYzJhZmZmXQo+Pj4KPj4gSSBuZWVkIG1vcmUgZGV0YWlscyBwbGVhc2UsIGFzIEkg aGF2ZSBhIFVFRkkgYm9vdGZsb3cgYW5kIGl0IHdvcmtzIGdyZWF0Cj4+IChLQVNMUiBpcyBiYXNl ZCBvbiBhIHJlbG9jYXRhYmxlIGtlcm5lbCBhbmQgd29ya3MgZmluZSBpbiBVRUZJIHRvbykuCj4g SXQgYWxzbyBjcmFzaGVzIHdpdGhvdXQgVUVGSS4gIERpc2FibGluZyBDT05GSUdfUkVMT0NBVEFC TEUgZml4ZXMgdGhhdC4KPiBUaGlzIHdhcyB0ZXN0ZWQgb24gdGhlIEhpRml2ZSBVbm1hdGNoZWQg Ym9hcmQuCj4gVGhlIGtlcm5lbCBpbWFnZSBJIHRlc3RlZCBpcyBhdmFpbGFibGUgZnJvbQo+IDxo dHRwczovL2Rvd25sb2FkLm9wZW5zdXNlLm9yZy9yZXBvc2l0b3JpZXMvS2VybmVsOi9IRUFEL1JJ U0NWLz4uICBUaGUKPiBzYW1lIGtlcm5lbCB3aXRoIENPTkZJR19SRUxPQ0FUQUJMRSBkaXNhYmxl ZCBpcyBhdmFpbGFibGUgZnJvbQo+IDxodHRwczovL2Rvd25sb2FkLm9wZW5zdXNlLm9yZy9yZXBv c2l0b3JpZXMvaG9tZTovQW5kcmVhc19TY2h3YWI6L3Jpc2N2Oi9rZXJuZWwvc3RhbmRhcmQvPi4K PgoKSSBoYXZlIHRlc3RlZCB0aGUgZm9sbG93aW5nIHBhdGNoIHN1Y2Nlc3NmdWxseSwgY2FuIHlv dSBnaXZlIGl0IGEgdHJ5IAp3aGlsZSBJIG1ha2Ugc3VyZSB0aGlzIGlzIHRoZSBvbmx5IHBsYWNl IEkgZm9yZ290IHRvIGFkZCB0aGUgLWZuby1waWUgZmxhZz8KCmRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yva2VybmVsL01ha2VmaWxlCmluZGV4IGZi ZGNjYzIxNDE4YS4uMTUzODY0ZTRmMzk5IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9N YWtlZmlsZQorKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9NYWtlZmlsZQpAQCAtMjMsNiArMjMsMTAg QEAgaWZkZWYgQ09ORklHX0ZUUkFDRQogwqBDRkxBR1NfUkVNT1ZFX2FsdGVybmF0aXZlLm8gPSAk KENDX0ZMQUdTX0ZUUkFDRSkKIMKgQ0ZMQUdTX1JFTU9WRV9jcHVmZWF0dXJlLm8gPSAkKENDX0ZM QUdTX0ZUUkFDRSkKIMKgZW5kaWYKK2lmZGVmIENPTkZJR19SRUxPQ0FUQUJMRQorQ0ZMQUdTX2Fs dGVybmF0aXZlLm8gKz0gLWZuby1waWUKK0NGTEFHU19jcHVmZWF0dXJlLm8gKz0gLWZuby1waWUK K2VuZGlmCiDCoGlmZGVmIENPTkZJR19LQVNBTgogwqBLQVNBTl9TQU5JVElaRV9hbHRlcm5hdGl2 ZS5vIDo9IG4KIMKgS0FTQU5fU0FOSVRJWkVfY3B1ZmVhdHVyZS5vIDo9IG4KClRoYW5rcwoKQWxl eAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C2FA2C77B75 for ; Fri, 19 May 2023 11:08:54 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4QN3xc5jHcz3fGy for ; Fri, 19 May 2023 21:08:52 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=ghiti.fr (client-ip=217.70.183.196; helo=relay4-d.mail.gandi.net; envelope-from=alex@ghiti.fr; receiver=) Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4QN3x42RSbz3fBg for ; Fri, 19 May 2023 21:08:21 +1000 (AEST) Received: (Authenticated sender: alex@ghiti.fr) by mail.gandi.net (Postfix) with ESMTPSA id CF7CAE000B; Fri, 19 May 2023 11:08:12 +0000 (UTC) Message-ID: <6fc7f0e1-0dde-9b41-0d60-6b0bd65bb630@ghiti.fr> Date: Fri, 19 May 2023 13:08:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v8 1/3] riscv: Introduce CONFIG_RELOCATABLE Content-Language: en-US To: Andreas Schwab References: <20230215143626.453491-1-alexghiti@rivosinc.com> <20230215143626.453491-2-alexghiti@rivosinc.com> <87wn1h5nne.fsf@igel.home> <4adb27d2-325d-3ce0-23b1-ec69a973b4bf@ghiti.fr> <87ttwi91g0.fsf@igel.home> From: Alexandre Ghiti In-Reply-To: <87ttwi91g0.fsf@igel.home> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Albert Ou , Alexandre Ghiti , linux-kernel@vger.kernel.org, Palmer Dabbelt , Nicholas Piggin , Paul Walmsley , linux-riscv@lists.infradead.org, linuxppc-dev@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On 5/11/23 20:18, Andreas Schwab wrote: > On Mai 09 2023, Alexandre Ghiti wrote: > >> On 5/9/23 21:07, Andreas Schwab wrote: >>> That does not work with UEFI booting: >>> >>> Loading Linux 6.4.0-rc1-1.g668187d-default ... >>> Loading initial ramdisk ... >>> Unhandled exception: Instruction access fault >>> EPC: ffffffff80016d56 RA: 000000008020334e TVAL: 0000007f80016d56 >>> EPC: ffffffff002d1d56 RA: 00000000004be34e reloc adjusted >>> Unhandled exception: Load access fault >>> EPC: 00000000fff462d4 RA: 00000000fff462d0 TVAL: ffffffff80016d56 >>> EPC: 00000000802012d4 RA: 00000000802012d0 reloc adjusted >>> >>> Code: c825 8e0d 05b3 40b4 d0ef 0636 7493 ffe4 (d783 0004) >>> UEFI image [0x00000000fe65e000:0x00000000fe6e3fff] '/efi\boot\bootriscv64.efi' >>> UEFI image [0x00000000daa82000:0x00000000dcc2afff] >>> >> I need more details please, as I have a UEFI bootflow and it works great >> (KASLR is based on a relocatable kernel and works fine in UEFI too). > It also crashes without UEFI. Disabling CONFIG_RELOCATABLE fixes that. > This was tested on the HiFive Unmatched board. > The kernel image I tested is available from > . The > same kernel with CONFIG_RELOCATABLE disabled is available from > . > I have tested the following patch successfully, can you give it a try while I make sure this is the only place I forgot to add the -fno-pie flag? diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile index fbdccc21418a..153864e4f399 100644 --- a/arch/riscv/kernel/Makefile +++ b/arch/riscv/kernel/Makefile @@ -23,6 +23,10 @@ ifdef CONFIG_FTRACE  CFLAGS_REMOVE_alternative.o = $(CC_FLAGS_FTRACE)  CFLAGS_REMOVE_cpufeature.o = $(CC_FLAGS_FTRACE)  endif +ifdef CONFIG_RELOCATABLE +CFLAGS_alternative.o += -fno-pie +CFLAGS_cpufeature.o += -fno-pie +endif  ifdef CONFIG_KASAN  KASAN_SANITIZE_alternative.o := n  KASAN_SANITIZE_cpufeature.o := n Thanks Alex