public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* EDK2 UEFI Specification and Revision
@ 2019-10-21  8:15 sergestus
  2019-10-21 15:53 ` [edk2-devel] " Andrew Fish
  0 siblings, 1 reply; 5+ messages in thread
From: sergestus @ 2019-10-21  8:15 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 181 bytes --]

When runs "ver" command in EFI Shell command line it shows UEFI specification and revision. The question is how to find out what UEFI specification and revision does EDK2 support?

[-- Attachment #2: Type: text/html, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [edk2-devel] EDK2 UEFI Specification and Revision
  2019-10-21  8:15 EDK2 UEFI Specification and Revision sergestus
@ 2019-10-21 15:53 ` Andrew Fish
  2019-10-22 10:13   ` sergestus
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Fish @ 2019-10-21 15:53 UTC (permalink / raw)
  To: devel, sergestus

[-- Attachment #1: Type: text/plain, Size: 1307 bytes --]

The header in the EFI_SYSTEM_TABLE (gST)  carries the UEFI Specification version. It is filled in by the DXE Core when it produces the EFI System Table. 

$ git grep EFI_SYSTEM_TABLE_REVISION
MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c:126:    EFI_SYSTEM_TABLE_REVISION,                                            // Revision
MdeModulePkg/Universal/SetupBrowserDxe/Setup.h:74:#define EFI_IFR_SPECIFICATION_VERSION  (UINT16) (((EFI_SYSTEM_TABLE_REVISION >> 16) << 8) | (((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) / 10) << 4) | ((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) % 10))
MdePkg/Include/Uefi/UefiSpec.h:1780:#define EFI_SYSTEM_TABLE_REVISION       EFI_2_70_SYSTEM_TABLE_REVISION
MdePkg/Include/Uefi/UefiSpec.h:1781:#define EFI_SPECIFICATION_VERSION       EFI_SYSTEM_TABLE_REVISION

$ git grep EFI_2_70_SYSTEM_TABLE_REVISION
MdePkg/Include/Uefi/UefiSpec.h:1769:#define EFI_2_70_SYSTEM_TABLE_REVISION  ((2 << 16) | (70))
MdePkg/Include/Uefi/UefiSpec.h:1780:#define EFI_SYSTEM_TABLE_REVISION       EFI_2_70_SYSTEM_TABLE_REVISION

Thanks,

Andrew Fish

> On Oct 21, 2019, at 1:15 AM, sergestus@yandex.ru wrote:
> 
> When runs "ver" command in EFI Shell command line it shows UEFI specification and revision. The question is how to find out what UEFI specification and revision does EDK2 support?
> 


[-- Attachment #2: Type: text/html, Size: 7902 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [edk2-devel] EDK2 UEFI Specification and Revision
  2019-10-21 15:53 ` [edk2-devel] " Andrew Fish
@ 2019-10-22 10:13   ` sergestus
  2019-10-25  1:01     ` Andrew Fish
  0 siblings, 1 reply; 5+ messages in thread
From: sergestus @ 2019-10-22 10:13 UTC (permalink / raw)
  To: Andrew Fish, devel

[-- Attachment #1: Type: text/plain, Size: 443 bytes --]

Hi Andrew,

Thank you, for the detail answer. It seems this is what I'm looking for. Now I've found the UEFI specification of the UEFI application I build, and it appears that the specification of the application is greater than the EFI Shall specification it is going to be used with. Is it ok, or I should find the EDK2 with UEFI specification exactly the same as the EFI Shell specification and rebuild my EFI app?

Thank you,
Sergey

[-- Attachment #2: Type: text/html, Size: 463 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [edk2-devel] EDK2 UEFI Specification and Revision
  2019-10-22 10:13   ` sergestus
@ 2019-10-25  1:01     ` Andrew Fish
  2019-10-25 10:49       ` sergestus
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Fish @ 2019-10-25  1:01 UTC (permalink / raw)
  To: sergestus; +Cc: devel

You can check the revision and only depend on those features if they are implied by the UEFI revision?
> On Oct 22, 2019, at 3:13 AM, sergestus@yandex.ru wrote:
> 
> Hi Andrew,
> 
> Thank you, for the detail answer. It seems this is what I'm looking for. Now I've found the UEFI specification of the UEFI application I build, and it appears that the specification of the application is greater than the EFI Shall specification it is going to be used with. Is it ok, or I should find the EDK2 with UEFI specification exactly the same as the EFI Shell specification and rebuild my EFI app?
> 
> Thank you,
> Sergey

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [edk2-devel] EDK2 UEFI Specification and Revision
  2019-10-25  1:01     ` Andrew Fish
@ 2019-10-25 10:49       ` sergestus
  0 siblings, 0 replies; 5+ messages in thread
From: sergestus @ 2019-10-25 10:49 UTC (permalink / raw)
  To: Andrew Fish, devel

[-- Attachment #1: Type: text/plain, Size: 819 bytes --]

My app (UEFI spec 2.7) uses following protocols:
EFI_BOOT_SERVICES revision EFI_SPECIFICATION_VERSION
EFI_FILE_PROTOCOL revision 0x00020000
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 0x00010000
EFI_PEI_SERVICES - not found in UEFI specificaion
EFI_PEI_CPU_IO_PPI - not found in UEFI specificaion

UEFI Specification 2.4 protocols:
EFI_BOOT_SERVICES revision EFI_SPECIFICATION_VERSION
EFI_FILE_PROTOCOL revision 0x00020000
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 0x00010000

So the main services API EFI_BOOT_SERVICES, where I'm using few common functions (OpenProtocol, AllocatePool...) differs from the EFI shell where app is using. Also there are protocols such as EFI_PEI_SERVICES and EFI_PEI_CPU_IO_PPI about which differences I can say nothing, so it is batter to find EDK2 with UEFI spec 2.4.

Thank you,
Sergey

[-- Attachment #2: Type: text/html, Size: 1081 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-25 10:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-21  8:15 EDK2 UEFI Specification and Revision sergestus
2019-10-21 15:53 ` [edk2-devel] " Andrew Fish
2019-10-22 10:13   ` sergestus
2019-10-25  1:01     ` Andrew Fish
2019-10-25 10:49       ` sergestus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox