From patchwork Tue Jun 20 19:10:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 778454 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 3wscr4481sz9s5L for ; Wed, 21 Jun 2017 05:10:43 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id BEEC7C21C64; Tue, 20 Jun 2017 19:10:39 +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_H2 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 665C9C21C1F; Tue, 20 Jun 2017 19:10:37 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 40E97C21C1F; Tue, 20 Jun 2017 19:10:36 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by lists.denx.de (Postfix) with ESMTPS id DCB17C21BE6 for ; Tue, 20 Jun 2017 19:10:35 +0000 (UTC) Received: from odroid-c2.fritz.box ([88.152.145.149]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MRCCJ-1dDg2w31hP-00UdaG; Tue, 20 Jun 2017 21:10:33 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Tue, 20 Jun 2017 19:10:27 +0000 Message-Id: <20170620191027.1780-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.11.0 X-Provags-ID: V03:K0:ytEELsB49Mg2xEddaWqIQE5lMvylY3h7rs4PeYqqo8Tg7nNtIfi qV0ZVc0qxTln9TF4njxJVuNf9L1e2i5TL/dOx6DF8Ooe3TmNWHiJNCI/NFcSEsy0mpdXgFq c0A4q7BRoekVublRN5gGsHIoIkSMnoGAkyV7c83khEXmw2vUdSy8irE4praGmNrUjcIzDyV 8FPed4MyBcDywaBCMKSEg== X-UI-Out-Filterresults: notjunk:1; V01:K0:ZeXjKx7qhY4=:5vVSzujNCNAbVJTTci/dWA 9pHDrFBwSnxkHRTOgQi0y3EwS5W8uaIMCNipdXGz97lXVuShYs+LobpvtZjlzasqDFlQiMu6M UudueBvyATC0q0J0rEzDUFFUuVatymNOLzu1VPKHa1U7nUXhmCD14roV+NNg2bqLmqqifeIH4 yMwXlMJn0c/iPBbs1D/RSAefnfQT8gdbtGbeKHBTtk35bFwCqNOras/TChpqRB4fIwy3VwISu IrmrQwWRzOYk7Wg9lgDFNvWqKlTeS7q98b3FZf/KJYtOtiQO6MVVUPDpjbsm97SB+F6lZITmB Wu48z4PgA2y43NwGQS4B26jDR5wJATvdT9qSpEcRdCIg9QYmaqfQ7DeXyPY2ZPtG0AI1TgwoP 1mAn3fXJE8t8+MsX7f74YjjbIchPQ8rJ9zumF98TSr0vvIsozrApTzyMJUwX1KTqIrts+f2Lk xmz112fF9KWy0qa1ZWey91penX5K6W179w8wWp7XtumebAdnoCC/72ZJqK7dWtYd59n+upW/4 v2jjFpr1u+Qf/P7Ds6HW4r8WDVvl094rndfqeOj+Ikf6WiCXhtTPTTdtWSb43smuE0byQZinr smkyzXsAfbQghoM6EBFe5TMvy5zvOkdTmNdex9DUBpzpepNc3WooDDYl2txAagNjtw+sGoVt1 hWw89OQKXJLY4b55ZjGy+XWUEgxPKOAfXLVrGMhveVockEowyy9p3aJjRKbAStwTs7LpAJINF eBemo81PyKqxAaJ5RSEdvJyvVaxxfVojX78WwPgzU8t6GvXQDEya3yWLUfg= Cc: u-boot@lists.denx.de, =?UTF-8?q?Andreas=20F=C3=A4rber?= , Heinrich Schuchardt Subject: [U-Boot] [PATCH 1/1] efi_loader: disk: iterate only over valid block devices 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" The efi_loader currently stops iterating over the available block devices stopping at the first device that fails. This may imply that no block device is found. With the patch efi_loader only iterates over valid devices. It is based on patch 06d592bf52f6 (dm: core: Add uclass_first/next_device_check()) which is currently in u-boot-dm.git. For testing I used an odroid-c2 with a dts including &sd_emmc_a { status = "okay"; }; This device does not exist on the board and cannot be initialized. Without the patch: => bootefi hello ## Starting EFI application at 01000000 ... WARNING: Invalid device tree, expect boot to fail mmc_init: -95, time 1806 Found 0 disks Hello, world! ## Application terminated, r = 0 With the patch: => bootefi hello ## Starting EFI application at 01000000 ... WARNING: Invalid device tree, expect boot to fail mmc_init: -95, time 1806 Scanning disk mmc@70000.blk... Scanning disk mmc@72000.blk... Card did not respond to voltage select! mmc_init: -95, time 9 Scanning disk mmc@74000.blk... Found 3 disks Hello, world! ## Application terminated, r = 0 Signed-off-by: Heinrich Schuchardt Reviewed-by: Andreas Färber --- lib/efi_loader/efi_disk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index 39e602a868..4e8e7d0ad6 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -289,9 +289,9 @@ int efi_disk_register(void) #ifdef CONFIG_BLK struct udevice *dev; - for (uclass_first_device(UCLASS_BLK, &dev); + for (uclass_first_device_check(UCLASS_BLK, &dev); dev; - uclass_next_device(&dev)) { + uclass_next_device_check(&dev)) { struct blk_desc *desc = dev_get_uclass_platdata(dev); const char *if_typename = dev->driver->name;