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,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 CBD97C47096 for ; Sun, 6 Jun 2021 16:22:06 +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 9C59561429 for ; Sun, 6 Jun 2021 16:22:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9C59561429 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 65AB7814A4; Sun, 6 Jun 2021 18:22:00 +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="i5fcV/JW"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 293CA81780; Sun, 6 Jun 2021 18:21:59 +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 0A2F480C68 for ; Sun, 6 Jun 2021 18:21:56 +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=1622996514; bh=GPr7imxRVXHZ6BBA6oTFub+irqJPtGM0BOY7oh/GtEM=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=i5fcV/JWKr7Mzgr0JZXqv+kKMKRmtRXqVVWV0tnTaOa1D/alTzgFqyPVOKl2PX8HP ZfsgdoEq5jJYz4qeQ7DZdHpRAWPmJJRJ5U2Vbhr2vV3OgpPxDwBVkW15ukleG16N+V 04qVFEoYAAvDT18ZJBKyM4IiGXpJ/cS8tvEEAZNA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.123.35] ([62.143.247.63]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1ML9uK-1m80Nn3yl8-00I9tN; Sun, 06 Jun 2021 18:21:54 +0200 Subject: Re: BISECTED f3866909e350 ("distro_bootcmd: call EFI bootmgr even without having /EFI/boot") To: "Matwey V. Kornilov" Cc: michael@walle.cc, U-Boot Mailing List References: <5e1f6595-3371-8d56-ebfa-916d10b5aad4@gmx.de> From: Heinrich Schuchardt Message-ID: <8d847043-ab5d-a627-ed71-5f8829bcad8c@gmx.de> Date: Sun, 6 Jun 2021 18:21:52 +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: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:fv6ck7cYp6D+9ULqpi2z6pXa2b/PnfX0fOfu5yduM242Yen4CY3 vJd3yGL80OLLr29tl3rMkaLSjenn/v1gUKbPQMwKcF4KB1mkqKYdh1Ap7DN8XQhWl/WNNUt BN7gCSuK2MJPbgfoq8hOCwAZNs6Cp8rGFrQhEpxrY7/uPSH8RYnleqjFqzu9C30ejunlGk+ IOAKpJXUUUD4mYK2VUyog== X-UI-Out-Filterresults: notjunk:1;V03:K0:AXKS0Do/rxw=:f1lWQZWQibhJFhf2PuLSxw wK+EgR52AZKOi7Vap8A+wgI2KdgpAJMijIfN2fOz6PE8VYKwwLqVRz+3AAC8mxSFFiZf6M2Jt r6+BfjJLrGHArZFwdxhFZprrCMwkYDwkjnvVJN0IPAmrUlzYnDDUdGy3U0QJZIWF8tL21VSUa MuxC6t9ArAN2ISZi+JYuyIEqOE67B0fJmPjjq2HVJjZeV7P89RaSmVgKaBx1ruI2PQGQbyALT /i9ifDzODEHAL8tQMgeic1WclTI9rdbcZ+KX/Vvqi4KA7pjcMuCFoW4Cti5Tzlf7JSKy+OYV1 PHpMrKuGzL/6XeeBlhCV5ByCCkrHPng2TlZmzGG94KPZkLvX4UR30sHgTi2UZ9ztEKk71nQZb Yni9mw7aZvyqA/Omxlwm0R6meNDjWXc/yTBfr1X81q7lsOGOzOWL1OnrhxQZQuEDeNVBq4E3p OOcvq2bO0ygME5JjI+mKEbG7kjP/lcCbXJ8em3laRGYaEKW1SBW6xzuqeCAS58OkQA+FS5/gA p0fMNLMykHakX22Xkj8tyxA5ihQynCP3Fa08Go+WSy5lcvNPU/ACcon3ewy+ExuluuWIqKPIq Bt2LA6oQgOgEj7EunmbV3fUEss3MEAeXSensXRirbDqlyND11HSwP4mhUyZoHr++1QpToS/pw emFidxji9XTD4eVM70uxTSNm1v4fxO9733+C8x1Tk+TZBaZWp9WyIcK953j/KUhredNwoAd+5 YxW+Tu3gRU4p0H0b0JwQOPlWiyS+k7OoUrCdRnR8VgqGfxBkiqY4oTjefqIaaWIFlx9qKtHA0 Jbove99geXu2uqe4GTYEJo8dmYbUI2+M+JrW+SRkC9QrjDrmU6z/svVk9wuipeLV4oHFE1kf2 geqJFyHqozEOM+0PxTqfMKDAXzypMcvnrj2QAT6ztJFtN9oSBKZL/tjKwRRPoczNfnWsRgQDk 7sYu1vbZQUaMQjZ0o+37DsodYSSUpDR/X/66s//Hq74IBmekFT8zuAwdcxreRehWMRiGlZf2M I4EQ8o4FsxkqIKWktJ3TfTviMdO8UEAYrmJ1eFrfRUrsAGH4OURO0HmIj6vmw9ohBPTDKtsan tB891Yn+NpzvG1u7BEI0ZvCT/fKV99HTdq2 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 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 /E= FI/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>] lr : [<9ffab7c7>] >>> reloc pc : [<7d69d6d0>] lr : [<8083d7c7>] >>> sp : 9df44e28 ip : 9ffdfe90 fp : 00000003 >>> r10: 9ffe3300 r9 : 00000000 r8 : 9df6fe88 >>> r7 : 00000000 r6 : 9ce5da08 r5 : 9ce571f8 r4 : 9ce2c040 >>> r3 : 00000000 r2 : 00000001 r1 : 9ce56598 r0 : 00000000 >>> Flags: NzCv IRQs off FIQs on Mode SVC_32 >>> Code: e3500000 0a000015 e590000c eb00f96e (e5d03000) >> > UEFI image [0x9ce46000:0x9cf28fff] '/efi\boot\bootarm.efi' >> > 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 >> 0: e3500000 cmp r0, #0 >> 4: 0a000015 beq 0x60 >> 8: e590000c ldr r0, [r0, #12] >> c: eb00f96e bl 0x3e5cc >> 10:* e5d03000 ldrb r3, [r0] <-- 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 >> 0: e5d03000 ldrb 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: >> >> debug=3Dall > > This doesn't provide any additional output from GRUB :( > >> >> When building U-Boot, please, add >> >> #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