[PATCH 09/16] efi_loader: imply FAT, FAT_WRITE

Heinrich Schuchardt
2020-04-01T06:31:10Z

On 4/1/20 3:14 AM, AKASHI Takahiro wrote:
> On Wed, Apr 01, 2020 at 08:57:33AM +0900, AKASHI Takahiro wrote:
>> On Tue, Mar 31, 2020 at 03:08:06PM +0200, Heinrich Schuchardt wrote:
>>> On 2020-03-31 09:44, AKASHI Takahiro wrote:
>>>> On Tue, Mar 31, 2020 at 08:44:02AM +0200, Heinrich Schuchardt wrote:
>>>>> On March 31, 2020, 5:28 a.m. UTC Takahiro Akashi wrote:
>>>>>> On Fri, Mar 27, 2020 at 06:27:53AM +0100, Heinrich Schuchardt wrote:
>>>>>>> The UEFI spec requires support for the FAT file system.
>>>>>>>
>>>>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
>>>>>>> ---
>>>>>>> lib/efi_loader/Kconfig | 2 ++
>>>>>>> 1 file changed, 2 insertions(+)
>>>>>>>
>>>>>>> diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
>>>>>>> index 9890144d41..e10ca05549 100644
>>>>>>> --- a/lib/efi_loader/Kconfig
>>>>>>> +++ b/lib/efi_loader/Kconfig
>>>>>>> @@ -15,6 +15,8 @@ config EFI_LOADER
>>>>>>> select HAVE_BLOCK_DEVICE
>>>>>>> select REGEX
>>>>>>> imply CFB_CONSOLE_ANSI
>>>>>>> + imply FAT
>>>>>>> + imply FAT_WRITE
>>>>>>
>>>>>> Obviously, this *imply* doesn't enforce enabling FAT.
>>>>>> If it is absolutely necessary, another measure should be taken.
>>>>>
>>>>> If somebody wants to minimize the U-Boot size it might be necessary to
>>>>> do without FAT_WRITE or FAT support.
>>>>
>>>> If so, Get/SetVariable won't be supported even in boot time
>>>> with your patch applied. It is not practical for almost all users.
>>>
>>> Hello Akashi,
>>>
>>> without FAT_WRITE we will not have persistence for variables.
>>> SetVariable and GetVariable are still usable.
>>
>> How about CONFIG_FAT?
>
> (=> What if !CONFIG_FAT)
>
>
> More fundamentally,
> Why do you want to use a file as storage device for variables?
> why not raw partition (or just part of partition) on, say,
> NOR or eMMC?
>
> As you know, EDK2 saves variables directly on NOR (or block device?
> probably).

Yes, we may add further stores later on. Ilias wants to use the RPMB
area of eMMC devices. As an EFI system partition exists on any UEFI
compatible device I think implementing this first is a valid approach.

Best regards

Heinrich

>
> -Takahiro Akashi
>
>> -Takahiro Akashi
>>
>>> Best regards
>>>
>>> Heinrich
>>>
>>>>
>>>>>>
>>>>>> In addition, why do you treat FAT specifically here?
>>>>>> I remember that you insisted that other file system should be
>>>>>> allowed on U-Boot when I posted some patch.
>>>>>
>>>>> An EFI system partition is always FAT formatted. So if we want to safe
>>>>> U-Boot variables to the EFI system partition we require FAT.
>>>>
>>>> As system partition is required to be in FAT, file system used on
>>>> other partitions must also be in FAT since, as I said before,
>>>> UEFI specification clearly defines its file system format based on FAT.
>>>> See section 13.3.
>>>>
>>>> So,
>>>>
>>>>>> I remember that you insisted that other file system should be
>>>>>> allowed on U-Boot when I posted some patch.
>>>>
>>>> You reverted your statement above here.
>>>> That is my point.
>>>>
>>>> -Takahiro Akashi
>>>>
>>>>> Best regards
>>>>>
>>>>> Heinrich
>>>>>
>>>>>>
>>>>>> -Takahiro Akashi
>>>>>>
>>>>>>
>>>>>>> imply USB_KEYBOARD_FN_KEYS
>>>>>>> imply VIDEO_ANSI
>>>>>>> help
>>>>>>> --
>>>>>>> 2.25.1
>>>