From patchwork Fri Nov 9 12:58:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995486 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0cd6CzMz9sCm for ; Sat, 10 Nov 2018 00:00:13 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 841E7C220D0; Fri, 9 Nov 2018 13:00:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id DEAB8C220C7; Fri, 9 Nov 2018 13:00:03 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 46DD2C22533; Fri, 9 Nov 2018 13:00:02 +0000 (UTC) Received: from mail-edgeDD24.fraunhofer.de (mail-edgeDD24.fraunhofer.de [192.102.167.24]) by lists.denx.de (Postfix) with ESMTPS id 35DB2C220BC for ; Fri, 9 Nov 2018 13:00:01 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAADxg+Vb/xoHYZlkGQEBAQEBAQEBAQEBAQcBAQEBAQGBVAEBAQEBAQsBAYICgVY5jG+WLZAoDYRsAoMiIjcKDQEDAQECAQECAgJpHAxCAQ4BhGoGeRBRITYGDgWDIYFqAxQBqQSHeg2CGQkBh0iEKoFYP4Z5gnWFDgKKfZQhLgcCgRGBBwSLUoMgCxiBSIgHhx+OJYlMgVkjgVUzGiSDO4YBilo+ATIBiD6FBQEB X-IPAS-Result: A2EVAADxg+Vb/xoHYZlkGQEBAQEBAQEBAQEBAQcBAQEBAQGBVAEBAQEBAQsBAYICgVY5jG+WLZAoDYRsAoMiIjcKDQEDAQECAQECAgJpHAxCAQ4BhGoGeRBRITYGDgWDIYFqAxQBqQSHeg2CGQkBh0iEKoFYP4Z5gnWFDgKKfZQhLgcCgRGBBwSLUoMgCxiBSIgHhx+OJYlMgVkjgVUzGiSDO4YBilo+ATIBiD6FBQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="8214266" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeDD24.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 13:59:59 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AbAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBgzchOYxvli2QKA2EbAKDQzcKDQEDAQECAQECbRwMQgEOAYRpBnkQUSE2Bg4FgyGBagMVqQSHeg2CGQkBh0iGAj+GeYJ1hQ4Cin2UIS4HAoERgQcEi1KDIAsYgUiIB4cfjiWJTIFZIoFVMxokgzuGAYpaPgMwAYg+hQUBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714078" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 13:59:58 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 13:59:57 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:58:56 +0100 Message-ID: <20181109125923.7034-2-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.916700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Heinrich Schuchardt , Alexander Graf Subject: [U-Boot] [PATCH v3 01/28] tools: .gitignore: add prelink-riscv X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Ignore tools/prelink-riscv. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None tools/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/.gitignore b/tools/.gitignore index c8cdaef90c..e5ede22842 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -24,6 +24,7 @@ /mksunxiboot /mxsboot /ncb +/prelink-riscv /proftool /relocate-rela /sunxi-spl-image-builder From patchwork Fri Nov 9 12:58:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995488 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0gP4XHGz9s1x for ; Sat, 10 Nov 2018 00:02:41 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 47C5AC22564; Fri, 9 Nov 2018 13:00:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 58FA9C22543; Fri, 9 Nov 2018 13:00:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6CD3DC22535; Fri, 9 Nov 2018 13:00:02 +0000 (UTC) Received: from mail-edgeDD24.fraunhofer.de (mail-edgeDD24.fraunhofer.de [192.102.167.24]) by lists.denx.de (Postfix) with ESMTPS id 5B44CC220D0 for ; Fri, 9 Nov 2018 13:00:01 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EHAADxg+Vb/xoHYZlkGQEBAQEBAQEBAQEBAQcBAQEBAQGBUwIBAQEBAQsBggOBVjmMb5Ytji6Beg2EbAKDIiI2Cw0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQSHeg2CGQkBh0iEKoFYP4EQAYVogXGBBIRsIgKKfZQhLgcCgRGBBwSLUoMgCxiBV4d4hx+JVoRPiUyBSgIwgVUzGiSDO4JQgzGKWj4BMgGKdoJNAQE X-IPAS-Result: A2EHAADxg+Vb/xoHYZlkGQEBAQEBAQEBAQEBAQcBAQEBAQGBUwIBAQEBAQsBggOBVjmMb5Ytji6Beg2EbAKDIiI2Cw0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQSHeg2CGQkBh0iEKoFYP4EQAYVogXGBBIRsIgKKfZQhLgcCgRGBBwSLUoMgCxiBV4d4hx+JVoRPiUyBSgIwgVUzGiSDO4JQgzGKWj4BMgGKdoJNAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="8214267" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeDD24.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:00 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AJAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGDOCE5jG+WLY4ugXoNhGwCg0M2Cw0BAwEBAgEBAm0cDIU7BnkQUSE2Bg4FgyGBagMVqQSHeg2CGQkBh0iGAj+BEAGFaIFxgQSEbCICin2UIS4HAoERgQcEi1KDIAsYgVeHeIcfiVaET4lMgUoCL4FVMxokgzuCUIMxilo+AzABinaCTQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714084" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 13:59:58 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 13:59:58 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:58:57 +0100 Message-ID: <20181109125923.7034-3-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.727100-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 02/28] dts: riscv: update makefile to also clean the RISC-V dts directory X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None dts/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dts/Makefile b/dts/Makefile index 9a9a3d5c98..cd6e9a968e 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -61,4 +61,4 @@ dtbs: $(obj)/dt.dtb $(obj)/dt-spl.dtb clean-files := dt.dtb.S dt-spl.dtb.S # Let clean descend into dts directories -subdir- += ../arch/arm/dts ../arch/microblaze/dts ../arch/mips/dts ../arch/sandbox/dts ../arch/x86/dts ../arch/powerpc/dts +subdir- += ../arch/arm/dts ../arch/microblaze/dts ../arch/mips/dts ../arch/sandbox/dts ../arch/x86/dts ../arch/powerpc/dts ../arch/riscv/dts From patchwork Fri Nov 9 12:58:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995487 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0cv3Dr3z9sCs for ; Sat, 10 Nov 2018 00:00:31 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 108A5C2255C; Fri, 9 Nov 2018 13:00:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 824EAC2253C; Fri, 9 Nov 2018 13:00:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 50148C220BC; Fri, 9 Nov 2018 13:00:02 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 41D19C220C7 for ; Fri, 9 Nov 2018 13:00:01 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EHAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUgQBAQEBCwGCA4FWOYxvjiOICo4ugXoNhGwCgyIiNQwNAQMBAQIBAQICAmkcDIU8BnkQHTQhKA4GDgWDIYFqAxQBqQWHeg2CGQkBh0iEKoFYP4EQAYJdgwuIAwKKfZQhLgcCgRGBBwSLUoMgCxiJT4cfLI15iUyBRQI1gVUzGiSDO4JQgzGKWj4BMgGNQwEB X-IPAS-Result: A2EHAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUgQBAQEBCwGCA4FWOYxvjiOICo4ugXoNhGwCgyIiNQwNAQMBAQIBAQICAmkcDIU8BnkQHTQhKA4GDgWDIYFqAxQBqQWHeg2CGQkBh0iEKoFYP4EQAYJdgwuIAwKKfZQhLgcCgRGBBwSLUoMgCxiJT4cfLI15iUyBRQI1gVUzGiSDO4JQgzGKWj4BMgGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622493" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:00 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ASAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBUgUBAQELAYM4ITmMb44jiAqOLoF6DYRsAoNDNQwNAQMBAQIBAQJtHAyFOwZ5EB00ISgOBg4FgyGBagMVqQSHeg2CGQkBh0iGAj+BEAGCXYMLiAMCin2UIS4HAoERgQcEi1KDIAsYiU+HHyyNeYlMgUUCNIFVMxokgzuCUIMxilo+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714087" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 13:59:59 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 13:59:59 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:58:58 +0100 Message-ID: <20181109125923.7034-4-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--2.912600-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Heinrich Schuchardt , Alexander Graf Subject: [U-Boot] [PATCH v3 03/28] riscv: rename CPU_RISCV_32/64 to match architecture names ARCH_RV32I/64I X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" RISC-V defines the base integer instruction sets as RV32I and RV64I. Rename CPU_RISCV_32 and CPU_RISCV_64 to ARCH_RV32I and ARCH_RV64I to match this convention. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/Kconfig | 16 ++++++++-------- arch/riscv/lib/setjmp.S | 2 +- configs/ax25-ae350_defconfig | 2 +- configs/qemu-riscv64_defconfig | 2 +- include/config_distro_bootcmd.h | 8 ++++---- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 168ca3de7c..7c76b4d664 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -20,20 +20,20 @@ source "board/AndesTech/ax25-ae350/Kconfig" source "board/emulation/qemu-riscv/Kconfig" choice - prompt "CPU selection" - default CPU_RISCV_32 + prompt "Base ISA" + default ARCH_RV32I -config CPU_RISCV_32 - bool "RISC-V 32-bit" +config ARCH_RV32I + bool "RV32I" select 32BIT help - Choose this option to build an U-Boot for RISCV32 architecture. + Choose this option to target the RV32I base integer instruction set. -config CPU_RISCV_64 - bool "RISC-V 64-bit" +config ARCH_RV64I + bool "RV64I" select 64BIT help - Choose this option to build an U-Boot for RISCV64 architecture. + Choose this option to target the RV64I base integer instruction set. endchoice diff --git a/arch/riscv/lib/setjmp.S b/arch/riscv/lib/setjmp.S index 8f5a6a23aa..72bc9241f6 100644 --- a/arch/riscv/lib/setjmp.S +++ b/arch/riscv/lib/setjmp.S @@ -6,7 +6,7 @@ #include #include -#ifdef CONFIG_CPU_RISCV_64 +#ifdef CONFIG_ARCH_RV64I #define STORE_IDX(reg, idx) sd reg, (idx*8)(a0) #define LOAD_IDX(reg, idx) ld reg, (idx*8)(a0) #else diff --git a/configs/ax25-ae350_defconfig b/configs/ax25-ae350_defconfig index d7c4f40e58..cad82c4213 100644 --- a/configs/ax25-ae350_defconfig +++ b/configs/ax25-ae350_defconfig @@ -1,7 +1,7 @@ CONFIG_RISCV=y CONFIG_SYS_TEXT_BASE=0x00000000 CONFIG_TARGET_AX25_AE350=y -CONFIG_CPU_RISCV_64=y +CONFIG_ARCH_RV64I=y CONFIG_DISTRO_DEFAULTS=y CONFIG_NR_DRAM_BANKS=2 CONFIG_FIT=y diff --git a/configs/qemu-riscv64_defconfig b/configs/qemu-riscv64_defconfig index d6c1a5d646..60b647efe8 100644 --- a/configs/qemu-riscv64_defconfig +++ b/configs/qemu-riscv64_defconfig @@ -1,6 +1,6 @@ CONFIG_RISCV=y CONFIG_TARGET_QEMU_VIRT=y -CONFIG_CPU_RISCV_64=y +CONFIG_ARCH_RV64I=y CONFIG_NR_DRAM_BANKS=1 CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h index 373fee78a9..54186efe7b 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h @@ -99,9 +99,9 @@ #define BOOTEFI_NAME "bootia32.efi" #elif defined(CONFIG_X86_RUN_64BIT) #define BOOTEFI_NAME "bootx64.efi" -#elif defined(CONFIG_CPU_RISCV_32) +#elif defined(CONFIG_ARCH_RV32I) #define BOOTEFI_NAME "bootriscv32.efi" -#elif defined(CONFIG_CPU_RISCV_64) +#elif defined(CONFIG_ARCH_RV64I) #define BOOTEFI_NAME "bootriscv64.efi" #endif #endif @@ -257,10 +257,10 @@ #elif defined(__i386__) #define BOOTENV_EFI_PXE_ARCH "0x6" #define BOOTENV_EFI_PXE_VCI "PXEClient:Arch:00006:UNDI:003000" -#elif defined(CONFIG_CPU_RISCV_32) || ((defined(__riscv) && __riscv_xlen == 32)) +#elif defined(CONFIG_ARCH_RV32I) || ((defined(__riscv) && __riscv_xlen == 32)) #define BOOTENV_EFI_PXE_ARCH "0x19" #define BOOTENV_EFI_PXE_VCI "PXEClient:Arch:00025:UNDI:003000" -#elif defined(CONFIG_CPU_RISCV_64) || ((defined(__riscv) && __riscv_xlen == 64)) +#elif defined(CONFIG_ARCH_RV64I) || ((defined(__riscv) && __riscv_xlen == 64)) #define BOOTENV_EFI_PXE_ARCH "0x1b" #define BOOTENV_EFI_PXE_VCI "PXEClient:Arch:00027:UNDI:003000" #elif defined(CONFIG_SANDBOX) From patchwork Fri Nov 9 12:58:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995503 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0mp540Kz9s1x for ; Sat, 10 Nov 2018 00:07:22 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 5238CC2253D; Fri, 9 Nov 2018 13:01:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 34BEEC22557; Fri, 9 Nov 2018 13:00:06 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 8B199C220D0; Fri, 9 Nov 2018 13:00:02 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 6A10DC22517 for ; Fri, 9 Nov 2018 13:00:01 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2JN4R3gXoNhGwCgyIiNgsNAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+DboMLgnWFDgKfHi4HAoERgQcEi1KDIAsYiU+HHyyNeYlMgUoMJoFVMxokgzuGAYpaPgEyAY1DAQE X-IPAS-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2JN4R3gXoNhGwCgyIiNgsNAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+DboMLgnWFDgKfHi4HAoERgQcEi1KDIAsYiU+HHyyNeYlMgUoMJoFVMxokgzuGAYpaPgEyAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622494" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:00 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AaAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBUwQBAQELAYM4ITmMb5YtiTeEd4F6DYRsAoNDNgsNAQMBAQIBAQJtHAyFOwZ5EFEhNgYOBYMhgWoDFakEh3oNghkJAYdIhgI/g26DC4J1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx8sjXmJTIFKDCWBVTMaJIM7hgGKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714089" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:00 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:00 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:58:59 +0100 Message-ID: <20181109125923.7034-5-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--0.606700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 04/28] riscv: select CONFIG_PHYS_64BIT on RV64I systems X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" CONFIG_PHYS_64BIT should be enabled on RV64I systems. Select it. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 7c76b4d664..b81e0d990a 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -32,6 +32,7 @@ config ARCH_RV32I config ARCH_RV64I bool "RV64I" select 64BIT + select PHYS_64BIT help Choose this option to target the RV64I base integer instruction set. From patchwork Fri Nov 9 12:59:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995508 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0rL52z5z9s9h for ; Sat, 10 Nov 2018 00:10:26 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 63D65C22541; Fri, 9 Nov 2018 13:01:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 20B16C22567; Fri, 9 Nov 2018 13:00:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9FAABC22517; Fri, 9 Nov 2018 13:00:02 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 5749FC220C7 for ; Fri, 9 Nov 2018 13:00:02 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLoF6DYRsAoMiIjYLDQEDAQECAQECAgJpHAyFPAZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/g3WDBIJ1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx+OJYlMgUoOJIFVMxokgzuGAYpaPgEyAY1DAQE X-IPAS-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLoF6DYRsAoMiIjYLDQEDAQECAQECAgJpHAyFPAZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/g3WDBIJ1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx+OJYlMgUoOJIFVMxokgzuGAYpaPgEyAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622496" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:02 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AaAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBUwQBAQELAYM4ITmMb5Ytji6Beg2EbAKDQzYLDQEDAQECAQECbRwMhTsGeRBRITYGDgWDIYFqAxWpBId6DYIZCQGHSIYCP4N1gwSCdYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFKDiOBVTMaJIM7hgGKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714100" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:01 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:00 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:00 +0100 Message-ID: <20181109125923.7034-6-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.031000-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 05/28] riscv: add Kconfig entries for the C and A ISA extensions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add Kconfig entries for the C (compressed instructions) and A (atomic instructions) ISA extensions. Only the C ISA extension is selectable. This matches the configuration in Linux. The Kconfig entries are not used yet. A follow-up patch will select the appropriate compiler flags based on the Kconfig configuration. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: - Replace the description of RISCV_ISA_C with that of the Linux kernel, as suggested by Bin Meng arch/riscv/Kconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index b81e0d990a..0de77a75d7 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -38,6 +38,17 @@ config ARCH_RV64I endchoice +config RISCV_ISA_C + bool "Emit compressed instructions" + default y + help + Adds "C" to the ISA subsets that the toolchain is allowed to emit + when building U-Boot, which results in compressed instructions in the + U-Boot binary. + +config RISCV_ISA_A + def_bool y + config 32BIT bool From patchwork Fri Nov 9 12:59:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995497 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0jV4Qqhz9s1x for ; Sat, 10 Nov 2018 00:04:30 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 46CA3C220D4; Fri, 9 Nov 2018 13:01:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 6DD03C22584; Fri, 9 Nov 2018 13:00:11 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 51860C2254F; Fri, 9 Nov 2018 13:00:08 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id A907DC22540 for ; Fri, 9 Nov 2018 13:00:04 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EPAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA2ZwOYdChS2PVQGGV44uFIFmDR+BEYM8AoMiIjYLDQEDAQECAQECAgJpHAyEH18+BnkQUSE2Bg4FgyEBgWkDFAGpBYNxhAkNghkJAYdIhCqBWD+GeYFtgQiFDgKPEpAMLgcCgRGBBwSEV4Z7gyALGIIjhyyHH44lhgsBg0CBSg4kgVUzGiSDOwmCGxqDQ4QmhjQ+ATIBjUMBAQ X-IPAS-Result: A2EPAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA2ZwOYdChS2PVQGGV44uFIFmDR+BEYM8AoMiIjYLDQEDAQECAQECAgJpHAyEH18+BnkQUSE2Bg4FgyEBgWkDFAGpBYNxhAkNghkJAYdIhCqBWD+GeYFtgQiFDgKPEpAMLgcCgRGBBwSEV4Z7gyALGIIjhyyHH44lhgsBg0CBSg4kgVUzGiSDOwmCGxqDQ4QmhjQ+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622497" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:03 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AaAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBUwQBAQELAYJpTyE5jG+WLY4uFIFmDR+ETQKDQzYLDQEDAQECAQECbRwMhTsGeRBRITYGDgWDIQGBaQMVqQSHeg2CGQkBh0iGAj+GeYFtgQiFDgKPEpAMLgcCgRGBBwSEV4Z7gyALGIIjhyyHH44liUyBSg4jgVUzGiSDOwmCGxqDQ4QmhjQ+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714103" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:03 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:01 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:01 +0100 Message-ID: <20181109125923.7034-7-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--10.142800-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 06/28] riscv: set -march and -mabi based on the Kconfig configuration X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Use the new Kconfig entries to construct the ISA string for the -march compiler flag. The -mabi compiler flag is selected based on the base integer instruction set. With this change, the C (compressed instructions) ISA extension is now enabled for all boards with CONFIG_RISCV_ISA_C set. Buildman reports a decrease in binary size of 71590 bytes. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: - Change ISA string construction, as suggested by Bin Meng arch/riscv/Makefile | 20 ++++++++++++++++++++ arch/riscv/config.mk | 4 ---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile index 8fb6a889d8..55d7c6550e 100644 --- a/arch/riscv/Makefile +++ b/arch/riscv/Makefile @@ -3,6 +3,26 @@ # Copyright (C) 2017 Andes Technology Corporation. # Rick Chen, Andes Technology Corporation +ifeq ($(CONFIG_ARCH_RV64I),y) + ARCH_BASE = rv64im + ABI = lp64 +endif +ifeq ($(CONFIG_ARCH_RV32I),y) + ARCH_BASE = rv32im + ABI = ilp32 +endif +ifeq ($(CONFIG_RISCV_ISA_A),y) + ARCH_A = a +endif +ifeq ($(CONFIG_RISCV_ISA_C),y) + ARCH_C = c +endif + +ARCH_FLAGS = -march=$(ARCH_BASE)$(ARCH_A)$(ARCH_C) -mabi=$(ABI) + +PLATFORM_CPPFLAGS += $(ARCH_FLAGS) +CFLAGS_EFI += $(ARCH_FLAGS) + head-y := arch/riscv/cpu/start.o libs-y += arch/riscv/cpu/ diff --git a/arch/riscv/config.mk b/arch/riscv/config.mk index ed9eb0c24c..9088b9ef2c 100644 --- a/arch/riscv/config.mk +++ b/arch/riscv/config.mk @@ -14,16 +14,12 @@ 64bit-emul := elf64lriscv ifdef CONFIG_32BIT -PLATFORM_CPPFLAGS += -march=rv32ima -mabi=ilp32 PLATFORM_LDFLAGS += -m $(32bit-emul) -CFLAGS_EFI += -march=rv32ima -mabi=ilp32 EFI_LDS := elf_riscv32_efi.lds endif ifdef CONFIG_64BIT -PLATFORM_CPPFLAGS += -march=rv64ima -mabi=lp64 PLATFORM_LDFLAGS += -m $(64bit-emul) -CFLAGS_EFI += -march=rv64ima -mabi=lp64 EFI_LDS := elf_riscv64_efi.lds endif From patchwork Fri Nov 9 12:59:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995518 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0wS6M7Sz9sBZ for ; Sat, 10 Nov 2018 00:14:00 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 7C348C2253D; Fri, 9 Nov 2018 13:02:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 42D8CC2257A; Fri, 9 Nov 2018 13:00:25 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 26F23C2252C; Fri, 9 Nov 2018 13:00:11 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 5099CC22563 for ; Fri, 9 Nov 2018 13:00:07 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EeAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA2ZwOYdChS2PVQGGV5AoDRuBFYM8AoMiIjcKDQEDAQECAQECAgJpHAyEH18+BnkQUSE2Bg4FgyEBgWkDFAGpBYNxhAkNghkJAYdIhCqBWD+BEAGFaIFxgQSFDgKfHi4HAoERgQcEhFeGe4MgCxiCI4cshx+OJYYLAYNAgVkjgVUzGiSDOwmCGxqDQ4NFYYY0PgEyAYp2gk0BAQ X-IPAS-Result: A2EeAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA2ZwOYdChS2PVQGGV5AoDRuBFYM8AoMiIjcKDQEDAQECAQECAgJpHAyEH18+BnkQUSE2Bg4FgyEBgWkDFAGpBYNxhAkNghkJAYdIhCqBWD+BEAGFaIFxgQSFDgKfHi4HAoERgQcEhFeGe4MgCxiCI4cshx+OJYYLAYNAgVkjgVUzGiSDOwmCGxqDQ4NFYYY0PgEyAYp2gk0BAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622500" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:05 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ATAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCaU8hOYxvli2QKA0bhFECg0M3Cg0BAwEBAgEBAm0cDIU7BnkQUSE2Bg4FgyEBgWkDFakEh3oNghkJAYdIhgI/gRABhWiBcYEEhQ4Cnx4uBwKBEYEHBIRXhnuDIAsYgiOHLIcfjiWJTIFZIoFVMxokgzsJghsag0ODRWGGND4DMAGKdoJNAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714112" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:05 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:03 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:02 +0100 Message-ID: <20181109125923.7034-8-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.026700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 07/28] riscv: enable -fdata-sections X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Enable the -fdata-sections compiler option for RISC-V. Buildman reports the binary size decrease from this as 8365.3 bytes. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/config.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/config.mk b/arch/riscv/config.mk index 9088b9ef2c..b9487097f6 100644 --- a/arch/riscv/config.mk +++ b/arch/riscv/config.mk @@ -27,7 +27,8 @@ CONFIG_STANDALONE_LOAD_ADDR = 0x00000000 \ -T $(srctree)/examples/standalone/riscv.lds PLATFORM_CPPFLAGS += -ffixed-gp -fpic -PLATFORM_RELFLAGS += -fno-common -gdwarf-2 -ffunction-sections +PLATFORM_RELFLAGS += -fno-common -gdwarf-2 -ffunction-sections \ + -fdata-sections LDFLAGS_u-boot += --gc-sections -static -pie EFI_CRT0 := crt0_riscv_efi.o From patchwork Fri Nov 9 12:59:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995507 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0ph5WHdz9s9h for ; Sat, 10 Nov 2018 00:09:00 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 842EEC22556; Fri, 9 Nov 2018 13:03:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 18818C22574; Fri, 9 Nov 2018 13:00:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 70CAAC2254F; Fri, 9 Nov 2018 13:00:11 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 15BCDC22562 for ; Fri, 9 Nov 2018 13:00:07 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagYnUhBRITYGDgWDIYFqAxQBqFIzh3oNghkJAYdIhCqBWD+BEAGFaIgDAohtghCUIS4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJIM7gicXg0OKWj4BMgGEAolBAQE X-IPAS-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagYnUhBRITYGDgWDIYFqAxQBqFIzh3oNghkJAYdIhCqBWD+BEAGFaIgDAohtghCUIS4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJIM7gicXg0OKWj4BMgGEAolBAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622502" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:06 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ATAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGDOCE5jG+WLZAoDYRsAoNDNwoNAQMBAQIBAQJtHAyFOwYnUhBRITYGDgWDIYFqAxWoUTOHeg2CGQkBh0iGAj+BEAGFaIgDAohtghCUIS4HAoERgQcEi1KDIAsYiU+HH44liUyBWSKBVTMaJIM7gicXg0OKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714114" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:06 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:05 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:03 +0100 Message-ID: <20181109125923.7034-9-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--3.646200-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 08/28] riscv: fix use of incorrectly sized variables X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The RISC-V arch incorrectly uses 32-bit instead of 64-bit variables in several places. Fix this. In addition, BITS_PER_LONG is set to 64 on RV64I systems. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: - Remove 0-padding in the format string to avoid printing 16 digits on RV32I systems arch/riscv/include/asm/io.h | 6 +++--- arch/riscv/include/asm/posix_types.h | 6 +++--- arch/riscv/include/asm/types.h | 4 ++++ arch/riscv/lib/interrupts.c | 10 +++++----- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h index f4a76d8720..472814a13e 100644 --- a/arch/riscv/include/asm/io.h +++ b/arch/riscv/include/asm/io.h @@ -74,12 +74,12 @@ static inline phys_addr_t virt_to_phys(void *vaddr) #define __arch_getb(a) (*(unsigned char *)(a)) #define __arch_getw(a) (*(unsigned short *)(a)) #define __arch_getl(a) (*(unsigned int *)(a)) -#define __arch_getq(a) (*(unsigned long *)(a)) +#define __arch_getq(a) (*(unsigned long long *)(a)) #define __arch_putb(v, a) (*(unsigned char *)(a) = (v)) #define __arch_putw(v, a) (*(unsigned short *)(a) = (v)) #define __arch_putl(v, a) (*(unsigned int *)(a) = (v)) -#define __arch_putq(v, a) (*(unsigned long *)(a) = (v)) +#define __arch_putq(v, a) (*(unsigned long long *)(a) = (v)) #define __raw_writeb(v, a) __arch_putb(v, a) #define __raw_writew(v, a) __arch_putw(v, a) @@ -152,7 +152,7 @@ static inline u32 readl(const volatile void __iomem *addr) static inline u64 readq(const volatile void __iomem *addr) { - u32 val; + u64 val; val = __arch_getq(addr); __iormb(); diff --git a/arch/riscv/include/asm/posix_types.h b/arch/riscv/include/asm/posix_types.h index 7438dbeb03..0fc052082a 100644 --- a/arch/riscv/include/asm/posix_types.h +++ b/arch/riscv/include/asm/posix_types.h @@ -37,10 +37,10 @@ typedef unsigned short __kernel_gid_t; #ifdef __GNUC__ typedef __SIZE_TYPE__ __kernel_size_t; #else -typedef unsigned int __kernel_size_t; +typedef unsigned long __kernel_size_t; #endif -typedef int __kernel_ssize_t; -typedef int __kernel_ptrdiff_t; +typedef long __kernel_ssize_t; +typedef long __kernel_ptrdiff_t; typedef long __kernel_time_t; typedef long __kernel_suseconds_t; typedef long __kernel_clock_t; diff --git a/arch/riscv/include/asm/types.h b/arch/riscv/include/asm/types.h index bd8627196d..403cf9a48f 100644 --- a/arch/riscv/include/asm/types.h +++ b/arch/riscv/include/asm/types.h @@ -21,7 +21,11 @@ typedef unsigned short umode_t; */ #ifdef __KERNEL__ +#ifdef CONFIG_ARCH_RV64I +#define BITS_PER_LONG 64 +#else #define BITS_PER_LONG 32 +#endif #include diff --git a/arch/riscv/lib/interrupts.c b/arch/riscv/lib/interrupts.c index 0a0995a7af..62a16b4da9 100644 --- a/arch/riscv/lib/interrupts.c +++ b/arch/riscv/lib/interrupts.c @@ -12,7 +12,7 @@ #include #include -static void _exit_trap(int code, uint epc, struct pt_regs *regs); +static void _exit_trap(ulong code, ulong epc, struct pt_regs *regs); int interrupt_init(void) { @@ -34,9 +34,9 @@ int disable_interrupts(void) return 0; } -uint handle_trap(uint mcause, uint epc, struct pt_regs *regs) +ulong handle_trap(ulong mcause, ulong epc, struct pt_regs *regs) { - uint is_int; + ulong is_int; is_int = (mcause & MCAUSE_INT); if ((is_int) && ((mcause & MCAUSE_CAUSE) == IRQ_M_EXT)) @@ -60,7 +60,7 @@ __attribute__((weak)) void timer_interrupt(struct pt_regs *regs) { } -static void _exit_trap(int code, uint epc, struct pt_regs *regs) +static void _exit_trap(ulong code, ulong epc, struct pt_regs *regs) { static const char * const exception_code[] = { "Instruction address misaligned", @@ -70,6 +70,6 @@ static void _exit_trap(int code, uint epc, struct pt_regs *regs) "Load address misaligned" }; - printf("exception code: %d , %s , epc %08x , ra %08lx\n", + printf("exception code: %ld , %s , epc %lx , ra %lx\n", code, exception_code[code], epc, regs->ra); } From patchwork Fri Nov 9 12:59:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995489 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0hn2sztz9s1x for ; Sat, 10 Nov 2018 00:03:53 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 05F0FC220C7; Fri, 9 Nov 2018 13:02:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 0D382C22593; Fri, 9 Nov 2018 13:00:19 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AB95AC22539; Fri, 9 Nov 2018 13:00:13 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id C8B28C22577 for ; Fri, 9 Nov 2018 13:00:08 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EGAAAmhOVb/xoHYZlcCBoBAQEBAQIBAQEBBwIBAQEBgVEFAQEBAQsBggNmcDmHQoROX49VAYZXji4UgWYNG4EVgzwCgyIiNA0NAQMBAQIBAQICAmkcDIQfXz4GeRBRITYGDgWDIQGBaQMUAakFg3GECQ2CGQkBh0iEKoFYP4EQAYVogWEMFoYAAp8eLgcCgRGBBwSEV4Z7gyALGIlPhx+OJYYLAYNAgUM5gVUzGiSDOwmCHheBc4FQilo+ATIBjUMBAQ X-IPAS-Result: A2EGAAAmhOVb/xoHYZlcCBoBAQEBAQIBAQEBBwIBAQEBgVEFAQEBAQsBggNmcDmHQoROX49VAYZXji4UgWYNG4EVgzwCgyIiNA0NAQMBAQIBAQICAmkcDIQfXz4GeRBRITYGDgWDIQGBaQMUAakFg3GECQ2CGQkBh0iEKoFYP4EQAYVogWEMFoYAAp8eLgcCgRGBBwSEV4Z7gyALGIlPhx+OJYYLAYNAgUM5gVUzGiSDOwmCHheBc4FQilo+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622505" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:07 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ALAADxg+Vb/xBhWMBcCBsBAQEBAwEBAQcDAQEBgVEGAQEBCwGCaU8hOYwQX5Ytji4UgWYNG4RRAoNDNA0NAQMBAQIBAQJtHAyFOwZ5EFEhNgYOBYMhAYFpAxWpBId6DYIZCQGHSIYCP4EQAYVogWEMFoYAAp8eLgcCgRGBBwSEV4Z7gyALGIlPhx+OJYlMgUM4gVUzGiSDOwmCHheBc4FQilo+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714119" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:06 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:06 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:04 +0100 Message-ID: <20181109125923.7034-10-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.995600-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 09/28] riscv: make use of the barrier functions from Linux X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Replace the barrier functions in arch/riscv/include/asm/io.h with those defined in barrier.h, which is imported from Linux. This version is modified to remove the include statement of asm-generic/barrier.h, which is not available in U-Boot or required. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/include/asm/barrier.h | 67 ++++++++++++++++++++++++++++++++ arch/riscv/include/asm/io.h | 11 ++---- 2 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 arch/riscv/include/asm/barrier.h diff --git a/arch/riscv/include/asm/barrier.h b/arch/riscv/include/asm/barrier.h new file mode 100644 index 0000000000..a3f60a8458 --- /dev/null +++ b/arch/riscv/include/asm/barrier.h @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2012 ARM Ltd. + * Copyright (C) 2013 Regents of the University of California + * Copyright (C) 2017 SiFive + * + * Taken from Linux arch/riscv/include/asm/barrier.h, which is based on + * arch/arm/include/asm/barrier.h + */ + +#ifndef _ASM_RISCV_BARRIER_H +#define _ASM_RISCV_BARRIER_H + +#ifndef __ASSEMBLY__ + +#define nop() __asm__ __volatile__ ("nop") + +#define RISCV_FENCE(p, s) \ + __asm__ __volatile__ ("fence " #p "," #s : : : "memory") + +/* These barriers need to enforce ordering on both devices or memory. */ +#define mb() RISCV_FENCE(iorw,iorw) +#define rmb() RISCV_FENCE(ir,ir) +#define wmb() RISCV_FENCE(ow,ow) + +/* These barriers do not need to enforce ordering on devices, just memory. */ +#define __smp_mb() RISCV_FENCE(rw,rw) +#define __smp_rmb() RISCV_FENCE(r,r) +#define __smp_wmb() RISCV_FENCE(w,w) + +#define __smp_store_release(p, v) \ +do { \ + compiletime_assert_atomic_type(*p); \ + RISCV_FENCE(rw,w); \ + WRITE_ONCE(*p, v); \ +} while (0) + +#define __smp_load_acquire(p) \ +({ \ + typeof(*p) ___p1 = READ_ONCE(*p); \ + compiletime_assert_atomic_type(*p); \ + RISCV_FENCE(r,rw); \ + ___p1; \ +}) + +/* + * This is a very specific barrier: it's currently only used in two places in + * the kernel, both in the scheduler. See include/linux/spinlock.h for the two + * orderings it guarantees, but the "critical section is RCsc" guarantee + * mandates a barrier on RISC-V. The sequence looks like: + * + * lr.aq lock + * sc lock <= LOCKED + * smp_mb__after_spinlock() + * // critical section + * lr lock + * sc.rl lock <= UNLOCKED + * + * The AQ/RL pair provides a RCpc critical section, but there's not really any + * way we can take advantage of that here because the ordering is only enforced + * on that one lock. Thus, we're just doing a full fence. + */ +#define smp_mb__after_spinlock() RISCV_FENCE(rw,rw) + +#endif /* __ASSEMBLY__ */ + +#endif /* _ASM_RISCV_BARRIER_H */ diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h index 472814a13e..d01ed5bc9f 100644 --- a/arch/riscv/include/asm/io.h +++ b/arch/riscv/include/asm/io.h @@ -10,6 +10,7 @@ #ifdef __KERNEL__ #include +#include #include static inline void sync(void) @@ -91,13 +92,9 @@ static inline phys_addr_t virt_to_phys(void *vaddr) #define __raw_readl(a) __arch_getl(a) #define __raw_readq(a) __arch_getq(a) -/* - * TODO: The kernel offers some more advanced versions of barriers, it might - * have some advantages to use them instead of the simple one here. - */ -#define dmb() __asm__ __volatile__ ("" : : : "memory") -#define __iormb() dmb() -#define __iowmb() dmb() +#define dmb() mb() +#define __iormb() rmb() +#define __iowmb() wmb() static inline void writeb(u8 val, volatile void __iomem *addr) { From patchwork Fri Nov 9 12:59:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995502 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0l85Fz2z9s1x for ; Sat, 10 Nov 2018 00:05:56 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 3DFDBC22539; Fri, 9 Nov 2018 13:02:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id E220FC2254C; Fri, 9 Nov 2018 13:00:23 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 123DBC2258A; Fri, 9 Nov 2018 13:00:13 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 0D831C22579 for ; Fri, 9 Nov 2018 13:00:09 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLoF6DYRsAoMiIjYLDQEDAQECAQECAgJpHAyFPAZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/gRABhWiCdYUOAokRlg0uBwKBEYEHBItSgyALGIFXh3grhnSOJYlMgUoLJ4FVMxokgzuCJxeDQ4paPgEyAY1DAQE X-IPAS-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLoF6DYRsAoMiIjYLDQEDAQECAQECAgJpHAyFPAZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/gRABhWiCdYUOAokRlg0uBwKBEYEHBItSgyALGIFXh3grhnSOJYlMgUoLJ4FVMxokgzuCJxeDQ4paPgEyAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622510" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:08 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AaAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBUwQBAQELAYM4ITmMb5Ytji6Beg2EbAKDQzYLDQEDAQECAQECbRwMhTsGeRBRITYGDgWDIYFqAxWpBId6DYIZCQGHSIYCP4EQAYVognWFDgKJEZYNLgcCgRGBBwSLUoMgCxiBV4d4K4Z0jiWJTIFKCyaBVTMaJIM7gicXg0OKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714123" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:07 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:07 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:05 +0100 Message-ID: <20181109125923.7034-11-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--3.473100-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 10/28] riscv: do not reimplement generic io functions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" RISC-V U-Boot reimplements the generic io functions from asm-generic/io.h. Remove the redundant implementation and include the generic io.h instead. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/include/asm/io.h | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/arch/riscv/include/asm/io.h b/arch/riscv/include/asm/io.h index d01ed5bc9f..acf5a96449 100644 --- a/arch/riscv/include/asm/io.h +++ b/arch/riscv/include/asm/io.h @@ -17,16 +17,6 @@ static inline void sync(void) { } -/* - * Given a physical address and a length, return a virtual address - * that can be used to access the memory range with the caching - * properties specified by "flags". - */ -#define MAP_NOCACHE (0) -#define MAP_WRCOMBINE (0) -#define MAP_WRBACK (0) -#define MAP_WRTHROUGH (0) - #ifdef CONFIG_ARCH_MAP_SYSMEM static inline void *map_sysmem(phys_addr_t paddr, unsigned long len) { @@ -49,24 +39,6 @@ static inline phys_addr_t map_to_sysmem(const void *ptr) } #endif -static inline void * -map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags) -{ - return (void *)paddr; -} - -/* - * Take down a mapping set up by map_physmem(). - */ -static inline void unmap_physmem(void *vaddr, unsigned long flags) -{ -} - -static inline phys_addr_t virt_to_phys(void *vaddr) -{ - return (phys_addr_t)(vaddr); -} - /* * Generic virtual read/write. Note that we don't support half-word * read/writes. We define __arch_*[bl] here, and leave __arch_*w @@ -484,4 +456,7 @@ out: #endif /* __mem_isa */ #endif /* __KERNEL__ */ + +#include + #endif /* __ASM_RISCV_IO_H */ From patchwork Fri Nov 9 12:59:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995504 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0mz3QFTz9s1x for ; Sat, 10 Nov 2018 00:07:31 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 27846C22541; Fri, 9 Nov 2018 13:02:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 416C2C22577; Fri, 9 Nov 2018 13:00:17 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0B1D9C2257F; Fri, 9 Nov 2018 13:00:13 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id E02B3C22582 for ; Fri, 9 Nov 2018 13:00:09 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagZ5EB00ISgOBg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIFxgQSFDgKfHi4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJE+CbIInF4NDilo+ATIBhAKGdIJNAQE X-IPAS-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagZ5EB00ISgOBg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIFxgQSFDgKfHi4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJE+CbIInF4NDilo+ATIBhAKGdIJNAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622511" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:09 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CkAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBVAQBAQsBgzghOYxvli2QKA2EbAKDQzcKDQEDAQECAQECbRwMhTsGeRAdNCEoDgYOBYMhgWoDFakEh3oNghkJAYdIhgI/gRABhWiBcYEEhQ4Cnx4uBwKBEYEHBItSgyALGIlPhx+OJYlMgVkigVUzGiRPgmyCJxeDQ4paPgMwAYp2gk0BAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714132" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:08 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:08 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:06 +0100 Message-ID: <20181109125923.7034-12-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--5.618700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 11/28] riscv: complete the list of exception codes X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Only the first four exception codes are defined. Add the missing exception codes from the definition in RISC-V Privileged Architecture Version 1.10. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/lib/interrupts.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/arch/riscv/lib/interrupts.c b/arch/riscv/lib/interrupts.c index 62a16b4da9..6a12818c2b 100644 --- a/arch/riscv/lib/interrupts.c +++ b/arch/riscv/lib/interrupts.c @@ -67,7 +67,18 @@ static void _exit_trap(ulong code, ulong epc, struct pt_regs *regs) "Instruction access fault", "Illegal instruction", "Breakpoint", - "Load address misaligned" + "Load address misaligned", + "Load access fault", + "Store/AMO address misaligned", + "Store/AMO access fault", + "Environment call from U-mode", + "Environment call from S-mode", + "Reserved", + "Environment call from M-mode", + "Instruction page fault", + "Load page fault", + "Reserved", + "Store/AMO page fault", }; printf("exception code: %ld , %s , epc %lx , ra %lx\n", From patchwork Fri Nov 9 12:59:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995515 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0vY5905z9sBZ for ; Sat, 10 Nov 2018 00:13:13 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 59C31C2253A; Fri, 9 Nov 2018 13:04:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id ED705C22569; Fri, 9 Nov 2018 13:00:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C0440C22552; Fri, 9 Nov 2018 13:00:15 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 6355CC22585 for ; Fri, 9 Nov 2018 13:00:10 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagYnUhBRITYGDgWDIYFqAxQBqFIzh3oNghkJAYdIhCqBWD+GeYJ1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx+OJYlMgVkjgVUzGiSDO4InF4NDilo+ATIBhAKJQQEB X-IPAS-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagYnUhBRITYGDgWDIYFqAxQBqFIzh3oNghkJAYdIhCqBWD+GeYJ1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx+OJYlMgVkjgVUzGiSDO4InF4NDilo+ATIBhAKJQQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622512" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:10 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A1AADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBVAMBAQELAYM4ITmMb5YtkCgNhGwCg0M3Cg0BAwEBAgEBAm0cDIU7BidSEFEhNgYOBYMhgWoDFahRM4d6DYIZCQGHSIYCP4Z5gnWFDgKfHi4HAoERgQcEi1KDIAsYiU+HH44liUyBWSKBVTMaJIM7gicXg0OKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714133" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:09 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:09 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:07 +0100 Message-ID: <20181109125923.7034-13-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--8.064600-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 12/28] riscv: treat undefined exception codes as reserved X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Undefined exception codes currently lead to an out-of-bounds array access. Prevent this by treating undefined exception codes as "reserved". Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/lib/interrupts.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/riscv/lib/interrupts.c b/arch/riscv/lib/interrupts.c index 6a12818c2b..d0d8de500e 100644 --- a/arch/riscv/lib/interrupts.c +++ b/arch/riscv/lib/interrupts.c @@ -81,6 +81,10 @@ static void _exit_trap(ulong code, ulong epc, struct pt_regs *regs) "Store/AMO page fault", }; - printf("exception code: %ld , %s , epc %lx , ra %lx\n", - code, exception_code[code], epc, regs->ra); + if (code < ARRAY_SIZE(exception_code)) { + printf("exception code: %ld , %s , epc %lx , ra %lx\n", + code, exception_code[code], epc, regs->ra); + } else { + printf("Reserved\n"); + } } From patchwork Fri Nov 9 12:59:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995519 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0x756WQz9sBZ for ; Sat, 10 Nov 2018 00:14:35 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 6F906C2253C; Fri, 9 Nov 2018 13:05:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1E829C2253E; Fri, 9 Nov 2018 13:00:47 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 8A506C220D5; Fri, 9 Nov 2018 13:00:15 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 73C2AC22587 for ; Fri, 9 Nov 2018 13:00:11 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/hnmCdYUOAp8eLgcCgRGBBwSLUoMgCxiBSIgHhx+OJYlMgVkjgVUzGiSDO4InF4NDilo+ATIBhAKJQQEB X-IPAS-Result: A2EdAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDEIBDgGEagZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/hnmCdYUOAp8eLgcCgRGBBwSLUoMgCxiBSIgHhx+OJYlMgVkjgVUzGiSDO4InF4NDilo+ATIBhAKJQQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622513" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:11 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A1AADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBVAMBAQELAYM4ITmMb5YtkCgNhGwCg0M3Cg0BAwEBAgEBAm0cDIU7BnkQUSE2Bg4FgyGBagMVqQSHeg2CGQkBh0iGAj+GeYJ1hQ4Cnx4uBwKBEYEHBItSgyALGIFIiAeHH44liUyBWSKBVTMaJIM7gicXg0OKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714135" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:10 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:10 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:08 +0100 Message-ID: <20181109125923.7034-14-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--2.273000-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 13/28] riscv: hang on unhandled exceptions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Hang on unhandled exceptions to prevent execution in a faulty state. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/lib/interrupts.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/riscv/lib/interrupts.c b/arch/riscv/lib/interrupts.c index d0d8de500e..903a1c4cd5 100644 --- a/arch/riscv/lib/interrupts.c +++ b/arch/riscv/lib/interrupts.c @@ -87,4 +87,6 @@ static void _exit_trap(ulong code, ulong epc, struct pt_regs *regs) } else { printf("Reserved\n"); } + + hang(); } From patchwork Fri Nov 9 12:59:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995520 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0x959cdz9sBZ for ; Sat, 10 Nov 2018 00:14:37 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 69437C220C8; Fri, 9 Nov 2018 13:07:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 85473C225C0; Fri, 9 Nov 2018 13:00:55 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E4EF1C225B5; Fri, 9 Nov 2018 13:00:15 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 5F3DCC2258E for ; Fri, 9 Nov 2018 13:00:12 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2JN4ZxDYRsAoMiIjcKDQEDAQECAQECAgJpHAyFPAZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/gRABhWiCdYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfLI15iUyBWSOBVTMaJIM7gicXg0OKWj4BMgGNQwEB X-IPAS-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2JN4ZxDYRsAoMiIjcKDQEDAQECAQECAgJpHAyFPAZ5EFEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/gRABhWiCdYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfLI15iUyBWSOBVTMaJIM7gicXg0OKWj4BMgGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622514" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:12 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ATAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGDOCE5jG+WLYk3hnENhGwCg0M3Cg0BAwEBAgEBAm0cDIU7BnkQUSE2Bg4FgyGBagMVqQSHeg2CGQkBh0iGAj+BEAGFaIJ1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx8sjXmJTIFZIoFVMxokgzuCJxeDQ4paPgMwAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714139" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:11 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:11 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:09 +0100 Message-ID: <20181109125923.7034-15-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No-0.872800-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 14/28] riscv: implement the invalidate_icache_* functions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Implement the functions invalidate_icache_range() and invalidate_icache_all(). RISC-V does not have instructions for explicit cache-control. The functions in this patch are implemented with the memory ordering instruction for synchronizing the instruction and data streams. This may be implemented as a cache flush or invalidate on simple processors, others may only invalidate the relevant cache lines. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/lib/cache.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/riscv/lib/cache.c b/arch/riscv/lib/cache.c index 1d67c49c2c..d642a38a07 100644 --- a/arch/riscv/lib/cache.c +++ b/arch/riscv/lib/cache.c @@ -12,6 +12,16 @@ void flush_dcache_range(unsigned long start, unsigned long end) void invalidate_icache_range(unsigned long start, unsigned long end) { + /* + * RISC-V does not have an instruction for invalidating parts of the + * instruction cache. Invalidate all of it instead. + */ + invalidate_icache_all(); +} + +void invalidate_icache_all(void) +{ + asm volatile ("fence.i" ::: "memory"); } void invalidate_dcache_range(unsigned long start, unsigned long end) From patchwork Fri Nov 9 12:59:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995516 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0vv5k9Zz9sBZ for ; Sat, 10 Nov 2018 00:13:31 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 71B5AC22517; Fri, 9 Nov 2018 13:06:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 121EFC225A7; Fri, 9 Nov 2018 13:00:48 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6125FC22592; Fri, 9 Nov 2018 13:00:19 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 6AF11C22563 for ; Fri, 9 Nov 2018 13:00:13 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2FbAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBZYIEgVY5jG+WLZAoDYRsAoMiIjgWAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEYVoiAMCiRGWDS4HAoERgQcEi1KDIAsYgVeHeIcfiVaET4lMgVoigVUzGiSDO4InF4NDilo+ATIBjUMBAQ X-IPAS-Result: A2FbAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBZYIEgVY5jG+WLZAoDYRsAoMiIjgWAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEYVoiAMCiRGWDS4HAoERgQcEi1KDIAsYgVeHeIcfiVaET4lMgVoigVUzGiSDO4InF4NDilo+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622515" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:13 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DjAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBZYM5ITmMb5YtkCgNhGwCg0M4FgEDAQECAQECbRwMhTsGeRBRITYGDgWDIYFqAxWpBId6DYIZCQGHSIYCP4ERhWiIAwKJEZYNLgcCgRGBBwSLUoMgCxiBV4d4hx+JVoRPiUyBWiGBVTMaJIM7gicXg0OKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714143" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:12 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:11 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:10 +0100 Message-ID: <20181109125923.7034-16-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--9.577400-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 15/28] riscv: fix inconsistent use of spaces and tabs in start.S X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" start.S uses both tabs and spaces after instructions. Fix this by only using tabs after instructions. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/cpu/start.S | 322 ++++++++++++++++++++--------------------- 1 file changed, 161 insertions(+), 161 deletions(-) diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index 7cd7755190..bd5904500c 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -16,56 +16,56 @@ #include #ifdef CONFIG_32BIT -#define LREG lw -#define SREG sw -#define REGBYTES 4 +#define LREG lw +#define SREG sw +#define REGBYTES 4 #define RELOC_TYPE R_RISCV_32 #define SYM_INDEX 0x8 #define SYM_SIZE 0x10 #else -#define LREG ld -#define SREG sd -#define REGBYTES 8 +#define LREG ld +#define SREG sd +#define REGBYTES 8 #define RELOC_TYPE R_RISCV_64 #define SYM_INDEX 0x20 #define SYM_SIZE 0x18 #endif -.section .text +.section .text .globl _start _start: - j handle_reset + j handle_reset nmi_vector: - j nmi_vector + j nmi_vector trap_vector: - j trap_entry + j trap_entry .global trap_entry handle_reset: - li t0, CONFIG_SYS_SDRAM_BASE - SREG a2, 0(t0) - la t0, trap_entry - csrw mtvec, t0 - csrwi mstatus, 0 - csrwi mie, 0 + li t0, CONFIG_SYS_SDRAM_BASE + SREG a2, 0(t0) + la t0, trap_entry + csrw mtvec, t0 + csrwi mstatus, 0 + csrwi mie, 0 /* * Do CPU critical regs init only at reboot, * not when booting from ram */ #ifdef CONFIG_INIT_CRITICAL - jal cpu_init_crit /* Do CPU critical regs init */ + jal cpu_init_crit /* Do CPU critical regs init */ #endif /* * Set stackpointer in internal/ex RAM to call board_init_f */ call_board_init_f: - li t0, -16 - li t1, CONFIG_SYS_INIT_SP_ADDR - and sp, t1, t0 /* force 16 byte alignment */ + li t0, -16 + li t1, CONFIG_SYS_INIT_SP_ADDR + and sp, t1, t0 /* force 16 byte alignment */ #ifdef CONFIG_DEBUG_UART jal debug_uart_init @@ -77,9 +77,9 @@ call_board_init_f_0: mv sp, a0 jal board_init_f_init_reserve - mv a0, zero /* a0 <-- boot_flags = 0 */ - la t5, board_init_f - jr t5 /* jump to board_init_f() */ + mv a0, zero /* a0 <-- boot_flags = 0 */ + la t5, board_init_f + jr t5 /* jump to board_init_f() */ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -90,200 +90,200 @@ call_board_init_f_0: */ .globl relocate_code relocate_code: - mv s2, a0 /* save addr_sp */ - mv s3, a1 /* save addr of gd */ - mv s4, a2 /* save addr of destination */ + mv s2, a0 /* save addr_sp */ + mv s3, a1 /* save addr of gd */ + mv s4, a2 /* save addr of destination */ /* *Set up the stack */ stack_setup: - mv sp, s2 - la t0, _start - sub t6, s4, t0 /* t6 <- relocation offset */ - beq t0, s4, clear_bss /* skip relocation */ + mv sp, s2 + la t0, _start + sub t6, s4, t0 /* t6 <- relocation offset */ + beq t0, s4, clear_bss /* skip relocation */ - mv t1, s4 /* t1 <- scratch for copy_loop */ - la t3, __bss_start - sub t3, t3, t0 /* t3 <- __bss_start_ofs */ - add t2, t0, t3 /* t2 <- source end address */ + mv t1, s4 /* t1 <- scratch for copy_loop */ + la t3, __bss_start + sub t3, t3, t0 /* t3 <- __bss_start_ofs */ + add t2, t0, t3 /* t2 <- source end address */ copy_loop: - LREG t5, 0(t0) - addi t0, t0, REGBYTES - SREG t5, 0(t1) - addi t1, t1, REGBYTES - blt t0, t2, copy_loop + LREG t5, 0(t0) + addi t0, t0, REGBYTES + SREG t5, 0(t1) + addi t1, t1, REGBYTES + blt t0, t2, copy_loop /* * Update dynamic relocations after board_init_f */ fix_rela_dyn: - la t1, __rel_dyn_start - la t2, __rel_dyn_end - beq t1, t2, clear_bss - add t1, t1, t6 /* t1 <- rela_dyn_start in RAM */ - add t2, t2, t6 /* t2 <- rela_dyn_end in RAM */ + la t1, __rel_dyn_start + la t2, __rel_dyn_end + beq t1, t2, clear_bss + add t1, t1, t6 /* t1 <- rela_dyn_start in RAM */ + add t2, t2, t6 /* t2 <- rela_dyn_end in RAM */ /* * skip first reserved entry: address, type, addend */ - bne t1, t2, 7f + bne t1, t2, 7f 6: - LREG t5, -(REGBYTES*2)(t1) /* t5 <-- relocation info:type */ - li t3, R_RISCV_RELATIVE /* reloc type R_RISCV_RELATIVE */ - bne t5, t3, 8f /* skip non-RISCV_RELOC entries */ - LREG t3, -(REGBYTES*3)(t1) - LREG t5, -(REGBYTES)(t1) /* t5 <-- addend */ - add t5, t5, t6 /* t5 <-- location to fix up in RAM */ - add t3, t3, t6 /* t3 <-- location to fix up in RAM */ - SREG t5, 0(t3) + LREG t5, -(REGBYTES*2)(t1) /* t5 <-- relocation info:type */ + li t3, R_RISCV_RELATIVE /* reloc type R_RISCV_RELATIVE */ + bne t5, t3, 8f /* skip non-RISCV_RELOC entries */ + LREG t3, -(REGBYTES*3)(t1) + LREG t5, -(REGBYTES)(t1) /* t5 <-- addend */ + add t5, t5, t6 /* t5 <-- location to fix up in RAM */ + add t3, t3, t6 /* t3 <-- location to fix up in RAM */ + SREG t5, 0(t3) 7: - addi t1, t1, (REGBYTES*3) - ble t1, t2, 6b + addi t1, t1, (REGBYTES*3) + ble t1, t2, 6b 8: - la t4, __dyn_sym_start - add t4, t4, t6 + la t4, __dyn_sym_start + add t4, t4, t6 9: - LREG t5, -(REGBYTES*2)(t1) /* t5 <-- relocation info:type */ - srli t0, t5, SYM_INDEX /* t0 <--- sym table index */ - andi t5, t5, 0xFF /* t5 <--- relocation type */ - li t3, RELOC_TYPE - bne t5, t3, 10f /* skip non-addned entries */ + LREG t5, -(REGBYTES*2)(t1) /* t5 <-- relocation info:type */ + srli t0, t5, SYM_INDEX /* t0 <--- sym table index */ + andi t5, t5, 0xFF /* t5 <--- relocation type */ + li t3, RELOC_TYPE + bne t5, t3, 10f /* skip non-addned entries */ - LREG t3, -(REGBYTES*3)(t1) - li t5, SYM_SIZE - mul t0, t0, t5 - add s1, t4, t0 - LREG t5, REGBYTES(s1) - add t5, t5, t6 /* t5 <-- location to fix up in RAM */ - add t3, t3, t6 /* t3 <-- location to fix up in RAM */ - SREG t5, 0(t3) + LREG t3, -(REGBYTES*3)(t1) + li t5, SYM_SIZE + mul t0, t0, t5 + add s1, t4, t0 + LREG t5, REGBYTES(s1) + add t5, t5, t6 /* t5 <-- location to fix up in RAM */ + add t3, t3, t6 /* t3 <-- location to fix up in RAM */ + SREG t5, 0(t3) 10: - addi t1, t1, (REGBYTES*3) - ble t1, t2, 9b + addi t1, t1, (REGBYTES*3) + ble t1, t2, 9b /* * trap update */ - la t0, trap_entry - add t0, t0, t6 - csrw mtvec, t0 + la t0, trap_entry + add t0, t0, t6 + csrw mtvec, t0 clear_bss: - la t0, __bss_start /* t0 <- rel __bss_start in FLASH */ - add t0, t0, t6 /* t0 <- rel __bss_start in RAM */ - la t1, __bss_end /* t1 <- rel __bss_end in FLASH */ - add t1, t1, t6 /* t1 <- rel __bss_end in RAM */ - li t2, 0x00000000 /* clear */ - beq t0, t1, call_board_init_r + la t0, __bss_start /* t0 <- rel __bss_start in FLASH */ + add t0, t0, t6 /* t0 <- rel __bss_start in RAM */ + la t1, __bss_end /* t1 <- rel __bss_end in FLASH */ + add t1, t1, t6 /* t1 <- rel __bss_end in RAM */ + li t2, 0x00000000 /* clear */ + beq t0, t1, call_board_init_r clbss_l: - SREG t2, 0(t0) /* clear loop... */ - addi t0, t0, REGBYTES - bne t0, t1, clbss_l + SREG t2, 0(t0) /* clear loop... */ + addi t0, t0, REGBYTES + bne t0, t1, clbss_l /* * We are done. Do not return, instead branch to second part of board * initialization, now running from RAM. */ call_board_init_r: - la t0, board_init_r - mv t4, t0 /* offset of board_init_r() */ - add t4, t4, t6 /* real address of board_init_r() */ + la t0, board_init_r + mv t4, t0 /* offset of board_init_r() */ + add t4, t4, t6 /* real address of board_init_r() */ /* * setup parameters for board_init_r */ - mv a0, s3 /* gd_t */ - mv a1, s4 /* dest_addr */ + mv a0, s3 /* gd_t */ + mv a1, s4 /* dest_addr */ /* * jump to it ... */ - jr t4 /* jump to board_init_r() */ + jr t4 /* jump to board_init_r() */ /* * trap entry */ trap_entry: - addi sp, sp, -32*REGBYTES - SREG x1, 1*REGBYTES(sp) - SREG x2, 2*REGBYTES(sp) - SREG x3, 3*REGBYTES(sp) - SREG x4, 4*REGBYTES(sp) - SREG x5, 5*REGBYTES(sp) - SREG x6, 6*REGBYTES(sp) - SREG x7, 7*REGBYTES(sp) - SREG x8, 8*REGBYTES(sp) - SREG x9, 9*REGBYTES(sp) - SREG x10, 10*REGBYTES(sp) - SREG x11, 11*REGBYTES(sp) - SREG x12, 12*REGBYTES(sp) - SREG x13, 13*REGBYTES(sp) - SREG x14, 14*REGBYTES(sp) - SREG x15, 15*REGBYTES(sp) - SREG x16, 16*REGBYTES(sp) - SREG x17, 17*REGBYTES(sp) - SREG x18, 18*REGBYTES(sp) - SREG x19, 19*REGBYTES(sp) - SREG x20, 20*REGBYTES(sp) - SREG x21, 21*REGBYTES(sp) - SREG x22, 22*REGBYTES(sp) - SREG x23, 23*REGBYTES(sp) - SREG x24, 24*REGBYTES(sp) - SREG x25, 25*REGBYTES(sp) - SREG x26, 26*REGBYTES(sp) - SREG x27, 27*REGBYTES(sp) - SREG x28, 28*REGBYTES(sp) - SREG x29, 29*REGBYTES(sp) - SREG x30, 30*REGBYTES(sp) - SREG x31, 31*REGBYTES(sp) - csrr a0, mcause - csrr a1, mepc - mv a2, sp - jal handle_trap - csrw mepc, a0 + addi sp, sp, -32*REGBYTES + SREG x1, 1*REGBYTES(sp) + SREG x2, 2*REGBYTES(sp) + SREG x3, 3*REGBYTES(sp) + SREG x4, 4*REGBYTES(sp) + SREG x5, 5*REGBYTES(sp) + SREG x6, 6*REGBYTES(sp) + SREG x7, 7*REGBYTES(sp) + SREG x8, 8*REGBYTES(sp) + SREG x9, 9*REGBYTES(sp) + SREG x10, 10*REGBYTES(sp) + SREG x11, 11*REGBYTES(sp) + SREG x12, 12*REGBYTES(sp) + SREG x13, 13*REGBYTES(sp) + SREG x14, 14*REGBYTES(sp) + SREG x15, 15*REGBYTES(sp) + SREG x16, 16*REGBYTES(sp) + SREG x17, 17*REGBYTES(sp) + SREG x18, 18*REGBYTES(sp) + SREG x19, 19*REGBYTES(sp) + SREG x20, 20*REGBYTES(sp) + SREG x21, 21*REGBYTES(sp) + SREG x22, 22*REGBYTES(sp) + SREG x23, 23*REGBYTES(sp) + SREG x24, 24*REGBYTES(sp) + SREG x25, 25*REGBYTES(sp) + SREG x26, 26*REGBYTES(sp) + SREG x27, 27*REGBYTES(sp) + SREG x28, 28*REGBYTES(sp) + SREG x29, 29*REGBYTES(sp) + SREG x30, 30*REGBYTES(sp) + SREG x31, 31*REGBYTES(sp) + csrr a0, mcause + csrr a1, mepc + mv a2, sp + jal handle_trap + csrw mepc, a0 /* * Remain in M-mode after mret */ - li t0, MSTATUS_MPP - csrs mstatus, t0 - LREG x1, 1*REGBYTES(sp) - LREG x2, 2*REGBYTES(sp) - LREG x3, 3*REGBYTES(sp) - LREG x4, 4*REGBYTES(sp) - LREG x5, 5*REGBYTES(sp) - LREG x6, 6*REGBYTES(sp) - LREG x7, 7*REGBYTES(sp) - LREG x8, 8*REGBYTES(sp) - LREG x9, 9*REGBYTES(sp) - LREG x10, 10*REGBYTES(sp) - LREG x11, 11*REGBYTES(sp) - LREG x12, 12*REGBYTES(sp) - LREG x13, 13*REGBYTES(sp) - LREG x14, 14*REGBYTES(sp) - LREG x15, 15*REGBYTES(sp) - LREG x16, 16*REGBYTES(sp) - LREG x17, 17*REGBYTES(sp) - LREG x18, 18*REGBYTES(sp) - LREG x19, 19*REGBYTES(sp) - LREG x20, 20*REGBYTES(sp) - LREG x21, 21*REGBYTES(sp) - LREG x22, 22*REGBYTES(sp) - LREG x23, 23*REGBYTES(sp) - LREG x24, 24*REGBYTES(sp) - LREG x25, 25*REGBYTES(sp) - LREG x26, 26*REGBYTES(sp) - LREG x27, 27*REGBYTES(sp) - LREG x28, 28*REGBYTES(sp) - LREG x29, 29*REGBYTES(sp) - LREG x30, 30*REGBYTES(sp) - LREG x31, 31*REGBYTES(sp) - addi sp, sp, 32*REGBYTES + li t0, MSTATUS_MPP + csrs mstatus, t0 + LREG x1, 1*REGBYTES(sp) + LREG x2, 2*REGBYTES(sp) + LREG x3, 3*REGBYTES(sp) + LREG x4, 4*REGBYTES(sp) + LREG x5, 5*REGBYTES(sp) + LREG x6, 6*REGBYTES(sp) + LREG x7, 7*REGBYTES(sp) + LREG x8, 8*REGBYTES(sp) + LREG x9, 9*REGBYTES(sp) + LREG x10, 10*REGBYTES(sp) + LREG x11, 11*REGBYTES(sp) + LREG x12, 12*REGBYTES(sp) + LREG x13, 13*REGBYTES(sp) + LREG x14, 14*REGBYTES(sp) + LREG x15, 15*REGBYTES(sp) + LREG x16, 16*REGBYTES(sp) + LREG x17, 17*REGBYTES(sp) + LREG x18, 18*REGBYTES(sp) + LREG x19, 19*REGBYTES(sp) + LREG x20, 20*REGBYTES(sp) + LREG x21, 21*REGBYTES(sp) + LREG x22, 22*REGBYTES(sp) + LREG x23, 23*REGBYTES(sp) + LREG x24, 24*REGBYTES(sp) + LREG x25, 25*REGBYTES(sp) + LREG x26, 26*REGBYTES(sp) + LREG x27, 27*REGBYTES(sp) + LREG x28, 28*REGBYTES(sp) + LREG x29, 29*REGBYTES(sp) + LREG x30, 30*REGBYTES(sp) + LREG x31, 31*REGBYTES(sp) + addi sp, sp, 32*REGBYTES mret #ifdef CONFIG_INIT_CRITICAL From patchwork Fri Nov 9 12:59:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995521 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0xn2DPjz9sCs for ; Sat, 10 Nov 2018 00:15:09 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 027B5C22564; Fri, 9 Nov 2018 13:07:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 6BD41C22556; Fri, 9 Nov 2018 13:00:56 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 5119AC22582; Fri, 9 Nov 2018 13:00:19 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id E9AABC22579 for ; Fri, 9 Nov 2018 13:00:13 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2QKA2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWHeg2CGQkBh0iEKoFYP4Z5gXGBBIUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZI4FVMxokgzuGAYpaPgEyAYp2gk0BAQ X-IPAS-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2QKA2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWHeg2CGQkBh0iEKoFYP4Z5gXGBBIUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZI4FVMxokgzuGAYpaPgEyAYp2gk0BAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622516" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:13 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CkAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBVAQBAQsBgzghOYxvli2QKA2EbAKDQzcKDQEDAQECAQECbRwMhTsGeRBRITYGDgWDIYFqAxWpBId6DYIZCQGHSIYCP4Z5gXGBBIUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZIoFVMxokgzuGAYpaPgMwAYp2gk0BAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714144" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:13 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:12 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:11 +0100 Message-ID: <20181109125923.7034-17-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--2.743100-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 16/28] riscv: align mtvec on a 4-byte boundary X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The machine trap-vector base address (mtvec) must be aligned on a 4-byte boundary. Add the necessary align directive to trap_entry. This patch also removes the global directive for trap_entry, which is not required. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: None arch/riscv/cpu/start.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index bd5904500c..88b4aaa1c0 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -42,7 +42,6 @@ nmi_vector: trap_vector: j trap_entry -.global trap_entry handle_reset: li t0, CONFIG_SYS_SDRAM_BASE SREG a2, 0(t0) @@ -208,6 +207,7 @@ call_board_init_r: /* * trap entry */ +.align 2 trap_entry: addi sp, sp, -32*REGBYTES SREG x1, 1*REGBYTES(sp) From patchwork Fri Nov 9 12:59:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995506 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0pf4cN3z9s9h for ; Sat, 10 Nov 2018 00:08:58 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 6766BC2253E; Fri, 9 Nov 2018 13:06:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id C5B1CC225A6; Fri, 9 Nov 2018 13:00:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B94ECC225A4; Fri, 9 Nov 2018 13:00:21 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 875F5C22533 for ; Fri, 9 Nov 2018 13:00:15 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvjSmJBIk3hHcUgWYNhGwCgyIiNgsNAQMBAQIBAQICAmkcDIU8BnkQIDEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/gRABhWiCET2FNQKJEYFslCEuBwKBEYEHBItSgyALGIFXh3grhnQsjXmJTIFKAy+BVTMaJIM7hgGKWj4BMgGNQwEB X-IPAS-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvjSmJBIk3hHcUgWYNhGwCgyIiNgsNAQMBAQIBAQICAmkcDIU8BnkQIDEhNgYOBYMhgWoDFAGpBYd6DYIZCQGHSIQqgVg/gRABhWiCET2FNQKJEYFslCEuBwKBEYEHBItSgyALGIFXh3grhnQsjXmJTIFKAy+BVTMaJIM7hgGKWj4BMgGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622517" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:15 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AaAADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBUwQBAQELAYM4ITmMb40piQSJN4R3FIFmDYRsAoNDNgsNAQMBAQIBAQJtHAyFOwZ5ECAxITYGDgWDIYFqAxWpBId6DYIZCQGHSIYCP4EQAYVoghE9hTUCiRGBbJQhLgcCgRGBBwSLUoMgCxiBV4d4K4Z0LI15iUyBSgMugVUzGiSDO4YBilo+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714148" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:14 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:13 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:12 +0100 Message-ID: <20181109125923.7034-18-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.194900-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Marek Vasut , Michal Simek , Stephen Warren , Macpaul Lin , Greentime Hu Subject: [U-Boot] [PATCH v3 17/28] Drop CONFIG_INIT_CRITICAL X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Bin Meng This is now deprecated and no board is using it. Drop it. Signed-off-by: Bin Meng Signed-off-by: Lukas Auer --- Changes in v3: None Changes in v2: - New patch to replace patch "riscv: remove CONFIG_INIT_CRITICAL" arch/nds32/cpu/n1213/start.S | 51 ---------------------------------- arch/riscv/cpu/start.S | 13 --------- board/armltd/integrator/README | 4 +-- include/common.h | 5 ---- scripts/config_whitelist.txt | 1 - 5 files changed, 1 insertion(+), 73 deletions(-) diff --git a/arch/nds32/cpu/n1213/start.S b/arch/nds32/cpu/n1213/start.S index aa9457f5e4..cf966e2132 100644 --- a/arch/nds32/cpu/n1213/start.S +++ b/arch/nds32/cpu/n1213/start.S @@ -200,14 +200,6 @@ update_gp: jal turnoff_watchdog #endif -/* - * Do CPU critical regs init only at reboot, - * not when booting from ram - */ -#ifdef CONFIG_INIT_CRITICAL - jal cpu_init_crit ! Do CPU critical regs init -#endif - /* * Set stackpointer in internal RAM to call board_init_f * $sp must be 8-byte alignment for ABI compliance. @@ -318,49 +310,6 @@ call_board_init_r: /* jump to it ... */ jr $lp /* jump to board_init_r() */ -/* - * Initialize CPU critical registers - * - * 1. Setup control registers - * 1.1 Mask all IRQs - * 1.2 Flush cache and TLB - * 1.3 Disable MMU and cache - * 2. Setup memory timing - */ - -cpu_init_crit: - - move $r0, $lp /* push ra */ - - /* Disable Interrupts by clear GIE in $PSW reg */ - setgie.d - - /* Flush caches and TLB */ - /* Invalidate caches */ - jal invalidate_icac - jal invalidate_dcac - - /* Flush TLB */ - mfsr $p0, $MMU_CFG - andi $p0, $p0, 0x3 ! MMPS - li $p1, 0x2 ! TLB MMU - bne $p0, $p1, 1f - tlbop flushall ! Flush TLB - -1: - ! Disable MMU, Dcache - ! Whitiger is MMU disabled when reset - ! Disable the D$ - mfsr $p0, MR_CAC_CTL ! Get the $CACHE_CTL reg - li $p1, DIS_DCAC - and $p0, $p0, $p1 ! Set DC_EN bit - mtsr $p0, MR_CAC_CTL ! write back the $CACHE_CTL reg - isb - - move $lp, $r0 -2: - ret - /* * Invalidate I$ */ diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index 88b4aaa1c0..9804a8ac44 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -50,14 +50,6 @@ handle_reset: csrwi mstatus, 0 csrwi mie, 0 -/* - * Do CPU critical regs init only at reboot, - * not when booting from ram - */ -#ifdef CONFIG_INIT_CRITICAL - jal cpu_init_crit /* Do CPU critical regs init */ -#endif - /* * Set stackpointer in internal/ex RAM to call board_init_f */ @@ -285,8 +277,3 @@ trap_entry: LREG x31, 31*REGBYTES(sp) addi sp, sp, 32*REGBYTES mret - -#ifdef CONFIG_INIT_CRITICAL -cpu_init_crit: - ret -#endif diff --git a/board/armltd/integrator/README b/board/armltd/integrator/README index 5a0e934924..af9dcc1f4f 100644 --- a/board/armltd/integrator/README +++ b/board/armltd/integrator/README @@ -36,9 +36,7 @@ In case c) it may be necessary for U-Boot to perform CM dependent initialization Configuring U-Boot : ------------------ The makefile contains targets for Integrator platforms of both types -fitted with all current variants of CM. If these targets are to be used with -boot process c) above then CONFIG_INIT_CRITICAL may need to be defined to ensure -that the CM is correctly configured. +fitted with all current variants of CM. There are also targets independent of CM. These may not be suitable for boot process c) above. They have been preserved for backward compatibility with diff --git a/include/common.h b/include/common.h index 8b9f859c07..9b9bedc53a 100644 --- a/include/common.h +++ b/include/common.h @@ -558,11 +558,6 @@ int cpu_release(u32 nr, int argc, char * const argv[]); #endif #endif -#ifdef CONFIG_INIT_CRITICAL -#error CONFIG_INIT_CRITICAL is deprecated! -#error Read section CONFIG_SKIP_LOWLEVEL_INIT in README. -#endif - #define ROUND(a,b) (((a) + (b) - 1) & ~((b) - 1)) /* diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 94c0f1ff82..a03116b984 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -963,7 +963,6 @@ CONFIG_IMX_OTP CONFIG_IMX_VIDEO_SKIP CONFIG_INETSPACE_V2 CONFIG_INITRD_TAG -CONFIG_INIT_CRITICAL CONFIG_INIT_IGNORE_ERROR CONFIG_INI_ALLOW_MULTILINE CONFIG_INI_CASE_INSENSITIVE From patchwork Fri Nov 9 12:59:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995505 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0nX3mGLz9s9h for ; Sat, 10 Nov 2018 00:08:00 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 1FACFC22535; Fri, 9 Nov 2018 13:03:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id C729BC220D0; Fri, 9 Nov 2018 13:00:32 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E3DE3C2253C; Fri, 9 Nov 2018 13:00:21 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 1C9A1C2257E for ; Fri, 9 Nov 2018 13:00:16 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EeAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtjkKBZg2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMQgEOAYRqBnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIIQZYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZI4FVMxokgzuGAYpaPgEyAYQCiUEBAQ X-IPAS-Result: A2EeAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwEBggKBVjmMb5YtjkKBZg2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMQgEOAYRqBnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIIQZYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZI4FVMxokgzuGAYpaPgEyAYQCiUEBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622518" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:15 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CkAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBVAQBAQsBgzghOYxvli2OQoFmDYRsAoNDNwoNAQMBAQIBAQJtHAyFOwZ5EFEhNgYOBYMhgWoDFakEh3oNghkJAYdIhgI/gRABhWiCEGWFDgKfHi4HAoERgQcEi1KDIAsYiU+HH44liUyBWSKBVTMaJIM7hgGKWj4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714152" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:15 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:14 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:13 +0100 Message-ID: <20181109125923.7034-19-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--0.251200-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 18/28] riscv: remove unused labels in start.S X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The labels nmi_vector, trap_vector and handle_reset in start.S are not used for RISC-V. Remove them. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: - Drop removal of code that stores the contents of a2; this broke the board ax25-ae350. The code will be removed again in a future patch. arch/riscv/cpu/start.S | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index 9804a8ac44..c313477ae0 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -34,15 +34,6 @@ .section .text .globl _start _start: - j handle_reset - -nmi_vector: - j nmi_vector - -trap_vector: - j trap_entry - -handle_reset: li t0, CONFIG_SYS_SDRAM_BASE SREG a2, 0(t0) la t0, trap_entry From patchwork Fri Nov 9 12:59:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995514 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0v76kZ9z9s3x for ; Sat, 10 Nov 2018 00:12:51 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AD9E9C22565; Fri, 9 Nov 2018 13:08:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B22CCC2254E; Fri, 9 Nov 2018 13:01:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BBF57C225AF; Fri, 9 Nov 2018 13:00:21 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id E7DB6C2258A for ; Fri, 9 Nov 2018 13:00:16 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGBWimBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIJ1hQ4CiR6WAC4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJIM7gz0BAYJCilo+ATIBjUMBAQ X-IPAS-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGBWimBVjmMb5YtkCgNhGwCgyIiNwoNAQMBAQIBAQICAmkcDIU8BnkQUSE2Bg4FgyGBagMUAakFh3oNghkJAYdIhCqBWD+BEAGFaIJ1hQ4CiR6WAC4HAoERgQcEi1KDIAsYiU+HH44liUyBWSOBVTMaJIM7gz0BAYJCilo+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622521" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:16 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CkAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBVAQBAQsBgVqBXiE5jG+WLZAoDYRsAoNDNwoNAQMBAQIBAQJtHAyFOwZ5EFEhNgYOBYMhgWoDFakEh3oNghkJAYdIhgI/gRABhWiCdYUOAokelgAuBwKBEYEHBItSgyALGIlPhx+OJYlMgVkigVUzGiSDO4M9AQGCQopaPgMwAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714153" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:15 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:15 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:14 +0100 Message-ID: <20181109125923.7034-20-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--3.397900-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 19/28] riscv: do not blindly modify the mstatus CSR X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The mstatus CSR includes WPRI (writes preserve values, reads ignore values) fields and must therefore not be set to zero without preserving these fields. It is not apparent why mstatus is set to zero here since it is not required for U-Boot to run. Remove it. This instruction and others encode zero as an immediate. RISC-V has the zero register for this purpose. Replace the immediates with the zero register. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/cpu/start.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index c313477ae0..b01ea6e224 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -38,8 +38,9 @@ _start: SREG a2, 0(t0) la t0, trap_entry csrw mtvec, t0 - csrwi mstatus, 0 - csrwi mie, 0 + + /* mask all interrupts */ + csrw mie, zero /* * Set stackpointer in internal/ex RAM to call board_init_f @@ -160,11 +161,10 @@ clear_bss: add t0, t0, t6 /* t0 <- rel __bss_start in RAM */ la t1, __bss_end /* t1 <- rel __bss_end in FLASH */ add t1, t1, t6 /* t1 <- rel __bss_end in RAM */ - li t2, 0x00000000 /* clear */ beq t0, t1, call_board_init_r clbss_l: - SREG t2, 0(t0) /* clear loop... */ + SREG zero, 0(t0) /* clear loop... */ addi t0, t0, REGBYTES bne t0, t1, clbss_l From patchwork Fri Nov 9 12:59:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995517 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0wK4bP6z9sBZ for ; Sat, 10 Nov 2018 00:13:53 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 484AAC22577; Fri, 9 Nov 2018 13:08:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 87369C225CC; Fri, 9 Nov 2018 13:01:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 61234C225C5; Fri, 9 Nov 2018 13:00:23 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id B9D03C22548 for ; Fri, 9 Nov 2018 13:00:17 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLoF6DYRsAoMiIjYLDQEDAQECAQECAgJpHAyFPAZ0BRBRITYGDgWDIYFqAxQBqQWHeg2CGQkBh0iEKoFYP4ERhWiCdYUOAohtljEuBwKBEYEHBItSgyALGIlPhx+CdIsxiUyBSgMvgVUzGiSDO4YBilo+ATIBjUMBAQ X-IPAS-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLoF6DYRsAoMiIjYLDQEDAQECAQECAgJpHAyFPAZ0BRBRITYGDgWDIYFqAxQBqQWHeg2CGQkBh0iEKoFYP4ERhWiCdYUOAohtljEuBwKBEYEHBItSgyALGIlPhx+CdIsxiUyBSgMvgVUzGiSDO4YBilo+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622523" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:17 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BPAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBUwUBAQsBgzghOYxvli2OLoF6DYRsAoNDNgsNAQMBAQIBAQJtHAyFOwZ0BRBRITYGDgWDIYFqAxWpBId6DYIZCQGHSIYCP4ERhWiCdYUOAohtljEuBwKBEYEHBItSgyALGIlPhx+CdIsxiUyBSgMugVUzGiSDO4YBilo+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714157" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:16 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:16 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:15 +0100 Message-ID: <20181109125923.7034-21-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--8.844700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Greentime Hu Subject: [U-Boot] [PATCH v3 20/28] riscv: save hart ID and device tree passed by prior boot stage X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Store the hart ID and device tree passed by the prior boot stage (in a0 and a1) in registers s0 and s1. Replace one use of s1 in start.S to avoid overwriting it. The device tree is also stored in memory to make it available to U-Boot with the configuration CONFIG_OF_PRIOR_STAGE. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: None arch/riscv/cpu/cpu.c | 6 ++++++ arch/riscv/cpu/start.S | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/riscv/cpu/cpu.c b/arch/riscv/cpu/cpu.c index ae57fb8313..d9f820c44c 100644 --- a/arch/riscv/cpu/cpu.c +++ b/arch/riscv/cpu/cpu.c @@ -6,6 +6,12 @@ #include #include +/* + * prior_stage_fdt_address must be stored in the data section since it is used + * before the bss section is available. + */ +phys_addr_t prior_stage_fdt_address __attribute__((section(".data"))); + enum { ISA_INVALID = 0, ISA_32BIT, diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index b01ea6e224..331a5345e3 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -34,6 +34,10 @@ .section .text .globl _start _start: + /* save hart id and dtb pointer */ + mv s0, a0 + mv s1, a1 + li t0, CONFIG_SYS_SDRAM_BASE SREG a2, 0(t0) la t0, trap_entry @@ -58,6 +62,10 @@ call_board_init_f_0: mv a0, sp jal board_init_f_alloc_reserve mv sp, a0 + + la t0, prior_stage_fdt_address + SREG s1, 0(t0) + jal board_init_f_init_reserve mv a0, zero /* a0 <-- boot_flags = 0 */ @@ -140,8 +148,8 @@ fix_rela_dyn: LREG t3, -(REGBYTES*3)(t1) li t5, SYM_SIZE mul t0, t0, t5 - add s1, t4, t0 - LREG t5, REGBYTES(s1) + add s5, t4, t0 + LREG t5, REGBYTES(s5) add t5, t5, t6 /* t5 <-- location to fix up in RAM */ add t3, t3, t6 /* t3 <-- location to fix up in RAM */ SREG t5, 0(t3) From patchwork Fri Nov 9 12:59:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995510 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0sF6xdvz9s9h for ; Sat, 10 Nov 2018 00:11:13 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AA0ECC22564; Fri, 9 Nov 2018 13:07:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8B1FBC2259D; Fri, 9 Nov 2018 13:01:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id F0B23C225C8; Fri, 9 Nov 2018 13:00:23 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id C7862C22540 for ; Fri, 9 Nov 2018 13:00:18 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EHAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUgQBAQEBCwGBWimBVjmMb5Ytji4UgWYNhGwCgyIiNQwNAQMBAQIBAQICAmkcDIU8BnQFEFEhNgYOBYMhgWoDFAGpBYU8gj4NghkJAYdIhCqBWD+BEYVoghFkhQ4CiRGWDS4HAoERgQcEi1KDIAsYiU+HH4J0izGJTIFFAzSBVTMaJIM7gicXfwECgkGKWj4BMgGNQwEB X-IPAS-Result: A2EHAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUgQBAQEBCwGBWimBVjmMb5Ytji4UgWYNhGwCgyIiNQwNAQMBAQIBAQICAmkcDIU8BnQFEFEhNgYOBYMhgWoDFAGpBYU8gj4NghkJAYdIhCqBWD+BEYVoghFkhQ4CiRGWDS4HAoERgQcEi1KDIAsYiU+HH4J0izGJTIFFAzSBVTMaJIM7gicXfwECgkGKWj4BMgGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622527" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:18 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A3AADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBUgYBAQsBgVqBXiE5jG+WLY4uFIFmDYRsAoNDNQwNAQMBAQIBAQJtHAyFOwZ0BRBRITYGDgWDIYFqAxWpBIU8gj4NghkJAYdIhgI/gRGFaIIRZIUOAokRlg0uBwKBEYEHBItSgyALGIlPhx+CdIsxiUyBRQMzgVUzGiSDO4InF38BAoJBilo+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714164" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:17 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:17 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:16 +0100 Message-ID: <20181109125923.7034-22-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.967100-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 21/28] riscv: qemu: use device tree passed by prior boot stage X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" QEMU provides a device tree, which is passed to U-Boot using register a1. We are now able to directly select the device tree with the configuration CONFIG_OF_PRIOR_STAGE. Replace the hard-coded address in qemu-riscv with it. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- Changes in v3: None Changes in v2: - Rebase onto u-boot-dm/next board/emulation/qemu-riscv/qemu-riscv.c | 11 ----------- configs/qemu-riscv32_defconfig | 2 +- configs/qemu-riscv64_defconfig | 2 +- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/board/emulation/qemu-riscv/qemu-riscv.c b/board/emulation/qemu-riscv/qemu-riscv.c index 2730a288fb..2ce093e19a 100644 --- a/board/emulation/qemu-riscv/qemu-riscv.c +++ b/board/emulation/qemu-riscv/qemu-riscv.c @@ -9,8 +9,6 @@ #include #include -#define MROM_FDT_ADDR 0x1020 - int board_init(void) { /* @@ -21,12 +19,3 @@ int board_init(void) return 0; } - -void *board_fdt_blob_setup(void) -{ - /* - * QEMU loads a generated DTB for us immediately - * after the reset vectors in the MROM - */ - return (void *)MROM_FDT_ADDR; -} diff --git a/configs/qemu-riscv32_defconfig b/configs/qemu-riscv32_defconfig index ff1fb1f30e..72c54a3dd5 100644 --- a/configs/qemu-riscv32_defconfig +++ b/configs/qemu-riscv32_defconfig @@ -3,4 +3,4 @@ CONFIG_TARGET_QEMU_VIRT=y CONFIG_NR_DRAM_BANKS=1 CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y -CONFIG_OF_BOARD=y +CONFIG_OF_PRIOR_STAGE=y diff --git a/configs/qemu-riscv64_defconfig b/configs/qemu-riscv64_defconfig index 60b647efe8..44766c38f6 100644 --- a/configs/qemu-riscv64_defconfig +++ b/configs/qemu-riscv64_defconfig @@ -4,4 +4,4 @@ CONFIG_ARCH_RV64I=y CONFIG_NR_DRAM_BANKS=1 CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y -CONFIG_OF_BOARD=y +CONFIG_OF_PRIOR_STAGE=y From patchwork Fri Nov 9 12:59:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995513 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0tq3QhBz9s3x for ; Sat, 10 Nov 2018 00:12:35 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id F193BC2256F; Fri, 9 Nov 2018 13:03:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1CD46C2255E; Fri, 9 Nov 2018 13:00:36 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 71C15C22565; Fri, 9 Nov 2018 13:00:23 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id BF408C22555 for ; Fri, 9 Nov 2018 13:00:19 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2QKA2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWFPII+DYIZCQGHSIQqgVg/hnmCdYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZI4FVMxokgzuGAYpaPgEyAY1DAQE X-IPAS-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2QKA2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWFPII+DYIZCQGHSIQqgVg/hnmCdYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfjiWJTIFZI4FVMxokgzuGAYpaPgEyAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622528" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:19 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ATAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGDOCE5jG+WLZAoDYRsAoNDNwoNAQMBAQIBAQJtHAyFOwZ5EFEhNgYOBYMhgWoDFakEhTyCPg2CGQkBh0iGAj+GeYJ1hQ4Cnx4uBwKBEYEHBItSgyALGIlPhx+OJYlMgVkigVUzGiSDO4YBilo+AzABjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714168" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:18 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:18 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:17 +0100 Message-ID: <20181109125923.7034-23-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--4.719300-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 22/28] riscv: qemu: support booting Linux X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Support booting Linux (as payload of BBL) from FIT images. For this, the default CONFIG_SYS_BOOTM_LEN is increased to 16 MB, and the environment variables fdt_high and initrd_high are set to mark the device tree and initrd as in-place. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: None configs/qemu-riscv32_defconfig | 1 + configs/qemu-riscv64_defconfig | 1 + include/configs/qemu-riscv.h | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/configs/qemu-riscv32_defconfig b/configs/qemu-riscv32_defconfig index 72c54a3dd5..b55644378a 100644 --- a/configs/qemu-riscv32_defconfig +++ b/configs/qemu-riscv32_defconfig @@ -1,6 +1,7 @@ CONFIG_RISCV=y CONFIG_TARGET_QEMU_VIRT=y CONFIG_NR_DRAM_BANKS=1 +CONFIG_FIT=y CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y CONFIG_OF_PRIOR_STAGE=y diff --git a/configs/qemu-riscv64_defconfig b/configs/qemu-riscv64_defconfig index 44766c38f6..a542ac4893 100644 --- a/configs/qemu-riscv64_defconfig +++ b/configs/qemu-riscv64_defconfig @@ -2,6 +2,7 @@ CONFIG_RISCV=y CONFIG_TARGET_QEMU_VIRT=y CONFIG_ARCH_RV64I=y CONFIG_NR_DRAM_BANKS=1 +CONFIG_FIT=y CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y CONFIG_OF_PRIOR_STAGE=y diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h index d279c233b2..ba6a18f2e6 100644 --- a/include/configs/qemu-riscv.h +++ b/include/configs/qemu-riscv.h @@ -15,7 +15,13 @@ #define CONFIG_SYS_MALLOC_LEN SZ_8M +#define CONFIG_SYS_BOOTM_LEN SZ_16M + /* Environment options */ #define CONFIG_ENV_SIZE SZ_4K +#define CONFIG_EXTRA_ENV_SETTINGS \ + "fdt_high=0xffffffffffffffff\0" \ + "initrd_high=0xffffffffffffffff\0" + #endif /* __CONFIG_H */ From patchwork Fri Nov 9 12:59:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995509 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0rz2qrFz9s9h for ; Sat, 10 Nov 2018 00:10:59 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 19942C2256A; Fri, 9 Nov 2018 13:04:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1BD70C22541; Fri, 9 Nov 2018 13:00:44 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 631B4C22569; Fri, 9 Nov 2018 13:00:24 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 906C1C22575 for ; Fri, 9 Nov 2018 13:00:20 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EHAAAmhOVb/xoHYZlkGQEBAQEBAQEBAQEBAQcBAQEBAQGBUwIBAQEBAQsBggOBVjmMb5Ytji6Beg2EbAKDIiI2Cw0BAwEBAgEBAgICaRwMhTwGJ00FEFEhNgYKBAWDIYFqAxQBqFIzh3oNghkJAYdIhCqBWD+BEAGFaIgDAokRgWyUIS4HAoERgQcEi1KDIAsYgVeHeIcfiVaET4lMgUoCMIFVMxokgzuCJxcSgzGKWj4BMgGKdgSCSQEB X-IPAS-Result: A2EHAAAmhOVb/xoHYZlkGQEBAQEBAQEBAQEBAQcBAQEBAQGBUwIBAQEBAQsBggOBVjmMb5Ytji6Beg2EbAKDIiI2Cw0BAwEBAgEBAgICaRwMhTwGJ00FEFEhNgYKBAWDIYFqAxQBqFIzh3oNghkJAYdIhCqBWD+BEAGFaIgDAokRgWyUIS4HAoERgQcEi1KDIAsYgVeHeIcfiVaET4lMgUoCMIFVMxokgzuCJxcSgzGKWj4BMgGKdgSCSQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622531" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:20 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AJAADxg+Vb/xBhWMBkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGDOCE5jG+WLY4ugXoNhGwCg0M2Cw0BAwEBAgEBAm0cDIU7BidNBRBRITYGCgQFgyGBagMVqFEzh3oNghkJAYdIhgI/gRABhWiIAwKJEYFslCEuBwKBEYEHBItSgyALGIFXh3iHH4lWhE+JTIFKAi+BVTMaJIM7gicXEoMxilo+AzABinYEgkkBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714171" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:19 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:19 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:18 +0100 Message-ID: <20181109125923.7034-24-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--3.343800-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Alexander Graf , Greentime Hu Subject: [U-Boot] [PATCH v3 23/28] riscv: align bootm implementation with that of other architectures X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The bootm implementation of RISC-V diverges from that of other architectures. Update it to match the implementation of other architectures. The ARM implementation is used as a reference. This adds the following features and changes to RISC-V. * Add support for the BOOTM_STATE_OS_FAKE_GO command * Call the remove function on devices with the removal flag set before booting Linux * Force disconnect USB devices from the host before booting Linux * Print and add bootstage information to the device tree before booting Linux Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: - Rebase onto u-boot-dm/next arch/riscv/lib/bootm.c | 97 ++++++++++++++++++++++++++++++------------ 1 file changed, 70 insertions(+), 27 deletions(-) diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index 2b5ccce933..124aeefff8 100644 --- a/arch/riscv/lib/bootm.c +++ b/arch/riscv/lib/bootm.c @@ -8,6 +8,8 @@ #include #include +#include +#include #include #include #include @@ -26,26 +28,41 @@ int arch_fixup_fdt(void *blob) return 0; } -int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) +/** + * announce_and_cleanup() - Print message and prepare for kernel boot + * + * @fake: non-zero to do everything except actually boot + */ +static void announce_and_cleanup(int fake) { - void (*kernel)(ulong hart, void *dtb); - - /* - * allow the PREP bootm subcommand, it is required for bootm to work - */ - if (flag & BOOTM_STATE_OS_PREP) - return 0; + printf("\nStarting kernel ...%s\n\n", fake ? + "(fake run for tracing)" : ""); + bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel"); +#ifdef CONFIG_BOOTSTAGE_FDT + bootstage_fdt_add_report(); +#endif +#ifdef CONFIG_BOOTSTAGE_REPORT + bootstage_report(); +#endif - if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) - return 1; +#ifdef CONFIG_USB_DEVICE + udc_disconnect(); +#endif - kernel = (void (*)(ulong, void *))images->ep; + board_quiesce_devices(); - bootstage_mark(BOOTSTAGE_ID_RUN_OS); + /* + * Call remove function of all devices with a removal flag set. + * This may be useful for last-stage operations, like cancelling + * of DMA operation or releasing device internal buffers. + */ + dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL); - debug("## Transferring control to Linux (at address %08lx) ...\n", - (ulong)kernel); + cleanup_before_linux(); +} +static void boot_prep_linux(bootm_headers_t *images) +{ if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) { #ifdef CONFIG_OF_LIBFDT debug("using: FDT\n"); @@ -54,24 +71,50 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) hang(); } #endif + } else { + printf("Device tree not found or missing FDT support\n"); + hang(); } +} - /* we assume that the kernel is in place */ - printf("\nStarting kernel ...\n\n"); +static void boot_jump_linux(bootm_headers_t *images, int flag) +{ + void (*kernel)(ulong hart, void *dtb); + int fake = (flag & BOOTM_STATE_OS_FAKE_GO); - /* - * Call remove function of all devices with a removal flag set. - * This may be useful for last-stage operations, like cancelling - * of DMA operation or releasing device internal buffers. - */ - dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL); + kernel = (void (*)(ulong, void *))images->ep; - cleanup_before_linux(); + bootstage_mark(BOOTSTAGE_ID_RUN_OS); + + debug("## Transferring control to Linux (at address %08lx) ...\n", + (ulong)kernel); - if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) - kernel(csr_read(mhartid), images->ft_addr); + announce_and_cleanup(fake); - /* does not return */ + if (!fake) { + if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) + kernel(csr_read(mhartid), images->ft_addr); + } +} + +int do_bootm_linux(int flag, int argc, char * const argv[], + bootm_headers_t *images) +{ + /* No need for those on RISC-V */ + if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE) + return -1; - return 1; + if (flag & BOOTM_STATE_OS_PREP) { + boot_prep_linux(images); + return 0; + } + + if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) { + boot_jump_linux(images, flag); + return 0; + } + + boot_prep_linux(images); + boot_jump_linux(images, flag); + return 0; } From patchwork Fri Nov 9 12:59:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995524 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s1033rs8z9sCs for ; Sat, 10 Nov 2018 00:17:07 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 4AC3DC22578; Fri, 9 Nov 2018 13:05:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 23A06C22597; Fri, 9 Nov 2018 13:00:45 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id ECD4EC2252C; Fri, 9 Nov 2018 13:00:27 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 247F1C2257C for ; Fri, 9 Nov 2018 13:00:23 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2H5AAAmhOVb/xoHYZlkGwEBAQEDAQEBBwMBAQGBZYIEZnA5jG+mVQ0lCYQ+AoMiIjgWAQMBAQIBAQICAmkcDIJqS2sBAQEBAQEjAjI/BnkQUVcGDgUJgxgBggABD6h2iiAJAYdIhCqBWD+IaoEEhQ4Cin2UTwcCgRGBBwSOcgsYiU+HHyyXRYFaIoFVMxokT4JsCYsThT8+ATIBinaCTQEB X-IPAS-Result: A2H5AAAmhOVb/xoHYZlkGwEBAQEDAQEBBwMBAQGBZYIEZnA5jG+mVQ0lCYQ+AoMiIjgWAQMBAQIBAQICAmkcDIJqS2sBAQEBAQEjAjI/BnkQUVcGDgUJgxgBggABD6h2iiAJAYdIhCqBWD+IaoEEhQ4Cin2UTwcCgRGBBwSOcgsYiU+HHyyXRYFaIoFVMxokT4JsCYsThT8+ATIBinaCTQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622533" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:21 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CyAgDxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBZYJqTyE5jG+mVQ0lhEcCg0M4FgEDAQECAQECbRwMhTsGeRBRVwYOBQmDGAGCAQ+odYogCQGHSIYCP4hqgQSFDgKKfZRPBwKBEYEHBI5yCxiJT4cfLJdFgVohgVUzGiRPgmwJixOFPz4DMAGKdoJNAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714177" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:21 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:20 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:19 +0100 Message-ID: <20181109125923.7034-25-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--3.635700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Heinrich Schuchardt , Alexander Graf Subject: [U-Boot] [PATCH v3 24/28] distro_bootcmd: add VirtIO distro boot command X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add a boot command to distro boot to support disks connected over the VirtIO bus. The boot command uses the shared block environment. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Alexander Graf --- Changes in v3: - New patch to add VirtIO distro boot command Changes in v2: None doc/README.distro | 3 ++- include/config_distro_bootcmd.h | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/doc/README.distro b/doc/README.distro index f8e9752a0f..ab6e6f4e74 100644 --- a/doc/README.distro +++ b/doc/README.distro @@ -292,7 +292,7 @@ Each entry in the macro defines a single boot device (e.g. a specific eMMC device or SD card) or type of boot device (e.g. USB disk). The parameters to the func macro (passed in by the internal implementation of the header) are: -- Upper-case disk type (MMC, SATA, SCSI, IDE, USB, DHCP, PXE). +- Upper-case disk type (MMC, SATA, SCSI, IDE, USB, DHCP, PXE, VIRTIO). - Lower-case disk type (same options as above). - ID of the specific disk (MMC only) or ignored for other types. @@ -398,6 +398,7 @@ The list of possible targets consists of: * scsi * ide * usb + * virtio Other *boot* variables than the ones defined above are only for internal use of the boot environment and are not guaranteed to exist or work in the same diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h index 54186efe7b..5324ede292 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h @@ -242,6 +242,18 @@ BOOT_TARGET_DEVICES_references_USB_without_CONFIG_CMD_USB #endif +#ifdef CONFIG_CMD_VIRTIO +#define BOOTENV_SHARED_VIRTIO BOOTENV_SHARED_BLKDEV(virtio) +#define BOOTENV_DEV_VIRTIO BOOTENV_DEV_BLKDEV +#define BOOTENV_DEV_NAME_VIRTIO BOOTENV_DEV_NAME_BLKDEV +#else +#define BOOTENV_SHARED_VIRTIO +#define BOOTENV_DEV_VIRTIO \ + BOOT_TARGET_DEVICES_references_VIRTIO_without_CONFIG_CMD_VIRTIO +#define BOOTENV_DEV_NAME_VIRTIO \ + BOOT_TARGET_DEVICES_references_VIRTIO_without_CONFIG_CMD_VIRTIO +#endif + #if defined(CONFIG_CMD_DHCP) #if defined(CONFIG_EFI_LOADER) /* http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml */ @@ -350,6 +362,7 @@ BOOTENV_SHARED_IDE \ BOOTENV_SHARED_UBIFS \ BOOTENV_SHARED_EFI \ + BOOTENV_SHARED_VIRTIO \ "boot_prefixes=/ /boot/\0" \ "boot_scripts=boot.scr.uimg boot.scr\0" \ "boot_script_dhcp=boot.scr.uimg\0" \ From patchwork Fri Nov 9 12:59:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995511 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0sf1LR5z9s9h for ; Sat, 10 Nov 2018 00:11:34 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id DC929C22553; Fri, 9 Nov 2018 13:06:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id EAEFCC225B0; Fri, 9 Nov 2018 13:00:50 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 87ACDC22582; Fri, 9 Nov 2018 13:00:26 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id E20B0C2257B for ; Fri, 9 Nov 2018 13:00:22 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2GyAAAmhOVb/xoHYZlkHAEBAQQBAQcEAQGBVAQBAQsBggOBVjmMb6ZVDYRsAoMiIjcKDQEDAQECAQECAgJpKIU8BnkQUVcGDgWDIYIBAakFiiAJAYdIhCqBWD+DboR8gQSFDgKfTAcCgRGBBwSOcgsYiU+HH5dxgVkjgVUzGiSDO5BbPgEyAYp2gk0BAQ X-IPAS-Result: A2GyAAAmhOVb/xoHYZlkHAEBAQQBAQcEAQGBVAQBAQsBggOBVjmMb6ZVDYRsAoMiIjcKDQEDAQECAQECAgJpKIU8BnkQUVcGDgWDIYIBAakFiiAJAYdIhCqBWD+DboR8gQSFDgKfTAcCgRGBBwSOcgsYiU+HH5dxgVkjgVUzGiSDO5BbPgEyAYp2gk0BAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622534" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:22 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CjAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBVAQBAQsBgzghOYxvplUNhGwCg0M3Cg0BAwEBAgEBAm0ohTsGeRBRVwYOBYMhggKpBIogCQGHSIYCP4NuhHyBBIUOAp9MBwKBEYEHBI5yCxiJT4cfl3GBWSKBVTMaJIM7kFs+AzABinaCTQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714179" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:21 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:21 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:20 +0100 Message-ID: <20181109125923.7034-26-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--4.853700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Alexander Graf Subject: [U-Boot] [PATCH v3 25/28] riscv: qemu: enable distro boot X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Enable distro boot on the qemu-riscv32/64 boards. Supported boot target devices are VirtIO and DHCP. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Alexander Graf --- Changes in v3: - New patch to enable distro boot on qemu-riscv32/64 Changes in v2: None configs/qemu-riscv32_defconfig | 2 ++ configs/qemu-riscv64_defconfig | 2 ++ include/configs/qemu-riscv.h | 14 +++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/configs/qemu-riscv32_defconfig b/configs/qemu-riscv32_defconfig index b55644378a..6334d8c0fc 100644 --- a/configs/qemu-riscv32_defconfig +++ b/configs/qemu-riscv32_defconfig @@ -1,7 +1,9 @@ CONFIG_RISCV=y CONFIG_TARGET_QEMU_VIRT=y +CONFIG_DISTRO_DEFAULTS=y CONFIG_NR_DRAM_BANKS=1 CONFIG_FIT=y CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y +# CONFIG_CMD_MII is not set CONFIG_OF_PRIOR_STAGE=y diff --git a/configs/qemu-riscv64_defconfig b/configs/qemu-riscv64_defconfig index a542ac4893..2d9ead93a2 100644 --- a/configs/qemu-riscv64_defconfig +++ b/configs/qemu-riscv64_defconfig @@ -1,8 +1,10 @@ CONFIG_RISCV=y CONFIG_TARGET_QEMU_VIRT=y CONFIG_ARCH_RV64I=y +CONFIG_DISTRO_DEFAULTS=y CONFIG_NR_DRAM_BANKS=1 CONFIG_FIT=y CONFIG_DISPLAY_CPUINFO=y CONFIG_DISPLAY_BOARDINFO=y +# CONFIG_CMD_MII is not set CONFIG_OF_PRIOR_STAGE=y diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h index ba6a18f2e6..66d61bd896 100644 --- a/include/configs/qemu-riscv.h +++ b/include/configs/qemu-riscv.h @@ -20,8 +20,20 @@ /* Environment options */ #define CONFIG_ENV_SIZE SZ_4K +#define BOOT_TARGET_DEVICES(func) \ + func(VIRTIO, virtio, 0) \ + func(DHCP, dhcp, na) + +#include + #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffffffffffff\0" \ - "initrd_high=0xffffffffffffffff\0" + "initrd_high=0xffffffffffffffff\0" \ + "kernel_addr_r=0x81000000\0" \ + "fdt_addr_r=0x82000000\0" \ + "scriptaddr=0x82100000\0" \ + "pxefile_addr_r=0x82200000\0" \ + "ramdisk_addr_r=0x82300000\0" \ + BOOTENV #endif /* __CONFIG_H */ From patchwork Fri Nov 9 12:59:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995522 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0yZ1TcKz9sBZ for ; Sat, 10 Nov 2018 00:15:50 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E12E1C22567; Fri, 9 Nov 2018 13:04:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id AB6B2C22535; Fri, 9 Nov 2018 13:00:38 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 66607C22552; Fri, 9 Nov 2018 13:00:28 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id CA152C2254A for ; Fri, 9 Nov 2018 13:00:23 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2QKA2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWHeg2CGQkBh0hFg2WBWD+GeYJ1hQ4CjwKQHC4HAoERgQcEi1KDIAsYgVeHeCuGdCyNeYlMgVkjgVUzGiSDO4YBilo+ATIBjUMBAQ X-IPAS-Result: A2EVAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGCA4FWOYxvli2QKA2EbAKDIiI3Cg0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWHeg2CGQkBh0hFg2WBWD+GeYJ1hQ4CjwKQHC4HAoERgQcEi1KDIAsYgVeHeCuGdCyNeYlMgVkjgVUzGiSDO4YBilo+ATIBjUMBAQ X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622536" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:23 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A1AADxg+Vb/xBhWMBkGwEBAQEDAQEBBwMBAQGBVAMBAQELAYM4ITmMb5YtkCgNhGwCg0M3Cg0BAwEBAgEBAm0cDIU7BnkQUSE2Bg4FgyGBagMVqQSHeg2CGQkBh0hFhT0/hnmCdYUOAo8CkBwuBwKBEYEHBItSgyALGIFXh3grhnQsjXmJTIFZIoFVMxokgzuGAYpaPgMwAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714180" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:22 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:22 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:21 +0100 Message-ID: <20181109125923.7034-27-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--1.273900-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 26/28] dm: core: add missing prototype for ofnode_read_u64 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Simon Glass --- Changes in v3: None Changes in v2: - Move prototype location to match the location of the function in ofnode.c include/dm/ofnode.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index 2fc9fa39a3..92539b8b5f 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -236,6 +236,16 @@ int ofnode_read_u32_default(ofnode ref, const char *propname, u32 def); */ int ofnode_read_s32_default(ofnode node, const char *propname, s32 def); +/** + * ofnode_read_u64() - Read a 64-bit integer from a property + * + * @node: valid node reference to read property from + * @propname: name of the property to read from + * @outp: place to put value (if found) + * @return 0 if OK, -ve on error + */ +int ofnode_read_u64(ofnode node, const char *propname, u64 *outp); + /** * ofnode_read_u64_default() - Read a 64-bit integer from a property * From patchwork Fri Nov 9 12:59:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995512 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s0tQ2wL6z9s9h for ; Sat, 10 Nov 2018 00:12:14 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 16049C2253E; Fri, 9 Nov 2018 13:05:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 132D3C225A2; Fri, 9 Nov 2018 13:00:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0B2EEC220D5; Fri, 9 Nov 2018 13:00:28 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 4CA2DC22555 for ; Fri, 9 Nov 2018 13:00:24 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2ERAAAmhOVb/xoHYZlkGwEBAQEDAQEBBwMBAQGBUQYBAQELAQGCAoFWOYwQX44jljiBeg2EbAKDIiI0DQ0BAwEBAgEBAgICaShCAQ4BhGoGdAUQUVcGDgWDIYIBAakFiiAJAYdIhCqBWD+BEYJdhgCFDgKfTAcCgRGBBwSOcgsYiU+HH5RCgy+BQzmBVTMaJIM7gicXjh0+ATIBhAKJQQEB X-IPAS-Result: A2ERAAAmhOVb/xoHYZlkGwEBAQEDAQEBBwMBAQGBUQYBAQELAQGCAoFWOYwQX44jljiBeg2EbAKDIiI0DQ0BAwEBAgEBAgICaShCAQ4BhGoGdAUQUVcGDgWDIYIBAakFiiAJAYdIhCqBWD+BEYJdhgCFDgKfTAcCgRGBBwSOcgsYiU+HH5RCgy+BQzmBVTMaJIM7gicXjh0+ATIBhAKJQQEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622537" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:24 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AjAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBUQcBAQsBgzghOYwQX44jljiBeg2EbAKDQzQNDQEDAQECAQECbSiFOwZ0BRBRVwYOBYMhggKpBIogCQGHSIYCP4ERgl2GAIUOAp9MBwKBEYEHBI5yCxiJT4cflEKDL4FDOIFVMxokgzuCJxeOHT4DMAGNQwEB X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714185" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:23 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:23 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:22 +0100 Message-ID: <20181109125923.7034-28-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--5.054900-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Cc: Alexander Graf Subject: [U-Boot] [PATCH v3 27/28] riscv: qemu: detect and boot the kernel passed by QEMU X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" QEMU embeds the location of the kernel image in the device tree. Store this address in the environment as variable kernel_start. It is used in the board-local distro boot command QEMU to boot the kernel with the U-Boot device tree. The QEMU boot command is added as the first boot target device. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng Reviewed-by: Alexander Graf --- Changes in v3: - Adapt code and commit message to distro boot - Replace printf with debug - Clarify debug messages if no chosen node is found Changes in v2: - Rebase onto u-boot-dm/next - Boot Linux with the device tree provided by the prior boot stage board/emulation/qemu-riscv/Kconfig | 1 + board/emulation/qemu-riscv/qemu-riscv.c | 29 +++++++++++++++++++++++++ include/configs/qemu-riscv.h | 10 +++++++++ 3 files changed, 40 insertions(+) diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig index 37a80db6a9..be5839b7db 100644 --- a/board/emulation/qemu-riscv/Kconfig +++ b/board/emulation/qemu-riscv/Kconfig @@ -29,5 +29,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy imply CMD_EXT2 imply CMD_EXT4 imply CMD_FAT + imply BOARD_LATE_INIT endif diff --git a/board/emulation/qemu-riscv/qemu-riscv.c b/board/emulation/qemu-riscv/qemu-riscv.c index 2ce093e19a..587f2c4909 100644 --- a/board/emulation/qemu-riscv/qemu-riscv.c +++ b/board/emulation/qemu-riscv/qemu-riscv.c @@ -19,3 +19,32 @@ int board_init(void) return 0; } + +int board_late_init(void) +{ + ulong kernel_start; + ofnode chosen_node; + int ret; + + chosen_node = ofnode_path("/chosen"); + if (!ofnode_valid(chosen_node)) { + debug("No chosen node found, can't get kernel start address\n"); + return 0; + } + +#ifdef CONFIG_ARCH_RV64I + ret = ofnode_read_u64(chosen_node, "riscv,kernel-start", + (u64 *)&kernel_start); +#else + ret = ofnode_read_u32(chosen_node, "riscv,kernel-start", + (u32 *)&kernel_start); +#endif + if (ret) { + debug("Can't find kernel start address in device tree\n"); + return 0; + } + + env_set_hex("kernel_start", kernel_start); + + return 0; +} diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h index 66d61bd896..b29d155d09 100644 --- a/include/configs/qemu-riscv.h +++ b/include/configs/qemu-riscv.h @@ -21,11 +21,21 @@ #define CONFIG_ENV_SIZE SZ_4K #define BOOT_TARGET_DEVICES(func) \ + func(QEMU, qemu, na) \ func(VIRTIO, virtio, 0) \ func(DHCP, dhcp, na) #include +#define BOOTENV_DEV_QEMU(devtypeu, devtypel, instance) \ + "bootcmd_qemu=" \ + "if env exists kernel_start; then " \ + "bootm ${kernel_start} - ${fdtcontroladdr};" \ + "fi;\0" + +#define BOOTENV_DEV_NAME_QEMU(devtypeu, devtypel, instance) \ + "qemu " + #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffffffffffff\0" \ "initrd_high=0xffffffffffffffff\0" \ From patchwork Fri Nov 9 12:59:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Auer X-Patchwork-Id: 995523 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=aisec.fraunhofer.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42s1024LcHz9sBZ for ; Sat, 10 Nov 2018 00:17:06 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 5651CC2256D; Fri, 9 Nov 2018 13:08:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 07659C225BB; Fri, 9 Nov 2018 13:01:36 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D1599C2258D; Fri, 9 Nov 2018 13:00:30 +0000 (UTC) Received: from mail-edgeS23.fraunhofer.de (mail-edges23.fraunhofer.de [153.97.7.23]) by lists.denx.de (Postfix) with ESMTPS id 3A4C5C22578 for ; Fri, 9 Nov 2018 13:00:25 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLhSBZg2EbAKDIiI2Cw0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWFPII+DYIZCQGHSIQqgVg/gRGFaIIQZYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfgnSLMYYdgy+BSggqgVUzGiSDO4InFxKDMYpaPgEyAY1DAQE X-IPAS-Result: A2EKAAAmhOVb/xoHYZlkGgEBAQEBAgEBAQEHAgEBAQGBUwMBAQEBCwGCA4FWOYxvli2OLhSBZg2EbAKDIiI2Cw0BAwEBAgEBAgICaRwMhTwGeRBRITYGDgWDIYFqAxQBqQWFPII+DYIZCQGHSIQqgVg/gRGFaIIQZYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfgnSLMYYdgy+BSggqgVUzGiSDO4InFxKDMYpaPgEyAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="7622538" Received: from mail-mtas26.fraunhofer.de ([153.97.7.26]) by mail-edgeS23.fraunhofer.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Nov 2018 14:00:24 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BPAADxg+Vb/xBhWMBkHAEBAQQBAQcEAQGBUwUBAQsBgzghOYxvli2OLhSBZg2EbAKDQzYLDQEDAQECAQECbRwMhTsGeRBRITYGDgWDIYFqAxWpBIU8gj4NghkJAYdIhgI/gRGFaIIQZYUOAp8eLgcCgRGBBwSLUoMgCxiJT4cfgnSLMYYdgy+BSggpgVUzGiSDO4InFxKDMYpaPgMwAY1DAQE X-IronPort-AV: E=Sophos;i="5.54,483,1534802400"; d="scan'208";a="51714188" Received: from fgdemucivp01ltm.xch.fraunhofer.de (HELO FGDEMUCIMP12EXC.ads.fraunhofer.de) ([192.88.97.16]) by mail-mtaS26.fraunhofer.de with ESMTP/TLS/AES256-SHA; 09 Nov 2018 14:00:24 +0100 Received: from muc-nb-035.aisec.fraunhofer.de (10.80.233.51) by FGDEMUCIMP12EXC.ads.fraunhofer.de (10.80.232.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 9 Nov 2018 14:00:23 +0100 From: Lukas Auer To: Date: Fri, 9 Nov 2018 13:59:23 +0100 Message-ID: <20181109125923.7034-29-lukas.auer@aisec.fraunhofer.de> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> References: <20181109125923.7034-1-lukas.auer@aisec.fraunhofer.de> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.4179-8.200.1013-24212.007 X-TM-AS-Result: No--2.551700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Subject: [U-Boot] [PATCH v3 28/28] riscv: qemu: clear kernel-start/-end in device tree as workaround for BBL X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" QEMU specifies the location of Linux (supplied with the -kernel argument) in the device tree using the riscv,kernel-start and riscv,kernel-end properties. We currently rely on the SBI implementation of BBL to run Linux and therefore embed Linux as payload in BBL. This causes an issue, because BBL detects the kernel properties in the device tree and ignores the Linux payload as a result. Work around this issue by clearing the kernel properties in the device tree before booting Linux. Signed-off-by: Lukas Auer Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: - New patch board/emulation/qemu-riscv/Kconfig | 1 + board/emulation/qemu-riscv/qemu-riscv.c | 39 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig index be5839b7db..33ca253432 100644 --- a/board/emulation/qemu-riscv/Kconfig +++ b/board/emulation/qemu-riscv/Kconfig @@ -30,5 +30,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy imply CMD_EXT4 imply CMD_FAT imply BOARD_LATE_INIT + imply OF_BOARD_SETUP endif diff --git a/board/emulation/qemu-riscv/qemu-riscv.c b/board/emulation/qemu-riscv/qemu-riscv.c index 587f2c4909..d6167aaef1 100644 --- a/board/emulation/qemu-riscv/qemu-riscv.c +++ b/board/emulation/qemu-riscv/qemu-riscv.c @@ -48,3 +48,42 @@ int board_late_init(void) return 0; } + +/* + * QEMU specifies the location of Linux (supplied with the -kernel argument) + * in the device tree using the riscv,kernel-start and riscv,kernel-end + * properties. We currently rely on the SBI implementation of BBL to run + * Linux and therefore embed Linux as payload in BBL. This causes an issue, + * because BBL detects the kernel properties in the device tree and ignores + * the Linux payload as a result. To work around this issue, we clear the + * kernel properties before booting Linux. + * + * This workaround can be removed, once we do not require BBL for its SBI + * implementation anymore. + */ +int ft_board_setup(void *blob, bd_t *bd) +{ + int chosen_offset, ret; + + chosen_offset = fdt_path_offset(blob, "/chosen"); + if (chosen_offset < 0) + return 0; + +#ifdef CONFIG_ARCH_RV64I + ret = fdt_setprop_u64(blob, chosen_offset, "riscv,kernel-start", 0); +#else + ret = fdt_setprop_u32(blob, chosen_offset, "riscv,kernel-start", 0); +#endif + if (ret) + return ret; + +#ifdef CONFIG_ARCH_RV64I + ret = fdt_setprop_u64(blob, chosen_offset, "riscv,kernel-end", 0); +#else + ret = fdt_setprop_u32(blob, chosen_offset, "riscv,kernel-end", 0); +#endif + if (ret) + return ret; + + return 0; +}