On Wed, May 06, 2020 at 09:09:45PM +0200, Heinrich Schuchardt wrote:
> On 5/6/20 3:18 PM, Grant Likely wrote:
> >
> >
> > On 05/05/2020 17:41, Heinrich Schuchardt wrote:
> >> On 05.05.20 17:44, Grant Likely wrote:
> >>> Hi all,
> >>>
> >>> I'm considering doing a quick point-release for EBBR to address the
> >>> change to RuntimeServicesSupported in UEFI 2.8 Errata A. From 2.8final
> >>> to 2.8_A, RuntimeServicesSupported changed from being a variable to data
> >>> in a system table entry. U-Boot and Linux have been updated to the UEFI
> >>> method. EBBR needs to be changed to match.
> >>>
> >>> There are patches on this list under discussion now. Once that is
> >>> complete and the patches merged, how does everyone feel about an EBBR
> >>> v1.0.1 release before the end of May?
> >>>
> >>> At this moment, the v1.0.1 changes would include:
> >>>
> >>> e47952b (HEAD -> master, glikely/master) Specify details of how a DTB is
> >>> passed to the OS
> >>
> >> Thanks for updating the patch.
> >>
> >>> c155e96 Update spec to address UEFI 2.8 Errata A
> >>
> >> The patch looks correct. This is what I stumbled upon looking at the
> >> rest of the runtime chapter:
> >>
> >> The 'Runtime Variable Access' sub-chapter mentions only SetVariable() as
> >> optional while the table above it specifies all variable services as
> >> optional. Could we start the sub-chapter with a sentence
> >>
> >>    "All variable services at runtime are optional."
> >>
> >> to avoid misunderstandings.
> >>
> >> The `RuntimeServicesSupported` value flag in the
> >> `EFI_RT_PROPERTIES_TABLE` should be set correctly for all runtime
> >> services. Mentioning this requirement specifically for SetVariable()
> >> might be misleading.
> >
> > This is a bit tricky. In past conversations I was pushing toward making
> > GetVariable()/GetNextVariableName() required and only SetVariable()
> > optional, but there wasn't concensus at that time. The text as it stands
> > it kind of a mix on whether or not GetVariable() is required or merely
> > recommended.
> >
> > For the point release that we do soon, I could tidy up the text a bit,
> > but I'd like some thoughts on where EBBR should go for the next major
> > revision. GetVariable() should be straight forward to implement
> > GetVariable at runtime by using a RAM-cached value. I don't believe any
> > work has been done to support that in U-Boot.
> 
> See this patch series that is not yet merged:
> https://patchwork.ozlabs.org/project/uboot/list/?series=167069
> 
> In the series non-volatile variables are persisted in a file on the EFI
> system partition.
> 
> With the patch series SetVariable() is enabled at runtime. We would need
> a systemd service for updating the variables in the file store before a
> reboot but that would not be really conforming to the UEFI spec which
> mandates immediate update of the store.
> 
> For the other variable services the patch series provides a compliant
> solution.
> 
> Ilias Apalodimas has a draft patch series for using OP-TEE and MM for
> managing variables. But storage in the RPMB partition of an eMMC device
> would only work at boottime. Just what you described at last years
> Embedded Linux conference (https://www.youtube.com/watch?v=VnsF3uRZzNk).
> 
> Takahiro Akashi last year presented alternative patches that would
> enable reading variables at runtime.

Also via a kind of ram-cache, but I can agree to Heinrich's
approach if UEFI variables are re-implemented from the scratch
except that we don't have to stick to file system.

> He recently suggested to use
> capsule updates to update variables and has submitted patches for
> capsule updates
> (https://patchwork.ozlabs.org/project/uboot/list/?series=172907).

Just for clarification, "variable updates" patch was included
in RFC but later dropped in v1 as the discussions were immature.

Thanks,
-Takahiro Akashi

> If we do not have SetVariable() at runtime, I do not see much value in
> QueryVariableInfo(). So we shouldn't make that service compulsory.
> 
> Best regards
> 
> Heinrich
> 
> >
> > Thoughts?
> >
> >>
> >> There is a capitalization typo in the chapter:
> >>
> >> %s/e.g., If/E.g., if/
> >
> > Fixed and committed as a trivial fix.
> >
> > g.
> >
> >>
> >> Best regards
> >>
> >> Heinrich
> >>
> >>> 7fad894 (origin/master, origin/HEAD) Fix all UEFI references to be the
> >>> same version
> >>> 498cad2 trivial: Fix typo in chater 3 title
> >>> 2c40029 Merge pull request #43 from orangecms/link-to-linux-doc
> >>> 1e51a1e Update link to Linux docs which changed to rst
> >>> be7ddfa Update CONTRIBUTING.rst
> >>> 763aed0 Update CONTRIBUTING.rst
> >>>
> >>> All of the above can be found queued up at
> >>> http://github.com/glikely/ebbr
_______________________________________________
boot-architecture mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/boot-architecture

Reply via email to