Date   

Re: [PATCH RESEND v1 1/1] ArmPkg: Update SCMI Base Protocol version to 0x20000

Ard Biesheuvel
 

On Mon, 10 May 2021 at 10:51, Sami Mujawar <Sami.Mujawar@arm.com> wrote:

Hi All,

I have tested this patch on Juno R2.

Tested-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Merged as #1630

Thanks all.




On 10/05/2021, 09:26, "Pierre.Gondois@arm.com" <Pierre.Gondois@arm.com> wrote:

From: Nicola Mazzucato <nicola.mazzucato@arm.com>

The SCP-firmware has moved to full support for SCMIv2 which means that
the base protocol can be either compliant with SCMI v1 or v2.

Allow any version between SCMI v1.0 and SCMI v2.0 to be compatible
with the current implementation.

Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
---
The changes can be seen at: https://github.com/PierreARM/edk2/tree/1732_Update_SCMI_version_v1

ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c | 10 ++++++----
ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h | 10 +++++-----
2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c b/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c
index d5890a7633a2..fb4e79aa3610 100644
--- a/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c
+++ b/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c
@@ -4,9 +4,9 @@

SPDX-License-Identifier: BSD-2-Clause-Patent

- System Control and Management Interface V1.0
- http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
- DEN0056A_System_Control_and_Management_Interface.pdf
+ @par Specification Reference:
+ - Arm System Control and Management Interface - Platform Design Document
+ (https://developer.arm.com/documentation/den0056/)
**/

#include <Base.h>
@@ -86,7 +86,9 @@ ArmScmiDxeEntryPoint (
return Status;
}

- if (Version != BASE_PROTOCOL_VERSION) {
+ // Accept any version between SCMI v1.0 and SCMI v2.0
+ if ((Version < BASE_PROTOCOL_VERSION_V1) ||
+ (Version > BASE_PROTOCOL_VERSION_V2)) {
ASSERT (FALSE);
return EFI_UNSUPPORTED;
}
diff --git a/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h b/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
index 73ad3e32a2f5..c4b81c0f56d3 100644
--- a/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
+++ b/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
@@ -4,9 +4,9 @@

SPDX-License-Identifier: BSD-2-Clause-Patent

- System Control and Management Interface V1.0
- http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
- DEN0056A_System_Control_and_Management_Interface.pdf
+ @par Specification Reference:
+ - Arm System Control and Management Interface - Platform Design Document
+ (https://developer.arm.com/documentation/den0056/)
**/

#ifndef ARM_SCMI_BASE_PROTOCOL_H_
@@ -14,7 +14,8 @@

#include <Protocol/ArmScmi.h>

-#define BASE_PROTOCOL_VERSION 0x10000
+#define BASE_PROTOCOL_VERSION_V1 0x10000
+#define BASE_PROTOCOL_VERSION_V2 0x20000

#define NUM_PROTOCOL_MASK 0xFFU
#define NUM_AGENT_MASK 0xFFU
@@ -165,4 +166,3 @@ typedef enum {
} SCMI_MESSAGE_ID_BASE;

#endif /* ARM_SCMI_BASE_PROTOCOL_H_ */
-
--
2.17.1


IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Re: [PATCH 1/1] Platform/RaspberryPi: Update ACPI table revision

Ard Biesheuvel
 

On Mon, 10 May 2021 at 13:13, Pete Batard <pete@akeo.ie> wrote:

On 2021.05.10 10:08, Sunny Wang wrote:
As per ACPI 6.3 specification, the DSDT/SSDT table should use revision 2
, so update the revision numbers to 2.
This also fixes https://github.com/pftf/RPi4/issues/94 (FWTS failures).

Testing Done:
- Booted to UEFI Shell and used apciview command to check all ACPI
tables' revision.
- Ran FWTS test and no longer see the ACPI DSDT and SSDT revision
failures. Note that the XSDT revision failure is caused by the FWTS
tool's issue that got fixed in
commit c522bfedc9839a474b8d590ba36bec77436d2e90

Cc: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@arm.com>
Cc: Jeremy Linton <jeremy.linton@arm.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pete Batard <pete@akeo.ie>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Signed-off-by: Sunny Wang <sunny.wang@arm.com>
---
Platform/RaspberryPi/AcpiTables/Dsdt.asl | 3 ++-
Platform/RaspberryPi/AcpiTables/Emmc.asl | 4 ++--
Platform/RaspberryPi/AcpiTables/SsdtThermal.asl | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
index d116f965e1..54fa3eca7b 100644
--- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl
+++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
@@ -5,6 +5,7 @@
* Copyright (c) 2020, Pete Batard <pete@akeo.ie>
* Copyright (c) 2018-2020, Andrey Warkentin <andrey.warkentin@gmail.com>
* Copyright (c) Microsoft Corporation. All rights reserved.
+ * Copyright (c) 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -58,7 +59,7 @@
Store (Length, LE ## Index) \
Add (MI ## Index, LE ## Index - 1, MA ## Index)

-DefinitionBlock ("Dsdt.aml", "DSDT", 5, "RPIFDN", "RPI", 2)
+DefinitionBlock ("Dsdt.aml", "DSDT", 2, "RPIFDN", "RPI", 2)
{
Scope (\_SB_)
{
diff --git a/Platform/RaspberryPi/AcpiTables/Emmc.asl b/Platform/RaspberryPi/AcpiTables/Emmc.asl
index 179dd3ecdb..88811eb354 100644
--- a/Platform/RaspberryPi/AcpiTables/Emmc.asl
+++ b/Platform/RaspberryPi/AcpiTables/Emmc.asl
@@ -1,6 +1,6 @@
/** @file
*
- * Copyright (c) 2021 Arm. All rights reserved.
+ * Copyright (c) 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -11,7 +11,7 @@

#include "AcpiTables.h"

-DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPI4EMMC", 2)
+DefinitionBlock (__FILE__, "SSDT", 2, "RPIFDN", "RPI4EMMC", 2)
{
Scope (\_SB_)
{
diff --git a/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl b/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
index acfa4699bb..e82f55bebd 100644
--- a/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
+++ b/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
@@ -2,7 +2,7 @@
*
* Secondary System Description Table (SSDT) for active (fan) cooling
*
- * Copyright (c) 2020, Arm Ltd. All rights reserved.
+ * Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -14,7 +14,7 @@

#include <IndustryStandard/Acpi.h>

-DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPITHFAN", 2)
+DefinitionBlock (__FILE__, "SSDT", 2, "RPIFDN", "RPITHFAN", 2)
{
External (\_SB_.EC00, DeviceObj)
External (\_SB_.EC00.TZ00, DeviceObj)
Reviewed-by: Pete Batard <pete@akeo.ie>
Tested-by: Pete Batard <pete@akeo.ie> (Windows 10 boot)
Thanks all.

Pushed as

a996c765008d..7661dfff1528

(I added a preceding patch to change the line endings of
SsdtThermal.asl to CR/LF, or the patch wouldn't apply)


[PATCH] UefiCpuPkg/MpInitLib: Properly cast from PCD to SEV-ES jump table pointer

Lendacky, Thomas
 

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

A VS2012 build fails with a cast conversion warning when the SEV-ES work
area PCD is cast as a pointer to the SEV_ES_AP_JMP_FAR type.

When casting from a PCD value to a pointer, the cast should first be done
to a UINTN and then to the pointer. Update the code to perform a cast to
a UINTN before casting to a pointer to the SEV_ES_AP_JMP_FAR type.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
---
UefiCpuPkg/Library/MpInitLib/MpLib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index 3d945972a025..dc2a54aa31e8 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -1265,7 +1265,7 @@ SetSevEsJumpTable (
UINT32 Offset, InsnByte;
UINT8 LoNib, HiNib;

- JmpFar = (SEV_ES_AP_JMP_FAR *) FixedPcdGet32 (PcdSevEsWorkAreaBase);
+ JmpFar = (SEV_ES_AP_JMP_FAR *) (UINTN) FixedPcdGet32 (PcdSevEsWorkAreaBase);
ASSERT (JmpFar != NULL);

//
--
2.31.0


Re: Build fails with VS2012

Rebecca Cran
 

On 5/10/21 5:56 AM, Laszlo Ersek wrote:
Hi Rebecca
+Tom
On 05/08/21 21:47, Rebecca Cran wrote:
I'm setting up a new Jenkins server to do Bhyve builds and run on
platforms that aren't currently tested with the GitHub/Azure system.

Since VS2012 appears to be a supported toolchain, I tried building
OvmfPkgX64 with it (I'm also planning on testing VS2013, VS2015, VS2017
and VS2019), but it fails with:


Building ...
c:\users\administrator\src\edk2\NetworkPkg\Library\DxeUdpIoLib\DxeUdpIoLib.inf
[X64]
c:\users\administrator\src\edk2\UefiCpuPkg\Library\MpInitLib\MpLib.c(1268)
: error C2220: warning treated as error - no 'object' file generated
c:\users\administrator\src\edk2\UefiCpuPkg\Library\MpInitLib\MpLib.c(1268)
: warning C4306: 'type cast' : conversion from 'int' to
'SEV_ES_AP_JMP_FAR *' of greater size
I think the compiler is justified to complain here:
7b7508ad784d1 (Tom Lendacky 2020-08-12 15:21:42 -0500 1268) JmpFar = (SEV_ES_AP_JMP_FAR *) FixedPcdGet32 (PcdSevEsWorkAreaBase);
The proper way to spell such casts is with (UINTN) in the middle.
Can you please file a new BZ?
I've created https://bugzilla.tianocore.org/show_bug.cgi?id=3385

I know the GitHub/Azure system only tests with VS2017 and VS2019: are
there plans to drop the older VS versions, or should they still work?
And would it be considered useful to _check_ that they still work, or
should they be considered unsupported?
I'd suggest dropping them.
Earlier, Ard raised a similar question for gcc too -- IIRC, Ard suggested that GCC4* be removed. I agree with the idea.
Thanks. If we're ready to go ahead, should I create a patch to remove them?

Do you know what the new minimum version of gcc should then be? I'd like to run builds with it so we can catch any issues.

Would we remove all VS versions except VS2017 and VS2019, or would we keep others like VS2015 for now?

--
Rebecca Cran


Re: Build fails with VS2012

Laszlo Ersek
 

On 05/09/21 19:42, Rebecca Cran wrote:
Similarly the build is also failing with GCC49, using gcc 4.9.2:

/edk2/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c: In
function 'ShellSortFileList':
Building ...
/edk2/OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf [X64]
/edk2/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c:2202:19: error:
'Dupes' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
       *Duplicates = Dupes;
                   ^

This was reported earlier in:

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

and Sergei proposed a patch for nulling "Dupes" (among other things) in
an attachment on that BZ.

See my feedback in <https://bugzilla.tianocore.org/show_bug.cgi?id=3228#c6>.

Thanks
Laszlo


Re: Build fails with VS2012

Laszlo Ersek
 

Hi Rebecca

+Tom

On 05/08/21 21:47, Rebecca Cran wrote:
I'm setting up a new Jenkins server to do Bhyve builds and run on
platforms that aren't currently tested with the GitHub/Azure system.

Since VS2012 appears to be a supported toolchain, I tried building
OvmfPkgX64 with it (I'm also planning on testing VS2013, VS2015, VS2017
and VS2019), but it fails with:


Building ...
c:\users\administrator\src\edk2\NetworkPkg\Library\DxeUdpIoLib\DxeUdpIoLib.inf
[X64]
c:\users\administrator\src\edk2\UefiCpuPkg\Library\MpInitLib\MpLib.c(1268)
: error C2220: warning treated as error - no 'object' file generated
c:\users\administrator\src\edk2\UefiCpuPkg\Library\MpInitLib\MpLib.c(1268)
: warning C4306: 'type cast' : conversion from 'int' to
'SEV_ES_AP_JMP_FAR *' of greater size
I think the compiler is justified to complain here:

7b7508ad784d1 (Tom Lendacky 2020-08-12 15:21:42 -0500 1268) JmpFar = (SEV_ES_AP_JMP_FAR *) FixedPcdGet32 (PcdSevEsWorkAreaBase);

The proper way to spell such casts is with (UINTN) in the middle.

Can you please file a new BZ?

I know the GitHub/Azure system only tests with VS2017 and VS2019: are
there plans to drop the older VS versions, or should they still work?
And would it be considered useful to _check_ that they still work, or
should they be considered unsupported?
I'd suggest dropping them.

Earlier, Ard raised a similar question for gcc too -- IIRC, Ard suggested that GCC4* be removed. I agree with the idea.

Thanks
Laszlo


Re: [PATCH 1/1] Platform/RaspberryPi: Update ACPI table revision

Pete Batard
 

On 2021.05.10 10:08, Sunny Wang wrote:
As per ACPI 6.3 specification, the DSDT/SSDT table should use revision 2
, so update the revision numbers to 2.
This also fixes https://github.com/pftf/RPi4/issues/94 (FWTS failures).
Testing Done:
- Booted to UEFI Shell and used apciview command to check all ACPI
tables' revision.
- Ran FWTS test and no longer see the ACPI DSDT and SSDT revision
failures. Note that the XSDT revision failure is caused by the FWTS
tool's issue that got fixed in
commit c522bfedc9839a474b8d590ba36bec77436d2e90
Cc: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@arm.com>
Cc: Jeremy Linton <jeremy.linton@arm.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pete Batard <pete@akeo.ie>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Signed-off-by: Sunny Wang <sunny.wang@arm.com>
---
Platform/RaspberryPi/AcpiTables/Dsdt.asl | 3 ++-
Platform/RaspberryPi/AcpiTables/Emmc.asl | 4 ++--
Platform/RaspberryPi/AcpiTables/SsdtThermal.asl | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
index d116f965e1..54fa3eca7b 100644
--- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl
+++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
@@ -5,6 +5,7 @@
* Copyright (c) 2020, Pete Batard <pete@akeo.ie>
* Copyright (c) 2018-2020, Andrey Warkentin <andrey.warkentin@gmail.com>
* Copyright (c) Microsoft Corporation. All rights reserved.
+ * Copyright (c) 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -58,7 +59,7 @@
Store (Length, LE ## Index) \
Add (MI ## Index, LE ## Index - 1, MA ## Index)
-DefinitionBlock ("Dsdt.aml", "DSDT", 5, "RPIFDN", "RPI", 2)
+DefinitionBlock ("Dsdt.aml", "DSDT", 2, "RPIFDN", "RPI", 2)
{
Scope (\_SB_)
{
diff --git a/Platform/RaspberryPi/AcpiTables/Emmc.asl b/Platform/RaspberryPi/AcpiTables/Emmc.asl
index 179dd3ecdb..88811eb354 100644
--- a/Platform/RaspberryPi/AcpiTables/Emmc.asl
+++ b/Platform/RaspberryPi/AcpiTables/Emmc.asl
@@ -1,6 +1,6 @@
/** @file
*
- * Copyright (c) 2021 Arm. All rights reserved.
+ * Copyright (c) 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -11,7 +11,7 @@
#include "AcpiTables.h"
-DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPI4EMMC", 2)
+DefinitionBlock (__FILE__, "SSDT", 2, "RPIFDN", "RPI4EMMC", 2)
{
Scope (\_SB_)
{
diff --git a/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl b/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
index acfa4699bb..e82f55bebd 100644
--- a/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
+++ b/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
@@ -2,7 +2,7 @@
*
* Secondary System Description Table (SSDT) for active (fan) cooling
*
- * Copyright (c) 2020, Arm Ltd. All rights reserved.
+ * Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -14,7 +14,7 @@
#include <IndustryStandard/Acpi.h>
-DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPITHFAN", 2)
+DefinitionBlock (__FILE__, "SSDT", 2, "RPIFDN", "RPITHFAN", 2)
{
External (\_SB_.EC00, DeviceObj)
External (\_SB_.EC00.TZ00, DeviceObj)
Reviewed-by: Pete Batard <pete@akeo.ie>
Tested-by: Pete Batard <pete@akeo.ie> (Windows 10 boot)


Re: [PATCH edk2-test 1/1] uefi-sct/SctPkg: IHV: type mismatch in SimpleTextOut test

Heinrich Schuchardt
 

On 5/10/21 11:24 AM, Sunny Wang wrote:
Looks good. However, I'm thinking about if this is a UEFI specification issue. It looks like we should change the parameter type in EFI_SIMPLE_TEXT_OUTPUT_MODE data structure instead of doing typecasting.
Morevover, we may also need to check the files below:
- uefi-sct\SctPkg\TestCase\UEFI\EFI\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestConformance_efi.c
- uefi-sct\SctPkg\TestCase\UEFI\EFI\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestConformance_uefi.c
- uefi-sct\SctPkg\TestCase\UEFI\EFI\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestFunction_efi.c
- uefi-sct\SctPkg\TestCase\UEFI\IHV\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestConformance_uefi.c

Reviewed-by: Sunny Wang <sunny.wang@arm.com>
Thank you for reviewing.

I had a look into the UEFI spec 2.9:

Structure SIMPLE_TEXT_OUTPUT_MODE is defined with Mode and MaxMode as INT32.

EDK II uses the structure name EFI_SIMPLE_TEXT_OUTPUT_MODE instead of
SIMPLE_TEXT_OUTPUT_MODE.

Changing the component types in SIMPLE_TEXT_OUTPUT_MODE would break
forward and backward compatibility of UEFI applications. I see no value
in such a change.

Best regards

Heinrich


Best Regards,
Sunny Wang

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Heinrich Schuchardt via groups.io
Sent: Tuesday, March 30, 2021 11:09 PM
To: EDK II Development <devel@edk2.groups.io>
Cc: Eric Jin <eric.jin@intel.com>; G Edhaya Chandran <Edhaya.Chandran@arm.com>; Barton Gao <gaojie@byosoft.com.cn>; Arvin Chen <arvinx.chen@intel.com>; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Heinrich Schuchardt <xypron.glpk@gmx.de>; G Edhaya Chandran <Edhaya.Chandran@arm.com>
Subject: [edk2-devel] [PATCH edk2-test 1/1] uefi-sct/SctPkg: IHV: type mismatch in SimpleTextOut test

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

SctPrint() requires that %d refers to an UINTN parameter.

SimpleTextOutBBTestFunction_uefi.c has a lot of
StandardLib->RecordAssertion() calls where an INT32 is passed
as argument for a '%d' print code.

This leads to incorrect output like:

MaxMode=-549755813885,

-549755813885 is 0x0xFFFFFF8000000003. So MaxMode actually is an INT32 with value 3 in this example.

Convert the parameters to UINTN.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: G Edhaya Chandran<edhaya.chandran@arm.com>
---
.../SimpleTextOutBBTestFunction_uefi.c | 624 +++++++++---------
1 file changed, 312 insertions(+), 312 deletions(-)

diff --git a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c
index 2bc9bcdb51f9..a833498c2816 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxT
+++ est/SimpleTextOutBBTestFunction_uefi.c
@@ -176,12 +176,12 @@ BBTestResetFunctionManualTest (
L" Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -272,12 +272,12 @@ BBTestResetFunctionManualTest (
L" Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -505,12 +505,12 @@ BBTestResetFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -582,12 +582,12 @@ BBTestResetFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -850,18 +850,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -987,18 +987,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1094,18 +1094,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1217,18 +1217,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1469,18 +1469,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1626,18 +1626,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1754,18 +1754,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1897,18 +1897,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -2240,18 +2240,18 @@ BBTestTestStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -2433,18 +2433,18 @@ BBTestQueryModeFunctionAutoTest (
__FILE__,
(UINTN)__LINE__,
Index,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

if ( EFI_UNSUPPORTED == Status && 1 == Index ) { @@ -2720,18 +2720,18 @@ BBTestSetModeFunctionManualTest (
__FILE__,
(UINTN)__LINE__,
Index,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -2968,18 +2968,18 @@ BBTestSetModeFunctionAutoTest (
__FILE__,
(UINTN)__LINE__,
Index,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -3193,18 +3193,18 @@ BBTestSetAttributeFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -3451,18 +3451,18 @@ BBTestSetAttributeFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -3653,18 +3653,18 @@ BBTestClearScreenFunctionManualTest (
L" Expected: Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -3896,18 +3896,18 @@ BBTestClearScreenFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -4143,18 +4143,18 @@ BBTestSetCursorPositionFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -4434,18 +4434,18 @@ BBTestSetCursorPositionFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -4669,18 +4669,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -4739,18 +4739,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
} else {
//
@@ -4803,18 +4803,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -4888,18 +4888,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
} else {
//
@@ -5128,18 +5128,18 @@ BBTestEnableCursorFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

AssertionType = EFI_TEST_ASSERTION_PASSED; @@ -5212,18 +5212,18 @@ BBTestEnableCursorFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);


--
2.30.2



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#73535): https://edk2.groups.io/g/devel/message/73535
Mute This Topic: https://groups.io/mt/81724304/5985097
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [Sunny.Wang@arm.com] -=-=-=-=-=-=


IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Re: [PATCH edk2-test 1/1] uefi-sct/SctPkg: IHV: type mismatch in SimpleTextOut test

Sunny Wang
 

Looks good. However, I'm thinking about if this is a UEFI specification issue. It looks like we should change the parameter type in EFI_SIMPLE_TEXT_OUTPUT_MODE data structure instead of doing typecasting.
Morevover, we may also need to check the files below:
- uefi-sct\SctPkg\TestCase\UEFI\EFI\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestConformance_efi.c
- uefi-sct\SctPkg\TestCase\UEFI\EFI\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestConformance_uefi.c
- uefi-sct\SctPkg\TestCase\UEFI\EFI\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestFunction_efi.c
- uefi-sct\SctPkg\TestCase\UEFI\IHV\Protocol\SimpleTextOut\BlackBoxTest\SimpleTextOutBBTestConformance_uefi.c

Reviewed-by: Sunny Wang <sunny.wang@arm.com>

Best Regards,
Sunny Wang

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Heinrich Schuchardt via groups.io
Sent: Tuesday, March 30, 2021 11:09 PM
To: EDK II Development <devel@edk2.groups.io>
Cc: Eric Jin <eric.jin@intel.com>; G Edhaya Chandran <Edhaya.Chandran@arm.com>; Barton Gao <gaojie@byosoft.com.cn>; Arvin Chen <arvinx.chen@intel.com>; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Heinrich Schuchardt <xypron.glpk@gmx.de>; G Edhaya Chandran <Edhaya.Chandran@arm.com>
Subject: [edk2-devel] [PATCH edk2-test 1/1] uefi-sct/SctPkg: IHV: type mismatch in SimpleTextOut test

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

SctPrint() requires that %d refers to an UINTN parameter.

SimpleTextOutBBTestFunction_uefi.c has a lot of
StandardLib->RecordAssertion() calls where an INT32 is passed
as argument for a '%d' print code.

This leads to incorrect output like:

MaxMode=-549755813885,

-549755813885 is 0x0xFFFFFF8000000003. So MaxMode actually is an INT32 with value 3 in this example.

Convert the parameters to UINTN.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: G Edhaya Chandran<edhaya.chandran@arm.com>
---
.../SimpleTextOutBBTestFunction_uefi.c | 624 +++++++++---------
1 file changed, 312 insertions(+), 312 deletions(-)

diff --git a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c
index 2bc9bcdb51f9..a833498c2816 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/IHV/Protocol/SimpleTextOut/BlackBoxT
+++ est/SimpleTextOutBBTestFunction_uefi.c
@@ -176,12 +176,12 @@ BBTestResetFunctionManualTest (
L" Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -272,12 +272,12 @@ BBTestResetFunctionManualTest (
L" Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -505,12 +505,12 @@ BBTestResetFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -582,12 +582,12 @@ BBTestResetFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), MaxMode=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->MaxMode,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.MaxMode
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.MaxMode
);

//
@@ -850,18 +850,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -987,18 +987,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1094,18 +1094,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1217,18 +1217,18 @@ BBTestOutputStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1469,18 +1469,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1626,18 +1626,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1754,18 +1754,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -1897,18 +1897,18 @@ BBTestOutputStringFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -2240,18 +2240,18 @@ BBTestTestStringFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -2433,18 +2433,18 @@ BBTestQueryModeFunctionAutoTest (
__FILE__,
(UINTN)__LINE__,
Index,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

if ( EFI_UNSUPPORTED == Status && 1 == Index ) { @@ -2720,18 +2720,18 @@ BBTestSetModeFunctionManualTest (
__FILE__,
(UINTN)__LINE__,
Index,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -2968,18 +2968,18 @@ BBTestSetModeFunctionAutoTest (
__FILE__,
(UINTN)__LINE__,
Index,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -3193,18 +3193,18 @@ BBTestSetAttributeFunctionManualTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -3451,18 +3451,18 @@ BBTestSetAttributeFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -3653,18 +3653,18 @@ BBTestClearScreenFunctionManualTest (
L" Expected: Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -3896,18 +3896,18 @@ BBTestClearScreenFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -4143,18 +4143,18 @@ BBTestSetCursorPositionFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -4434,18 +4434,18 @@ BBTestSetCursorPositionFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
Result = FALSE;
}
@@ -4669,18 +4669,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -4739,18 +4739,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
} else {
//
@@ -4803,18 +4803,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

//
@@ -4888,18 +4888,18 @@ BBTestEnableCursorFunctionManualTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);
} else {
//
@@ -5128,18 +5128,18 @@ BBTestEnableCursorFunctionAutoTest (
L"Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);

AssertionType = EFI_TEST_ASSERTION_PASSED; @@ -5212,18 +5212,18 @@ BBTestEnableCursorFunctionAutoTest (
L" Expected:Cursor Position(%d x %d), Mode=%d, MaxMode=%d, Attribute=%d, CursorVisible=%d.",
__FILE__,
(UINTN)__LINE__,
- SimpleOut->Mode->CursorColumn,
- SimpleOut->Mode->CursorRow,
- SimpleOut->Mode->Mode,
- SimpleOut->Mode->MaxMode,
- SimpleOut->Mode->Attribute,
- SimpleOut->Mode->CursorVisible,
- ModeExpected.CursorColumn,
- ModeExpected.CursorRow,
- ModeExpected.Mode,
- ModeExpected.MaxMode,
- ModeExpected.Attribute,
- ModeExpected.CursorVisible
+ (UINTN)SimpleOut->Mode->CursorColumn,
+ (UINTN)SimpleOut->Mode->CursorRow,
+ (UINTN)SimpleOut->Mode->Mode,
+ (UINTN)SimpleOut->Mode->MaxMode,
+ (UINTN)SimpleOut->Mode->Attribute,
+ (UINTN)SimpleOut->Mode->CursorVisible,
+ (UINTN)ModeExpected.CursorColumn,
+ (UINTN)ModeExpected.CursorRow,
+ (UINTN)ModeExpected.Mode,
+ (UINTN)ModeExpected.MaxMode,
+ (UINTN)ModeExpected.Attribute,
+ (UINTN)ModeExpected.CursorVisible
);


--
2.30.2



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#73535): https://edk2.groups.io/g/devel/message/73535
Mute This Topic: https://groups.io/mt/81724304/5985097
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [Sunny.Wang@arm.com] -=-=-=-=-=-=


IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Re: [edk2-platforms][PATCH V2 0/8] Platform/Sgi: Add PPTT table for Neoverse Reference Design platforms

Sami Mujawar
 

Hi Pranav,

Is it possible to send the PPTT table dump using ACPIview for these platforms, please?

Shell> acpiview -s PPTT

Regards,

Sami Mujawar

On 28/04/2021 01:12 PM, Pranav Madhu wrote:
Changes since V1:
- Rebase the patches on top of latest master branch
- Addressed comments from Pierre

Processor Properties Topology Table (PPTT) describes the topological
structure of processors, and their shared resources such as caches.
This patch series adds PPTT table for Arm's Neoverse Reference Design
platforms.

The first patch in this series adds helper macros for PPTT table, and
the subsequent patches in this series adds PPTT table for Neoverse
Reference Design platforms which is mandatory as per Arm SystemReady SR
specification.

Link to github branch with the patches in this series -
https://github.com/Pranav-Madhu/edk2-platforms/tree/topics/rd_pptt

Pranav Madhu (8):
Platform/Sgi: Helper macros for PPTT Table
Platform/Sgi: ACPI PPTT table for SGI-575 platform
Platform/Sgi: ACPI PPTT table for RD-N1-Edge platform
Platform/Sgi: ACPI PPTT table for RD-N1-Edge dual-chip
Platform/Sgi: ACPI PPTT table for RD-E1-Edge platform
Platform/Sgi: ACPI PPTT Table for RD-V1 platform
Platform/Sgi: ACPI PPTT Table for RD-V1 quad-chip platform
Platform/Sgi: ACPI PPTT table for RD-N2 platform

.../SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf | 3 +-
.../SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf | 3 +-
.../AcpiTables/RdN1EdgeX2AcpiTables.inf | 1 +
.../ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf | 3 +-
.../ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf | 3 +-
.../SgiPkg/AcpiTables/RdV1McAcpiTables.inf | 1 +
.../SgiPkg/AcpiTables/Sgi575AcpiTables.inf | 3 +-
Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 160 ++++++++++++
.../ARM/SgiPkg/AcpiTables/RdE1Edge/Pptt.aslc | 230 ++++++++++++++++++
.../ARM/SgiPkg/AcpiTables/RdN1Edge/Pptt.aslc | 175 +++++++++++++
.../SgiPkg/AcpiTables/RdN1EdgeX2/Pptt.aslc | 192 +++++++++++++++
Platform/ARM/SgiPkg/AcpiTables/RdN2/Pptt.aslc | 163 +++++++++++++
Platform/ARM/SgiPkg/AcpiTables/RdV1/Pptt.aslc | 164 +++++++++++++
.../ARM/SgiPkg/AcpiTables/RdV1Mc/Pptt.aslc | 169 +++++++++++++
.../ARM/SgiPkg/AcpiTables/Sgi575/Pptt.aslc | 161 ++++++++++++
15 files changed, 1426 insertions(+), 5 deletions(-)
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Pptt.aslc
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Pptt.aslc
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Pptt.aslc
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN2/Pptt.aslc
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdV1/Pptt.aslc
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdV1Mc/Pptt.aslc
create mode 100644 Platform/ARM/SgiPkg/AcpiTables/Sgi575/Pptt.aslc


Re: [edk2-platforms][PATCH V1 10/17] Platform/Sgi: Macro definitions for ACPI CPPC

Sami Mujawar
 

Hi Pranav,

Please find my response inline marked [SAMI].

Regards,

Sami Mujawar


On 28/04/2021 01:35 PM, Pranav Madhu wrote:
Add helper macros required for use with ACPI collaborative processor
performance control (CPPC). This patch adds macros for initializing ACPI
_CPC and _PSD control method. The CPC initializer macro initializes _CPC
control method with revision 3 as specified in Arm FFH specification
1.1. The CPC initilizer exposes the reference performance counter and
delivered perfrmance counter (AMU registers) as FFixedHW registers. The
initilizer also expose the fastchannel memories for performance level
set performance limit set protocols as desired performance register and
performance limited register respectively.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
---
Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 53 ++++++++++++++++++++
1 file changed, 53 insertions(+)

diff --git a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h
index 4977d4d898aa..1b5305f15fb8 100644
--- a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h
+++ b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h
@@ -423,4 +423,57 @@ typedef struct {
LineSize /* Line size in bytes */ \
}
+// CPPC _CPC object initialization
+#define CPPC_PACKAGE_INIT(DesiredPerfReg, PerfLimitedReg, GranularityMHz, \
+ HighestPerf, NominalPerf, LowestNonlinearPerf, LowestPerf, RefPerf) \
[SAMI] I think it would be good to add a coment in the macro header clarifying that this macro is intended to be used in ASL definitition.
The same would apply for the following macro.
Alternatively, you could introduce a new header file for the ASL macro definitions SgiAslHeader.h. What do you think ?
[/SAMI]
+ { \
+ 23, /* NumEntries */ \
+ 3, /* Revision */ \
+ HighestPerf, /* Highest Performance */ \
+ NominalPerf, /* Nominal Performance */ \
+ LowestNonlinearPerf, /* Lowest Nonlinear Performance */ \
+ LowestPerf, /* Lowest Performance */ \
+ /* Guaranteed Performance Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Desired Performance Register */ \
+ ResourceTemplate () { Register (SystemMemory, 32, 0, DesiredPerfReg, 3) }, \
+ /* Minimum Performance Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Maximum Performance Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Performance Reduction Tolerance Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Time Window Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Counter Wraparound Time */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Reference Performance Counter Register */ \
+ ResourceTemplate () { Register (FFixedHW, 64, 0, 1, 4) }, \
+ /* Delivered Performance Counter Register */ \
+ ResourceTemplate () { Register (FFixedHW, 64, 0, 0, 4) }, \
+ /* Performance Limited Register */ \
+ ResourceTemplate () { Register (SystemMemory, 32, 0, PerfLimitedReg, 3) }, \
+ /* CPPC Enable Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Autonomous Selection Enable Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Autonomous Activity Window Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ /* Energy Performance Preference Register */ \
+ ResourceTemplate () { Register (SystemMemory, 0, 0, 0, 0) }, \
+ RefPerf, /* Reference Performance */ \
+ (LowestPerf * GranularityMHz), /* Lowest Frequency */ \
+ (NominalPerf * GranularityMHz), /* Nominal Frequency */ \
+ }
+
+// Power state dependancy (_PSD) for CPPC
+#define PSD_INIT(Domain) \
+ { \
+ 5, /* Entries */ \
+ 0, /* Revision */ \
+ Domain, /* Domain */ \
+ 0xFD, /* Coord Type- SW_ANY */ \
+ 1 /* Processors */ \
+ }
+
#endif /* __SGI_ACPI_HEADER__ */


Re: [edk2-platforms][PATCH V1 02/17] Platform/Sgi: Add CPU container for SGI-575

Sami Mujawar
 

Hi Pranav,

Please find my response inline marked [SAMI].

Regards,

Sami Mujawar


On 28/04/2021 01:35 PM, Pranav Madhu wrote:
The SGI-575 platform includes two clusters with four single-thread CPUs.
Add processor container devices for the two clusters on the SGI-575
platform and move the existing processor devices into respective
processor containers.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
---
Platform/ARM/SgiPkg/AcpiTables/Sgi575/Dsdt.asl | 99 +++++++++++---------
1 file changed, 54 insertions(+), 45 deletions(-)

diff --git a/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Dsdt.asl b/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Dsdt.asl
index fe0b92137bde..7390849e6231 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Dsdt.asl
+++ b/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Dsdt.asl
@@ -12,53 +12,62 @@
DefinitionBlock("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI", EFI_ACPI_ARM_OEM_REVISION) {
Scope(_SB) {
-
- Device(CP00) { // A75-0: Cluster 0, Cpu 0
- Name(_HID, "ACPI0007")
- Name(_UID, 0)
- Name(_STA, 0xF)
- }
-
- Device(CP01) { // A75-0: Cluster 0, Cpu 1
- Name(_HID, "ACPI0007")
- Name(_UID, 1)
- Name(_STA, 0xF)
- }
-
- Device(CP02) { // A75-0: Cluster 0, Cpu 2
- Name(_HID, "ACPI0007")
- Name(_UID, 2)
- Name(_STA, 0xF)
- }
-
- Device(CP03) { // A75-0: Cluster 0, Cpu 3
- Name(_HID, "ACPI0007")
- Name(_UID, 3)
- Name(_STA, 0xF)
- }
-
- Device(CP04) { // A75-0: Cluster 1, Cpu 0
- Name(_HID, "ACPI0007")
- Name(_UID, 4)
- Name(_STA, 0xF)
- }
-
- Device(CP05) { // A75-0: Cluster 1, Cpu 1
- Name(_HID, "ACPI0007")
- Name(_UID, 5)
- Name(_STA, 0xF)
- }
-
- Device(CP06) { // A75-0: Cluster 1, Cpu 2
- Name(_HID, "ACPI0007")
- Name(_UID, 6)
- Name(_STA, 0xF)
+ Device (CLU0) { // Cluster 0
+ Name (_HID, "ACPI0010")
+ Name (_UID, 0)
[SAMI] Please see my comment for the patch in your previous series at https://edk2.groups.io/g/devel/message/74863
[/SAMI]
+
+ Device (CP00) { // A75-0: Cluster 0, Cpu 0
+ Name (_HID, "ACPI0007")
+ Name (_UID, 0)
+ Name (_STA, 0xF)
+ }
+
+ Device (CP01) { // A75-0: Cluster 0, Cpu 1
+ Name (_HID, "ACPI0007")
+ Name (_UID, 1)
+ Name (_STA, 0xF)
+ }
+
+ Device (CP02) { // A75-0: Cluster 0, Cpu 2
+ Name (_HID, "ACPI0007")
+ Name (_UID, 2)
+ Name (_STA, 0xF)
+ }
+
+ Device (CP03) { // A75-0: Cluster 0, Cpu 3
+ Name (_HID, "ACPI0007")
+ Name (_UID, 3)
+ Name (_STA, 0xF)
+ }
}
- Device(CP07) { // A75-0: Cluster 1, Cpu 3
- Name(_HID, "ACPI0007")
- Name(_UID, 7)
- Name(_STA, 0xF)
+ Device (CLU1) { // Cluster 1
+ Name (_HID, "ACPI0010")
+ Name (_UID, 1)
+
+ Device (CP04) { // A75-0: Cluster 1, Cpu 0
+ Name (_HID, "ACPI0007")
+ Name (_UID, 4)
+ Name (_STA, 0xF)
+ }
+
+ Device (CP05) { // A75-0: Cluster 1, Cpu 1
+ Name (_HID, "ACPI0007")
+ Name (_UID, 5)
+ Name (_STA, 0xF)
+ }
+
+ Device (CP06) { // A75-0: Cluster 1, Cpu 2
+ Name (_HID, "ACPI0007")
+ Name (_UID, 6)
+ Name (_STA, 0xF)
+ }
+
+ Device (CP07) { // A75-0: Cluster 1, Cpu 3
+ Name (_HID, "ACPI0007")
+ Name (_UID, 7)
+ Name (_STA, 0xF)
+ }
}
// UART PL011


[PATCH 1/1] Platform/RaspberryPi: Update ACPI table revision

Sunny Wang
 

As per ACPI 6.3 specification, the DSDT/SSDT table should use revision 2
, so update the revision numbers to 2.
This also fixes https://github.com/pftf/RPi4/issues/94 (FWTS failures).

Testing Done:
- Booted to UEFI Shell and used apciview command to check all ACPI
tables' revision.
- Ran FWTS test and no longer see the ACPI DSDT and SSDT revision
failures. Note that the XSDT revision failure is caused by the FWTS
tool's issue that got fixed in
commit c522bfedc9839a474b8d590ba36bec77436d2e90

Cc: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@arm.com>
Cc: Jeremy Linton <jeremy.linton@arm.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pete Batard <pete@akeo.ie>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Signed-off-by: Sunny Wang <sunny.wang@arm.com>
---
Platform/RaspberryPi/AcpiTables/Dsdt.asl | 3 ++-
Platform/RaspberryPi/AcpiTables/Emmc.asl | 4 ++--
Platform/RaspberryPi/AcpiTables/SsdtThermal.asl | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/Raspberr=
yPi/AcpiTables/Dsdt.asl
index d116f965e1..54fa3eca7b 100644
--- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl
+++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
@@ -5,6 +5,7 @@
* Copyright (c) 2020, Pete Batard <pete@akeo.ie>
* Copyright (c) 2018-2020, Andrey Warkentin <andrey.warkentin@gmail.co=
m>
* Copyright (c) Microsoft Corporation. All rights reserved.
+ * Copyright (c) 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -58,7 +59,7 @@
Store (Length, LE ## Index) \
Add (MI ## Index, LE ## Index - 1, MA ## Index)
=20
-DefinitionBlock ("Dsdt.aml", "DSDT", 5, "RPIFDN", "RPI", 2)
+DefinitionBlock ("Dsdt.aml", "DSDT", 2, "RPIFDN", "RPI", 2)
{
Scope (\_SB_)
{
diff --git a/Platform/RaspberryPi/AcpiTables/Emmc.asl b/Platform/Raspberr=
yPi/AcpiTables/Emmc.asl
index 179dd3ecdb..88811eb354 100644
--- a/Platform/RaspberryPi/AcpiTables/Emmc.asl
+++ b/Platform/RaspberryPi/AcpiTables/Emmc.asl
@@ -1,6 +1,6 @@
/** @file
*
- * Copyright (c) 2021 Arm. All rights reserved.
+ * Copyright (c) 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -11,7 +11,7 @@
=20
#include "AcpiTables.h"
=20
-DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPI4EMMC", 2)
+DefinitionBlock (__FILE__, "SSDT", 2, "RPIFDN", "RPI4EMMC", 2)
{
Scope (\_SB_)
{
diff --git a/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl b/Platform/R=
aspberryPi/AcpiTables/SsdtThermal.asl
index acfa4699bb..e82f55bebd 100644
--- a/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
+++ b/Platform/RaspberryPi/AcpiTables/SsdtThermal.asl
@@ -2,7 +2,7 @@
*
* Secondary System Description Table (SSDT) for active (fan) cooling
*
- * Copyright (c) 2020, Arm Ltd. All rights reserved.
+ * Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -14,7 +14,7 @@
=20
#include <IndustryStandard/Acpi.h>
=20
-DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPITHFAN", 2)
+DefinitionBlock (__FILE__, "SSDT", 2, "RPIFDN", "RPITHFAN", 2)
{
External (\_SB_.EC00, DeviceObj)
External (\_SB_.EC00.TZ00, DeviceObj)
--=20
2.31.0.windows.1


Re: [PATCH v4 2/7] TigerlakeOpenBoard: Move ReportCpuHob library path

Heng Luo
 

Reviewed-by: Heng Luo <heng.luo@intel.com>

-----Original Message-----
From: Chuang, SofiaX <sofiax.chuang@intel.com>
Sent: Tuesday, May 4, 2021 2:22 AM
To: devel@edk2.groups.io
Cc: Chuang, SofiaX <sofiax.chuang@intel.com>; Chaganty, Rangasai V
<rangasai.v.chaganty@intel.com>; Desimone, Nathaniel L
<nathaniel.l.desimone@intel.com>; Luo, Heng <heng.luo@intel.com>
Subject: [edk2-devel][PATCH v4 2/7]
TigerlakeOpenBoard: Move ReportCpuHob library path

From: SofiaX Chuang <sofiax.chuang@intel.com>

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

Move ReportCpuHob library from MinPlatformPkg to IntelSiliconPkg.

Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Heng Luo <heng.luo@intel.com>
---
.../Intel/TigerlakeOpenBoardPkg/TigerlakeURvp/OpenBoardPkg.dsc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git
a/Platform/Intel/TigerlakeOpenBoardPkg/TigerlakeURvp/OpenBoardPkg.dsc
b/Platform/Intel/TigerlakeOpenBoardPkg/TigerlakeURvp/OpenBoardPkg.dsc
index a4265a839c..1adf634034 100644
--- a/Platform/Intel/TigerlakeOpenBoardPkg/TigerlakeURvp/OpenBoardPkg.dsc
+++
b/Platform/Intel/TigerlakeOpenBoardPkg/TigerlakeURvp/OpenBoardPkg.dsc
@@ -89,7 +89,6 @@



PciSegmentLib|$(PLATFORM_SI_PACKAGE)/Library/BasePciSegmentMultiSegLib
Pci/BasePciSegmentMultiSegLibPci.inf

PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf

-
ReportCpuHobLib|$(PLATFORM_PACKAGE)/PlatformInit/Library/ReportCpuHob
Lib/ReportCpuHobLib.inf



#

# Silicon Init Package

@@ -115,6 +114,7 @@
#

# Silicon Init Package

#

+
ReportCpuHobLib|IntelSiliconPkg/Library/ReportCpuHobLib/ReportCpuHobLib.i
nf

!include $(PLATFORM_SI_PACKAGE)/SiPkgPeiLib.dsc



#

--
2.27.0


Re: [PATCH] MdeModulePkg: Retrive boot manager menu from any fv

Zhiguang Liu
 

Hi Hao,

I don't have the data about the boot performance.
However, I think it has little impact for the originally working platforms.
In function GetSectionFromAnyFv, It will first search section in current FV.
If it finds the section, it will return succuss.
Only if it can't find the section, it will take extra time to search in other FV. This case won't happen in originally working platforms

Thanks
Zhiguang

-----Original Message-----
From: Wu, Hao A <hao.a.wu@intel.com>
Sent: Monday, May 10, 2021 4:42 PM
To: devel@edk2.groups.io; Liu, Zhiguang <zhiguang.liu@intel.com>
Cc: Wang, Jian J <jian.j.wang@intel.com>; Gao, Zhichao
<zhichao.gao@intel.com>; Ni, Ray <ray.ni@intel.com>
Subject: RE: [edk2-devel] [PATCH] MdeModulePkg: Retrive boot manager
menu from any fv

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
Zhiguang Liu
Sent: Monday, May 10, 2021 4:16 PM
To: devel@edk2.groups.io
Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A
<hao.a.wu@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>; Ni, Ray
<ray.ni@intel.com>
Subject: [edk2-devel] [PATCH] MdeModulePkg: Retrive boot manager
menu
from any fv

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

Currently, UefiBootManagerLib has the below assumption:
Assume the BootManagerMenuFile is in the same FV as the module links
to this library.
It has some limitation now, so remove the assumption.

Hello Zhiguang,

Sorry for a question. Do you know what is the boot performance impact if
'GetSectionFromAnyFv()' is being used?
Any data on the impact for originally working platforms?

Best Regards,
Hao Wu



Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
---
MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
index 6cc34d29c0..b8df4d590f 100644
--- a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
+++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
@@ -2,7 +2,7 @@
Library functions which relates with booting. Copyright (c) 2019,
NVIDIA CORPORATION. All rights reserved.-Copyright (c) 2011 - 2020,
Intel Corporation. All rights reserved.<BR>+Copyright (c) 2011 - 2021,
Intel Corporation. All rights reserved.<BR> (C) Copyright 2015-2021
Hewlett Packard Enterprise Development LP<BR> SPDX-License-Identifier:
BSD-2- Clause-Patent @@ -2385,7 +2385,6 @@
EfiBootManagerRefreshAllBootOption (
This function is called to get or create the boot option for the Boot
Manager
Menu. The Boot Manager Menu is shown after successfully booting a
boot
option.- Assume the BootManagerMenuFile is in the same FV as the
module
links to this library. @param BootOption Return the boot option of the
Boot Manager Menu @@ -2437,7 +2436,7 @@
BmRegisterBootManagerMenu (
if (DevicePath == NULL) { Data = NULL;- Status = GetSectionFromFv (+
Status = GetSectionFromAnyFv ( PcdGetPtr
(PcdBootManagerMenuFile), EFI_SECTION_PE32, 0,@@ -
2455,7 +2454,7 @@ BmRegisterBootManagerMenu (
// // Get BootManagerMenu application's description from EFI User
Interface Section. //- Status = GetSectionFromFv (+ Status =
GetSectionFromAnyFv ( PcdGetPtr (PcdBootManagerMenuFile),
EFI_SECTION_USER_INTERFACE, 0,--
2.30.0.windows.2



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#74859):
https://edk2.groups.io/g/devel/message/74859
Mute This Topic: https://groups.io/mt/82714887/1768737
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [hao.a.wu@intel.com]
- =-=-=-=-=-=


Re: [PATCH RESEND v1 1/1] ArmPkg: Update SCMI Base Protocol version to 0x20000

Sami Mujawar
 

Hi All,

I have tested this patch on Juno R2.

Tested-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>

Regards,

Sami Mujawar

On 10/05/2021, 09:26, "Pierre.Gondois@arm.com" <Pierre.Gondois@arm.com> wrote:

From: Nicola Mazzucato <nicola.mazzucato@arm.com>

The SCP-firmware has moved to full support for SCMIv2 which means that
the base protocol can be either compliant with SCMI v1 or v2.

Allow any version between SCMI v1.0 and SCMI v2.0 to be compatible
with the current implementation.

Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
---
The changes can be seen at: https://github.com/PierreARM/edk2/tree/1732_Update_SCMI_version_v1

ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c | 10 ++++++----
ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h | 10 +++++-----
2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c b/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c
index d5890a7633a2..fb4e79aa3610 100644
--- a/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c
+++ b/ArmPkg/Drivers/ArmScmiDxe/ScmiDxe.c
@@ -4,9 +4,9 @@

SPDX-License-Identifier: BSD-2-Clause-Patent

- System Control and Management Interface V1.0
- http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
- DEN0056A_System_Control_and_Management_Interface.pdf
+ @par Specification Reference:
+ - Arm System Control and Management Interface - Platform Design Document
+ (https://developer.arm.com/documentation/den0056/)
**/

#include <Base.h>
@@ -86,7 +86,9 @@ ArmScmiDxeEntryPoint (
return Status;
}

- if (Version != BASE_PROTOCOL_VERSION) {
+ // Accept any version between SCMI v1.0 and SCMI v2.0
+ if ((Version < BASE_PROTOCOL_VERSION_V1) ||
+ (Version > BASE_PROTOCOL_VERSION_V2)) {
ASSERT (FALSE);
return EFI_UNSUPPORTED;
}
diff --git a/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h b/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
index 73ad3e32a2f5..c4b81c0f56d3 100644
--- a/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
+++ b/ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h
@@ -4,9 +4,9 @@

SPDX-License-Identifier: BSD-2-Clause-Patent

- System Control and Management Interface V1.0
- http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
- DEN0056A_System_Control_and_Management_Interface.pdf
+ @par Specification Reference:
+ - Arm System Control and Management Interface - Platform Design Document
+ (https://developer.arm.com/documentation/den0056/)
**/

#ifndef ARM_SCMI_BASE_PROTOCOL_H_
@@ -14,7 +14,8 @@

#include <Protocol/ArmScmi.h>

-#define BASE_PROTOCOL_VERSION 0x10000
+#define BASE_PROTOCOL_VERSION_V1 0x10000
+#define BASE_PROTOCOL_VERSION_V2 0x20000

#define NUM_PROTOCOL_MASK 0xFFU
#define NUM_AGENT_MASK 0xFFU
@@ -165,4 +166,3 @@ typedef enum {
} SCMI_MESSAGE_ID_BASE;

#endif /* ARM_SCMI_BASE_PROTOCOL_H_ */
-
--
2.17.1


IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Re: [edk2-platforms][PATCH V2 2/8] Platform/Sgi: ACPI PPTT table for SGI-575 platform

Sami Mujawar
 

Hi Pranav,

Please see my response inline marked [SAMI].

Regards,

Sami Mujawar


On 28/04/2021 01:12 PM, Pranav Madhu wrote:
From: Pranav Madhu <Pranav.Madhu@arm.com>

The SGI-575 platform includes two clusters with four single-thread CPUs.
Each of the CPUs include 64KB L1 Data cache, 64KB L1 Instruction cache
and 512KB L2 cache. Each cluster includes a 2MB L3 cache. Add PPTT table
for SGI-575 platform with this information.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
---
Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf | 3 +-
Platform/ARM/SgiPkg/AcpiTables/Sgi575/Pptt.aslc | 161 ++++++++++++++++++++
2 files changed, 163 insertions(+), 1 deletion(-)

diff --git a/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf
index 2121fd39f2f0..b1ee16e98ea3 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2018, ARM Ltd. All rights reserved.
+# Copyright (c) 2018 - 2021, ARM Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -22,6 +22,7 @@
Mcfg.aslc
Sgi575/Dsdt.asl
Sgi575/Madt.aslc
+ Sgi575/Pptt.aslc
Spcr.aslc
Ssdt.asl

diff --git a/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Pptt.aslc b/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Pptt.aslc
new file mode 100644
index 000000000000..3388a012dd55
--- /dev/null
+++ b/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Pptt.aslc
@@ -0,0 +1,161 @@
+/** @file
+* Processor Properties Topology Table (PPTT) for SGI-575 platform
+*
+* This file describes the topological structure of the processor block on the
+* SGI-575 platform in the form as defined by ACPI PPTT table. The SGI-575
+* platform includes two clusters with four single-thread CPUS. Each of the CPUs
+* include 64KB L1 Data cache, 64KB L1 Instruction cache and 512KB L2 cache.
+* Each cluster includes a 2MB L3 cache.
+*
+* Copyright (c) 2021, ARM Limited. All rights reserved.
+*
+* SPDX-License-Identifier: BSD-2-Clause-Patent
+*
+* @par Specification Reference:
+* - ACPI 6.3, Chapter 5, Section 5.2.29, Processor Properties Topology Table
+**/
+
+#include <IndustryStandard/Acpi.h>
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+
+#include "SgiPlatform.h"
+#include "SgiAcpiHeader.h"
+
+#define PPTT_CORE_INIT(pid, cid, cpuid) \
[SAMI] Can you add a doxygen style header describing the parameters. As
it stands the meaning of the macro parameter is not intutive.
I can see the difficulty if PPTT_CORE_INIT() were to be a generic macro,
in which case it may be better to describe the parameters as affinity
levels.
However, in the current case this macro is local, so
- the macro could be modified to suit parameters specific to this file
OR
- Describe the macro parameters as affinity levels and add a Doxygen
function style comment header clarifying the parameter usage.

[/SAMI]
+ { \
+ /* Parameters for CPU Core */ \
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_INIT ( \
+ OFFSET_OF (RD_PPTT_CORE, DCache), /* Length */ \
+ PPTT_PROCESSOR_CORE_FLAGS, /* Flag */ \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package.Cluster[cid]), /* Parent */ \
+ ((pid << 3) | (cid << 2) | cpuid), /* ACPI Id */ \
+ 2 /* Num of private resource */ \
+ ), \
+ \
+ /* Offsets of the private resources */ \
+ { \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package.Cluster[cid].Core[cpuid].DCache), \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package.Cluster[cid].Core[cpuid].ICache) \
+ }, \
+ \
+ /* L1 data cache parameters */ \
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE_INIT ( \
+ PPTT_CACHE_STRUCTURE_FLAGS, /* Flag */ \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package.Cluster[cid].Core[cpuid].L2Cache), \
+ /* Next level of cache */ \
+ SIZE_64KB, /* Size */ \
+ 64, /* Num of sets */ \
+ 16, /* Associativity */ \
+ PPTT_DATA_CACHE_ATTR, /* Attributes */ \
+ 64 /* Line size */ \
+ ), \
+ \
+ /* L1 instruction cache parameters */ \
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE_INIT ( \
+ PPTT_CACHE_STRUCTURE_FLAGS, /* Flag */ \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package.Cluster[cid].Core[cpuid].L2Cache), \
+ /* Next level of cache */ \
+ SIZE_64KB, /* Size */ \
+ 256, /* Num of sets */ \
+ 4, /* Associativity */ \
+ PPTT_INST_CACHE_ATTR, /* Attributes */ \
+ 64 /* Line size */ \
+ ), \
+ \
+ /* L2 cache parameters */ \
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE_INIT ( \
+ PPTT_CACHE_STRUCTURE_FLAGS, /* Flag */ \
+ 0, /* Next level of cache */ \
+ SIZE_512KB, /* Size */ \
+ 1024, /* Num of sets */ \
+ 8, /* Associativity */ \
+ PPTT_UNIFIED_CACHE_ATTR, /* Attributes */ \
+ 64 /* Line size */ \
+ ), \
+ }
+
+#define PPTT_CLUSTER_INIT(pid, cid) \
+ { \
+ /* Parameters for Cluster */ \
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_INIT ( \
+ OFFSET_OF (RD_PPTT_CLUSTER, L3Cache), \
+ /* Length */ \
+ PPTT_PROCESSOR_CLUSTER_FLAGS, /* Flag */ \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package), /* Parent */ \
+ 0, /* ACPI Id */ \
+ 1 /* Num of private resource */ \
+ ), \
+ \
+ /* Offsets of the private resources */ \
+ OFFSET_OF (EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE, \
+ Package.Cluster[cid].L3Cache), \
+ \
+ /* L3 cache parameters */ \
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE_INIT ( \
+ PPTT_CACHE_STRUCTURE_FLAGS, /* Flag */ \
+ 0, /* Next level of cache */ \
+ SIZE_2MB, /* Size */ \
+ 2048, /* Num of sets */ \
+ 16, /* Associativity */ \
+ PPTT_UNIFIED_CACHE_ATTR, /* Attributes */ \
+ 64 /* Line size */ \
+ ), \
+ \
+ /* Initialize child cores */ \
+ { \
+ PPTT_CORE_INIT (pid, cid, 0), \
+ PPTT_CORE_INIT (pid, cid, 1), \
+ PPTT_CORE_INIT (pid, cid, 2), \
+ PPTT_CORE_INIT (pid, cid, 3) \
+ } \
+ }
+
+#pragma pack(1)
+typedef struct {
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Package;
+ RD_PPTT_CLUSTER Cluster[CLUSTER_COUNT];
+} SGI575_PPTT_PACKAGE;
+
+/*
+ * Processor Properties Topology Table
+ */
+typedef struct {
+ EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_HEADER Header;
+ SGI575_PPTT_PACKAGE Package;
+} EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE;
+#pragma pack ()
+
+STATIC EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE Pptt = {
+ {
+ ARM_ACPI_HEADER (
+ EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE,
+ EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE,
+ EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_REVISION
+ )
+ },
+
+ {
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_INIT (
+ OFFSET_OF (SGI575_PPTT_PACKAGE, Cluster[0]),
+ PPTT_PROCESSOR_PACKAGE_FLAGS, 0, 0, 0
+ ),
+ {
+ PPTT_CLUSTER_INIT (0, 0),
+ PPTT_CLUSTER_INIT (0, 1)
+ }
+ }
+};
+
+/*
+ * Reference the table being generated to prevent the optimizer from removing
+ * the data structure from the executable
+ */
+VOID* CONST ReferenceAcpiTable = &Pptt;
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Re: [edk2-platforms][PATCH V2 1/8] Platform/Sgi: Helper macros for PPTT Table

Sami Mujawar
 

Hi Pranav,

Please find my response inline marked [SAMI].

Regards,

Sami Mujawar

On 28/04/2021 01:12 PM, Pranav Madhu wrote:
Add helper macros for the creation for PPTT table. These macros help
with initializing processor hierarchy node structure, cache type
structure and ID structure.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
---
Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 160 ++++++++++++++++++++
1 file changed, 160 insertions(+)

diff --git a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h
index dcb4e6c77a74..7bb8b6dec6a3 100644
--- a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h
+++ b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h
@@ -20,6 +20,131 @@
#define EFI_ACPI_ARM_CREATOR_ID SIGNATURE_32('A','R','M',' ')
#define EFI_ACPI_ARM_CREATOR_REVISION 0x00000099

+#define CORE_COUNT FixedPcdGet32 (PcdCoreCount)
+#define CLUSTER_COUNT FixedPcdGet32 (PcdClusterCount)
+
+#pragma pack(1)
+// PPTT processor core structure
+typedef struct {
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Core;
+ UINT32 ResourceOffset[2];
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE DCache;
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE ICache;
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE L2Cache;
+} RD_PPTT_CORE;
+
+// PPTT processor cluster structure
+typedef struct {
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Cluster;
+ UINT32 ResourceOffset;
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE L3Cache;
+ RD_PPTT_CORE Core[CORE_COUNT];
+} RD_PPTT_CLUSTER;
+
+// PPTT processor cluster structure without cache
+typedef struct {
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Cluster;
+ RD_PPTT_CORE Core[CORE_COUNT];
+} RD_PPTT_MINIMAL_CLUSTER;
+
+// PPTT processor package structure
+typedef struct {
+ EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Package;
+ UINT32 ResourceOffset;
+ EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE Slc;
+ RD_PPTT_MINIMAL_CLUSTER Cluster[CLUSTER_COUNT];
+} RD_PPTT_SLC_PACKAGE;
+#pragma pack ()
+
+//
+// PPTT processor structure flags for different SoC components as defined in
+// ACPI 6.3 specification
+//
+
+// Processor structure flags for SoC package
+#define PPTT_PROCESSOR_PACKAGE_FLAGS \
+ { \
+ EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_ID_INVALID, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, \
+ EFI_ACPI_6_3_PPTT_NODE_IS_NOT_LEAF, \
+ EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL \
+ }
+
+// Processor structure flags for cluster
+#define PPTT_PROCESSOR_CLUSTER_FLAGS \
+ { \
+ EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_ID_INVALID, \
[SAMI] Is there a reason for setting the ID as invalid? In the next CPPC
patch series 'Platform/Sgi: Add CPU container for xxx' the processor
containers "ACPI0010" are described with valid UIDs.
According to the ACPI 6.4 sepcification, Table 5.138: Processor
Hierarchy Node Structure, Field description for 'ACPI Processor ID'
states the following:
"If the processor structure represents a group of associated processors,
the structure might match a processor container in the name space. In
that case this entry
will match the value of the _UID method of the associated processor
container. Where there is a match it must be represented."

So, either this patch series or the next patch series 'Platform/Sgi: Add
CPU container for xxx' will need to address this.
[/SAMI]
+ EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, \
+ EFI_ACPI_6_3_PPTT_NODE_IS_NOT_LEAF, \
+ EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL \
+ }
+
+// Processor structure flags for single-thread core
+#define PPTT_PROCESSOR_CORE_FLAGS \
+ { \
+ EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_ID_VALID, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, \
+ EFI_ACPI_6_3_PPTT_NODE_IS_LEAF \
+ }
+
+// Processor structure flags for multi-thread core
+#define PPTT_PROCESSOR_CORE_THREADED_FLAGS \
+ { \
+ EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_ID_INVALID, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, \
+ EFI_ACPI_6_3_PPTT_NODE_IS_NOT_LEAF, \
+ EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL \
+ }
+
+// Processor structure flags for CPU thread
+#define PPTT_PROCESSOR_THREAD_FLAGS \
+ { \
+ EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_ID_VALID, \
+ EFI_ACPI_6_3_PPTT_PROCESSOR_IS_THREAD, \
+ EFI_ACPI_6_3_PPTT_NODE_IS_LEAF \
+ }
+
+// PPTT cache structure flags as defined in ACPI 6.3 Specification
+#define PPTT_CACHE_STRUCTURE_FLAGS \
+ { \
+ EFI_ACPI_6_3_PPTT_CACHE_SIZE_VALID, \
+ EFI_ACPI_6_3_PPTT_NUMBER_OF_SETS_VALID, \
+ EFI_ACPI_6_3_PPTT_ASSOCIATIVITY_VALID, \
+ EFI_ACPI_6_3_PPTT_ALLOCATION_TYPE_VALID, \
+ EFI_ACPI_6_3_PPTT_CACHE_TYPE_VALID, \
+ EFI_ACPI_6_3_PPTT_WRITE_POLICY_VALID, \
+ EFI_ACPI_6_3_PPTT_LINE_SIZE_VALID \
+ }
+
+// PPTT cache attributes for data cache
+#define PPTT_DATA_CACHE_ATTR \
+ { \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE, \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_CACHE_TYPE_DATA, \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK \
+ }
+
+// PPTT cache attributes for instruction cache
+#define PPTT_INST_CACHE_ATTR \
+ { \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_ALLOCATION_READ, \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_CACHE_TYPE_INSTRUCTION, \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK \
+ }
+
+// PPTT cache attributes for unified cache
+#define PPTT_UNIFIED_CACHE_ATTR \
+ { \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE, \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_CACHE_TYPE_UNIFIED, \
+ EFI_ACPI_6_3_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK \
+ }
+
// A macro to initialise the common header part of EFI ACPI tables as defined by
// EFI_ACPI_DESCRIPTION_HEADER structure.
#define ARM_ACPI_HEADER(Signature, Type, Revision) { \
@@ -246,4 +371,39 @@
TotalCacheLevels, CacheLevel, CacheAssociativity, WritePolicy, CacheLineSize \
}

+// EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR
+#define EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_INIT(Length, Flag, Parent, \
+ ACPIProcessorID, NumberOfPrivateResource) \
+ { \
+ EFI_ACPI_6_3_PPTT_TYPE_PROCESSOR, /* Type 0 */ \
+ Length, /* Length */ \
+ { \
+ EFI_ACPI_RESERVED_BYTE, \
+ EFI_ACPI_RESERVED_BYTE, \
+ }, \
+ Flag, /* Processor flags */ \
+ Parent, /* Ref to parent node */ \
+ ACPIProcessorID, /* UID, as per MADT */ \
+ NumberOfPrivateResource /* Resource count */ \
+ }
+
+// EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE
+#define EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE_INIT(Flag, NextLevelCache, Size, \
+ NoOfSets, Associativity, Attributes, LineSize) \
+ { \
+ EFI_ACPI_6_3_PPTT_TYPE_CACHE, /* Type 1 */ \
+ sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE), /* Length */ \
+ { \
+ EFI_ACPI_RESERVED_BYTE, \
+ EFI_ACPI_RESERVED_BYTE, \
+ }, \
+ Flag, /* Cache flags */ \
+ NextLevelCache, /* Ref to next level */ \
+ Size, /* Size in bytes */ \
+ NoOfSets, /* Num of sets */ \
+ Associativity, /* Num of ways */ \
+ Attributes, /* Cache attributes */ \
+ LineSize /* Line size in bytes */ \
+ }
+
#endif /* __SGI_ACPI_HEADER__ */
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Re: [PATCH] MdeModulePkg: Retrive boot manager menu from any fv

Wu, Hao A
 

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
Zhiguang Liu
Sent: Monday, May 10, 2021 4:16 PM
To: devel@edk2.groups.io
Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>;
Gao, Zhichao <zhichao.gao@intel.com>; Ni, Ray <ray.ni@intel.com>
Subject: [edk2-devel] [PATCH] MdeModulePkg: Retrive boot manager menu
from any fv

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

Currently, UefiBootManagerLib has the below assumption:
Assume the BootManagerMenuFile is in the same FV as the module links to
this library.
It has some limitation now, so remove the assumption.

Hello Zhiguang,

Sorry for a question. Do you know what is the boot performance impact if 'GetSectionFromAnyFv()' is being used?
Any data on the impact for originally working platforms?

Best Regards,
Hao Wu



Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
---
MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
index 6cc34d29c0..b8df4d590f 100644
--- a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
+++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
@@ -2,7 +2,7 @@
Library functions which relates with booting. Copyright (c) 2019, NVIDIA
CORPORATION. All rights reserved.-Copyright (c) 2011 - 2020, Intel
Corporation. All rights reserved.<BR>+Copyright (c) 2011 - 2021, Intel
Corporation. All rights reserved.<BR> (C) Copyright 2015-2021 Hewlett
Packard Enterprise Development LP<BR> SPDX-License-Identifier: BSD-2-
Clause-Patent @@ -2385,7 +2385,6 @@
EfiBootManagerRefreshAllBootOption (
This function is called to get or create the boot option for the Boot Manager
Menu. The Boot Manager Menu is shown after successfully booting a boot
option.- Assume the BootManagerMenuFile is in the same FV as the module
links to this library. @param BootOption Return the boot option of the
Boot Manager Menu @@ -2437,7 +2436,7 @@
BmRegisterBootManagerMenu (
if (DevicePath == NULL) { Data = NULL;- Status = GetSectionFromFv (+
Status = GetSectionFromAnyFv ( PcdGetPtr
(PcdBootManagerMenuFile), EFI_SECTION_PE32, 0,@@ -
2455,7 +2454,7 @@ BmRegisterBootManagerMenu (
// // Get BootManagerMenu application's description from EFI User
Interface Section. //- Status = GetSectionFromFv (+ Status =
GetSectionFromAnyFv ( PcdGetPtr (PcdBootManagerMenuFile),
EFI_SECTION_USER_INTERFACE, 0,--
2.30.0.windows.2



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#74859): https://edk2.groups.io/g/devel/message/74859
Mute This Topic: https://groups.io/mt/82714887/1768737
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [hao.a.wu@intel.com] -
=-=-=-=-=-=


Re: [PATCH v1 1/1] ArmPkg: Update SCMI Base Protocol version to 0x20000

PierreGondois
 

Hi Ard,

On 5/7/21 6:33 PM, Ard Biesheuvel wrote:
Hello Pierre,

On Thu, 6 May 2021 at 12:43, <Pierre.Gondois@arm.com> wrote:
From: Nicola Mazzucato <nicola.mazzucato@arm.com>

The SCP-firmware has moved to full support for SCMIv2 which means that
the base protocol can be either compliant with SCMI v1 or v2.

Allow any version between SCMI v1.0 and SCMI v2.0 to be compatible
with the current implementation.

Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
SOB is not an attribution of authorship, it is a statement made by the
person contributing the patch asserting that the contribution complies
with the license.

IOW, you can keep the From: line, but please change the SOB to your
name and email.

Thanks,
Ard.
Ok, I re-sent the patch with my SOB added. I kept Nicola's one as
for (a) of the certificate of origin:

"The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file"

Regards,
Pierre

5981 - 6000 of 80786