Message ID | 20170620191027.1780-1-xypron.glpk@gmx.de |
---|---|
State | Accepted |
Commit | 70bfcdc6bb6f969babd69efc49e1dc7a1faeca54 |
Delegated to: | Alexander Graf |
Headers | show |
Am 20.06.2017 um 21:10 schrieb Heinrich Schuchardt: > 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 <xypron.glpk@gmx.de> > --- > 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; > Thanks, looks good. Reviewed-by: Andreas Färber <afaerber@suse.de> This will be needed for the NanoPi K2 when importing the SDIO-enabled Linux .dts. Regards, Andreas
On 06/20/2017 09:39 PM, Andreas Färber wrote: > Am 20.06.2017 um 21:10 schrieb Heinrich Schuchardt: >> 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 <xypron.glpk@gmx.de> >> --- >> 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; >> > Thanks, looks good. > > Reviewed-by: Andreas Färber <afaerber@suse.de> > > This will be needed for the NanoPi K2 when importing the SDIO-enabled > Linux .dts. Simon, this patch requires your patches to be in tree first. What's your plan to move forward here? Alex
Hi Alex, On 3 July 2017 at 06:37, Alexander Graf <agraf@suse.de> wrote: > On 06/20/2017 09:39 PM, Andreas Färber wrote: >> >> Am 20.06.2017 um 21:10 schrieb Heinrich Schuchardt: >>> >>> 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 <xypron.glpk@gmx.de> >>> --- >>> 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; >>> >> >> Thanks, looks good. >> >> Reviewed-by: Andreas Färber <afaerber@suse.de> >> >> This will be needed for the NanoPi K2 when importing the SDIO-enabled >> Linux .dts. > > > Simon, this patch requires your patches to be in tree first. What's your > plan to move forward here? It is applied to u-boot-dm/master but was too late for this release, which should be in a week. Regards, Simon
On 07/03/2017 05:34 PM, Simon Glass wrote: > Hi Alex, > > On 3 July 2017 at 06:37, Alexander Graf <agraf@suse.de> wrote: >> On 06/20/2017 09:39 PM, Andreas Färber wrote: >>> Am 20.06.2017 um 21:10 schrieb Heinrich Schuchardt: >>>> 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 <xypron.glpk@gmx.de> >>>> --- >>>> 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; >>>> >>> Thanks, looks good. >>> >>> Reviewed-by: Andreas Färber <afaerber@suse.de> >>> >>> This will be needed for the NanoPi K2 when importing the SDIO-enabled >>> Linux .dts. >> >> Simon, this patch requires your patches to be in tree first. What's your >> plan to move forward here? > It is applied to u-boot-dm/master but was too late for this release, > which should be in a week. Awesome :). Please CC me on the pull request then, so that I see when I can merge things into mine and apply it there. Alex
On 07/03/2017 06:07 PM, Alexander Graf wrote: > On 07/03/2017 05:34 PM, Simon Glass wrote: >> Hi Alex, >> >> On 3 July 2017 at 06:37, Alexander Graf <agraf@suse.de> wrote: >>> On 06/20/2017 09:39 PM, Andreas Färber wrote: >>>> Am 20.06.2017 um 21:10 schrieb Heinrich Schuchardt: >>>>> 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 <xypron.glpk@gmx.de> >>>>> --- >>>>> 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; >>>>> >>>> Thanks, looks good. >>>> >>>> Reviewed-by: Andreas Färber <afaerber@suse.de> >>>> >>>> This will be needed for the NanoPi K2 when importing the SDIO-enabled >>>> Linux .dts. >>> >>> Simon, this patch requires your patches to be in tree first. What's your >>> plan to move forward here? >> It is applied to u-boot-dm/master but was too late for this release, >> which should be in a week. > > Awesome :). Please CC me on the pull request then, so that I see when I > can merge things into mine and apply it there. > > > Alex > > Hello Alex, in your efi-next tree you now have the prerequisite patch. Please, pull https://patchwork.ozlabs.org/patch/778454/ Best regards Heinrich
Hi, On 13 July 2017 at 10:42, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > On 07/03/2017 06:07 PM, Alexander Graf wrote: >> On 07/03/2017 05:34 PM, Simon Glass wrote: >>> Hi Alex, >>> >>> On 3 July 2017 at 06:37, Alexander Graf <agraf@suse.de> wrote: >>>> On 06/20/2017 09:39 PM, Andreas Färber wrote: >>>>> Am 20.06.2017 um 21:10 schrieb Heinrich Schuchardt: >>>>>> 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 <xypron.glpk@gmx.de> >>>>>> --- >>>>>> 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; >>>>>> >>>>> Thanks, looks good. >>>>> >>>>> Reviewed-by: Andreas Färber <afaerber@suse.de> >>>>> >>>>> This will be needed for the NanoPi K2 when importing the SDIO-enabled >>>>> Linux .dts. >>>> >>>> Simon, this patch requires your patches to be in tree first. What's your >>>> plan to move forward here? >>> It is applied to u-boot-dm/master but was too late for this release, >>> which should be in a week. >> >> Awesome :). Please CC me on the pull request then, so that I see when I >> can merge things into mine and apply it there. I didn't think to cc you, but it is now in mainline. >> >> >> Alex >> >> > > Hello Alex, > > in your efi-next tree you now have the prerequisite patch. > > Please, pull > https://patchwork.ozlabs.org/patch/778454/ > > Best regards > > Heinrich Regards, Simon
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;
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 <xypron.glpk@gmx.de> --- lib/efi_loader/efi_disk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)