
Hi,
On Wed, 9 Jan 2019 at 02:06, Alexander Graf agraf@suse.de wrote:
On 13.12.18 08:58, AKASHI Takahiro wrote:
Heinrich,
On Tue, Dec 11, 2018 at 08:55:41PM +0100, Heinrich Schuchardt wrote:
On 11/15/18 5:58 AM, AKASHI Takahiro wrote:
Currently, efi_init_obj_list() scan disk devices only once, and never change a list of efi disk devices. This will possibly result in failing to find a removable storage which may be added later on. See [1].
In this patch, called is efi_disk_update() which is responsible for re-scanning UCLASS_BLK devices and removing/adding efi disks if necessary.
For example,
=> efishell devices Scanning disk pci_mmc.blk... Found 3 disks Device Name ============================================ /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b) /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0) /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(2,MBR,0x086246ba,0x40800,0x3f800) => usb start starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 3 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found => efishell devices Scanning disk usb_mass_storage.lun0... Device Name ============================================ /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b) /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0) /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(2,MBR,0x086246ba,0x40800,0x3f800) /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/USBClass(0,0,9,0,1)/USBClass(46f4,1,0,0,0)/HD(1,0x01,0,0x40,0x14fe4c)
Without this patch, the last device, USB mass storage, won't show up.
[1] https://lists.denx.de/pipermail/u-boot/2018-October/345307.html
Signed-off-by: AKASHI Takahiro takahiro.akashi@linaro.org
Why should we try to fix something in the EFI subsystems that goes wrong in the handling of device enumeration.
No. This is a natural result from how efi disks are currently implemented on u-boot. Do you want to totally re-write/re-implement efi disks?
Could we just make this event based for now? Call a hook from the storage dm subsystem when a new u-boot block device gets created to issue a sync of that in the efi subsystem?
Please no. We don't want EFI hooks around the place. EFI should use DM, not the other way around.
That hook would obviously only do something (or get registered?) when the efi object stack is initialized.
The long term goal IMHO should still be though to just merge DM and EFI objects. But we're still waiting on the deprecation of non-DM devices for that.
I think think 'merge' is the right word. Perhaps 'create EFI devices in DM' is a better term.
Anyway, let's do that now. As I may have mentioned we should never have enabled EFI on pre-DM boards :-) It has just lead to duplication.
In any case, the migration deadline for DM_MMC (for example) is the upcoming merge window, so the time is now.
As things stand this patch looks reasonable to me. It is a natural consequence of duplicating the DM tables.
Regards, Simon