From patchwork Tue Feb 12 10:31:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 158136 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp3664145jaa; Tue, 12 Feb 2019 02:32:01 -0800 (PST) X-Google-Smtp-Source: AHgI3IbZoEQMt3+63N72mDhcy1hI/Qrf/M2jhJTSMeG1aXAKQc9d2WRg1YaC2ksBfwJvALXd7nMz X-Received: by 2002:a25:800c:: with SMTP id m12mr2146908ybk.93.1549967521678; Tue, 12 Feb 2019 02:32:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549967521; cv=none; d=google.com; s=arc-20160816; b=Mf5E7oWPwScuTUFYRU0Ipjl4UFcaJUDzzasnufID6q7olXHRSDM2msZjJ4CITsnHGX DRNdFDkvfS6bTN49F/yHcpV8OAmsPLPJAceRZfqvKJICGst5RFSFf+p9Ns5wW/YCXwX5 EmhZF3ddEaDZoHy72CEH9ldgXY9/l6LVWPEN5ic+TXJzej/nX4ZQhhNjKTBiI2idZq5I ctV/2p0JKY+Xmm9veZqejvfMhTUyyXTmcUuIAAxJn3ChjD4HTGT1KeZwLEZDMZ9s7htv CHOV89fAqMoVExSOX9uv6UKDnnA78SAeIy12choPVhSg2Kf4Ob+igaDfpNE3lMIZNyQi kVAA== 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:references:in-reply-to:message-id:date:subject :to:from; bh=5U77O9UrQDr6IjfFUdD7jMt35uw3hzr4s0C8J8gxEwU=; b=t1tTn7m6UEGtfPflkFxQzAyLsEuPSeppORxIWR6RpL3QWchwilALjEibn//l0Eluek oSWjRHd7cVLpkb3Xhq4R/37HZZJhU3XlibHU4D4sqtFm6lz+ccKgnmOsK4weNi8Tnue6 DIJV2QtMQN+UJfR7Gcx9C8iDQVFYZEaGZS81hqwpSCP5mP58u8A27RhxPGrRh4Uvg7/1 cgDwZoVCTxN67yZnjHMwq3MsoOl4jOifPAMm4VpU+Eh1yskwq0e2rpdEh16fn9ZBJG3I eJaMQVoGfcX2COpw+1K24q7dFjZWQJehoEKMt6GavHzYThfnJQQn9z4ueIFTUoqNGdBY V0Gw== 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 g186si7140413ybg.276.2019.02.12.02.32.01 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 12 Feb 2019 02:32:01 -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]:36922 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtVM9-0000mM-8x for patch@linaro.org; Tue, 12 Feb 2019 05:32:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:37005) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtVM3-0000m3-3V for grub-devel@gnu.org; Tue, 12 Feb 2019 05:31:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gtVM0-0003jX-Vv for grub-devel@gnu.org; Tue, 12 Feb 2019 05:31:54 -0500 Received: from mx2.suse.de ([195.135.220.15]:51796 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 1gtVLr-0002uT-Bj for grub-devel@gnu.org; Tue, 12 Feb 2019 05:31:47 -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 98A81AF27; Tue, 12 Feb 2019 10:31:11 +0000 (UTC) From: Alexander Graf To: grub-devel@gnu.org Subject: [PATCH v6 03/11] elf.h: Add RISC-V definitions Date: Tue, 12 Feb 2019 11:31:00 +0100 Message-Id: <20190212103108.56963-4-agraf@suse.de> X-Mailer: git-send-email 2.12.3 In-Reply-To: <20190212103108.56963-1-agraf@suse.de> References: <20190212103108.56963-1-agraf@suse.de> 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" The RISC-V ABI document outlines ELF header structure and relocation information. Pull the respective magic numbers into our elf header so we can make use of them. Signed-off-by: Alexander Graf Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Daniel Kiper --- include/grub/elf.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) -- 2.12.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel diff --git a/include/grub/elf.h b/include/grub/elf.h index c8492f9dc..c478933ee 100644 --- a/include/grub/elf.h +++ b/include/grub/elf.h @@ -247,6 +247,7 @@ typedef struct #define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ #define EM_NUM 95 #define EM_AARCH64 183 /* ARM 64-bit architecture */ +#define EM_RISCV 243 /* RISC-V */ /* If it is necessary to assign new unofficial EM_* values, please pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the @@ -2473,6 +2474,63 @@ typedef Elf32_Addr Elf32_Conflict; #define R_X86_64_NUM 24 +/* RISC-V relocations */ +#define R_RISCV_NONE 0 +#define R_RISCV_32 1 +#define R_RISCV_64 2 +#define R_RISCV_RELATIVE 3 +#define R_RISCV_COPY 4 +#define R_RISCV_JUMP_SLOT 5 +#define R_RISCV_TLS_DTPMOD32 6 +#define R_RISCV_TLS_DTPMOD64 7 +#define R_RISCV_TLS_DTPREL32 8 +#define R_RISCV_TLS_DTPREL64 9 +#define R_RISCV_TLS_TPREL32 10 +#define R_RISCV_TLS_TPREL64 11 + +#define R_RISCV_BRANCH 16 +#define R_RISCV_JAL 17 +#define R_RISCV_CALL 18 +#define R_RISCV_CALL_PLT 19 +#define R_RISCV_GOT_HI20 20 +#define R_RISCV_TLS_GOT_HI20 21 +#define R_RISCV_TLS_GD_HI20 22 +#define R_RISCV_PCREL_HI20 23 +#define R_RISCV_PCREL_LO12_I 24 +#define R_RISCV_PCREL_LO12_S 25 +#define R_RISCV_HI20 26 +#define R_RISCV_LO12_I 27 +#define R_RISCV_LO12_S 28 +#define R_RISCV_TPREL_HI20 29 +#define R_RISCV_TPREL_LO12_I 30 +#define R_RISCV_TPREL_LO12_S 31 +#define R_RISCV_TPREL_ADD 32 +#define R_RISCV_ADD8 33 +#define R_RISCV_ADD16 34 +#define R_RISCV_ADD32 35 +#define R_RISCV_ADD64 36 +#define R_RISCV_SUB8 37 +#define R_RISCV_SUB16 38 +#define R_RISCV_SUB32 39 +#define R_RISCV_SUB64 40 +#define R_RISCV_GNU_VTINHERIT 41 +#define R_RISCV_GNU_VTENTRY 42 +#define R_RISCV_ALIGN 43 +#define R_RISCV_RVC_BRANCH 44 +#define R_RISCV_RVC_JUMP 45 +#define R_RISCV_LUI 46 +#define R_RISCV_GPREL_I 47 +#define R_RISCV_GPREL_S 48 +#define R_RISCV_TPREL_I 49 +#define R_RISCV_TPREL_S 50 +#define R_RISCV_RELAX 51 +#define R_RISCV_SUB6 52 +#define R_RISCV_SET6 53 +#define R_RISCV_SET8 54 +#define R_RISCV_SET16 55 +#define R_RISCV_SET32 56 +#define R_RISCV_32_PCREL 57 + #ifdef GRUB_TARGET_WORDSIZE #if GRUB_TARGET_WORDSIZE == 32