From patchwork Tue Feb 12 10:31:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 158138 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp3664550jaa; Tue, 12 Feb 2019 02:32:27 -0800 (PST) X-Google-Smtp-Source: AHgI3IbucDp7C5sAxXeNuUKKj36qThkkRxjlqak5dT3DzlPRfLyS1rvhyXwp0GIXxOuaP9EmAOU0 X-Received: by 2002:a25:9a89:: with SMTP id s9mr2262876ybo.358.1549967547199; Tue, 12 Feb 2019 02:32:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549967547; cv=none; d=google.com; s=arc-20160816; b=Gw4afkLeqGIit4WcQ9mFEELlybkSbAqSrt1V9sg2n8F8YmllRit4GdESyvBqPp40Kc jpyu9ct4647aq+2aJ+FlxzdvQDXIG6WlO7SxnZOs3II2bdlHAEsTgJOt6kmtW16f/aGL ook6hsp9Ea3IE/GgwrkyOfCWLnosJtenU6l97P13y5YY5Yq0l8fSRti+c9LyPwiu3xVy 1r4auR/0rPD02PMfy2AZxHKIppR+nr6yM1nOp4EF2idsREkOfvd13RYCQQSzroTSVzAj kcT1VB/H4fwc/w2a3lLw27lyAZiLqWve7gqLvKrvLhRH9K2qDRouVzy4tDDOtt9UVde4 8ByQ== 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=yiyLE3sUdgk/ezPOFSJ9xRJsA761h2aAR9ujjChh61g=; b=HBMn7vXjII6Ra3D8ZM9Nym7+GaR72t2IS9muI5mAnIIMRm3Q7ESIOtMFVqTcfKVlnU xy9oWxjM9A/PlygGiPrj0lzaRsGV2U892HJo4uN1g1MVZJo7G2Ix43cXy9HfLSVB2Kt6 HtRAKXjSmC65AmRVe6XzpVJiHrCfRh4Sv15Q6q8/xF/OYp7dsuvmAldxpD9zj0rsGD1Y H/4OWX+ORxRNFLAkk0vFzpWs4W/UiIIzDygBbDzAlXEM1GTHplN5c8A40Dg1TbZOIK0H iarSftma9hpDz6smc1DHgha9H4tQYKPh2CvctLjN02FaI3E9WaLCRD8Wdvo16d2TnxgG WCEw== 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 v130si7265525ybv.143.2019.02.12.02.32.27 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 12 Feb 2019 02:32:27 -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]:36926 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtVMY-0000v9-Iu for patch@linaro.org; Tue, 12 Feb 2019 05:32:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:37249) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtVMH-0000tb-Qe for grub-devel@gnu.org; Tue, 12 Feb 2019 05:32:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gtVME-0004EQ-Q8 for grub-devel@gnu.org; Tue, 12 Feb 2019 05:32:08 -0500 Received: from mx2.suse.de ([195.135.220.15]:52044 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 1gtVMC-00042j-IU for grub-devel@gnu.org; Tue, 12 Feb 2019 05:32:04 -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 09DC7B14C; Tue, 12 Feb 2019 10:31:12 +0000 (UTC) From: Alexander Graf To: grub-devel@gnu.org Subject: [PATCH v6 05/11] RISC-V: Add early startup code Date: Tue, 12 Feb 2019 11:31:02 +0100 Message-Id: <20190212103108.56963-6-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" On entry, we need to save the system table pointer as well as our image handle. Add an early startup file that saves them and then brings us into our main function. Signed-off-by: Alexander Graf Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Daniel Kiper --- v3 -> v4: - Change copyright from 2013 to 2018 v4 -> v5: - Remove blank line at EOF --- grub-core/kern/riscv/efi/startup.S | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 grub-core/kern/riscv/efi/startup.S -- 2.12.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel diff --git a/grub-core/kern/riscv/efi/startup.S b/grub-core/kern/riscv/efi/startup.S new file mode 100644 index 000000000..f2a7b2b1e --- /dev/null +++ b/grub-core/kern/riscv/efi/startup.S @@ -0,0 +1,48 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2018 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#include + +#if __riscv_xlen == 64 +#define sl sd +#define ll ld +#else +#define sl sw +#define ll lw +#endif + + + .file "startup.S" + .text +FUNCTION(_start) + /* + * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in a1/a0. + */ + + ll a2, efi_image_handle_val + sl a0, 0(a2) + ll a2, efi_system_table_val + sl a1, 0(a2) + ll a2, grub_main_val + jr a2 +grub_main_val: + .quad EXT_C(grub_main) +efi_system_table_val: + .quad EXT_C(grub_efi_system_table) +efi_image_handle_val: + .quad EXT_C(grub_efi_image_handle)