Date   

Difference between boolean PCD fixed at build and a PCD feature flag

Konstantin Aladyshev <aladyshev22@...>
 

What is the difference between boolean PCD fixed at build and a PCD feature flag?
```
[PcdsFixedAtBuild]
  gMyPkgTokenSpaceGuid.PcdMyVarBool|FALSE|BOOLEAN|0x00000004

[PcdsFeatureFlag]
  gMyPkgTokenSpaceGuid.PcdMyFeatureFlagVar|FALSE|BOOLEAN|0x20000001
```
I'm looking at the AutoGen files and the result from both of these PCDs is practically the same.

AutoGen.c
```
GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdMyVarBool = _PCD_VALUE_PcdMyVarBool;
GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_PcdMyFeatureFlagVar = _PCD_VALUE_PcdMyFeatureFlagVar;
```
AutoGen.h
```
#define _PCD_TOKEN_PcdMyVarBool  0U
#define _PCD_SIZE_PcdMyVarBool 1
#define _PCD_GET_MODE_SIZE_PcdMyVarBool  _PCD_SIZE_PcdMyVarBool
#define _PCD_VALUE_PcdMyVarBool  0U
extern const  BOOLEAN  _gPcd_FixedAtBuild_PcdMyVarBool;
#define _PCD_GET_MODE_BOOL_PcdMyVarBool  _gPcd_FixedAtBuild_PcdMyVarBool
//#define _PCD_SET_MODE_BOOL_PcdMyVarBool  ASSERT(FALSE)  // It is not allowed to set value for a FIXED_AT_BUILD PCD

#define _PCD_TOKEN_PcdMyFeatureFlagVar  0U
#define _PCD_SIZE_PcdMyFeatureFlagVar 1
#define _PCD_GET_MODE_SIZE_PcdMyFeatureFlagVar  _PCD_SIZE_PcdMyFeatureFlagVar
#define _PCD_VALUE_PcdMyFeatureFlagVar  ((BOOLEAN)0U)
extern const  BOOLEAN  _gPcd_FixedAtBuild_PcdMyFeatureFlagVar;
#define _PCD_GET_MODE_BOOL_PcdMyFeatureFlagVar  _gPcd_FixedAtBuild_PcdMyFeatureFlagVar
//#define _PCD_SET_MODE_BOOL_PcdMyFeatureFlagVar  ASSERT(FALSE)  // It is not allowed to set value for a FIXED_AT_BUILD PCD
```

Are there any actual differences between those two methods of defining a PCD? Or is `PcdsFeatureFlag` simply a syntactic sugar?


Token values are not produced for PCDs under 'PcdsDynamic' section

Konstantin Aladyshev <aladyshev22@...>
 

Hello!

I'm trying to understand dynamic PCDs in EDK2.

I've added this code to my package DEC file:
```
[PcdsDynamic]
  gMyPkgTokenSpaceGuid.PcdMyDynamicVar32|42|UINT32|0x00000004
```
And have added this code to my app INF file:
```
[Pcd]
  gMyPkgTokenSpaceGuid.PcdMyDynamicVar32
```

I'm trying to use PCD in my application like this:
```
Print(L"PcdMyDynamicVar32=%d\n", PcdGet32(PcdMyDynamicVar32));
PcdSet32S(PcdMyDynamicVar32, 52);
Print(L"PcdMyDynamicVar32=%d\n", PcdGet32(PcdMyDynamicVar32));
```

But when I try to compile, the token number is not populated to the AutoGen.h:
```
#define _PCD_TOKEN_PcdMyDynamicVar32  0U
#define _PCD_GET_MODE_32_PcdMyDynamicVar32  LibPcdGet32(_PCD_TOKEN_PcdMyDynamicVar32)
#define _PCD_GET_MODE_SIZE_PcdMyDynamicVar32  LibPcdGetSize(_PCD_TOKEN_PcdMyDynamicVar32)
#define _PCD_SET_MODE_32_PcdMyDynamicVar32(Value)  LibPcdSet32(_PCD_TOKEN_PcdMyDynamicVar32, (Value))
#define _PCD_SET_MODE_32_S_PcdMyDynamicVar32(Value)  LibPcdSet32S(_PCD_TOKEN_PcdMyDynamicVar32, (Value))
```
Because of that I get 0 in the first `PcdGet32` call and my application freezes at the `PcdSet32S` call.


But if I change `[PcdsDynamic]` to [PcdsDynamicEx] in my package DEC file token value will be populated:
```
#define _PCD_TOKEN_gMyPkgTokenSpaceGuid_PcdMyDynamicVar32  1073741828U
#define _PCD_TOKEN_PcdMyDynamicVar32  _PCD_TOKEN_gMyPkgTokenSpaceGuid_PcdMyDynamicVar32
#define _PCD_GET_MODE_32_PcdMyDynamicVar32  LibPcdGetEx32(&gMyPkgTokenSpaceGuid, _PCD_TOKEN_PcdMyDynamicVar32)
#define _PCD_GET_MODE_SIZE_PcdMyDynamicVar32 LibPcdGetExSize(&gMyPkgTokenSpaceGuid, _PCD_TOKEN_PcdMyDynamicVar32)
#define _PCD_SET_MODE_32_PcdMyDynamicVar32(Value)  LibPcdSetEx32(&gMyPkgTokenSpaceGuid, _PCD_TOKEN_PcdMyDynamicVar32, (Value))
#define _PCD_SET_MODE_32_S_PcdMyDynamicVar32(Value)  LibPcdSetEx32S(&gMyPkgTokenSpaceGuid, _PCD_TOKEN_PcdMyDynamicVar32, (Value))
```

