From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4CD32C47096 for ; Sun, 6 Jun 2021 16:48:00 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6562F61377 for ; Sun, 6 Jun 2021 16:47:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6562F61377 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4392781780; Sun, 6 Jun 2021 18:47:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="N31njP4q"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D262581DB3; Sun, 6 Jun 2021 18:47:55 +0200 (CEST) Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EBDAA80C92 for ; Sun, 6 Jun 2021 18:47:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1622998072; bh=9DyMfHJkfaoIoxe92bLeavKlgMStudjwv256+sPHYdI=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=N31njP4qQk6AiW3cYnjSluWOgG9p3QMRHkqJG6np1saQqdRO2sYbjSWO+HHd1f57S mJiXMRYPxi6GEAePPEetocbkKofl3WlBg7ERg96wCPURJMlotv+/CVdKiZ9HJTbTq+ Ho4XY0Qdg0lbAnzXL5qfpjeF3Pcj16o1QTq331y0= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.123.35] ([62.143.247.63]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MeCpR-1lGK4d0B9j-00bHpM; Sun, 06 Jun 2021 18:47:52 +0200 Subject: Re: BISECTED f3866909e350 ("distro_bootcmd: call EFI bootmgr even without having /EFI/boot") From: Heinrich Schuchardt To: "Matwey V. Kornilov" Cc: michael@walle.cc, U-Boot Mailing List References: <5e1f6595-3371-8d56-ebfa-916d10b5aad4@gmx.de> <8d847043-ab5d-a627-ed71-5f8829bcad8c@gmx.de> Message-ID: <6683bdcc-d83b-de80-b0b2-4d0b8df268f0@gmx.de> Date: Sun, 6 Jun 2021 18:47:48 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: <8d847043-ab5d-a627-ed71-5f8829bcad8c@gmx.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:f5v+y8vhx+/jQIFd+bWI7WU3ZuSLwz5JbjtqS+84jHYQHaCNHeL /Wb8cS6oetCrTOpXTtHSBoWVBG5eYovbUb4XEu0GVT8/Y0lOnBe8Lb3XbCKKdB25CRJbb6A /VihBHgeW03PfM6mjDDDzQh2N9K8dNeJOKeEgpo2m5ghGG8GgjjtDCvLfCQ7ybkXSbwWcAZ s32yFoXlylInUBuf5Z1ww== X-UI-Out-Filterresults: notjunk:1;V03:K0:1r+jZMxie7E=:CwyhpNbKcrWJHwWmxzSyut UO3aDKI5XK5p3RllHthqByo55XwRpyEc6SZ7oHNMZOIIV6ze2/pNx/8Bv/vx0LVpLzfnopOWo uwKuOQIGz8fg8YaQVVQJXTRPcjGrU0n7MIZLCaYimZbUKGdP12cxc3BdqzAIjBrKp4xCelS+P H3k7KxMv2x0II3N26dMbaUbSoPa+4G8awUNKKY5SjrqZUhKSYRpdcOikdIQBfDpOd58w855Ee Sfz9r/idqmUzFbdFLc4SQ3nAiVaB8FXXBeRLs8HdioCePOf/zOY5DNAGy8RqU3Vp2sYdZNJzm NnxRsPskI4kTThzA/huZlnAVtkDzMfj2xENlzvHfjW7QOh7zyb/deC2USCxMoAfLQ2a7dChqE m00VWq3DgwYG3HjcuRY3ugRpxrMtHQ+ZNwGgSRRRLuBeKvMUusfTVoT05ZmrZuXIF1HOgmM+B c3ZCl7CaqEkr8ZvmNJzFOR9oUm2q8kda8l+Tmwa4Azz+MSULGx2Ba/STrOQvkxnRZ9zqgOHsT LBxRSQ3d1Pb879gfYPGzWzI206ekj+kvkEBTutxviUQoQ3UGHrB5tBEAukzWo2a6MgQgl7Fh5 UmKv7lcDaHz5NChC/WEIdmcISq6J6lJa7kWGELQzKWJD3TbAvyLdHd3gZMD1enhJ1XCGCA8/l /XuGCJTXGBbJj4hJL1fgQuFJrxZiWXpX/J6xyvDwlFPvjRtLTfwhy8+4IJ3rtvgO3OWGHUSbq di0jQwxedht+We/v4ildzKyZ1/SjOOhFasHyML1RO5NHcd/ldU99AhZspxrbiPc3SjWyBsXNS ubevG+0wSzcCahSLqJBqizQGf9W4Eu+voa8kCvJcPkmwJ4/DFz0ggUOlSvn0ZC8d14swZaPES kQiY3FvT5C5n4lQTWu2HaUbKjoWzkoRj0tXD6l3qhArUSkrwhB+V+WP96jlt14aF5oQehNMZm MYq34YXYk6dwEHbL9u5iiNapF4GFQT4h80g7zFkjRygrGES2zUT0BHe5I2jvwA4GgEBw7Q3L9 oJf2DD1Y55TzNljjiiXkGCj0Gu0uAOCx1A4gpMU+2QnUNzdl2uo6xrX8ZWb9OQ4fQ69+/aV2s wTzAW5dR1QHw8JZV9jle3mmvnIki0yzg+xP X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean On 6/6/21 6:21 PM, Heinrich Schuchardt wrote: > On 6/6/21 5:42 PM, Matwey V. Kornilov wrote: >> =D0=B2=D1=81, 6 =D0=B8=D1=8E=D0=BD. 2021 =D0=B3. =D0=B2 18:20, Heinrich= Schuchardt : >>> >>> On 6/6/21 4:37 PM, Matwey V. Kornilov wrote: >>>> Hi, >>>> >>>> I've found that >>>> >>>> f3866909e350 ("distro_bootcmd: call EFI bootmgr even without having >>>> /EFI/boot") >>>> >>>> breaks running EFI application from USB device on BeagleBone Black >>>> (am335x) device. >>>> >>>> With this patch I see the following: >>>> >>>> Booting /efi\boot\bootarm.efi >>>> Welcome to GRUB! >>>> >>>> data abort >>>> pc : [<9ce0b6d0>]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 lr : [<9ffab7c7>] >>>> reloc pc : [<7d69d6d0>]=C2=A0=C2=A0=C2=A0 lr : [<8083d7c7>] >>>> sp : 9df44e28=C2=A0 ip : 9ffdfe90=C2=A0=C2=A0=C2=A0=C2=A0 fp : 000000= 03 >>>> r10: 9ffe3300=C2=A0 r9 : 00000000=C2=A0=C2=A0=C2=A0=C2=A0 r8 : 9df6fe= 88 >>>> r7 : 00000000=C2=A0 r6 : 9ce5da08=C2=A0=C2=A0=C2=A0=C2=A0 r5 : 9ce571= f8=C2=A0 r4 : 9ce2c040 >>>> r3 : 00000000=C2=A0 r2 : 00000001=C2=A0=C2=A0=C2=A0=C2=A0 r1 : 9ce565= 98=C2=A0 r0 : 00000000 >>>> Flags: NzCv=C2=A0 IRQs off=C2=A0 FIQs on=C2=A0 Mode SVC_32 >>>> Code: e3500000 0a000015 e590000c eb00f96e (e5d03000) >>> =C2=A0 > UEFI image [0x9ce46000:0x9cf28fff] '/efi\boot\bootarm.efi' >>> =C2=A0 > Resetting CPU ... >>> >>> Hello Matwey, >>> >>> thank you for reporting the issue. >>> >>> $ echo 'Code: e3500000 0a000015 e590000c eb00f96e (e5d03000)' | >>> CROSS_COMPILE=3Darm-linux-gnueabihf- ARCH=3Darm scripts/decodecode >>> >>> Code: e3500000 0a000015 e590000c eb00f96e (e5d03000) >>> All code >>> =3D=3D=3D=3D=3D=3D=3D=3D >>> =C2=A0=C2=A0=C2=A0=C2=A0 0:=C2=A0=C2=A0 e3500000=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 cmp=C2=A0=C2=A0=C2=A0=C2=A0 r0, #0 >>> =C2=A0=C2=A0=C2=A0=C2=A0 4:=C2=A0=C2=A0 0a000015=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 beq=C2=A0=C2=A0=C2=A0=C2=A0 0x60 >>> =C2=A0=C2=A0=C2=A0=C2=A0 8:=C2=A0=C2=A0 e590000c=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 ldr=C2=A0=C2=A0=C2=A0=C2=A0 r0, [r0, #12] >>> =C2=A0=C2=A0=C2=A0=C2=A0 c:=C2=A0=C2=A0 eb00f96e=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 bl=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0x3e5cc >>> =C2=A0=C2=A0=C2=A0 10:*=C2=A0 e5d03000=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 ldrb=C2=A0=C2=A0=C2=A0 r3, [r0]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 <-- trapping >>> instruction >>> >>> Code starting with the faulting instruction >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> =C2=A0=C2=A0=C2=A0=C2=A0 0:=C2=A0=C2=A0 e5d03000=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 ldrb=C2=A0=C2=A0=C2=A0 r3, [r0] >>> >>> Looking at the disassembly above we see that reading memory location >>> NULL fails. >>> >>> We need to find out where the exception occurs. The code position is >>> neither in bootarm.efi nor in U-Boot (9ce0b6d0 is lower than the load >>> position of bootarm.efi, so it is below the relocated U-Boot code). >>> >>> Please, add the following line at the start of grub.cfg to get more >>> output from GRUB: >>> >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 debug=3Dall >> >> This doesn't provide any additional output from GRUB :( >> >>> >>> When building U-Boot, please, add >>> >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #define DEBUG 1 >>> >>> in lib/efi_loader/efi_disk.c and lib/efi_loader_file.c a line before >>> #include . >> >> >> This doesn't provide much output as well: >> >> Scanning disk mmc@48060000.blk... >> EFI: Call: efi_install_multiple_protocol_interfaces( &handle, >> &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, >> NULL) >> EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, >> &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, >> NULL) >> ** Unrecognized filesystem type ** >> Scanning disk mmc@481d8000.blk... >> EFI: Call: efi_install_multiple_protocol_interfaces( &handle, >> &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, >> NULL) >> EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, >> &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, >> NULL) >> EFI: Call: efi_install_multiple_protocol_interfaces( &handle, >> &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, >> NULL) >> EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, >> &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, >> NULL) >> Found 3 disks > > This implies that GRUB is crashing before even accessing the file system > (including grub.cfg). > > On an OrangePi PC I deleted /boot.scr and moved grubarm.efi to > /EFI/boot/bootarm.efi. It boots without problem. > > What version of GRUB are you using? > How were you booting before updating U-Boot? > What version of U-Boot are you using where the error occurs? > Why do you have grub in /EFI/boot/bootarm.efi and not in a distro > specific path, e.g. /EFI/debian/grubarm.efi? /EFI/boot is typically only > used by installers. > > If the boot manager is started by distroboot it may not have an > appropriate device path. It tries to load the file given by environment > variable $fdtfile from the boot device. > > From the U-Boot console could you, please, try: > > 1) > load usb 0:1 $kernel_addr_r EFI/boot/bootarm.efi > bootefi bootmgr > > > 2) > load usb 0:1 $kernel_addr_r EFI/boot/bootarm.efi > load usb 0:2 $fdt_addr_r dtb > bootefi bootmgr $fdt_addr_r > > where you need to replace dtb by the correct device tree file and adjust > the partition numbers. > > Best regards > > Heinrich To catch the earlier EFI API calls you can add #define DEBUG 1 to lib/efi_loader/efi_boottime.c Best regards Heinrich