From patchwork Sun Aug 25 17:55:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1152850 X-Patchwork-Delegate: bmeng.cn@gmail.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=gmx.de Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="FdB0fCA0"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46GjV014VDz9sBF for ; Mon, 26 Aug 2019 03:55:34 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 40591C21E90; Sun, 25 Aug 2019 17:55:30 +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, T_DKIM_INVALID 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 75BB6C21D72; Sun, 25 Aug 2019 17:55:28 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 04ECDC21C8B; Sun, 25 Aug 2019 17:55:26 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by lists.denx.de (Postfix) with ESMTPS id B313EC21C57 for ; Sun, 25 Aug 2019 17:55:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1566755723; bh=vWoYveLDxKWpC5otps1ApI8vqTj+Da7AFgtfJo1kEoI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=FdB0fCA0oFaPa608E3qBfveiJPuX3z1Lxw3jj4EHHcqyKoMauK5QSouY4V73vfDfj F9z4nbEE4kSAyCQssS8MSjpxYeejpEwMBmDfg0EMRBebWvcYO9k/EQcj9m7S8kM0JC DIqpuodY51voc8flxrNOYENBRHtwGn6KMYunDE5U= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.118.159.3]) by mail.gmx.com (mrgmx102 [212.227.17.174]) with ESMTPSA (Nemesis) id 0MdEsh-1hk06q2BPP-00IXsm; Sun, 25 Aug 2019 19:55:23 +0200 From: Heinrich Schuchardt To: Simon Glass , Bin Meng Date: Sun, 25 Aug 2019 19:55:12 +0200 Message-Id: <20190825175512.13911-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:S28TpPDQWfRhaiK+Iswhi01Lls4K5zXaq2IotosPyJu4py3doiR rNPfZZKzSj+gozI05w+ZYy1Oee1Adr2GsFEzf1bt1Y0SlgKCZlbpwU6QfF3PtFjK7e00Btt /1CH20m6Kbk42ww6/EmPv9HorP0FT1o8SwooCWZ4FPf/z4rLGFAdxKP4kobQfFZXHj5j9c7 GZGZMUwC24WQcd4ENLvzA== X-UI-Out-Filterresults: notjunk:1; V03:K0:j31K32+Nhqc=:QtSx2Ak59wFStdK89TPDDh g0O6IHCBufyD2jchW6P2C8RPPw5yoU0TQyJgyrFvDxWwfjCbx8zXnmyoyr21wMcwywY1a2oJX YKX+U5C88BH0/e3z4Uo+thjYBbZDwt85bH/7q7azv8yxFUaGpV0bWcxpj2sxN8GkB0pvirc4C BsZ85cK5+n9lDXWr/VlcHPct18CKyaCr7hoENEKkzxZpPdzoHIlPBVQh/eHWGGcmtw8gDPd95 cj8KOazheRnXqMiNSnU9x7OCiWLK/e/+yYtgdrvJOjFq7Ss+5cit3hlqPKJWAEm/PMfQyUib2 CroYy7GR9wJaphoFMLFO6CHFF/+cIahNFDfLjpzVBZUfpr5H2HfgOBXEG+LPQX7cTBmEaSnqn 0QUNce/8E/z0oYdfVnhAWKiDOyHYmD3rrqYw6eTSfyAKW1UZ+0Ckl9K59wD488hhmSsZxGg8l cJYby4GT3aOHzDam4Ey2gRmb+7xkz1TgYRYnQBc5RLsK3320zBVfuWlFkqd/Rh4SFjdon1++b MlRwtOkwhVJg0GjFGilyCAFp/t/D1p0haK4e4hDFlj/jxTpTrEZtZ0piFCTRuVXjVfx098wXQ oxhXGb2Acxi0VZnZJynYSXW6KKhE8ZIAPBXf0PilLa5KToMGUV07ilXJXWBteSHQPV4B2EwYL 168xtXwZ9N8l/3fdG2itSJTR/CQRC8e81W/bY/BBeReQEB7GW0hPbFXXdDUOzPnx6SJknu7K6 8izQ0bmHq9ajmTGUfsez76Z8Kt+weLYTn03ArMck0vzAS6JthHKXtMKToVMXOtETQh6fBXkbf RFp8zJc5ktc5yRJLfv8v6pUdlscsYtloavxOL7DojXLC7BroJljaMK2gDqIPALOvV/CANI3wI +BD1/moO7uovO6r5ug2XeRBJT1LcEsJ4cK3j/LeczrEdDNlHgjo0vB0DpFjz9aWFzkJPizwIM 1Yt1jOKNKloXbXFZEgefsCF8xV50RKDRipeRs4hyVl4znTmP9JO83dE3lBZ1Gw8e/ikLAN2T+ c5CYNd/H1okv7Q9K9DDBDV3ZaDlGT7tYVz2yN2nPBZiNvtPoVjUCz13xxexfqiic6mkXiDVg6 3uidH5uCjTlbdCznBNbF5rmi/s6bKCTb373yfihm4Y2xDS8PDw2Erpq4A== Cc: Vagrant Cascadian , u-boot@lists.denx.de, Hannes Schmelzer , Heinrich Schuchardt Subject: [U-Boot] [PATCH 1/1] x86: show UEFI images involved in crash 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" If a crash occurs, show the loaded UEFI images to facilitate analysis. This is an example output: => bootefi 0x1000000 Found 0 disks Hello world of bugs! Invalid Opcode (Undefined Opcode) EIP: 0010:[<06ceb06e>] EFLAGS: 00010206 Original EIP :[] EAX: 00000000 EBX: 06cec000 ECX: 00000fd0 EDX: 00000001 ESI: 06ced18a EDI: 07d0fe10 EBP: 07fe27a0 ESP: 07d0fde0 DS: 0018 ES: 0018 FS: 0020 GS: 0018 SS: 0018 CR0: 00000033 CR2: 00000000 CR3: 00000000 CR4: 00000000 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: ffff0ff0 DR7: 00000400 Stack: 0x07d0fde8 : 0x00000000 0x07d0fde4 : 0x06ced040 --->0x07d0fde0 : 0x07fe27a0 0x07d0fddc : 0x00010206 0x07d0fdd8 : 0x00000010 0x07d0fdd4 : 0x06ceb06e UEFI image [0x06cea000:0x06cf0fff] pc=0x106e '/bug-i386.efi' ### ERROR ### Please RESET the board ### With the additional information provided by this patch we know that the problem occurred 0x106e after the load address of bug-i386.efi. Signed-off-by: Heinrich Schuchardt Reviewed-by: Bin Meng Tested-by: Bin Meng --- arch/x86/cpu/i386/interrupt.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -- 2.20.1 diff --git a/arch/x86/cpu/i386/interrupt.c b/arch/x86/cpu/i386/interrupt.c index 47df3172b7..1445204878 100644 --- a/arch/x86/cpu/i386/interrupt.c +++ b/arch/x86/cpu/i386/interrupt.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -64,6 +65,18 @@ static char *exceptions[] = { "Reserved" }; +/** + * show_efi_loaded_images() - show loaded UEFI images + * + * List all loaded UEFI images. + * + * @eip: instruction pointer + */ +static void show_efi_loaded_images(uintptr_t eip) +{ + efi_print_image_infos((void *)eip); +} + static void dump_regs(struct irq_regs *regs) { unsigned long cs, eip, eflags; @@ -144,6 +157,7 @@ static void dump_regs(struct irq_regs *regs) printf("0x%8.8lx : 0x%8.8lx\n", sp, (ulong)readl(sp)); sp -= 4; } + show_efi_loaded_images(eip); } static void do_exception(struct irq_regs *regs)