What is my mistake? Why is the token value not populated when `[PcdsDynamic]` is used?


Best regards,
Konstantin Aladyshev


Enable UART CTS and RTS in edk2

Antony Abee
 

Hi,

We are developing edk2 bios image for our custom board which is based on Ampere SOC.

Custom board has Uart connections as below:
Uart0

* DB9 connector (Uefi console)
* CTS/RTS signals from SOC

Uart3

* DB9 connector
* CTS/RTS signals from GPIO

We have following queries:

1. CTS/RTS signals have usage in edk2 ? or this is useful in OS level only ?
2. Where to enable CTS/RTS control register bits in edk2 source for ampere platform ?
3. Where to configure GPIO's for Uart3 CTS and RTS signals in edk2 source for ampere platform ?
4. Not able to find gpio pad configuration for ampere platform in edk2 source.
5. Could you please help to clarify the above queries ?

Thanks & Regards,
Antony


Re: How to build your own firmware based upon EDK2 for Windows 10 QEMU

Andrew Fish
 

Wong,

If you are building OvmfPkgX64.dsc then you can add driver or apps to OvmfPkgX64.dsc [1] to get it to build, and add it to OvmfPkgX64.fdf [2] to get it in the ROM.

[1] https://github.com/tianocore/edk2/blob/master/OvmfPkg/OvmfPkgX64.dsc
[2] https://github.com/tianocore/edk2/blob/master/OvmfPkg/OvmfPkgX64.fdf

Thanks,

Andrew Fish

On Jun 12, 2021, at 6:59 AM, tbtbfaker@gmail.com wrote:

Hi,

I am currently working on a project where I would have to customize the EFI ROM file for my Windows 10. To emulate firmware, I have built latest edk2 as well as OVMF. I am able to run OVMF using QEMU but I have no clue on the next step in order to make custom firmware to run Windows 10 in QEMU.

Can anyone advise on what I should look at next?

Regards,
Wong





Enabling UART CTS / RTS support in edk2

Antony Abee
 

Hi All,

We are developing an edk2 bios image for our custom board which is based on Ampere SOC.

Our custom board has
Uart0 - uefi logs
Uart3 - Connected to DB9 connector.

For uart0 the cts and rts signals are from SOC itself. Whereas for Uart3, cts and rts signals are from GPIO.

Uart Driver used: ARM PL011 UART driver.

We have below queries.
1. Does CTS and RTS signals have usage in edk2 ? or this will be taken care in OS level ?
2. Where to enable CTS/RTS bits of uart control registers in edk2 ?
3. Where to configure the GPIO's as CTS and RTS functionality in edk2 ?

Could anyone help on this ?

Thanks.


How to build your own firmware based upon EDK2 for Windows 10 QEMU

tbtbfaker@...
 

Hi,

I am currently working on a project where I would have to customize the EFI ROM file for my Windows 10. To emulate firmware, I have built latest edk2 as well as OVMF. I am able to run OVMF using QEMU but I have no clue on the next step in order to make custom firmware to run Windows 10 in QEMU.

Can anyone advise on what I should look at next?

Regards,
Wong


Re: CXL 2.0 Type 3 Support

Leif Lindholm
 

Hi Chris,

Apologies, I missed this when it went out (I'm even worse at reading
-discuss than I am -devel).

I am also interested in this, and my team will need to start working
on this soon unless someone has something already in the pipeline and
are willing to share it with the world.

Best Regards,

Leif

On Wed, Mar 10, 2021 at 11:17:02 -0500, Chris Browy wrote:
Hi,

We’ve working with patch series on top of the QEMU CXL 2.0 Type 3
adding Data Object Exchange (DOE) for CDAT and Compliance Mode.
This is required to support CXL 2.0 device enumeration and setup of
SRAT/HMAT tables for OS handoff.

https://lore.kernel.org/qemu-devel/1615322029-13038-1-git-send-email-cbrowy@avery-design.com/T/#ma47459bfbcd29cf28f11ee9389e5a2ac966a64e1

Based on QEMU version:

https://gitlab.com/bwidawsk/qemu/-/tree/cxl-2.0v4

Do you have a roadmap for edk2 support for CXL 2.0? This is the
last piece of the puzzle!

Best Regards,
Chris Browy




--
Chris Browy





EFI_IMAGE_LOAD_EVENT.ImageLocationInMemory is not useful

Satoshi Tanda
 

Hi,

It appears that the EFI_IMAGE_LOAD_EVENT.ImageLocationInMemory field can contain practically useless garbage value in some cases. I do not think it is "really" intentional and think it should be fixed.

Some TCG PCR events such as EV_EFI_RUNTIME_SERVICES_DRIVER populate log entries as EFI_IMAGE_LOAD_EVENT, and one of its fields ImageLocationInMemory should contain the base address of the image being measured. As-is, this field may be populated with the address of the temporal buffer as opposed to buffer that is eventually used to execute the image. This makes contents of the ImageLocationInMemory field useless, because the buffer is freed and its contents is destroyed quickly. It would have been substantially more useful if the field contained the address of the final image location, especially for runtime drivers where an operating system could later inspect its contents accordingly to the log.

The problem appears to be that, in CoreLoadImageCommon(), FHand.Source is allocated by GetFileBufferByFilePath() and passed to gSecurity2->FileAuthentication() if the SourceBuffer argument is not supplied. This results in logging the address of the temporal boot-time pool, which is released as soon as the function ends.
https://github.com/tianocore/edk2/blob/e0cb5e1814a67bb12dd476a72d1698350633bcbb/MdeModulePkg/Core/Dxe/Image/Image.c#L1215

