From patchwork Tue Feb 12 10:30:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 158137 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp3664402jaa; Tue, 12 Feb 2019 02:32:18 -0800 (PST) X-Google-Smtp-Source: AHgI3IZzzWqPkvW30ZAh7ELJcPxVVqR7Xyg5QqVASLygUKQCoAV+wlTJur+omU5GktlYvNh6X+lZ X-Received: by 2002:a0d:fb83:: with SMTP id l125mr2156598ywf.455.1549967538490; Tue, 12 Feb 2019 02:32:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549967538; cv=none; d=google.com; s=arc-20160816; b=lpLvARuyWRHKENiGkbPjbYeKIPg6hkwzG5MewZfsJsRezDsb52PjSZkMfu3yiBWMdf MGEeceC3UDxZ2UFF2Qmx8Yy7cThT0ozbLIJG6JOgDPluTwzlTMapfMj35P74Qg+bK/KC A/bxinlPCP3T9HaCJRFMMyjufsRrsbvo2emMw2GBj5pSO+1Y3dmPvcEkkfColfiVGHUi iAB08VcxOubeCr3spUBZLaYydywLwsmHclRocZZncSVlFD5XCjnfpXuFbPNUY/XmG88r +I28frOKPN9hTJnnQq5LCvYSsI7A9pefX5veQqARYo4RMWzpUcToSR5pDi5GEv6R/SrZ qfwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:message-id:date:subject:to:from; bh=tN7e8pl7oCCGa1vb6Smdxkfa74X+8bBU8rJOvHnz/1A=; b=Ilxu9yra/AZMLqKlWJYLu2AdGhTrnweIEBmDVFluD4aLO4jCTRJN7iYLVUI+UHW5Tm qrQ8B20UqFifU34C1z/JUnbwELHxcks//xqeFdNvW9tstglx2bIqfCJ8qZT4jnu1btmm mQXAiZiRkSCWt1lbfspS6W6LcDvEeHnB3Ru2At+0ndfK9l4uwUodKxan6KWufrFDor0C KLo4bh6WPGoUZ2JBVboSAC4qy6lE3q6tssEJRBbHqmhbB03IgBEdfADZIBUMvc0kUVEe cZ9yEoXPuFNlVDhd3CG/aanTYfUVQjGSQtTQ4nAD+RjoAaF4m2cGRLaCg5KBFbXLxfFB OO5Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="grub-devel-bounces+patch=linaro.org@gnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a132si7626555ywc.360.2019.02.12.02.32.18 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 12 Feb 2019 02:32:18 -0800 (PST) Received-SPF: pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="grub-devel-bounces+patch=linaro.org@gnu.org" Received: from localhost ([127.0.0.1]:36924 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtVMP-0000sd-Sp for patch@linaro.org; Tue, 12 Feb 2019 05:32:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:37103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtVMB-0000q1-TW for grub-devel@gnu.org; Tue, 12 Feb 2019 05:32:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gtVM8-00041t-25 for grub-devel@gnu.org; Tue, 12 Feb 2019 05:32:01 -0500 Received: from mx2.suse.de ([195.135.220.15]:51862 helo=mx1.suse.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gtVM3-0002v3-DU for grub-devel@gnu.org; Tue, 12 Feb 2019 05:31:55 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 98980AEBD; Tue, 12 Feb 2019 10:31:11 +0000 (UTC) From: Alexander Graf To: grub-devel@gnu.org Subject: [PATCH v6 00/11] Add RISC-V support Date: Tue, 12 Feb 2019 11:30:57 +0100 Message-Id: <20190212103108.56963-1-agraf@suse.de> X-Mailer: git-send-email 2.12.3 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-Received-From: 195.135.220.15 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Cc: "rickchen36 @ gmail . com" , David Abdurachmanov , schwab@suse.de, "greentime @ andestech . com" , leif.lindholm@linaro.org, atish.patra@wdc.com, Michael Chang , Alistair Francis , Lukas Auer , Paul Walmsley , Bin Meng , Daniel Kiper MIME-Version: 1.0 Errors-To: grub-devel-bounces+patch=linaro.org@gnu.org Sender: "Grub-devel" As part of the plan for total world domination, we would like to make sure that booting on RISC-V is in a sane state before anyone goes and does quick hacks "just because". For that reason, U-Boot supports UEFI booting on RISC-V for a while now. This patch set is the second part of the puzzle, with grub learning how to deal with a UEFI enabled RISC-V target. The third bit (still missing) is to actually make a working Linux UEFI port. But that will come, I'm sure :). Looking forward to review feedback and testing, v1 -> v2: - adapt to new grub_open_file() API - adapt to new grub_create_loader_cmdline() API v2 -> v3: - fix riscv32 target v3 -> v4: - Rebase onto current git master - Change copyright from 2013 to 2018 - Coding style fixes - Add spec reference - Resurrect time reading code v4 -> v5: - Mark grub_arch_sync_dma_caches args as unused - Whitespace fix - Add spec link to mkimagexx.c - Remove curly braces - Use GRUB_EFI_LINUX_FDT_EXTRA_SPACE - Fix whitespace - s/failure/fail - Remove blank line at EOF - Add blank lines before and after license tag - New patch: RISC-V: Add libgcc helpers for clz v5 -> v6: - Remove most linux loading logic Alexander Graf (11): efi: Rename armxx to arch PE: Add RISC-V definitions elf.h: Add RISC-V definitions RISC-V: Add setjmp implementation RISC-V: Add early startup code RISC-V: Add Linux load logic RISC-V: Add awareness for RISC-V reloations RISC-V: Add auxiliary files RISC-V: Add libgcc helpers for clz RISC-V: Add to build system fdt: Treat device tree file type like ACPI configure.ac | 28 ++- gentpl.py | 11 +- grub-core/Makefile.am | 12 ++ grub-core/Makefile.core.def | 29 ++++ grub-core/commands/efi/shim_lock.c | 1 + grub-core/commands/file.c | 14 +- grub-core/kern/compiler-rt.c | 48 +++++- grub-core/kern/dl.c | 6 +- grub-core/kern/efi/mm.c | 2 +- grub-core/kern/emu/cache.c | 6 + grub-core/kern/emu/cache_s.S | 1 + grub-core/kern/emu/lite.c | 2 + grub-core/kern/riscv/cache.c | 63 +++++++ grub-core/kern/riscv/cache_flush.S | 44 +++++ grub-core/kern/riscv/dl.c | 340 +++++++++++++++++++++++++++++++++++++ grub-core/kern/riscv/efi/init.c | 76 +++++++++ grub-core/kern/riscv/efi/startup.S | 48 ++++++ grub-core/lib/efi/halt.c | 3 +- grub-core/lib/riscv/setjmp.S | 84 +++++++++ grub-core/lib/setjmp.S | 2 + grub-core/loader/arm64/linux.c | 10 +- grub-core/loader/arm64/xen_boot.c | 6 +- grub-core/loader/riscv/linux.c | 59 +++++++ include/grub/arm/linux.h | 2 +- include/grub/arm64/linux.h | 2 +- include/grub/compiler-rt.h | 19 ++- include/grub/dl.h | 6 +- include/grub/efi/api.h | 3 +- include/grub/efi/efi.h | 6 +- include/grub/efi/pe32.h | 5 + include/grub/elf.h | 58 +++++++ include/grub/file.h | 4 +- include/grub/misc.h | 3 +- include/grub/riscv32/efi/memory.h | 6 + include/grub/riscv32/linux.h | 41 +++++ include/grub/riscv32/setjmp.h | 27 +++ include/grub/riscv32/time.h | 28 +++ include/grub/riscv32/types.h | 34 ++++ include/grub/riscv64/efi/memory.h | 6 + include/grub/riscv64/linux.h | 43 +++++ include/grub/riscv64/setjmp.h | 27 +++ include/grub/riscv64/time.h | 28 +++ include/grub/riscv64/types.h | 34 ++++ include/grub/util/install.h | 2 + util/grub-install-common.c | 2 + util/grub-install.c | 28 +++ util/grub-mkimagexx.c | 259 ++++++++++++++++++++++++++++ util/grub-mknetdir.c | 4 +- util/grub-mkrescue.c | 16 +- util/grub-module-verifier.c | 56 ++++++ util/mkimage.c | 32 ++++ 51 files changed, 1637 insertions(+), 39 deletions(-) create mode 100644 grub-core/kern/riscv/cache.c create mode 100644 grub-core/kern/riscv/cache_flush.S create mode 100644 grub-core/kern/riscv/dl.c create mode 100644 grub-core/kern/riscv/efi/init.c create mode 100644 grub-core/kern/riscv/efi/startup.S create mode 100644 grub-core/lib/riscv/setjmp.S create mode 100644 grub-core/loader/riscv/linux.c create mode 100644 include/grub/riscv32/efi/memory.h create mode 100644 include/grub/riscv32/linux.h create mode 100644 include/grub/riscv32/setjmp.h create mode 100644 include/grub/riscv32/time.h create mode 100644 include/grub/riscv32/types.h create mode 100644 include/grub/riscv64/efi/memory.h create mode 100644 include/grub/riscv64/linux.h create mode 100644 include/grub/riscv64/setjmp.h create mode 100644 include/grub/riscv64/time.h create mode 100644 include/grub/riscv64/types.h -- 2.12.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel