Date   

Is the PCD database static?

Konstantin Aladyshev
 

Hello!

I'm trying to understand Dynamic PCDs in EDK2.
Is the PCD database static
(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/PCD/Dxe/Service.c)?
I mean is it possible to add new PCD entries at runtime?
For example I have compiled OVMF and run it under QEMU. Is it possible
to create an UEFI_APPLICATION that would add some new PCD to the
database, and another UEFI_APPLICATION that would read that PCD from
the database?

Best regards,
Konstantin Aladyshev


Initializing and binding network interface

bagcic@...
 

Hi all,
I am trying to attach my ethernet controller Intel I210 connected to PCIe#8 as network interface and assing an IP address to it. I could not figure out how to do so. Do you have an example regarding this?
Thanks,


TFTP failing in tunneled network

Georg Pfuetzenreuter
 

Hello,

I have two KVM hypervisors:
Hypervisor A - Internal VM network
Hypervisor B - Internal VM network bridged to Hypervisor A's internal VM network through Open vSwitch GRE tunnel (VXLAN attempted as well)

On Hypervisor A, VM's provide DHCP and TFTP services for PXE boot.
VM's on Hypervisor A are able to successfully boot PXE in EFI mode.

VM's on Hypervisor B however, confirm receiving an IP address, but eventually time out with `PXE-E18: Server response timeout.`.

What is interesting, is that this seems to be specific to EFI's TFTP implementation.
If I boot a ready-installed OS on the same VM on Hypervisor B, I receive an IP address using DHCP, and I am able to utilize regular *nix TFTP clients to download my boot file manually.

Using tcpdump it looks like the boot file is successfully REQuested, but never acknowledged as having succeeded. The boot file seems to instead be transferred over and over again, until it eventually times out, printing "User aborted the transfer" in the hex output.

In the log of the TFTP servers (I attempted tftp-hpa as well as OpenBSD's tftpd), only a REQ shows up, never a success message.

My attachment "tcpdump_failed.txt" is the tcpdump of an attempted PXE boot on said VM on Hypervisor B.

For comparison, "tcpdump_ok.txt" is the tcpdump of a successful PXE boot on a VM on Hypervisor A.

I then attempted to initiate a manual TFTP request using the TFTP client in the EFI shell:

Shell> tftp 172.16.25.2 grub.efi
Unable to get the size of the file 'grub.efi' on 'eth0' - No mapping

Specifying the blocksize does not seem to help:

Shell> tftp -S 2424 172.16.25.2 grub.efi
Downloading the file 'grub.efi'
tftp: Cannot open file - 'grub.efi'
Unable to download the file 'grub.efi' on 'eth0' - Not Found

The IP address configuration seems to be fine (it applied the DHCP configuration it received during the PXE process):

Shell> ifconfig -l eth0
name : eth0
Media State : Media present
policy : dhcp
mac addr : 52:54:00:C5:1A:63
ipv4 address : 172.16.25.16
subnet mask : 255.255.255.19
default gateway: 172.16.25.1
Routes (2 entries):
Entry[0]
Subnet : 172.16.25.0
Netmask: 255.255.255.192
Gateway: 0.0.0.0
Entry[1]
Subnet : 0.0.0.0
Netmask: 0.0.0.0
Gateway: 172.16.25.1
DNS server :
172.16.25.1

I additionally attempted:
- DHCP server with and without Option 13 (boot file size)
- TFTP server with and without "max block size" option specified
- TFTP server with timeout infinitely increased
- TFTP server with retransmit infinitely increased
- Compiling latest OVMF from Git master branch (pc-q35-5.2)

I want to emphasize again, that I am able to successfully download the same file using UNIX based TFTP clients on the same VM from an installed OS - with, and without specifying a blocksize.

There is no routing and there are no firewalls in between. The bridge is acting like a Layer 2 switch and other network applications communicate over it with no issues. The VM's network interfaces are `virtio`.

I apologize for the long email but would appreciate any hints on what the EFI TFTP implementation is doing different, stopping it from working in networks a regular TFTP client is able to work flawlessly in.

Thanks for reading!
Best
Georg


Boot into 64bit TianoCore from 32bit EFI

caeses-email@...
 

Hi,

I hope this is an appropriate way to ask this question, if not, please refer me to the right group :-)
I am running Ubuntu on a Mac mini with 32bit EFI and a 64bit processor and until recently I used the 32bit EFI variant of Ubuntu which makes updates a bit more of a hassle.
Remembering that there is an UEFI implementation for raspberries I am curious whether it is possible to install tianocore to an SSD and boot from 32bit EFI into tianocore and then boot a standard 64bit Linux distribution?
Should I compile my own tianocore version? If so: should I compile a 32bit or 64bit version?
Thank you for your help.

