On 12/07/2018 15:50, Mark Brown wrote:
On Thu, Jul 12, 2018 at 02:19:49PM +0000, Udit Kumar wrote:
Do any existing implementations change variables from non-volatile to volatile?
The UEFI spec is explicit about which variables are volatile and which are not. Simply relaxing non-volatile to volatile in the general case doesn't seem like a useful approach to me.
I believe at boot-time, UEFI specs will be followed for volatile and non-volatile variables. Having this in statement EBBR, will help those platform, which cannot expose non-volatile variables at runtime.
If nothing currently does it the chances that anything will actually cope well seem minimal. Like Daniel said it seems more likely to break things - if the variables are defined as being non-volatile then the OS is unlikely to be checking at runtime if that's the case or not unless it's explicitly written to work with EBBR. If an error is generated because a non-volatile variable can't be set then that should at least fall into whatever error handling code is there to cover normal rutime failures which has some chance of doing something sensible.
There is a hard break at least between when variables are used in boot services, and when they are used at runtime. For Linux, only the UEFI stub will read the variables at boot time (if at all) before calling exitBootServices(). By the time the kernel starts, runtime services are the only way to access variables. There is no caching of variables from the stub to the kernel as far as I can tell.
As far as the kernel and userspace are concerned, all the variables will have only ever been volatile.
g.
Arm.ebbr-discuss mailing list Arm.ebbr-discuss@arm.com