All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: Simon Glass <sjg@chromium.org>
Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>,
	Heinrich Schuchardt <xypron.glpk@gmx.de>,
	Alex Graf <agraf@csgraf.de>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: [RFC 00/22] efi_loader: more tightly integrate UEFI disks to device model
Date: Tue, 12 Oct 2021 19:40:28 -0400	[thread overview]
Message-ID: <20211012234028.GI7964@bill-the-cat> (raw)
In-Reply-To: <CAPnjgZ3jGytqYxZcYUg9koigkMhESznaShmyRJn5v1ViJoHn5A@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5580 bytes --]

On Tue, Oct 12, 2021 at 05:37:45PM -0600, Simon Glass wrote:
> Hi Tom,
> 
> On Tue, 12 Oct 2021 at 15:13, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Tue, Oct 12, 2021 at 02:31:15PM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Tue, 12 Oct 2021 at 09:00, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Sun, Oct 10, 2021 at 08:14:00AM -0600, Simon Glass wrote:
> > > > > Hi Takahiro,
> > > > >
> > > > > On Thu, 30 Sept 2021 at 23:02, AKASHI Takahiro
> > > > > <takahiro.akashi@linaro.org> wrote:
> > > > > >
> > > > > > The purpose of this RPC is to reignite the discussion about how UEFI
> > > > > > subystem would best be integrated into U-Boot device model.
> > > > > > In the past, I poposed a couple of patch series, the latest one[1],
> > > > > > while Heinrich revealed his idea[2], and the approach taken here is
> > > > > > something between them, with a focus on block device handlings.
> > > > > >
> > > > > > # The code is a PoC and not well tested yet.
> > > > > >
> > > > > > Disks in UEFI world:
> > > > > > ====================
> > > > > > In general in UEFI world, accessing to any device is performed through
> > > > > > a 'protocol' interface which are installed to (or associated with) the device's
> > > > > > UEFI handle (or an opaque pointer to UEFI object data). Protocols are
> > > > > > implemented by either the UEFI system itself or UEFI drivers.
> > > > > >
> > > > > > For block IO's, it is a device which has EFI_BLOCK_IO_PROTOCOL (efi_disk
> > > > > > hereafter). Currently, every efi_disk may have one of two origins:
> > > > > > a.U-Boot's block devices or related partitions
> > > > > >   (lib/efi_loader/efi_disk.c)
> > > > > > b.UEFI objects which are implemented as a block device by UEFI drivers.
> > > > > >   (lib/efi_driver/efi_block_device.c)
> > > > > >
> > > > > > All the efi_diskss as (a) will be enumelated and created only once at UEFI
> > > > > > subsystem initialization (efi_disk_register()), which is triggered by
> > > > > > first executing one of UEFI-related U-Boot commands, like "bootefi",
> > > > > > "setenv -e" or "efidebug".
> > > > > > EFI_BLOCK_IO_PROTOCOL is implemented by UEFI system using blk_desc(->ops)
> > > > > > in the corresponding udevice(UCLASS_BLK).
> > > > > >
> > > > > > On the other hand, efi_disk as (b) will be created each time UEFI boot
> > > > > > services' connect_controller() is executed in UEFI app which, as a (device)
> > > > > > controller, gives the method to access the device's data,
> > > > > > ie. EFI_BLOCK_IO_PROTOCOL.
> > > > > >
> > > > > > >>> more details >>>
> > > > > > Internally, connect_controller() search for UEFI driver that can support
> > > > > > this controller/protocol, 'efi_block' driver(UCLASS_EFI) in this case,
> > > > > > then calls the driver's 'bind' interface, which eventually installs
> > > > > > the controller's EFI_BLOCK_IO_PROTOCOL to efi_disk object.
> > > > > > 'efi_block' driver also create a corresponding udevice(UCLASS_BLK) for
> > > > > >   * creating additional partitions efi_disk's, and
> > > > > >   * supporting a file system (EFI_SIMPLE_FILE_SYSTEM_PROTOCOL) on it.
> > > > > > <<< <<<
> > > > > >
> > > > > > Issues:
> > > > > > =======
> > > > > > 1. While an efi_disk represents a device equally for either a whole disk
> > > > > >    or a partition in UEFI world, the device model treats only a whole
> > > > > >    disk as a real block device or udevice(UCLASS_BLK).
> > > > > >
> > > > > > 2. efi_disk holds and makes use of "blk_desc" data even though blk_desc
> > > > > >    in plat_data is supposed to be private and not to be accessed outside
> > > > > >    the device model.
> > > > > >    # This issue, though, exists for all the implmenetation of U-Boot
> > > > > >    # file systems as well.
> > > > >
> > > > > Yes, this was a migration convenience and we should be able to unpick it now.
> > > > >
> > > > > However we still have SPL_BLK so need to consider whether we can drop that.
> > > >
> > > > To be clear here, in that I can hand-wave my way to seeing a use case
> > > > for lib/efi_loader/ under SPL, it would not be in a world where we also
> > > > still would be supporting the non-DM infrastructure, and is also not a
> > > > near-term goal.
> > >
> > > OK good. Perhaps we should add a migration method for SPL_BLK? It
> > > would be good to know where we are in terms of the size stuff. I don't
> > > see a lot of boards rushing to use of-platdata, though.
> >
> > What do you mean?  Since we have platforms that need to support 12 or 16
> > KiB of space for SPL, we're not going to enforce SPL_DM.  But those
> > platforms can / do need to boot from MMC (SD card I think usually).
> >
> > In terms of platforms that could, but don't, enable SPL_BLK, that's just
> > the platforms that disable SPL_BLK today as it defaults to enabled when
> > possible.
> 
> Well I wonder if we can use of-platdata and DM then perhaps some of
> these will fit. The OMAP platform I sent patches for was close to
> complete, I think, and I believe that was one of the tightest.
> Actually I cannot remember what board that was...
> 
> The overhead is perhaps 7KB though, so maybe not suitable for 16KB.

