From patchwork Mon Jul 3 20:41:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 783635 X-Patchwork-Delegate: agraf@suse.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3x1fGd0k5pz9s9Y for ; Tue, 4 Jul 2017 06:43:05 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id C9340C21DD6; Mon, 3 Jul 2017 20:42:40 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL 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 91553C21DD9; Mon, 3 Jul 2017 20:42:02 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 21CB0C21C62; Mon, 3 Jul 2017 20:42:00 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by lists.denx.de (Postfix) with ESMTPS id 8FFB8C21DB0 for ; Mon, 3 Jul 2017 20:41:59 +0000 (UTC) Received: from workstation4.fritz.box ([88.152.145.149]) by mail.gmx.com (mrgmx002 [212.227.17.184]) with ESMTPSA (Nemesis) id 0LgIWi-1e6faK0JIC-00neqB; Mon, 03 Jul 2017 22:41:56 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Mon, 3 Jul 2017 22:41:25 +0200 Message-Id: <20170703204126.11992-3-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170703204126.11992-1-xypron.glpk@gmx.de> References: <20170703204126.11992-1-xypron.glpk@gmx.de> X-Provags-ID: V03:K0:Lw09Egi2dRocGnsZrHv+gjfU9HupClo9WrsheaA/ks+qf+/dS+R 6v+3HWiRyblL3CbDVqkBTn+uI4vSH86ZWXKsE5iywcmRMdxv4naOc5yiW1EDUlFEF0GVKEy ESBZ0clVD7XqD3FmGLaSBnpgRIoN7CKZLZTqmcnEgzV2p98FbRXxBSjA7XYOftuwrEiRBtp SNmaUbWjK6GK7h12BfJkg== X-UI-Out-Filterresults: notjunk:1; V01:K0:p2nYwQnGn5A=:zHZNmNF7ACVuUb9il/lLSQ VkoLXwHlOKyFffl/Yrf65szpWDMMhHOA1bdSXtWukseQw9UwwD4CX4h1mK6CdhFapYP0ynfkW YKdNDs5xW5jHR0FPsxXEoRduyjDCK00lh14N2bpxKWCfRWUdesx+jQdqOjynNoV+dTt/iTJKO mRW9UqDCyZe14KvlHFhYabaJOkeKKo8WQDx4xVjMx3ipfqAf/Sd7bGXRbfXjY/PJdCRmnSjeT jQhCZcRUhBt2D6fO3H9HnmQ15eZYvzKfDhrEvYgzTf12obv1P/Fb9AGVfLDP+wrxG47OR7eTc BGLaOXJlM9gIhRJIv88bS5aijhqCV+U2RPe+PAYXS5xiQU7IgHdUsuy4bHLMFWHY7oATaIdCo hwYUDvYwe4SLJeqxPq096GZKJuHiZ9hoIqtVwZFT3PeJExLkr6axt3+gUOufWw69SVjCDrUHX LQ2hm/4HvFUYjUcRA7mzzbYJcrLlDEOGHEPTUe5KDFCI6tPNj/2h13W4yVAjZREx0iUbV24hE 2yN5lTBQC1cS0GDJVLXUt4jv/siF+KvIcGK8R2xj5OY2FB0uFEKgGWqjt1JiIihTfxmNsQc/3 2dwpLiPLzrtO0BIqpXbTDbKxG1phmdygumfXPLOVU+0vPaORbxDbkEqM6hlayL/Hhy+NoiGmR iPobsjnDeP+NOlQhHt8sQHAT2i6DXPSOsrQUcyxM5o6pZkSdXGHOuXGlDBAPN2+BaJuDwuKMF Eq8xWd1Kda8yKuIx8djspkzS+P12jDvhHDcHqXcLfmhGVOD9mhGXtkiQKHI= Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH v2 2/3] efi_loader: provide meaningful status code 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Currenty any EFI status other than EFI_SUCCESS is reported as Application terminated, r = -22 With the patch the status code returned by the EFI application is printed. Cc: Alexander Graf Signed-off-by: Heinrich Schuchardt Reviewed-by: Alexander Graf --- v2: Do not output status code mnemonic. Alexander suggested this to reduce code size. We may add a CONFIG option for mnemonic output later. --- cmd/bootefi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cmd/bootefi.c b/cmd/bootefi.c index f52da205c9..7ddeead671 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -252,8 +252,7 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt) debug("%s:%d Jumping to 0x%lx\n", __func__, __LINE__, (long)entry); if (setjmp(&loaded_image_info.exit_jmp)) { - efi_status_t status = loaded_image_info.exit_status; - return status == EFI_SUCCESS ? 0 : -EINVAL; + return loaded_image_info.exit_status; } #ifdef CONFIG_ARM64 @@ -281,7 +280,7 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { char *saddr, *sfdt; unsigned long addr, fdt_addr = 0; - int r = 0; + unsigned long r; if (argc < 2) return CMD_RET_USAGE; @@ -306,12 +305,13 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) printf("## Starting EFI application at %08lx ...\n", addr); r = do_bootefi_exec((void *)addr, (void*)fdt_addr); - printf("## Application terminated, r = %d\n", r); + printf("## Application terminated, r = %lu\n", + r & ~(1UL << (EFI_BITS_PER_LONG - 1))); - if (r != 0) - r = 1; - - return r; + if (r != EFI_SUCCESS) + return 1; + else + return 0; } #ifdef CONFIG_SYS_LONGHELP