* access efi variables
@ 2013-09-13 15:37 Arend van Spriel
2013-09-13 16:39 ` Arend van Spriel
[not found] ` <52333139.6020203-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
0 siblings, 2 replies; 5+ messages in thread
From: Arend van Spriel @ 2013-09-13 15:37 UTC (permalink / raw)
To: Matt Fleming
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
I need to obtain a uefi variable so I went looking at the API in
include/linux/efi.h. I found the following definition:
/*
* The maximum size of VariableName + Data = 1024
* Therefore, it's reasonable to save that much
* space in each part of the structure,
* and we use a page for reading/writing.
*/
struct efi_variable {
efi_char16_t VariableName[1024/sizeof(efi_char16_t)];
efi_guid_t VendorGuid;
unsigned long DataSize;
__u8 Data[1024];
efi_status_t Status;
__u32 Attributes;
} __attribute__((packed));
But according to the specs the variable I need to obtain is 2k bytes.
Should I expect trouble :-p
Regards,
Arend
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: access efi variables 2013-09-13 15:37 access efi variables Arend van Spriel @ 2013-09-13 16:39 ` Arend van Spriel [not found] ` <52333139.6020203-dY08KVG/lbpWk0Htik3J/w@public.gmane.org> 1 sibling, 0 replies; 5+ messages in thread From: Arend van Spriel @ 2013-09-13 16:39 UTC (permalink / raw) To: Matt Fleming; +Cc: linux-efi, linux-kernel@vger.kernel.org On 09/13/2013 05:37 PM, Arend van Spriel wrote: > I need to obtain a uefi variable so I went looking at the API in > include/linux/efi.h. I found the following definition: > > /* > * The maximum size of VariableName + Data = 1024 > * Therefore, it's reasonable to save that much > * space in each part of the structure, > * and we use a page for reading/writing. > */ > > struct efi_variable { > efi_char16_t VariableName[1024/sizeof(efi_char16_t)]; > efi_guid_t VendorGuid; > unsigned long DataSize; > __u8 Data[1024]; > efi_status_t Status; > __u32 Attributes; > } __attribute__((packed)); > > But according to the specs the variable I need to obtain is 2k bytes. Maybe clarify that "the specs" is basically the feature information I received internally here. > Should I expect trouble :-p > > Regards, > Arend > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <52333139.6020203-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>]
* Re: access efi variables [not found] ` <52333139.6020203-dY08KVG/lbpWk0Htik3J/w@public.gmane.org> @ 2013-09-13 22:37 ` H. Peter Anvin [not found] ` <5233939B.3020401-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: H. Peter Anvin @ 2013-09-13 22:37 UTC (permalink / raw) To: Arend van Spriel Cc: Matt Fleming, linux-efi-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 09/13/2013 08:37 AM, Arend van Spriel wrote: > I need to obtain a uefi variable so I went looking at the API in > include/linux/efi.h. I found the following definition: > > But according to the specs the variable I need to obtain is 2k bytes. > Should I expect trouble :-p > efivarfs doesn't have those limitations. -hpa ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <5233939B.3020401-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>]
* Re: access efi variables [not found] ` <5233939B.3020401-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org> @ 2013-09-14 17:01 ` Arend van Spriel [not found] ` <5234965F.3050404-dY08KVG/lbpWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Arend van Spriel @ 2013-09-14 17:01 UTC (permalink / raw) To: H. Peter Anvin Cc: Matt Fleming, linux-efi-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 09/14/13 00:37, H. Peter Anvin wrote: > On 09/13/2013 08:37 AM, Arend van Spriel wrote: >> I need to obtain a uefi variable so I went looking at the API in >> include/linux/efi.h. I found the following definition: >> >> But according to the specs the variable I need to obtain is 2k bytes. >> Should I expect trouble :-p >> > > efivarfs doesn't have those limitations. Thanks, Peter Looking into efivarfs it seems to use the functions that I looked at in efi.h so I guess I am misinterpreting the 1024 bytes limitation in the comment (either that or you are mistaken ;-) ). I need to access the variable from within a device driver so using efivarfs does not feel like the way to go here. Regards, Arend ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <5234965F.3050404-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>]
* Re: access efi variables [not found] ` <5234965F.3050404-dY08KVG/lbpWk0Htik3J/w@public.gmane.org> @ 2013-09-17 15:46 ` Matt Fleming 0 siblings, 0 replies; 5+ messages in thread From: Matt Fleming @ 2013-09-17 15:46 UTC (permalink / raw) To: Arend van Spriel Cc: H. Peter Anvin, Matt Fleming, linux-efi-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On Sat, 14 Sep, at 07:01:19PM, Arend van Spriel wrote: > On 09/14/13 00:37, H. Peter Anvin wrote: > >On 09/13/2013 08:37 AM, Arend van Spriel wrote: > >>I need to obtain a uefi variable so I went looking at the API in > >>include/linux/efi.h. I found the following definition: > >> > >>But according to the specs the variable I need to obtain is 2k bytes. > >>Should I expect trouble :-p > >> > > > >efivarfs doesn't have those limitations. > > Thanks, Peter > > Looking into efivarfs it seems to use the functions that I looked at > in efi.h so I guess I am misinterpreting the 1024 bytes limitation > in the comment (either that or you are mistaken ;-) ). I need to > access the variable from within a device driver so using efivarfs > does not feel like the way to go here. Look at how efivarfs_file_read() is implemented, e.g. using efivar_entry_get(). In particular, note how it kmalloc()'s a buffer for reading the variable data into, thereby avoiding any 1024-byte limitation. -- Matt Fleming, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-09-17 15:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-13 15:37 access efi variables Arend van Spriel
2013-09-13 16:39 ` Arend van Spriel
[not found] ` <52333139.6020203-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2013-09-13 22:37 ` H. Peter Anvin
[not found] ` <5233939B.3020401-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-09-14 17:01 ` Arend van Spriel
[not found] ` <5234965F.3050404-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2013-09-17 15:46 ` Matt Fleming
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).