kind regards,


Re: Shell App - Get Args unsupported?

Mitchell, Nathaniel P
 

That was very helpful Andrew, Thank you!

I was able to get it working on my own, but you helped me understand what I did.

Nathaniel

From: Andrew Fish <afish@...>
Sent: Tuesday, December 7, 2021 10:05 AM
To: discuss <discuss@edk2.groups.io>; Mitchell, Nathaniel P <nathaniel.p.mitchell@...>
Subject: Re: [edk2-discuss] Shell App - Get Args unsupported?

Nathaniel,

Are you trying to write an EFI App or a Shell App?

Conceptually a Shell App is an EFI App that also has access to gEfiShellProtocolGuid, gEfiShellParametersProtocolGuid, etc. But to have access to those features the UEFI Shell has to be running. The Shell APIs help you do useful things and abstract some Shell concepts like Volume names (fs0:), as volume names don’t exist in UEFI.

So 1st off did you launch your App from the Shell?

2nd did you build your App from the edk2? Did you link in UefiApplicationEntryPoint? Means it is in the INF under [LibraryClasses]

I assume your example code looks like…

EFI_STATUS Status;
EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters;

Status = gBS->HandleProtocol (
gImageHandle,
&gEfiShellParametersProtocolGuid,
(VOID**)&ShellParameters
);
if (EFI_ERROR(Status)) {
return Status;
}

The gImageHandle is the image handle for your app. It was set by the UefiBootServicesTableLib that would be pulled in by the UefiApplicationEntryPoint lib. An image handle is created when ever a PE/COFF image is loaded in EFI. The UEFI Shell adds the extra gEfiShellParametersProtocolGuid on this handle.

You should be getting a return code of 0x800000000000003[1] you can use %r to get it decoded for you, or %lx to see the real value. FYI 0x3 is actually RETURN_WARN_WRITE_FAILURE.

The way EFI works is you have a set of handle, and each handle has a set of unique protocols on the handle. If gEfiShellParametersProtocolGuid is not present that means you passed in the wrong handle, or you did not load from the UEFI Shell so gEfiShellParametersProtocolGuid did not get added to the handle.

[1] https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Base.h#L1002

Thanks,

Andrew Fish


On Dec 6, 2021, at 12:33 PM, nathaniel.p.mitchell@...<mailto:nathaniel.p.mitchell@...> wrote:

Hi all,

I'm trying to create a basic shell app that consumes command line arguments. I'm able to build and run the .efi file. I looked around and found examples of the function "GetArg()" using gBS->HandleProtocol. I tried updating it to use gBS->OpenProtocol, but in both cases the return of the Handle/Open Protocol calls return 0x3 which from what I gather means "EFI_UNSUPPORTED". After googling a little, it looks like when that error comes up for other people it means something is corrupted, so I'm not sure if I'm not compiling it correctly, or I'm missing a step, or if something else is wrong. If anyone has any ideas, that would be appreciated!

Build environment: Windows-10-10.0.19042-SP0
WORKSPACE = c:\edk\edk2
EDK_TOOLS_PATH = c:\edk\edk2\basetools
EDK_TOOLS_BIN = c:\edk\edk2\basetools\bin\win32
CONF_PATH = c:\edk\edk2\conf
PYTHON_COMMAND = py -3

Processing meta-data .
Architecture(s) = X64
Build target = DEBUG
Toolchain = VS2019
Active Platform = c:\edk\edk2\MdeModulePkg\MdeModulePkg.dsc


py -3 --version
Python 3.10.0

Thanks,
Nathaniel


Re: Shell App - Get Args unsupported?

Andrew Fish
 

Nathaniel,

Are you trying to write an EFI App or a Shell App?

Conceptually a Shell App is an EFI App that also has access to gEfiShellProtocolGuid, gEfiShellParametersProtocolGuid, etc. But to have access to those features the UEFI Shell has to be running. The Shell APIs help you do useful things and abstract some Shell concepts like Volume names (fs0:), as volume names don’t exist in UEFI.

So 1st off did you launch your App from the Shell?

2nd did you build your App from the edk2? Did you link in UefiApplicationEntryPoint? Means it is in the INF under [LibraryClasses]

I assume your example code looks like…

EFI_STATUS Status;
EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters;

Status = gBS->HandleProtocol (
gImageHandle,
&gEfiShellParametersProtocolGuid,
(VOID**)&ShellParameters
);
if (EFI_ERROR(Status)) {
return Status;
}

The gImageHandle is the image handle for your app. It was set by the UefiBootServicesTableLib that would be pulled in by the UefiApplicationEntryPoint lib. An image handle is created when ever a PE/COFF image is loaded in EFI. The UEFI Shell adds the extra gEfiShellParametersProtocolGuid on this handle.

You should be getting a return code of 0x800000000000003[1] you can use %r to get it decoded for you, or %lx to see the real value. FYI 0x3 is actually RETURN_WARN_WRITE_FAILURE.

The way EFI works is you have a set of handle, and each handle has a set of unique protocols on the handle. If gEfiShellParametersProtocolGuid is not present that means you passed in the wrong handle, or you did not load from the UEFI Shell so gEfiShellParametersProtocolGuid did not get added to the handle.

[1] https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Base.h#L1002

Thanks,

Andrew Fish

On Dec 6, 2021, at 12:33 PM, nathaniel.p.mitchell@... wrote:

Hi all,

I'm trying to create a basic shell app that consumes command line arguments. I'm able to build and run the .efi file. I looked around and found examples of the function "GetArg()" using gBS->HandleProtocol. I tried updating it to use gBS->OpenProtocol, but in both cases the return of the Handle/Open Protocol calls return 0x3 which from what I gather means "EFI_UNSUPPORTED". After googling a little, it looks like when that error comes up for other people it means something is corrupted, so I'm not sure if I'm not compiling it correctly, or I'm missing a step, or if something else is wrong. If anyone has any ideas, that would be appreciated!

Build environment: Windows-10-10.0.19042-SP0
WORKSPACE = c:\edk\edk2
EDK_TOOLS_PATH = c:\edk\edk2\basetools
EDK_TOOLS_BIN = c:\edk\edk2\basetools\bin\win32
CONF_PATH = c:\edk\edk2\conf
PYTHON_COMMAND = py -3

Processing meta-data .
Architecture(s) = X64
Build target = DEBUG
Toolchain = VS2019
Active Platform = c:\edk\edk2\MdeModulePkg\MdeModulePkg.dsc

py -3 --version
Python 3.10.0

Thanks,
Nathaniel





Shell App - Get Args unsupported?

Mitchell, Nathaniel P
 

Hi all,

I'm trying to create a basic shell app that consumes command line arguments. I'm able to build and run the .efi file. I looked around and found examples of the function "GetArg()" using gBS->HandleProtocol. I tried updating it to use gBS->OpenProtocol, but in both cases the return of the Handle/Open Protocol calls return 0x3 which from what I gather means "EFI_UNSUPPORTED". After googling a little, it looks like when that error comes up for other people it means something is corrupted, so I'm not sure if I'm not compiling it correctly, or I'm missing a step, or if something else is wrong. If anyone has any ideas, that would be appreciated!

Build environment: Windows-10-10.0.19042-SP0
WORKSPACE = c:\edk\edk2
EDK_TOOLS_PATH = c:\edk\edk2\basetools
EDK_TOOLS_BIN = c:\edk\edk2\basetools\bin\win32
CONF_PATH = c:\edk\edk2\conf
PYTHON_COMMAND = py -3

Processing meta-data .
Architecture(s) = X64
Build target = DEBUG
Toolchain = VS2019
Active Platform = c:\edk\edk2\MdeModulePkg\MdeModulePkg.dsc

py -3 --version
Python 3.10.0

Thanks,
Nathaniel


May I ask what is the status of bug 2172, 2177 and 2167

wenyi,xie
 

Hello,

May I ask what is the status of bug 2172, 2177 and 2167? Can I do anything to contribute for these bug fixing, since it has been in process for a long time.

Regards
Wenyi


Re: UiApp

Andrew Fish
 

Fabrice,

Any NVRAM variable in the gEfiGlobalVariableGuid namespace is defined in the UEFI Spec[1]. You can look at chapter 3 - Boot Manager in the UEFI Specification to get a detailed description of how they work.

The general idea is the OS installer will write the Boot#### and inject it into the BootOrder variable list. The BDS may create default options if no NVRAM is present or may enforce some rules like having a fallback option of booting the UEFI Shell as the last thing in the list. The UEFI spec only defines how nvram variables work, but not how the platform policy works. The generic BDS driver generally implements the UEFI Spec behavior and the libraries help configuring the platform defaults.

[1] https://uefi.org/specifications

Thanks,

Andrew Fish

On Nov 25, 2021, at 10:46 AM, PierreGondois <pierre.gondois@...> wrote:

Hi Fabrice,

I can only point you to https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c

I don't know enough about this module to describe how it works.

Also you can configure the boot options from the uefi shell with the 'bcfg' command (if it helps),

Regards,

Pierre


On 11/25/21 3:55 PM, Fabrice Decrop Longet wrote:
Hi Pierre,

Thank you very much for your answer.

It makes really sense to me, thanks PlatformRegisterFvBootOption function.

It makes sense for uefi shell boot. But how (and who) are added over boot options ?


Thanks in advance for your help,
Regards


Fabrice DECROP LONGET

-----Original Message-----
From: Pierre Gondois <pierre.gondois@...>
Sent: Tuesday, November 23, 2021 6:49 PM
To: discuss@edk2.groups.io; Fabrice Decrop Longet <fabrice.decrop-longet@...>
Subject: Re: [edk2-discuss] UiApp

Hi Fabrice,

I think the UiApp is only an application to have a user interface. The application is loaded just after the BDS driver, e.g.:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmVirtPkg/ArmVirtKvmTool.fdf#L187

The library managing boot options should be at:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/MdeModulePkg/Include/Library/UefiBootManagerLib.h

An example on how the Uefi shell boot option is added for Arm:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c#L360

Unfortunately I don't know more than that,

Regards,

Pierre


On 11/18/21 4:44 PM, Fabrice DECROP LONGET via groups.io wrote:
Hi,

This is my very first message on edk2, regarding UEFI software developpement.
Please, feel free to transfer my message to any other location if
needed 😊

I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot.

Could someone answer to the following questions :

1/UiApp is started during the BDS phase.
Because it has been configured so in the EFI variable
EfiGlobalVariable:Boot0000 Am I correct ?

2/Is it also correct to say that this parameter comes from NVRAM ?

3/Is there a way to change this value parameter ?
Is it possible through Boot Manager menu ?
And through EDK2 source code ?

4/Let's assume that there are Boot0000 to Boot0006 options on my platform.
How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ?
If filled by EDK2, could you please point me where it is done in
source code

5/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ?


Thanks in advance for your help,
Regards








Re: UiApp

PierreGondois
 

Hi Fabrice,

I can only point you to https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c

I don't know enough about this module to describe how it works.

Also you can configure the boot options from the uefi shell with the 'bcfg' command (if it helps),

Regards,

Pierre

On 11/25/21 3:55 PM, Fabrice Decrop Longet wrote:
Hi Pierre,

Thank you very much for your answer.

It makes really sense to me, thanks PlatformRegisterFvBootOption function.

It makes sense for uefi shell boot. But how (and who) are added over boot options ?


Thanks in advance for your help,
Regards


Fabrice DECROP LONGET

-----Original Message-----
From: Pierre Gondois <pierre.gondois@...>
Sent: Tuesday, November 23, 2021 6:49 PM
To: discuss@edk2.groups.io; Fabrice Decrop Longet <fabrice.decrop-longet@...>
Subject: Re: [edk2-discuss] UiApp

Hi Fabrice,

I think the UiApp is only an application to have a user interface. The application is loaded just after the BDS driver, e.g.:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmVirtPkg/ArmVirtKvmTool.fdf#L187

The library managing boot options should be at:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/MdeModulePkg/Include/Library/UefiBootManagerLib.h

An example on how the Uefi shell boot option is added for Arm:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c#L360

Unfortunately I don't know more than that,

Regards,

Pierre


On 11/18/21 4:44 PM, Fabrice DECROP LONGET via groups.io wrote:
Hi,

This is my very first message on edk2, regarding UEFI software developpement.
Please, feel free to transfer my message to any other location if
needed 😊

I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot.

Could someone answer to the following questions :

1/UiApp is started during the BDS phase.
Because it has been configured so in the EFI variable
EfiGlobalVariable:Boot0000 Am I correct ?

2/Is it also correct to say that this parameter comes from NVRAM ?

3/Is there a way to change this value parameter ?
Is it possible through Boot Manager menu ?
And through EDK2 source code ?

4/Let's assume that there are Boot0000 to Boot0006 options on my platform.
How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ?
If filled by EDK2, could you please point me where it is done in
source code

5/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ?


Thanks in advance for your help,
Regards







Re: UiApp

PierreGondois
 

Hi Fabrice,

I think the UiApp is only an application to have a user interface. The application is loaded just after the BDS driver, e.g.:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmVirtPkg/ArmVirtKvmTool.fdf#L187

The library managing boot options should be at:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/MdeModulePkg/Include/Library/UefiBootManagerLib.h

An example on how the Uefi shell boot option is added for Arm:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c#L360

Unfortunately I don't know more than that,

Regards,

Pierre

On 11/18/21 4:44 PM, Fabrice DECROP LONGET via groups.io wrote:
Hi,

This is my very first message on edk2, regarding UEFI software developpement.
Please, feel free to transfer my message to any other location if needed 😊

I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot.

Could someone answer to the following questions :

1/UiApp is started during the BDS phase.
Because it has been configured so in the EFI variable EfiGlobalVariable:Boot0000
Am I correct ?

2/Is it also correct to say that this parameter comes from NVRAM ?

3/Is there a way to change this value parameter ?
Is it possible through Boot Manager menu ?
And through EDK2 source code ?

4/Let's assume that there are Boot0000 to Boot0006 options on my platform.
How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ?
If filled by EDK2, could you please point me where it is done in source code

5/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ?


Thanks in advance for your help,
Regards







Re: UiApp

Fabrice DECROP LONGET
 

Hi Pierre,

Thank you very much for your answer.

It makes really sense to me, thanks PlatformRegisterFvBootOption function.

It makes sense for uefi shell boot. But how (and who) are added over boot options ?


Thanks in advance for your help,
Regards


Fabrice DECROP LONGET

-----Original Message-----
From: Pierre Gondois <pierre.gondois@...>
Sent: Tuesday, November 23, 2021 6:49 PM
To: discuss@edk2.groups.io; Fabrice Decrop Longet <fabrice.decrop-longet@...>
Subject: Re: [edk2-discuss] UiApp

Hi Fabrice,

I think the UiApp is only an application to have a user interface. The application is loaded just after the BDS driver, e.g.:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmVirtPkg/ArmVirtKvmTool.fdf#L187

The library managing boot options should be at:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/MdeModulePkg/Include/Library/UefiBootManagerLib.h

An example on how the Uefi shell boot option is added for Arm:

https://github.com/tianocore/edk2/blob/edk2-stable202111-rc1/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c#L360

Unfortunately I don't know more than that,

Regards,

Pierre


On 11/18/21 4:44 PM, Fabrice DECROP LONGET via groups.io wrote:
Hi,

This is my very first message on edk2, regarding UEFI software developpement.
Please, feel free to transfer my message to any other location if
needed 😊

I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot.

Could someone answer to the following questions :

1/UiApp is started during the BDS phase.
Because it has been configured so in the EFI variable
EfiGlobalVariable:Boot0000 Am I correct ?

2/Is it also correct to say that this parameter comes from NVRAM ?

3/Is there a way to change this value parameter ?
Is it possible through Boot Manager menu ?
And through EDK2 source code ?

4/Let's assume that there are Boot0000 to Boot0006 options on my platform.
How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ?
If filled by EDK2, could you please point me where it is done in
source code

5/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ?


Thanks in advance for your help,
Regards







UiApp

Fabrice DECROP LONGET
 

Hi,

This is my very first message on edk2, regarding UEFI software developpement.
Please, feel free to transfer my message to any other location if needed 😊

I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot.

Could someone answer to the following questions :

1/UiApp is started during the BDS phase.
Because it has been configured so in the EFI variable EfiGlobalVariable:Boot0000
Am I correct ?

2/Is it also correct to say that this parameter comes from NVRAM ?

3/Is there a way to change this value parameter ?
Is it possible through Boot Manager menu ?
And through EDK2 source code ?

4/Let's assume that there are Boot0000 to Boot0006 options on my platform.
How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ?
If filled by EDK2, could you please point me where it is done in source code

5/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ?


Thanks in advance for your help,
Regards


UiApp

Fabrice DECROP LONGET
 

Hi,

This is my very first message on edk2, regarding UEFI software developpement.
Please, feel free to transfer my message to any other location if needed 😊