It does not explicitly violates the TCG spec, and even if this is fixed, the ImageLocationInMemory value for boot drivers and applications would have been useless for an OS anyway. But, as-is, the field is too often useless because many cases, including with the "load" UEFI shell command, hits the above condition.

Could this be changed in a way to log the image address that is/will be executed, and not a temporal address? I could file a bugzilla case if that's reasonable.

Best,
Satoshi


Website

elijah alkhoury <alkhouryelijah13@...>
 

Hello, I am seeking help with tianocore.


Re: Having problem when xHCI create Setup Stage TRB

Wu, Hao A
 

Thanks a lot.

Best Regards,
Hao Wu

-----Original Message-----
From: xiewenyi (A) <xiewenyi2@huawei.com>
Sent: Thursday, May 27, 2021 4:32 PM
To: Wu, Hao A <hao.a.wu@intel.com>; discuss@edk2.groups.io
Subject: Re: [edk2-discuss] Having problem when xHCI create Setup Stage
TRB

OK, I will submit a BZ bug and patch soon.

Thanks
Wenyi

On 2021/5/27 16:26, Wu, Hao A wrote:
Thanks.
Could you help to submit a BZ bug tracker at:
https://bugzilla.tianocore.org/enter_bug.cgi?product=EDK2?
And could you help to propose a fix for this issue?

Best Regards,
Hao Wu

-----Original Message-----
From: xiewenyi (A) <xiewenyi2@huawei.com>
Sent: Thursday, May 27, 2021 4:20 PM
To: Wu, Hao A <hao.a.wu@intel.com>; discuss@edk2.groups.io
Subject: Re: [edk2-discuss] Having problem when xHCI create Setup
Stage TRB

Hi, Wu Hao

As TRT field is not set to EfiUsbNoData when Data Stage does not
exist, USB controller returns trb err and finally lead to usb enumerate fail.


Thanks
Wenyi

On 2021/5/27 15:24, Wu, Hao A wrote:
Hello,

Looking into the XHCI spec, I think the current implementation in
XhciDxe & XhciPei does not follow the spec when it comes to the TRT
field.

Could you help to provide more information on what error is met?
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
wenyi,xie via groups.io
Sent: Wednesday, May 26, 2021 2:09 PM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Having problem when xHCI create Setup Stage
TRB

Hello, everyone,

we meet a problem and are not sure if it's an issue, here's the
description.
According usb-xhci specification, at USB packet level, a Control
Transfer consists of multiple transactions partitioned into stages:
a setup stage, an optional data stage, and a terminating status stage.
If Data Stage does not exist, the Transfer Type flag(TRT) should be
No Data Stage.

But in function XhcCreateUrb() in file XhciSched.c, the Direction
is set to EfiUsbDataIn or EfiUsbDataOut.
Ep->Direction = ((EpAddr & 0x80) != 0) ? EfiUsbDataIn :
Ep->EfiUsbDataOut;

and then in function XhcCreateTransferTrb(), TRT is set to 3 or 2,
it will never be 0.
if (Urb->Ep.Direction == EfiUsbDataIn) {
TrbStart->TrbCtrSetup.TRT = 3;
} else if (Urb->Ep.Direction == EfiUsbDataOut) {
TrbStart->TrbCtrSetup.TRT = 2;
} else {
TrbStart->TrbCtrSetup.TRT = 0;
}

TRT Value Definition
0 No Data Stage
1 Reserved
2 OUT Data Stage
3 IN Data Stage




Re: Having problem when xHCI create Setup Stage TRB

wenyi,xie
 

OK, I will submit a BZ bug and patch soon.

Thanks
Wenyi

On 2021/5/27 16:26, Wu, Hao A wrote:
Thanks.
Could you help to submit a BZ bug tracker at: https://bugzilla.tianocore.org/enter_bug.cgi?product=EDK2?
And could you help to propose a fix for this issue?

Best Regards,
Hao Wu

-----Original Message-----
From: xiewenyi (A) <xiewenyi2@huawei.com>
Sent: Thursday, May 27, 2021 4:20 PM
To: Wu, Hao A <hao.a.wu@intel.com>; discuss@edk2.groups.io
Subject: Re: [edk2-discuss] Having problem when xHCI create Setup Stage
TRB

Hi, Wu Hao

As TRT field is not set to EfiUsbNoData when Data Stage does not exist, USB
controller returns trb err and finally lead to usb enumerate fail.


Thanks
Wenyi

On 2021/5/27 15:24, Wu, Hao A wrote:
Hello,

Looking into the XHCI spec, I think the current implementation in
XhciDxe & XhciPei does not follow the spec when it comes to the TRT field.

Could you help to provide more information on what error is met?
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
wenyi,xie via groups.io
Sent: Wednesday, May 26, 2021 2:09 PM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Having problem when xHCI create Setup Stage
TRB

Hello, everyone,

we meet a problem and are not sure if it's an issue, here's the description.
According usb-xhci specification, at USB packet level, a Control
Transfer consists of multiple transactions partitioned into stages: a
setup stage, an optional data stage, and a terminating status stage.
If Data Stage does not exist, the Transfer Type flag(TRT) should be
No Data Stage.

But in function XhcCreateUrb() in file XhciSched.c, the Direction is
set to EfiUsbDataIn or EfiUsbDataOut.
Ep->Direction = ((EpAddr & 0x80) != 0) ? EfiUsbDataIn :
Ep->EfiUsbDataOut;

and then in function XhcCreateTransferTrb(), TRT is set to 3 or 2,
it will never be 0.
if (Urb->Ep.Direction == EfiUsbDataIn) {
TrbStart->TrbCtrSetup.TRT = 3;
} else if (Urb->Ep.Direction == EfiUsbDataOut) {
TrbStart->TrbCtrSetup.TRT = 2;
} else {
TrbStart->TrbCtrSetup.TRT = 0;
}

TRT Value Definition
0 No Data Stage
1 Reserved
2 OUT Data Stage
3 IN Data Stage




Re: Having problem when xHCI create Setup Stage TRB

Wu, Hao A
 

Thanks.
Could you help to submit a BZ bug tracker at: https://bugzilla.tianocore.org/enter_bug.cgi?product=EDK2?
And could you help to propose a fix for this issue?

Best Regards,
Hao Wu

-----Original Message-----
From: xiewenyi (A) <xiewenyi2@huawei.com>
Sent: Thursday, May 27, 2021 4:20 PM
To: Wu, Hao A <hao.a.wu@intel.com>; discuss@edk2.groups.io
Subject: Re: [edk2-discuss] Having problem when xHCI create Setup Stage
TRB

Hi, Wu Hao

As TRT field is not set to EfiUsbNoData when Data Stage does not exist, USB
controller returns trb err and finally lead to usb enumerate fail.


Thanks
Wenyi

On 2021/5/27 15:24, Wu, Hao A wrote:
Hello,

Looking into the XHCI spec, I think the current implementation in
XhciDxe & XhciPei does not follow the spec when it comes to the TRT field.

Could you help to provide more information on what error is met?
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
wenyi,xie via groups.io
Sent: Wednesday, May 26, 2021 2:09 PM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Having problem when xHCI create Setup Stage
TRB

Hello, everyone,

we meet a problem and are not sure if it's an issue, here's the description.
According usb-xhci specification, at USB packet level, a Control
Transfer consists of multiple transactions partitioned into stages: a
setup stage, an optional data stage, and a terminating status stage.
If Data Stage does not exist, the Transfer Type flag(TRT) should be
No Data Stage.

But in function XhcCreateUrb() in file XhciSched.c, the Direction is
set to EfiUsbDataIn or EfiUsbDataOut.
Ep->Direction = ((EpAddr & 0x80) != 0) ? EfiUsbDataIn :
Ep->EfiUsbDataOut;

and then in function XhcCreateTransferTrb(), TRT is set to 3 or 2,
it will never be 0.
if (Urb->Ep.Direction == EfiUsbDataIn) {
TrbStart->TrbCtrSetup.TRT = 3;
} else if (Urb->Ep.Direction == EfiUsbDataOut) {
TrbStart->TrbCtrSetup.TRT = 2;
} else {
TrbStart->TrbCtrSetup.TRT = 0;
}

TRT Value Definition
0 No Data Stage
1 Reserved
2 OUT Data Stage
3 IN Data Stage




Re: Having problem when xHCI create Setup Stage TRB

wenyi,xie
 

Hi, Wu Hao

As TRT field is not set to EfiUsbNoData when Data Stage does not exist, USB controller
returns trb err and finally lead to usb enumerate fail.


Thanks
Wenyi

On 2021/5/27 15:24, Wu, Hao A wrote:
Hello,

Looking into the XHCI spec, I think the current implementation in XhciDxe & XhciPei
does not follow the spec when it comes to the TRT field.

Could you help to provide more information on what error is met?
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
wenyi,xie via groups.io
Sent: Wednesday, May 26, 2021 2:09 PM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Having problem when xHCI create Setup Stage TRB

Hello, everyone,

we meet a problem and are not sure if it's an issue, here's the description.
According usb-xhci specification, at USB packet level, a Control Transfer
consists of multiple transactions partitioned into stages: a setup stage, an
optional data stage, and a terminating status stage.
If Data Stage does not exist, the Transfer Type flag(TRT) should be No Data
Stage.

But in function XhcCreateUrb() in file XhciSched.c, the Direction is set to
EfiUsbDataIn or EfiUsbDataOut.
Ep->Direction = ((EpAddr & 0x80) != 0) ? EfiUsbDataIn : EfiUsbDataOut;

and then in function XhcCreateTransferTrb(), TRT is set to 3 or 2, it will never
be 0.
if (Urb->Ep.Direction == EfiUsbDataIn) {
TrbStart->TrbCtrSetup.TRT = 3;
} else if (Urb->Ep.Direction == EfiUsbDataOut) {
TrbStart->TrbCtrSetup.TRT = 2;
} else {
TrbStart->TrbCtrSetup.TRT = 0;
}

TRT Value Definition
0 No Data Stage
1 Reserved
2 OUT Data Stage
3 IN Data Stage




Re: Having problem when xHCI create Setup Stage TRB

Wu, Hao A
 

Hello,

Looking into the XHCI spec, I think the current implementation in XhciDxe & XhciPei
does not follow the spec when it comes to the TRT field.

Could you help to provide more information on what error is met?
Thanks in advance.

Best Regards,
Hao Wu

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of
wenyi,xie via groups.io
Sent: Wednesday, May 26, 2021 2:09 PM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Having problem when xHCI create Setup Stage TRB

Hello, everyone,

we meet a problem and are not sure if it's an issue, here's the description.
According usb-xhci specification, at USB packet level, a Control Transfer
consists of multiple transactions partitioned into stages: a setup stage, an
optional data stage, and a terminating status stage.
If Data Stage does not exist, the Transfer Type flag(TRT) should be No Data
Stage.

But in function XhcCreateUrb() in file XhciSched.c, the Direction is set to
EfiUsbDataIn or EfiUsbDataOut.
Ep->Direction = ((EpAddr & 0x80) != 0) ? EfiUsbDataIn : EfiUsbDataOut;

and then in function XhcCreateTransferTrb(), TRT is set to 3 or 2, it will never
be 0.
if (Urb->Ep.Direction == EfiUsbDataIn) {
TrbStart->TrbCtrSetup.TRT = 3;
} else if (Urb->Ep.Direction == EfiUsbDataOut) {
TrbStart->TrbCtrSetup.TRT = 2;
} else {
TrbStart->TrbCtrSetup.TRT = 0;
}

TRT Value Definition
0 No Data Stage
1 Reserved
2 OUT Data Stage
3 IN Data Stage




Having problem when xHCI create Setup Stage TRB

wenyi,xie
 

Hello, everyone,

we meet a problem and are not sure if it's an issue, here's the description.
According usb-xhci specification, at USB packet level, a Control Transfer consists of multiple transactions partitioned into stages: a setup stage, an optional data stage, and a terminating status stage.
If Data Stage does not exist, the Transfer Type flag(TRT) should be No Data Stage.

But in function XhcCreateUrb() in file XhciSched.c, the Direction is set to EfiUsbDataIn or EfiUsbDataOut.
Ep->Direction = ((EpAddr & 0x80) != 0) ? EfiUsbDataIn : EfiUsbDataOut;

and then in function XhcCreateTransferTrb(), TRT is set to 3 or 2, it will never be 0.
if (Urb->Ep.Direction == EfiUsbDataIn) {
TrbStart->TrbCtrSetup.TRT = 3;
} else if (Urb->Ep.Direction == EfiUsbDataOut) {
TrbStart->TrbCtrSetup.TRT = 2;
} else {
TrbStart->TrbCtrSetup.TRT = 0;
}

TRT Value Definition
0 No Data Stage
1 Reserved
2 OUT Data Stage
3 IN Data Stage


Re: Pull request process for the edk2 repo

Laszlo Ersek
 

On 05/25/21 15:45, Satoshi Tanda wrote:
I received emails from devel@ today so will be good to go through the patch
review process. Thank you for assisting me on this (and checking the patch
as well)!
No problem; thanks for the bug report and the contribution!
Laszlo


Best,
Satoshi


On Tue, May 25, 2021 at 5:26 AM Laszlo Ersek <lersek@redhat.com> wrote:

On 05/24/21 07:05, Satoshi Tanda wrote:
Hi Laszlo,

Thank you for letting me know the process. That is very helpful. I
_believe_ I have sent the patch to the list (CC: you) and subscribed to
the
list as well. Let me know if it does not seem to be the case. I notice I
have not received the confirmation of subscription or my email yet so
something might not be quite right :-)
It worked out fine (I just commented on the patch).

groups.io allows list admins / moderators to moderate messages in two
ways, roughly:

- approve individual messages (from non-subscribers)
- permanently un-moderate a particular subscriber

Unfortunately, we can't add non-subscribers to the allow-list
permanently; messages sent by non-subscribers require manual action
every time. That's why I requested that you please subscribe, too.

And then, even after you subscribe, your initial messages will be held
for moderation until an admin or mod catches up on their mod
notifications, and actually adds you to the allow-list. In the meantime,
your message may appear stuck or lost to you.

Thanks!
Laszlo



Best,
Satoshi


On Sun, May 23, 2021 at 4:38 AM Laszlo Ersek <lersek@redhat.com> wrote:

Hello Satoshi-san,

On 05/21/21 23:30, Satoshi Tanda wrote:
Is there any documents and instructions I can follow to create a PR for
the edk2 repo by myself? I filed an issue to the edk2 repo, and I doubt
it
will be fixed by anyone very soon. Since the fix seems trivial, I could
submit a PR if that works.

Here is the ticket.

https://bugzilla.tianocore.org/show_bug.cgi?id=3405

How I can learn edk2’s PR process, or can anyone suggest what I could
do
to make it resolved?

Thanks for opening the ticket. I've added a comment to it, moved its
status to CONFIRMED, and (with your retroactive permission :)) assigned
the ticket to you.

For the time being, the edk2 project on github.com uses github.com pull
requests for two purposes:

- All contributors can open pull requests for setting off CI builds on
their topic branches.

- Edk2 maintainers can open pull requests and set the "push" label on
them. When CI completes on such a PR, the mergify bot proceeds to merge
the branch.

Edk2 maintainers open such pull requests for patches / patch series that
have been reviewed on the list. For the time being, patch review occurs
exclusively on the list. All patches should be sent to
<devel@edk2.groups.io> with git-send-email. Please subscribe at
<https://edk2.groups.io/g/devel> before posting.


Please see the development process article here:


https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process


An informal (non-normative) article with some additional details is
here:


https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt-git-guide-for-edk2-contributors-and-maintainers


Thanks!
Laszlo





Re: Pull request process for the edk2 repo

Satoshi Tanda
 

I received emails from devel@ today so will be good to go through the patch
review process. Thank you for assisting me on this (and checking the patch
as well)!

Best,
Satoshi

On Tue, May 25, 2021 at 5:26 AM Laszlo Ersek <lersek@redhat.com> wrote:

On 05/24/21 07:05, Satoshi Tanda wrote:
Hi Laszlo,

