* [PATCH V2 1/1] OvmfPkg: Install BGRT ACPI table
@ 2017-01-06 9:47 Bhupesh Sharma
2017-01-06 13:28 ` Laszlo Ersek
0 siblings, 1 reply; 2+ messages in thread
From: Bhupesh Sharma @ 2017-01-06 9:47 UTC (permalink / raw)
To: edk2-devel; +Cc: bhupesh.linux, Bhupesh Sharma, Jordan Justen, Laszlo Ersek
While debugging OS for ACPI BGRT support (especially on VMs),
it is very useful to have the EFI firmware (OVMF in most cases
which use Tianocore) to export the ACPI BGRT table.
This patch tries to add this support in OvmfPkg.
Tested this patch in the following environments:
1. On both RHEL7.3 and Fedora-25 VM guests running on a Fedora-24 Host:
- Ensured that the BGRT logo is properly prepared and
can be viewed with user-space tools (like 'Gwenview' on KDE,
for example):
$ file /sys/firmware/acpi/bgrt/image
/sys/firmware/acpi/bgrt/image: PC bitmap, Windows 3.x format, 193 x
58 x 24
2. On a Windows-10 VM Guest running on a Fedora-24 Host:
- Ensured that the BGRT ACPI table is properly prepared and can be
read with freeware tool like FirmwareTablesView:
==================================================
Signature : BGRT
Firmware Provider : ACPI
Length : 56
Revision : 1
Checksum : 129
OEM ID : INTEL
OEM Table ID : EDK2
OEM Revision : 0x00000002
Creator ID : 0x20202020
Creator Revision : 0x01000013
Description :
==================================================
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
---
Changes since v1:
- Improved the commit log and cc list as per Laszlo's suggestions.
- Also tested the patch on a Windows 10 VM guest to make sure that
the BGRT table is properly created.
OvmfPkg/OvmfPkgIa32.dsc | 1 +
OvmfPkg/OvmfPkgIa32.fdf | 1 +
OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
OvmfPkg/OvmfPkgIa32X64.fdf | 1 +
OvmfPkg/OvmfPkgX64.dsc | 1 +
OvmfPkg/OvmfPkgX64.fdf | 1 +
6 files changed, 6 insertions(+)
diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
index 81f752121f2f..e97f7f0262d9 100644
--- a/OvmfPkg/OvmfPkgIa32.dsc
+++ b/OvmfPkg/OvmfPkgIa32.dsc
@@ -679,6 +679,7 @@
OvmfPkg/AcpiTables/AcpiTables.inf
MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
+ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
#
# Network Support
diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index 2a5b211a3666..34d57a6079cc 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -278,6 +278,7 @@ INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
+INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
INF FatPkg/EnhancedFatDxe/Fat.inf
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
index f7855b6e5ea4..8e3e04c135cc 100644
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
@@ -688,6 +688,7 @@
OvmfPkg/AcpiTables/AcpiTables.inf
MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
+ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
#
# Network Support
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
index 1c7df210ddd5..df55c2b21021 100644
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
@@ -278,6 +278,7 @@ INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
+INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
INF FatPkg/EnhancedFatDxe/Fat.inf
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
index e933a41ab98e..6ec3fe050dc7 100644
--- a/OvmfPkg/OvmfPkgX64.dsc
+++ b/OvmfPkg/OvmfPkgX64.dsc
@@ -686,6 +686,7 @@
OvmfPkg/AcpiTables/AcpiTables.inf
MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
+ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
#
# Network Support
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
index 3bb11cbf7377..5e2e1dfaf5a9 100644
--- a/OvmfPkg/OvmfPkgX64.fdf
+++ b/OvmfPkg/OvmfPkgX64.fdf
@@ -278,6 +278,7 @@ INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
+INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
INF FatPkg/EnhancedFatDxe/Fat.inf
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH V2 1/1] OvmfPkg: Install BGRT ACPI table
2017-01-06 9:47 [PATCH V2 1/1] OvmfPkg: Install BGRT ACPI table Bhupesh Sharma
@ 2017-01-06 13:28 ` Laszlo Ersek
0 siblings, 0 replies; 2+ messages in thread
From: Laszlo Ersek @ 2017-01-06 13:28 UTC (permalink / raw)
To: Bhupesh Sharma, edk2-devel; +Cc: Jordan Justen
On 01/06/17 10:47, Bhupesh Sharma wrote:
> While debugging OS for ACPI BGRT support (especially on VMs),
> it is very useful to have the EFI firmware (OVMF in most cases
> which use Tianocore) to export the ACPI BGRT table.
>
> This patch tries to add this support in OvmfPkg.
>
> Tested this patch in the following environments:
>
> 1. On both RHEL7.3 and Fedora-25 VM guests running on a Fedora-24 Host:
> - Ensured that the BGRT logo is properly prepared and
> can be viewed with user-space tools (like 'Gwenview' on KDE,
> for example):
>
> $ file /sys/firmware/acpi/bgrt/image
> /sys/firmware/acpi/bgrt/image: PC bitmap, Windows 3.x format, 193 x
> 58 x 24
>
> 2. On a Windows-10 VM Guest running on a Fedora-24 Host:
> - Ensured that the BGRT ACPI table is properly prepared and can be
> read with freeware tool like FirmwareTablesView:
>
> ==================================================
> Signature : BGRT
> Firmware Provider : ACPI
> Length : 56
> Revision : 1
> Checksum : 129
> OEM ID : INTEL
> OEM Table ID : EDK2
> OEM Revision : 0x00000002
> Creator ID : 0x20202020
> Creator Revision : 0x01000013
> Description :
> ==================================================
>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> ---
> Changes since v1:
> - Improved the commit log and cc list as per Laszlo's suggestions.
> - Also tested the patch on a Windows 10 VM guest to make sure that
> the BGRT table is properly created.
>
> OvmfPkg/OvmfPkgIa32.dsc | 1 +
> OvmfPkg/OvmfPkgIa32.fdf | 1 +
> OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
> OvmfPkg/OvmfPkgIa32X64.fdf | 1 +
> OvmfPkg/OvmfPkgX64.dsc | 1 +
> OvmfPkg/OvmfPkgX64.fdf | 1 +
> 6 files changed, 6 insertions(+)
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
I extended the commit message with my test results:
> Note from Laszlo Ersek <lersek@redhat.com>: without the BGRT ACPI
> table, Windows 8 and Windows 10 first clear the screen, then display a
> blue, slanted Windows picture above the rotating white boot animation.
> With the BGRT ACPI table, Windows 8 and Windows 10 don't clear the
> screen, the blue Windows image is not displayed, and the rotating
> white boot animation is shown between the firmware's original
> TianoCore boot splash and (optional) "Start boot option" progress bar.
I tried to find something official about this on the web, and
<https://msdn.microsoft.com/windows/hardware/commercialize/customize/mobile/mcsf/configuring-oem-and-mobile-operator-boot-screens>
seems closely related.
Patch committed as 6e5e544f227f.
Thanks!
Laszlo
> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
> index 81f752121f2f..e97f7f0262d9 100644
> --- a/OvmfPkg/OvmfPkgIa32.dsc
> +++ b/OvmfPkg/OvmfPkgIa32.dsc
> @@ -679,6 +679,7 @@
> OvmfPkg/AcpiTables/AcpiTables.inf
> MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
> MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
> + MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
>
> #
> # Network Support
> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
> index 2a5b211a3666..34d57a6079cc 100644
> --- a/OvmfPkg/OvmfPkgIa32.fdf
> +++ b/OvmfPkg/OvmfPkgIa32.fdf
> @@ -278,6 +278,7 @@ INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
> INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
> INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
> INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
> +INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
>
> INF FatPkg/EnhancedFatDxe/Fat.inf
>
> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
> index f7855b6e5ea4..8e3e04c135cc 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
> @@ -688,6 +688,7 @@
> OvmfPkg/AcpiTables/AcpiTables.inf
> MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
> MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
> + MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
>
> #
> # Network Support
> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
> index 1c7df210ddd5..df55c2b21021 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
> @@ -278,6 +278,7 @@ INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
> INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
> INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
> INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
> +INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
>
> INF FatPkg/EnhancedFatDxe/Fat.inf
>
> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
> index e933a41ab98e..6ec3fe050dc7 100644
> --- a/OvmfPkg/OvmfPkgX64.dsc
> +++ b/OvmfPkg/OvmfPkgX64.dsc
> @@ -686,6 +686,7 @@
> OvmfPkg/AcpiTables/AcpiTables.inf
> MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
> MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
> + MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
>
> #
> # Network Support
> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
> index 3bb11cbf7377..5e2e1dfaf5a9 100644
> --- a/OvmfPkg/OvmfPkgX64.fdf
> +++ b/OvmfPkg/OvmfPkgX64.fdf
> @@ -278,6 +278,7 @@ INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
> INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
> INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
> INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
> +INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
>
> INF FatPkg/EnhancedFatDxe/Fat.inf
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-01-06 13:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-06 9:47 [PATCH V2 1/1] OvmfPkg: Install BGRT ACPI table Bhupesh Sharma
2017-01-06 13:28 ` Laszlo Ersek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox