From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk
Date: Fri, 23 Aug 2019 09:04:21 +0900 [thread overview]
Message-ID: <20190823000420.GF14152@linaro.org> (raw)
In-Reply-To: <ac7aa984-4215-101d-3065-01782ee3d150@gmx.de>
On Thu, Aug 22, 2019 at 12:52:41PM +0200, Heinrich Schuchardt wrote:
> On 8/22/19 11:11 AM, Mark Kettenis wrote:
> >>From: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>Date: Thu, 22 Aug 2019 17:06:25 +0900
> >>
> >>Currently, a whole disk without any partitions is not associated
> >>with EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. So even if it houses FAT
> >>file system, there is a chance that we may not be able to access
> >>it, particularly, when accesses are to be attempted after searching
> >>that protocol against a device handle.
> >>
> >>With this patch, EFI_SIMPLE_FILE_SYSTEM_PROTOCOL is installed
> >>to such a disk if part_get_info() shows there is not partition
> >>table installed on it.
> >
> >Do other UEFI implementations support this?
>
> What use cases exist that come without partition table?
I didn't find any *explicit* description in UEFI specification
that mandates that any block device should have a partition table.
It may be mandatory for boot(able) disks, but for others?
> You can create an MBR with partition table that is a valid start of a
> file system.
Obviously we can do that, but if this is not a mandatory requirement,
we'd better support no-partitioned cases.
> So you should first check if a partition table exists. Only if none
> exists you can test for a possible file system.
I don't get your point. Are you saying that we should support a file system
for a disk only if it has a file system?
This is not true even for existing partitions as FILE_SYSTEM PROTOCOL
is always installed to every partition whether or not it really
houses a file system under the current implementation.
Thanks,
-Takahiro Akashi
> Best regards
>
> Heinrich
>
> >
> >>Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>---
> >> lib/efi_loader/efi_disk.c | 4 +++-
> >> 1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >>diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> >>index 7a6b06821a47..548fe667e6f8 100644
> >>--- a/lib/efi_loader/efi_disk.c
> >>+++ b/lib/efi_loader/efi_disk.c
> >>@@ -239,6 +239,7 @@ static efi_status_t efi_disk_add_dev(
> >> struct efi_disk_obj **disk)
> >> {
> >> struct efi_disk_obj *diskobj;
> >>+ disk_partition_t info;
> >> efi_status_t ret;
> >>
> >> /* Don't add empty devices */
> >>@@ -270,7 +271,8 @@ static efi_status_t efi_disk_add_dev(
> >> diskobj->dp);
> >> if (ret != EFI_SUCCESS)
> >> return ret;
> >>- if (part >= 1) {
> >>+ /* partitions or whole disk without partitions */
> >>+ if (part >= 1 || part_get_info(desc, part, &info)) {
> >> diskobj->volume = efi_simple_file_system(desc, part,
> >> diskobj->dp);
> >> ret = efi_add_protocol(&diskobj->header,
> >>--
> >>2.21.0
> >>
> >>_______________________________________________
> >>U-Boot mailing list
> >>U-Boot at lists.denx.de
> >>https://lists.denx.de/listinfo/u-boot
> >
>
next prev parent reply other threads:[~2019-08-23 0:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-22 8:06 [U-Boot] [PATCH] efi_loader: disk: install file system protocol to a whole disk AKASHI Takahiro
2019-08-22 9:11 ` Mark Kettenis
2019-08-22 10:52 ` Heinrich Schuchardt
2019-08-23 0:04 ` AKASHI Takahiro [this message]
2019-09-11 6:16 ` AKASHI Takahiro
2019-09-11 17:31 ` Heinrich Schuchardt
2019-09-12 0:22 ` AKASHI Takahiro
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=20190823000420.GF14152@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=u-boot@lists.denx.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.