Thank you for letting me know the process. That is very helpful. I
_believe_ I have sent the patch to the list (CC: you) and subscribed to
the
list as well. Let me know if it does not seem to be the case. I notice I
have not received the confirmation of subscription or my email yet so
something might not be quite right :-)
It worked out fine (I just commented on the patch).

groups.io allows list admins / moderators to moderate messages in two
ways, roughly:

- approve individual messages (from non-subscribers)
- permanently un-moderate a particular subscriber

Unfortunately, we can't add non-subscribers to the allow-list
permanently; messages sent by non-subscribers require manual action
every time. That's why I requested that you please subscribe, too.

And then, even after you subscribe, your initial messages will be held
for moderation until an admin or mod catches up on their mod
notifications, and actually adds you to the allow-list. In the meantime,
your message may appear stuck or lost to you.

Thanks!
Laszlo



Best,
Satoshi


On Sun, May 23, 2021 at 4:38 AM Laszlo Ersek <lersek@redhat.com> wrote:

Hello Satoshi-san,

On 05/21/21 23:30, Satoshi Tanda wrote:
Is there any documents and instructions I can follow to create a PR for
the edk2 repo by myself? I filed an issue to the edk2 repo, and I doubt
it
will be fixed by anyone very soon. Since the fix seems trivial, I could
submit a PR if that works.

Here is the ticket.

https://bugzilla.tianocore.org/show_bug.cgi?id=3405

How I can learn edk2’s PR process, or can anyone suggest what I could
do
to make it resolved?

Thanks for opening the ticket. I've added a comment to it, moved its
status to CONFIRMED, and (with your retroactive permission :)) assigned
the ticket to you.

For the time being, the edk2 project on github.com uses github.com pull
requests for two purposes:

- All contributors can open pull requests for setting off CI builds on
their topic branches.

- Edk2 maintainers can open pull requests and set the "push" label on
them. When CI completes on such a PR, the mergify bot proceeds to merge
the branch.

Edk2 maintainers open such pull requests for patches / patch series that
have been reviewed on the list. For the time being, patch review occurs
exclusively on the list. All patches should be sent to
<devel@edk2.groups.io> with git-send-email. Please subscribe at
<https://edk2.groups.io/g/devel> before posting.


Please see the development process article here:


https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process


An informal (non-normative) article with some additional details is
here:


https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt-git-guide-for-edk2-contributors-and-maintainers


Thanks!
Laszlo





Re: Pull request process for the edk2 repo

Laszlo Ersek
 

On 05/24/21 07:05, Satoshi Tanda wrote:
Hi Laszlo,

Thank you for letting me know the process. That is very helpful. I
_believe_ I have sent the patch to the list (CC: you) and subscribed to the
list as well. Let me know if it does not seem to be the case. I notice I
have not received the confirmation of subscription or my email yet so
something might not be quite right :-)
It worked out fine (I just commented on the patch).

groups.io allows list admins / moderators to moderate messages in two
ways, roughly:

- approve individual messages (from non-subscribers)
- permanently un-moderate a particular subscriber

Unfortunately, we can't add non-subscribers to the allow-list
permanently; messages sent by non-subscribers require manual action
every time. That's why I requested that you please subscribe, too.

And then, even after you subscribe, your initial messages will be held
for moderation until an admin or mod catches up on their mod
notifications, and actually adds you to the allow-list. In the meantime,
your message may appear stuck or lost to you.

Thanks!
Laszlo



Best,
Satoshi


On Sun, May 23, 2021 at 4:38 AM Laszlo Ersek <lersek@redhat.com> wrote:

Hello Satoshi-san,

On 05/21/21 23:30, Satoshi Tanda wrote:
Is there any documents and instructions I can follow to create a PR for
the edk2 repo by myself? I filed an issue to the edk2 repo, and I doubt it
will be fixed by anyone very soon. Since the fix seems trivial, I could
submit a PR if that works.

Here is the ticket.

https://bugzilla.tianocore.org/show_bug.cgi?id=3405

How I can learn edk2’s PR process, or can anyone suggest what I could do
to make it resolved?

Thanks for opening the ticket. I've added a comment to it, moved its
status to CONFIRMED, and (with your retroactive permission :)) assigned
the ticket to you.

For the time being, the edk2 project on github.com uses github.com pull
requests for two purposes:

- All contributors can open pull requests for setting off CI builds on
their topic branches.

- Edk2 maintainers can open pull requests and set the "push" label on
them. When CI completes on such a PR, the mergify bot proceeds to merge
the branch.

Edk2 maintainers open such pull requests for patches / patch series that
have been reviewed on the list. For the time being, patch review occurs
exclusively on the list. All patches should be sent to
<devel@edk2.groups.io> with git-send-email. Please subscribe at
<https://edk2.groups.io/g/devel> before posting.


Please see the development process article here:


https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process


An informal (non-normative) article with some additional details is here:


https://github.com/tianocore/tianocore.github.io/wiki/Laszlo's-unkempt-git-guide-for-edk2-contributors-and-maintainers


Thanks!
Laszlo





Re: [edk2-devel] [edk2-discuss] Google Summer of Code Interested Student

Nate DeSimone
 

Hi Caden,

Happy to see you here! Probably the best way to get in contract with Rocio and I is through email. Rocio's address is rocio.hernandez.fabian@intel.com and you already know my address 😊. I also check the mailing list fairly frequently so you can also contact me here. As far as status updates, I don't think we have a TianoCore blog so posting them to edk2-devel would be fine. I think it might also be good to schedule a call for a quick meet and greet. Which time zone are you in? I checked with Rocio and she is in Central Time. I am in Pacific Time.