It's only disabled on the vboot config, on am335x platforms.  Honestly,
I would suggest a separate thread and ask the board maintainers in
question why specifically it's off.  I know for
am335x_boneblack_vboot_defconfig it's inadvertent, it could be turned on
no problem I suspect.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

      reply	other threads:[~2021-10-12 23:40 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-01  5:01 [RFC 00/22] efi_loader: more tightly integrate UEFI disks to device model AKASHI Takahiro
2021-10-01  5:01 ` [RFC 01/22] part: call part_init() in blk_get_device_by_str() only for MMC AKASHI Takahiro
2021-10-01  6:41   ` Heinrich Schuchardt
2021-10-01  7:56     ` Heinrich Schuchardt
2021-10-04  3:13     ` AKASHI Takahiro
2021-10-01 11:48   ` Peter Robinson
2021-10-04  3:26     ` AKASHI Takahiro
2021-10-11 10:07     ` Heinrich Schuchardt
2021-10-11 14:32       ` Simon Glass
2021-10-11 15:08         ` Heinrich Schuchardt
2021-10-11 16:14           ` Simon Glass
2021-10-12  3:26             ` AKASHI Takahiro
2021-10-12 13:30               ` Heinrich Schuchardt
2021-10-13  1:50                 ` AKASHI Takahiro
2021-10-12 20:31               ` Simon Glass
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:01 ` [RFC 01/22] scsi: call device_probe() after scanning AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:01 ` [RFC 02/22] " AKASHI Takahiro
2021-10-01  5:01 ` [RFC 02/22] usb: storage: " AKASHI Takahiro
2021-10-01  5:01 ` [RFC 03/22] mmc: " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  1:10     ` AKASHI Takahiro
2021-10-01  5:01 ` [RFC 03/22] usb: storage: " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:01 ` [RFC 04/22] mmc: " AKASHI Takahiro
2021-10-01  5:01 ` [RFC 04/22] nvme: " AKASHI Takahiro
2021-10-01  5:01 ` [RFC 05/22] " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:01 ` [RFC 05/22] sata: " AKASHI Takahiro
2021-10-01  5:01 ` [RFC 06/22] block: ide: " AKASHI Takahiro
2021-10-01  5:01 ` [RFC 06/22] sata: " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  1:11     ` AKASHI Takahiro
2021-10-01  5:01 ` [RFC 07/22] block: ide: " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  1:43     ` AKASHI Takahiro
2021-10-11 14:54       ` Simon Glass
2021-10-12  5:53         ` Ilias Apalodimas
2021-10-13  0:35           ` AKASHI Takahiro
2021-10-01  5:01 ` [RFC 07/22] dm: blk: add UCLASS_PARTITION AKASHI Takahiro
2021-10-01  9:30   ` Heinrich Schuchardt
2021-10-04  3:27     ` AKASHI Takahiro
2021-10-08  0:51       ` AKASHI Takahiro
2021-10-08  8:23         ` Heinrich Schuchardt
2021-10-11  2:29           ` AKASHI Takahiro
2021-10-11 14:54             ` Simon Glass
2021-10-11 15:02               ` Heinrich Schuchardt
2021-10-11 16:14                 ` Simon Glass
2021-10-11 16:48                   ` Heinrich Schuchardt
2021-10-11 17:41                     ` Simon Glass
2021-10-12  5:12                       ` AKASHI Takahiro
2021-10-12  6:42                         ` Heinrich Schuchardt
2021-10-12 15:14                   ` Tom Rini
2021-10-13  1:32                     ` AKASHI Takahiro
2021-10-13 18:05                       ` Simon Glass
2021-10-14  8:03                         ` AKASHI Takahiro
2021-10-14 20:55                           ` Simon Glass
2021-10-28  8:52                             ` AKASHI Takahiro
2021-10-28 10:42                               ` Heinrich Schuchardt
2021-10-29  1:45                                 ` Simon Glass
2021-10-29  4:57                                   ` Heinrich Schuchardt
2021-10-29  6:15                                     ` AKASHI Takahiro
2021-10-29 19:21                                       ` Heinrich Schuchardt
2021-10-29 21:17                                         ` Simon Glass
2021-10-30  5:45                                           ` Heinrich Schuchardt
2021-11-01  0:36                                             ` AKASHI Takahiro
2021-11-01  1:15                                               ` Simon Glass
2021-11-01  1:51                                                 ` AKASHI Takahiro
2021-11-01  2:14                                                   ` Simon Glass
2021-11-02  1:42                                                     ` AKASHI Takahiro
2021-11-02  7:38                                                     ` Heinrich Schuchardt
2021-11-05  2:02                                                       ` Simon Glass
2021-11-05  2:49                                                         ` AKASHI Takahiro
2021-11-05 16:12                                                           ` Simon Glass
2021-11-08  4:46                                                             ` AKASHI Takahiro
2021-11-08 18:44                                                               ` Ilias Apalodimas
2021-11-09  0:09                                                                 ` Simon Glass
2021-11-13 18:14                                                                   ` Simon Glass
2021-11-13 18:37                                                                     ` Heinrich Schuchardt
2021-11-13 21:32                                                                       ` Simon Glass
2021-11-15  1:43                                                                         ` AKASHI Takahiro
2021-11-15 19:05                                                                           ` Simon Glass
2021-11-15 19:16                                                                             ` Heinrich Schuchardt
2021-11-15 23:51                                                                               ` AKASHI Takahiro
2021-11-16  0:02                                                                                 ` Heinrich Schuchardt
2021-11-16  3:01                                                                                   ` AKASHI Takahiro
2021-12-03  7:16                                                                                     ` AKASHI Takahiro
2021-12-03 16:06                                                                                       ` Heinrich Schuchardt
2021-12-06  4:18                                                                                         ` AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-12  3:53     ` AKASHI Takahiro
2021-10-01  5:01 ` [RFC 08/22] " AKASHI Takahiro
2021-10-01  9:32   ` Heinrich Schuchardt
2021-10-01  5:02 ` [RFC 08/22] dm: blk: add a device-probe hook for scanning disk partitions AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 09/22] " AKASHI Takahiro
2021-10-01  5:02 ` [RFC 09/22] dm: blk: add read/write interfaces with udevice AKASHI Takahiro
2021-10-01  5:02 ` [RFC 10/22] " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 10/22] efi_loader: disk: use udevice instead of blk_desc AKASHI Takahiro
2021-10-01  5:02 ` [RFC 11/22] dm: add a hidden link to efi object AKASHI Takahiro
2021-10-01  5:02 ` [RFC 11/22] efi_loader: disk: use udevice instead of blk_desc AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 12/22] dm: add a hidden link to efi object AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  6:43     ` AKASHI Takahiro
2021-10-11 14:54       ` Simon Glass
2021-10-11 15:26         ` Heinrich Schuchardt
2021-10-11 16:09           ` Simon Glass
2021-10-12  2:09             ` AKASHI Takahiro
2021-10-12 20:31               ` Simon Glass
2021-10-01  5:02 ` [RFC 12/22] efi_loader: remove !CONFIG_BLK code from efi_disk AKASHI Takahiro
2021-10-01  5:02 ` [RFC 13/22] efi_loader: disk: a helper function to create efi_disk objects from udevice AKASHI Takahiro
2021-10-01  5:02 ` [RFC 13/22] efi_loader: remove !CONFIG_BLK code from efi_disk AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 14/22] dm: blk: call efi's device-probe hook AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  3:15     ` AKASHI Takahiro
2021-10-11 14:54       ` Simon Glass
2021-11-01  3:03         ` Simon Glass
2021-10-01  5:02 ` [RFC 14/22] efi_loader: disk: a helper function to create efi_disk objects from udevice AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  6:52     ` AKASHI Takahiro
2021-10-11 14:54       ` Simon Glass
2021-10-12  1:09         ` AKASHI Takahiro
2021-10-12 14:08           ` Simon Glass
2021-10-01  5:02 ` [RFC 15/22] dm: blk: call efi's device-probe hook AKASHI Takahiro
2021-10-01  5:02 ` [RFC 15/22] efi_loader: cleanup after efi_disk-dm integration AKASHI Takahiro
2021-10-01  5:02 ` [RFC 16/22] efi_loader: add efi_remove_handle() AKASHI Takahiro
2021-10-01  5:02 ` [RFC 16/22] efi_loader: cleanup after efi_disk-dm integration AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 17/22] efi_loader: add efi_remove_handle() AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 17/22] efi_loader: efi_disk: a helper function to delete efi_disk objects AKASHI Takahiro
2021-10-01  5:02 ` [RFC 18/22] dm: blk: call efi's device-removal hook AKASHI Takahiro
2021-10-01  5:02 ` [RFC 18/22] efi_loader: efi_disk: a helper function to delete efi_disk objects AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 19/22] dm: blk: call efi's device-removal hook AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 19/22] efi_driver: align with efi_disk-dm integration AKASHI Takahiro
2021-10-01  5:02 ` [RFC 20/22] " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-11  7:41     ` AKASHI Takahiro
2021-10-01  5:02 ` [RFC 20/22] efi_driver: cleanup after " AKASHI Takahiro
2021-10-01  5:02 ` [RFC 21/22] " AKASHI Takahiro
2021-10-10 14:14   ` Simon Glass
2021-10-01  5:02 ` [RFC 21/22] efi_selftest: block device: adjust dp for a test disk AKASHI Takahiro
2021-10-01  5:02 ` [RFC 22/22] (TEST) let dm-tree unchanged after block_io testing is done AKASHI Takahiro
2021-10-01  5:02 ` [RFC 22/22] efi_selftest: block device: adjust dp for a test disk AKASHI Takahiro
2021-10-02 14:17   ` Heinrich Schuchardt
2021-10-10 14:14 ` [RFC 00/22] efi_loader: more tightly integrate UEFI disks to device model Simon Glass
2021-10-12 15:00   ` Tom Rini
2021-10-12 20:31     ` Simon Glass
2021-10-12 21:13       ` Tom Rini
2021-10-12 23:37         ` Simon Glass
2021-10-12 23:40           ` Tom Rini [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211012234028.GI7964@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=agraf@csgraf.de \
    --cc=ilias.apalodimas@linaro.org \
    --cc=sjg@chromium.org \
    --cc=takahiro.akashi@linaro.org \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.