I’m currently working on a BIOS setup menu to integrate in the boot flow of my HW platform. I’m working on a reference design of ARM, was able to compile and execute edk2 UEFI boot.

Could someone answer to the following questions :

1/UiApp is started during the BDS phase.
Because it has been configured so in the EFI variable EfiGlobalVariable:Boot0000
Am I correct ?

2/Let us assume that there are Boot0000 to Boot0006 options on my platform.
How EDK2 fill the Boot#### options ? Is it pre-written in NVRAM, or is filled by EDK2 ?
If filled vy EDK2, could you please point me where it is done in source code

3/Is there a way to change this value parameter outside EDK2 and outside OS ?

4/Is there a way to add a boot option (BootNext) outside EDK2 (saying outise Bott Manager Menu), outside UEFI shell, and outside OS ?


Thanks in advance for your help,
Regards


Fabrice DECROP LONGET
SiPearl - Ingénieur BIOS/UEFI
Mobile: +33 6 44 12 09 85
https://www.sipearl.com


[Bug] While BootMenuApp build in UEFI payload, pcd in BootMenuApp will not be override.

Ning Feng
 

While BootMenuApp build in UEFI payload, PcdBootManagerMenuFile used to get Uiapp file guid used in BootMenuApp will same with Universal payload pkg, platform can not override it.
we should add PlatformBootManagerLib for BootManagerMenuApp.inf in Edk2\UefiPayloadPkg\UefiPayloadPkg.dsc,after that we can override UiappGuid by platform side.


Inclusive Language Update RFC

Teng, Lynn L
 

Hello all,

We have updated the Overview section of the Inclusive Language Guidelines to clarify two things.
1. Which version (via date) of the [[UEFI Inclusive Language Implementation Guidelines|https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf]] we will be following so we do not have a moving target.
2. Defining "_non-legacy_" and "_legacy_".

***

## Overview

To promote a more inclusive and open ecosystem, TianoCore is dedicated to removing archaic terminology that holds negative connotation.
In collaboration with UEFI, we will be following the same [[Inclusive Language Implementation Guidelines|https://uefi.org/sites/default/files/resources/UEFI_Inclusive%20Language.pdf]] (as of Nov 1, 2021) as stated on [[UEFI.org|https://uefi.org/]].

In our plan below, we have steps for dealing with both "_non-legacy_" and "_legacy_". For these terms we define "_non-legacy_" as UEFI BIOS/specifications and beyond, where as "_legacy_" is BIOS/specifications that predates UEFI. There are references to legacy specifications not controlled by the TianoCore Community, and they may not follow these guidelines. In order to preserve compatibility for code that reads on legacy specifications, particularly where that specification is no longer under maintenance or development, language in this specification may appear out of sync with the guidelines. In these cases, the Community will work with other standards development bodies to eliminate such examples over time. In the meanwhile, by acknowledging and calling attention to this issue the hope is to promote discussion and action towards more complete use of Inclusive Language reflective of the diverse and innovative population of the technical community that works on standards.


## Plan

1. Announcement of intent, and all check-ins from here onwards will need to abide by Inclusive Language Implementation Guidelines
2. Scrubbing of all comments, documentation, and Wiki pages
3. Scrubbing of all non-legacy code
4. Working with UEFI to scrub legacy code


## Implementation Guidelines

### Master/Slave to not be used together nor alone.
Alternatives:
Master | Slave
-------|-------
Main | Secondary, Subordinate
Primary | Secondary, Replica
Host | Target
Leader | Follower
Orchestrator | Worker
Initiator | Responder

Or similar descriptive terminology

### Blacklist/Whitelist to not be used together nor alone.
Alternatives:
Blacklist | Whitelist
----------|----------
Blocklist | Passlist
Denylist | Allowlist
Refused, Denied | Permitted

Or similar descriptive terminology

***

Please provide any input you may have with regards to these changes by Nov 26th.

Thank you,
Lynn Teng


Can EDK2 be compiled on Apple M1?

hnyrarara@...
 

Hi,
I have a Mac using M1 chip, and try to use it build Edk2 project.
I followed by this tutorial: https://github.com/tianocore/tianocore.github.io/wiki/xcode
But the compilation encountered some unrecognized assembly statements(Please see in the attached file )
Could the project be compiled under M1?


Re: [edk2-devel] EDK2 doxygen documentation - adding docs for stable tags?

Rebecca Cran
 

How easy it is to push changes to https://www.tianocore.org/ ? I had thought that given how infrequently it's updated it's rather difficult, but I agree that's the ideal location for the Doxygen pages. If it's easier than I think, I have other changes I'd like to make such as updating https://www.tianocore.org/news/ which hasn't been changed since 2018.


I agree it would be great if it could be a CI job somewhere: do we have any existing scheduled jobs in EDK2 already, or is it something that would need to be added?

Given that it was Stephano who originally said years ago that Doxygen generation should be in the cloud, and how nothing has changed since I'm skeptical about it, so for now I'll plan on setting up a scheduled job on my Gitlab instance (https://gitlab.bsdio.com) instead and continue publishing the pages on my site. But I'd be happy to help work towards putting it on tianocore.org as long as we don't lose any functionality in the process.


--
Rebecca Cran

On 11/9/21 7:27 PM, Michael D Kinney wrote:
Hi Rebecca,

Yes. They are useful. I would be better if it could be a CI job on either Azure pipelines
or GitHub Actions could run the tool and publish the documents in TianoCore. Perhaps an on
demand job against a specific tag.

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran
Sent: Tuesday, November 9, 2021 3:20 PM
To: devel@edk2.groups.io; discuss@edk2.groups.io
Subject: [edk2-devel] EDK2 doxygen documentation - adding docs for stable tags?

I've been hosting the Doxygen documentation for EDK2 at
https://bsdio.com/edk2/docs for a few years now. I previously had
versions for master, UDK2015, UDK2017, UDK2018 etc. but since migrating
my web server dropped everything except master.


I was wondering if people are finding it useful, and if so whether
they'd like me to generate documentation for each stable tag too?


Personally, _I_ find the web-based version (as opposed to a
locally-generated version) useful for the search feature -- being able
to quickly find the documentation for a certain function.


--

Rebecca Cran








EFI_IFR_DEFAULTSTORE

Konstantin Aladyshev
 

Hello!

I was investigating output from the simplest VFR file:
```
#define HIISIMPLEFORM_FORMSET_GUID {0xef2acc91, 0x7b50, 0x4ab9,
{0xab, 0x67, 0x2b, 0x4, 0xf8, 0xbc, 0x13, 0x5e}}

formset
guid = HIISIMPLEFORM_FORMSET_GUID,
title = STRING_TOKEN(HIISIMPLEFORM_FORMSET_TITLE),
help = STRING_TOKEN(HIISIMPLEFORM_FORMSET_HELP),
endformset;
```
This produces the following opcodes:
```
//
// All Opcode Record List
//
00000000: 0E A7 91 CC 2A EF 50 7B B9 4A AB 67 2B 04 F8 BC 13 5E 02 00 03 00 01 71 99 03 93 45 85 04 4B B4 5E 32 EB 83 26 04 0E
00000027: 5C 06 00 00 00 00
0000002D: 5C 06 00 00 01 00
00000033: 29 02
```
Basically it is 4 IFR elements (one data string per element):
- EFI_IFR_FORM_SET
- EFI_IFR_DEFAULTSTORE
- EFI_IFR_DEFAULTSTORE
- EFI_IFR_END

My question is what is the purpose of the `EFI_IFR_DEFAULTSTORE`, and
why are there two such elements in the output?

Best regards,
Konstantin Aladyshev


Re: [edk2-devel] EDK2 doxygen documentation - adding docs for stable tags?

Michael D Kinney
 

Hi Rebecca,

Yes. They are useful. I would be better if it could be a CI job on either Azure pipelines
or GitHub Actions could run the tool and publish the documents in TianoCore. Perhaps an on
demand job against a specific tag.

Mike

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran
Sent: Tuesday, November 9, 2021 3:20 PM
To: devel@edk2.groups.io; discuss@edk2.groups.io
Subject: [edk2-devel] EDK2 doxygen documentation - adding docs for stable tags?

I've been hosting the Doxygen documentation for EDK2 at
https://bsdio.com/edk2/docs for a few years now. I previously had
versions for master, UDK2015, UDK2017, UDK2018 etc. but since migrating
my web server dropped everything except master.


I was wondering if people are finding it useful, and if so whether
they'd like me to generate documentation for each stable tag too?


Personally, _I_ find the web-based version (as opposed to a
locally-generated version) useful for the search feature -- being able
to quickly find the documentation for a certain function.


--

Rebecca Cran





161 - 180 of 1056