Regards,
Nate

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Caden Kline
Sent: Wednesday, May 19, 2021 6:54 PM
To: discuss@edk2.groups.io
Subject: Re: [edk2-devel] [edk2-discuss] Google Summer of Code Interested Student

I am happy to say that I'll be working on terminal improvement for GSoC.
Thanks for picking my proposal and thank you to my mentors(Rocio, Nate
DeSimone) for agreeing to work with me. My proposal is listed here (
https://summerofcode.withgoogle.com/projects/#5830503296401408 ); however, it doesn't differ from the wiki page or what's been discussed in this thread.

What is the best way to communicate with my mentors?

Also, in what format would the community prefer updates on the progress of my work? Patches and information in the emails that get sent, Blog Posts, new topic on the mailing list, thread on the maillist, or some combination?


On Mon, Mar 22, 2021 at 7:08 PM Andrew Fish via groups.io <afish= apple.com@groups.io> wrote:



On Mar 22, 2021, at 11:31 AM, Nate DeSimone <
nathaniel.l.desimone@intel.com> wrote:

Hi Andrew,

I tested VT_UTF8 on the macOs Terminal software and I can confirm
that
VT_UTF8 renders nicely. See the attached screenshot.
Nate,

Yes it is close to VT_UTF8, but not quite the same. I was looking back
through the driver and I’d forgotten how similar it really is.

Symbols used in table below
===========================
ESC = 0x1B
CSI = 0x9B
DEL = 0x7f
^ = CTRL

+=========+======+===========+==========+==========+=============+
| | EFI | EFI 1.10 | | | |
| | Scan | | VT100+ | | |
| KEY | Code | PC ANSI | VTUTF8 | VT100 | xterm-color |
+=========+======+===========+==========+==========+=============+
| NULL | 0x00 | | | | |
| UP | 0x01 | ESC [ A | ESC [ A | ESC [ A | ESC [ A |
| DOWN | 0x02 | ESC [ B | ESC [ B | ESC [ B | ESC [ B |
| RIGHT | 0x03 | ESC [ C | ESC [ C | ESC [ C | ESC [ C |
| LEFT | 0x04 | ESC [ D | ESC [ D | ESC [ D | ESC [ D |
| HOME | 0x05 | ESC [ H | ESC h | ESC [ H | ESC [ H |
| | | | | | ^A |
| END | 0x06 | ESC [ F | ESC k | ESC [ K | ESC [ F |
| INSERT | 0x07 | ESC [ @ | ESC + | ESC [ @ | ^E |
| | | ESC [ L | | ESC [ L | |
| DELETE | 0x08 | ESC [ X | ESC - | ESC [ P | 0x7f |
| PG UP | 0x09 | ESC [ I | ESC ? | ESC [ V | ESC [ 5 ~ |
| | | | | ESC [ ? | ^P |
| PG DOWN | 0x0A | ESC [ G | ESC / | ESC [ U | ESC [ 6 ~ |
| | | | | ESC [ / | ^N |
| F1 | 0x0B | ESC [ M | ESC 1 | ESC O P | ESC O P |
| F2 | 0x0C | ESC [ N | ESC 2 | ESC O Q | ESC O Q |
| F3 | 0x0D | ESC [ O | ESC 3 | ESC O w | ESC O R |
| F4 | 0x0E | ESC [ P | ESC 4 | ESC O x | ESC O S |
| F5 | 0x0F | ESC [ Q | ESC 5 | ESC O t | ESC [ 1 5 ~ |
| F6 | 0x10 | ESC [ R | ESC 6 | ESC O u | ESC [ 1 7 ~ |
| F7 | 0x11 | ESC [ S | ESC 7 | ESC O q | ESC [ 1 8 ~ |
| F8 | 0x12 | ESC [ T | ESC 8 | ESC O r | ESC [ 1 9 ~ |
| F9 | 0x13 | ESC [ U | ESC 9 | ESC O p | ESC [ 2 0 ~ |
| F10 | 0x14 | ESC [ V | ESC 0 | ESC O M | ESC [ 2 1 ~ |
| Escape | 0x17 | ESC | ESC | ESC | ESC |
+=========+======+===========+==========+==========+=============+
| F11 | 0x16 | | | | ESC [ 2 3 ~ |
| F12 | 0x16 | | | | ESC [ 2 4 ~ |
+=========+======+===========+==========+==========+=============+


I’m wondering it we could pick the default terminal type based on the
toolchain?

Thanks,

Andrew Fish

Thanks,
Nate

On 3/17/21, 9:02 AM, "Andrew Fish" <afish@apple.com <mailto:
afish@apple.com>> wrote:

If we are mentioning terminal types the default terminal type on
a
Mac is xterm-256color. So that is going to be the default when people
run OVMF on a Mac. So it would be nice if we can add that. I can help
out with anything xterm-256color related.

Thanks,

Andrew Fish

On Mar 16, 2021, at 8:23 AM, Laszlo Ersek <lersek@redhat.com> wrote:

Hi Nate,

(adding Leif and Ard)

On 03/13/21 03:52, Desimone, Nathaniel L wrote:
I've created a new wiki page for this task with all the
information I have gathered thus far. I've done some more
experimentation and found that there are several newer terminal
emulators that don't support DEC Special Graphics so I've reduced
the number of modes where DEC Special Graphics should be
preferred. Laszlo, if you could take a look at the terminal type
matrix I created that would be very helpful.

https://github.com/tianocore/tianocore.github.io/wiki/Tasks-Terminal-d
river-improvements

(

My background:

I settled on plain (non-UTF-8) xterm around 1998, and have been
using it ever since. Whenever something was off, I always tried to
hammer the application into conformance with my particular xterm
setup, rather than the other way around. I also have some quirky
terminal settings -- for me, "backspace" generates ^H / keycode 22
(stty sets erase to ^H), "delete" generates keycode 119, and
there's no "rubout". I still don't use UTF-8 (I use latin2).

)

* Regarding ArmVirtPkg, I stick with the default TTY_TERMINAL=FALSE
setting (which means VT-100). Using that setting, I see the
following kind of "ASCII approximation" for box drawing:

/---------------------------------------------------------------------
---------\
| Boot Manager
|
\---------------------------------------------------------------------
---------/

I'm really happy with this, as I don't care much for nice-looking
boxes; instead I prefer portability.

(NB: this seems to disagree with your "Current Behavior (Which is
wrong)" line for VT100, as it suggests CP437. That's not what I'm
seeing with VT100.)

TTY_TERMINAL=TRUE would mainly affect backspace / delete I think --
as far as I recall, that's why I asked Roy not to make
TTY_TERMINAL=TRUE the default, in 2015:

http://mid.mail-archive.com/555458DB.3090602@redhat.com
http://mid.mail-archive.com/CAFECyb_E+bGZt5xv7QhRqyD0jX=AzoEMw7VW_tjZr
+E=sQf8ww@mail.gmail.com

(I'd like to CC Roy, but I can't tell if he's now working for
Linaro, Cavium, HPE, Marvell, or another company.)

* Regarding OvmfPkg, currently PC_ANSI is hard-coded, and for me it
looks like this:

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄż
ł Boot Manager
ł
ŔÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄŮ

Obviously I'd much prefer if I got the simple ASCII approximation
here as well.

* Whether VT100 and/or PC_ANSI and/or TTY_TERM are *officially*
supposed to use DEC Special Graphics, I can't tell.

I know what my preferences are:

- the current BackSpace and Delete mappings (which work fine for me
with both VT100 and PC_ANSI, but *not* with TTY_TERM),

- and the most primitive ASCII mapping (no special graphics, no UTF-8
sequences, etc). I really like a super dumb terminal, where taking
simple "ASCII screenshots" (and pasting them into plaintext emails!)
is *trivial*.

... Looking at your "Expected Behavior" table, there is only one
line left with "poor man's ASCII" -- namely, TTY_TERM.
Unfortunately, TTY_TERM breaks my BackSpace / Delete settings :(

* In summary, I'd prefer if (a) VT100 stayed as-is (using "poor
man's ASCII", as seen in ArmVirtPkg), and (b) if OVMF used *that*
VT100, rather than PC_ANSI, by default.

Thanks!
Laszlo











<macos_terminal_vt_utf8.png>






Re: UEFI Redfish support

Mahantesh Salimath
 

Hello Abner,

Thank you very much for the info.
I'll look into alternate ways for addressing our concerns.

Best,
Mahantesh

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Abner
Chang via groups.io
Sent: Monday, May 24, 2021 12:16 AM
To: discuss@edk2.groups.io; Mahantesh Salimath <mahantesh@nvidia.com>
Cc: Wang, Nickle (HPS SW) <nickle.wang@hpe.com>
Subject: Re: [edk2-discuss] UEFI Redfish support

External email: Use caution opening links or attachments


Hi Mahantesh,
We had defined the corresponding API in EFI REST EX protocol (EventService)
to incorporate the service-implementation event service such as Redfish
event service, however we don't have the implementation for this API .
Currently we have EDK2 Redfish foundation upstreamed in edk2
(https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md),
that foundation code discovers the Redfish service on the given NIC according
to the Redfish Host interface, and then creates EFI REST EX instance for the
client. You can use the that REST Ex instance to communicate with Redfish
service, however we have to implement EvenService API first.
We are now working on the EDK2 Redfish client (based on EDK2 Redfish
foundation) which is communicate with Redfish service for the platform
configurations only. We may need to create a project for the EDK2 Redfish
event service.

Regards,
Abner


-----Original Message-----
From: discuss@edk2.groups.io [mailto:discuss@edk2.groups.io] On Behalf
Of Mahantesh Salimath
Sent: Friday, May 21, 2021 2:01 AM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] UEFI Redfish support

Hello,

I'm new to the group, I'm a system software engineer working for a
corporation in USA.
I'm not sure where to post my queries, hence posting it here.

I have recently started working on adding Redfish support to our systems.
More specifically, I'm working on adding Events service feature:
(INVALID URI REMOVED.
0.html*event-
service__;Iw!!NpxR!wOQyn02kSNI3BA2FQZQJAcTzjyDYriOaVQrWX_aN-
QnSLlKpeN4aMv7y2hHCv3A$ )

Clients can connect to Redfish service (Redfish Webserver) and
subscribe to events so that they receive a notification when a
subscribed event occurs.
I'm wondering if system events such as: system reboot, system booted
successfully, error during bootup etc., can also be supported via this
service ?

As per the Redfish specification, events such as: a cable is plugged
or a button pushed on the Host are supported via the Events service,
so I think the system events can also notified.

Now, for the system events to be notified, UEFI Redfish Client (on
Host) must notify the Redfish service about these events.
I'm searching for this module in UEFI Redfish Client which is
responsible for propagating such events to Redfish Service.

Any help in this regard is greatly appreciated.
Please feel free to correct any misconceptions.

Thanks.

Best,
Mahantesh









81 - 100 of 834