RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/edk2#fdb3e75601d7cadbdc59914ce8e1ea021d9c2258
This commit is contained in:
		
							parent
							
								
									435c54b96c
								
							
						
					
					
						commit
						8ffcf29990
					
				
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -0,0 +1,6 @@ | ||||
| /openssl-*-hobbled.tar.xz | ||||
| /edk2-*.tar.xz | ||||
| /qemu-ovmf-secureboot-*.tar.gz | ||||
| /edk2-*.tar.gz | ||||
| /softfloat-20180726-gitb64af41.tar.xz | ||||
| /qemu-ovmf-secureboot-20190521-gitf158f12.tar.xz | ||||
| @ -0,0 +1,65 @@ | ||||
| From 46e9cd5dd6cb731d33e79b22619b217ba1600e52 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 27 Jan 2016 03:05:18 +0100 | ||||
| Subject: [PATCH] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in NvmExpressDxe | ||||
| 
 | ||||
| NvmExpressDxe logs all BlockIo read & write calls on the EFI_D_VERBOSE | ||||
| level. | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 5 ++++- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 5 ++++- | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 5 ++++- | ||||
|  3 files changed, 12 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 133a9a93c0..3ddc0c5edb 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -809,7 +809,10 @@
 | ||||
|    OvmfPkg/SataControllerDxe/SataControllerDxe.inf | ||||
|    MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf | ||||
|    MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf | ||||
| -  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
 | ||||
| +  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | ||||
|    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf | ||||
|    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index 338c38db29..aba4a6cc24 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -823,7 +823,10 @@
 | ||||
|    OvmfPkg/SataControllerDxe/SataControllerDxe.inf | ||||
|    MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf | ||||
|    MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf | ||||
| -  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
 | ||||
| +  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | ||||
|    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf | ||||
|    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index b80710fbdc..99c0ba4465 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -819,7 +819,10 @@
 | ||||
|    OvmfPkg/SataControllerDxe/SataControllerDxe.inf | ||||
|    MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf | ||||
|    MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf | ||||
| -  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
 | ||||
| +  MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf {
 | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  }
 | ||||
|    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | ||||
|    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf | ||||
|    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf | ||||
| @ -0,0 +1,57 @@ | ||||
| From f8f04bc629c0874a4e7a361a55053005f9196152 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 27 Jan 2016 03:05:18 +0100 | ||||
| Subject: [PATCH] OvmfPkg: silence EFI_D_VERBOSE (0x00400000) in the DXE core | ||||
| 
 | ||||
| The DXE core logs a bunch of Properties Table and Memory Attributes Table | ||||
| related information, on the EFI_D_VERBOSE level, that I am at the moment | ||||
| not interested in. Suppress said output. | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 2 ++ | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 2 ++ | ||||
|  3 files changed, 6 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 3ddc0c5edb..146e429126 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -704,6 +704,8 @@
 | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf | ||||
|        DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
|    } | ||||
|   | ||||
|    MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index aba4a6cc24..cdf5abba99 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -718,6 +718,8 @@
 | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf | ||||
|        DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
|    } | ||||
|   | ||||
|    MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index 99c0ba4465..7d59d768fa 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -714,6 +714,8 @@
 | ||||
|      <LibraryClasses> | ||||
|        NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf | ||||
|        DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | ||||
| +    <PcdsFixedAtBuild>
 | ||||
| +      gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
|    } | ||||
|   | ||||
|    MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf | ||||
							
								
								
									
										54
									
								
								0003-OvmfPkg-enable-DEBUG_VERBOSE.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								0003-OvmfPkg-enable-DEBUG_VERBOSE.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | ||||
| From 5b0813e1885c0234deafcb828f1747c766287c51 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Sun, 8 Jul 2012 14:26:07 +0200 | ||||
| Subject: [PATCH] OvmfPkg: enable DEBUG_VERBOSE | ||||
| 
 | ||||
| Enable verbose debug logs. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc    | 2 +- | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- | ||||
|  OvmfPkg/OvmfPkgX64.dsc     | 2 +- | ||||
|  3 files changed, 3 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 146e429126..fce6051e47 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -514,7 +514,7 @@
 | ||||
|    # DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may | ||||
|    #                             // significantly impact boot performance | ||||
|    # DEBUG_ERROR     0x80000000  // Error | ||||
| -  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F
 | ||||
|   | ||||
|  !if $(SOURCE_DEBUG_ENABLE) == TRUE | ||||
|    gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index cdf5abba99..983eebfaa7 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -518,7 +518,7 @@
 | ||||
|    # DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may | ||||
|    #                             // significantly impact boot performance | ||||
|    # DEBUG_ERROR     0x80000000  // Error | ||||
| -  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F
 | ||||
|   | ||||
|  !if $(SOURCE_DEBUG_ENABLE) == TRUE | ||||
|    gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index 7d59d768fa..ea62b82ff7 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -518,7 +518,7 @@
 | ||||
|    # DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may | ||||
|    #                             // significantly impact boot performance | ||||
|    # DEBUG_ERROR     0x80000000  // Error | ||||
| -  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
 | ||||
| +  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8040004F
 | ||||
|   | ||||
|  !if $(SOURCE_DEBUG_ENABLE) == TRUE | ||||
|    gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 | ||||
							
								
								
									
										30
									
								
								0004-OvmfPkg-increase-max-debug-message-length-to-512.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								0004-OvmfPkg-increase-max-debug-message-length-to-512.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| From 04d5e4e3e7c8444dbb52784a2d71cf284c9e05a0 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 20 Feb 2014 22:54:45 +0100 | ||||
| Subject: [PATCH] OvmfPkg: increase max debug message length to 512 | ||||
| 
 | ||||
| Upstream prefers short debug messages (sometimes even limited to 80 | ||||
| characters), but any line length under 512 characters is just unsuitable | ||||
| for effective debugging. (For example, config strings in HII routing, | ||||
| logged by the platform driver "OvmfPkg/PlatformDxe" on DEBUG_VERBOSE | ||||
| level, can be several hundred characters long.) 512 is an empirically good | ||||
| value. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| index dffb20822d..0577c43c3d 100644
 | ||||
| --- a/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| +++ b/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
 | ||||
| @@ -21,7 +21,7 @@
 | ||||
|  // | ||||
|  // Define the maximum debug and assert message length that this library supports | ||||
|  // | ||||
| -#define MAX_DEBUG_MESSAGE_LENGTH  0x100
 | ||||
| +#define MAX_DEBUG_MESSAGE_LENGTH  0x200
 | ||||
|   | ||||
|  // | ||||
|  // VA_LIST can not initialize to NULL for all compiler, so we use this to | ||||
							
								
								
									
										3123
									
								
								0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3123
									
								
								0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										540
									
								
								0006-OvmfPkg-QemuVideoDxe-enable-debug-messages-in-VbeShi.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										540
									
								
								0006-OvmfPkg-QemuVideoDxe-enable-debug-messages-in-VbeShi.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,540 @@ | ||||
| From 31dcc494a7c3ce1bbb1d35b42ba3b6359ca971cf Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 12 Jun 2014 00:17:59 +0200 | ||||
| Subject: [PATCH] OvmfPkg: QemuVideoDxe: enable debug messages in VbeShim | ||||
| 
 | ||||
| The Int10h VBE Shim is capable of emitting short debug messages when the | ||||
| win2k8r2 UEFI guest uses (emulates) the Video BIOS. In upstream the quiet | ||||
| version is preferred; for us debug messages are important as a default. | ||||
| 
 | ||||
| For this patch, the DEBUG macro is enabled in the assembly file, and then | ||||
| the header file is regenerated from the assembly, by running | ||||
| "OvmfPkg/QemuVideoDxe/VbeShim.sh". | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit ccda46526bb2e573d9b54f0db75d27e442b4566f) | ||||
| (cherry picked from commit ed45b26dbeadd63dd8f2edf627290957d8bbb3b2) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/QemuVideoDxe/VbeShim.asm |   2 +- | ||||
|  OvmfPkg/QemuVideoDxe/VbeShim.h   | 481 ++++++++++++++++++++----------- | ||||
|  2 files changed, 308 insertions(+), 175 deletions(-) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/QemuVideoDxe/VbeShim.asm b/OvmfPkg/QemuVideoDxe/VbeShim.asm
 | ||||
| index 1d284b2641..0d5cfaf1e4 100644
 | ||||
| --- a/OvmfPkg/QemuVideoDxe/VbeShim.asm
 | ||||
| +++ b/OvmfPkg/QemuVideoDxe/VbeShim.asm
 | ||||
| @@ -12,7 +12,7 @@
 | ||||
|  ;------------------------------------------------------------------------------ | ||||
|   | ||||
|  ; enable this macro for debug messages | ||||
| -;%define DEBUG
 | ||||
| +%define DEBUG
 | ||||
|   | ||||
|  %macro DebugLog 1 | ||||
|  %ifdef DEBUG | ||||
| diff --git a/OvmfPkg/QemuVideoDxe/VbeShim.h b/OvmfPkg/QemuVideoDxe/VbeShim.h
 | ||||
| index cc9b6e14cd..325d6478a1 100644
 | ||||
| --- a/OvmfPkg/QemuVideoDxe/VbeShim.h
 | ||||
| +++ b/OvmfPkg/QemuVideoDxe/VbeShim.h
 | ||||
| @@ -517,185 +517,318 @@ STATIC CONST UINT8 mVbeShim[] = {
 | ||||
|    /* 000001FE nop                            */  0x90, | ||||
|    /* 000001FF nop                            */  0x90, | ||||
|    /* 00000200 cmp ax,0x4f00                  */  0x3D, 0x00, 0x4F, | ||||
| -  /* 00000203 jz 0x22d                       */  0x74, 0x28,
 | ||||
| +  /* 00000203 jz 0x235                       */  0x74, 0x30,
 | ||||
|    /* 00000205 cmp ax,0x4f01                  */  0x3D, 0x01, 0x4F, | ||||
| -  /* 00000208 jz 0x245                       */  0x74, 0x3B,
 | ||||
| +  /* 00000208 jz 0x255                       */  0x74, 0x4B,
 | ||||
|    /* 0000020A cmp ax,0x4f02                  */  0x3D, 0x02, 0x4F, | ||||
| -  /* 0000020D jz 0x269                       */  0x74, 0x5A,
 | ||||
| +  /* 0000020D jz 0x289                       */  0x74, 0x7A,
 | ||||
|    /* 0000020F cmp ax,0x4f03                  */  0x3D, 0x03, 0x4F, | ||||
| -  /* 00000212 jz word 0x331                  */  0x0F, 0x84, 0x1B, 0x01,
 | ||||
| +  /* 00000212 jz word 0x361                  */  0x0F, 0x84, 0x4B, 0x01,
 | ||||
|    /* 00000216 cmp ax,0x4f10                  */  0x3D, 0x10, 0x4F, | ||||
| -  /* 00000219 jz word 0x336                  */  0x0F, 0x84, 0x19, 0x01,
 | ||||
| +  /* 00000219 jz word 0x36e                  */  0x0F, 0x84, 0x51, 0x01,
 | ||||
|    /* 0000021D cmp ax,0x4f15                  */  0x3D, 0x15, 0x4F, | ||||
| -  /* 00000220 jz word 0x338                  */  0x0F, 0x84, 0x14, 0x01,
 | ||||
| +  /* 00000220 jz word 0x378                  */  0x0F, 0x84, 0x54, 0x01,
 | ||||
|    /* 00000224 cmp ah,0x0                     */  0x80, 0xFC, 0x00, | ||||
| -  /* 00000227 jz word 0x33a                  */  0x0F, 0x84, 0x0F, 0x01,
 | ||||
| -  /* 0000022B jmp short 0x22b                */  0xEB, 0xFE,
 | ||||
| -  /* 0000022D push es                        */  0x06,
 | ||||
| -  /* 0000022E push di                        */  0x57,
 | ||||
| -  /* 0000022F push ds                        */  0x1E,
 | ||||
| -  /* 00000230 push si                        */  0x56,
 | ||||
| -  /* 00000231 push cx                        */  0x51,
 | ||||
| -  /* 00000232 push cs                        */  0x0E,
 | ||||
| -  /* 00000233 pop ds                         */  0x1F,
 | ||||
| -  /* 00000234 mov si,0x0                     */  0xBE, 0x00, 0x00,
 | ||||
| -  /* 00000237 mov cx,0x100                   */  0xB9, 0x00, 0x01,
 | ||||
| -  /* 0000023A cld                            */  0xFC,
 | ||||
| -  /* 0000023B rep movsb                      */  0xF3, 0xA4,
 | ||||
| -  /* 0000023D pop cx                         */  0x59,
 | ||||
| -  /* 0000023E pop si                         */  0x5E,
 | ||||
| -  /* 0000023F pop ds                         */  0x1F,
 | ||||
| -  /* 00000240 pop di                         */  0x5F,
 | ||||
| -  /* 00000241 pop es                         */  0x07,
 | ||||
| -  /* 00000242 jmp word 0x34c                 */  0xE9, 0x07, 0x01,
 | ||||
| -  /* 00000245 push es                        */  0x06,
 | ||||
| -  /* 00000246 push di                        */  0x57,
 | ||||
| -  /* 00000247 push ds                        */  0x1E,
 | ||||
| -  /* 00000248 push si                        */  0x56,
 | ||||
| -  /* 00000249 push cx                        */  0x51,
 | ||||
| -  /* 0000024A and cx,0xbfff                  */  0x81, 0xE1, 0xFF, 0xBF,
 | ||||
| -  /* 0000024E cmp cx,0xf1                    */  0x81, 0xF9, 0xF1, 0x00,
 | ||||
| -  /* 00000252 jz 0x256                       */  0x74, 0x02,
 | ||||
| -  /* 00000254 jmp short 0x22b                */  0xEB, 0xD5,
 | ||||
| -  /* 00000256 push cs                        */  0x0E,
 | ||||
| -  /* 00000257 pop ds                         */  0x1F,
 | ||||
| -  /* 00000258 mov si,0x100                   */  0xBE, 0x00, 0x01,
 | ||||
| -  /* 0000025B mov cx,0x100                   */  0xB9, 0x00, 0x01,
 | ||||
| -  /* 0000025E cld                            */  0xFC,
 | ||||
| -  /* 0000025F rep movsb                      */  0xF3, 0xA4,
 | ||||
| -  /* 00000261 pop cx                         */  0x59,
 | ||||
| -  /* 00000262 pop si                         */  0x5E,
 | ||||
| -  /* 00000263 pop ds                         */  0x1F,
 | ||||
| -  /* 00000264 pop di                         */  0x5F,
 | ||||
| -  /* 00000265 pop es                         */  0x07,
 | ||||
| -  /* 00000266 jmp word 0x34c                 */  0xE9, 0xE3, 0x00,
 | ||||
| -  /* 00000269 push dx                        */  0x52,
 | ||||
| -  /* 0000026A push ax                        */  0x50,
 | ||||
| -  /* 0000026B cmp bx,0x40f1                  */  0x81, 0xFB, 0xF1, 0x40,
 | ||||
| -  /* 0000026F jz 0x273                       */  0x74, 0x02,
 | ||||
| -  /* 00000271 jmp short 0x22b                */  0xEB, 0xB8,
 | ||||
| -  /* 00000273 mov dx,0x3c0                   */  0xBA, 0xC0, 0x03,
 | ||||
| -  /* 00000276 mov al,0x20                    */  0xB0, 0x20,
 | ||||
| -  /* 00000278 out dx,al                      */  0xEE,
 | ||||
| -  /* 00000279 push dx                        */  0x52,
 | ||||
| -  /* 0000027A push ax                        */  0x50,
 | ||||
| -  /* 0000027B mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 0000027E mov ax,0x4                     */  0xB8, 0x04, 0x00,
 | ||||
| -  /* 00000281 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000282 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 00000285 mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| -  /* 00000288 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000289 pop ax                         */  0x58,
 | ||||
| -  /* 0000028A pop dx                         */  0x5A,
 | ||||
| -  /* 0000028B push dx                        */  0x52,
 | ||||
| -  /* 0000028C push ax                        */  0x50,
 | ||||
| -  /* 0000028D mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 00000290 mov ax,0x5                     */  0xB8, 0x05, 0x00,
 | ||||
| -  /* 00000293 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000294 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 00000297 mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| -  /* 0000029A out dx,ax                      */  0xEF,
 | ||||
| -  /* 0000029B pop ax                         */  0x58,
 | ||||
| -  /* 0000029C pop dx                         */  0x5A,
 | ||||
| -  /* 0000029D push dx                        */  0x52,
 | ||||
| -  /* 0000029E push ax                        */  0x50,
 | ||||
| -  /* 0000029F mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 000002A2 mov ax,0x8                     */  0xB8, 0x08, 0x00,
 | ||||
| -  /* 000002A5 out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002A6 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 000002A9 mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| -  /* 000002AC out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002AD pop ax                         */  0x58,
 | ||||
| -  /* 000002AE pop dx                         */  0x5A,
 | ||||
| -  /* 000002AF push dx                        */  0x52,
 | ||||
| -  /* 000002B0 push ax                        */  0x50,
 | ||||
| -  /* 000002B1 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 000002B4 mov ax,0x9                     */  0xB8, 0x09, 0x00,
 | ||||
| -  /* 000002B7 out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002B8 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 000002BB mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| -  /* 000002BE out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002BF pop ax                         */  0x58,
 | ||||
| -  /* 000002C0 pop dx                         */  0x5A,
 | ||||
| -  /* 000002C1 push dx                        */  0x52,
 | ||||
| -  /* 000002C2 push ax                        */  0x50,
 | ||||
| -  /* 000002C3 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 000002C6 mov ax,0x3                     */  0xB8, 0x03, 0x00,
 | ||||
| -  /* 000002C9 out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002CA mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 000002CD mov ax,0x20                    */  0xB8, 0x20, 0x00,
 | ||||
| -  /* 000002D0 out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002D1 pop ax                         */  0x58,
 | ||||
| -  /* 000002D2 pop dx                         */  0x5A,
 | ||||
| -  /* 000002D3 push dx                        */  0x52,
 | ||||
| -  /* 000002D4 push ax                        */  0x50,
 | ||||
| -  /* 000002D5 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 000002D8 mov ax,0x1                     */  0xB8, 0x01, 0x00,
 | ||||
| -  /* 000002DB out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002DC mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 000002DF mov ax,0x400                   */  0xB8, 0x00, 0x04,
 | ||||
| -  /* 000002E2 out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002E3 pop ax                         */  0x58,
 | ||||
| -  /* 000002E4 pop dx                         */  0x5A,
 | ||||
| -  /* 000002E5 push dx                        */  0x52,
 | ||||
| -  /* 000002E6 push ax                        */  0x50,
 | ||||
| -  /* 000002E7 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 000002EA mov ax,0x6                     */  0xB8, 0x06, 0x00,
 | ||||
| -  /* 000002ED out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002EE mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 000002F1 mov ax,0x400                   */  0xB8, 0x00, 0x04,
 | ||||
| -  /* 000002F4 out dx,ax                      */  0xEF,
 | ||||
| -  /* 000002F5 pop ax                         */  0x58,
 | ||||
| -  /* 000002F6 pop dx                         */  0x5A,
 | ||||
| -  /* 000002F7 push dx                        */  0x52,
 | ||||
| -  /* 000002F8 push ax                        */  0x50,
 | ||||
| -  /* 000002F9 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 000002FC mov ax,0x2                     */  0xB8, 0x02, 0x00,
 | ||||
| -  /* 000002FF out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000300 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 00000303 mov ax,0x300                   */  0xB8, 0x00, 0x03,
 | ||||
| -  /* 00000306 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000307 pop ax                         */  0x58,
 | ||||
| -  /* 00000308 pop dx                         */  0x5A,
 | ||||
| -  /* 00000309 push dx                        */  0x52,
 | ||||
| -  /* 0000030A push ax                        */  0x50,
 | ||||
| -  /* 0000030B mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 0000030E mov ax,0x7                     */  0xB8, 0x07, 0x00,
 | ||||
| -  /* 00000311 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000312 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 00000315 mov ax,0x300                   */  0xB8, 0x00, 0x03,
 | ||||
| -  /* 00000318 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000319 pop ax                         */  0x58,
 | ||||
| -  /* 0000031A pop dx                         */  0x5A,
 | ||||
| -  /* 0000031B push dx                        */  0x52,
 | ||||
| -  /* 0000031C push ax                        */  0x50,
 | ||||
| -  /* 0000031D mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| -  /* 00000320 mov ax,0x4                     */  0xB8, 0x04, 0x00,
 | ||||
| -  /* 00000323 out dx,ax                      */  0xEF,
 | ||||
| -  /* 00000324 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| -  /* 00000327 mov ax,0x41                    */  0xB8, 0x41, 0x00,
 | ||||
| -  /* 0000032A out dx,ax                      */  0xEF,
 | ||||
| -  /* 0000032B pop ax                         */  0x58,
 | ||||
| -  /* 0000032C pop dx                         */  0x5A,
 | ||||
| -  /* 0000032D pop ax                         */  0x58,
 | ||||
| -  /* 0000032E pop dx                         */  0x5A,
 | ||||
| -  /* 0000032F jmp short 0x34c                */  0xEB, 0x1B,
 | ||||
| -  /* 00000331 mov bx,0x40f1                  */  0xBB, 0xF1, 0x40,
 | ||||
| -  /* 00000334 jmp short 0x34c                */  0xEB, 0x16,
 | ||||
| -  /* 00000336 jmp short 0x350                */  0xEB, 0x18,
 | ||||
| -  /* 00000338 jmp short 0x350                */  0xEB, 0x16,
 | ||||
| -  /* 0000033A cmp al,0x3                     */  0x3C, 0x03,
 | ||||
| -  /* 0000033C jz 0x345                       */  0x74, 0x07,
 | ||||
| -  /* 0000033E cmp al,0x12                    */  0x3C, 0x12,
 | ||||
| -  /* 00000340 jz 0x349                       */  0x74, 0x07,
 | ||||
| -  /* 00000342 jmp word 0x22b                 */  0xE9, 0xE6, 0xFE,
 | ||||
| -  /* 00000345 mov al,0x30                    */  0xB0, 0x30,
 | ||||
| -  /* 00000347 jmp short 0x34b                */  0xEB, 0x02,
 | ||||
| -  /* 00000349 mov al,0x20                    */  0xB0, 0x20,
 | ||||
| -  /* 0000034B iretw                          */  0xCF,
 | ||||
| -  /* 0000034C mov ax,0x4f                    */  0xB8, 0x4F, 0x00,
 | ||||
| -  /* 0000034F iretw                          */  0xCF,
 | ||||
| -  /* 00000350 mov ax,0x14f                   */  0xB8, 0x4F, 0x01,
 | ||||
| -  /* 00000353 iretw                          */  0xCF,
 | ||||
| +  /* 00000227 jz word 0x382                  */  0x0F, 0x84, 0x57, 0x01,
 | ||||
| +  /* 0000022B push si                        */  0x56,
 | ||||
| +  /* 0000022C mov si,0x3e9                   */  0xBE, 0xE9, 0x03,
 | ||||
| +  /* 0000022F call word 0x3c4                */  0xE8, 0x92, 0x01,
 | ||||
| +  /* 00000232 pop si                         */  0x5E,
 | ||||
| +  /* 00000233 jmp short 0x233                */  0xEB, 0xFE,
 | ||||
| +  /* 00000235 push es                        */  0x06,
 | ||||
| +  /* 00000236 push di                        */  0x57,
 | ||||
| +  /* 00000237 push ds                        */  0x1E,
 | ||||
| +  /* 00000238 push si                        */  0x56,
 | ||||
| +  /* 00000239 push cx                        */  0x51,
 | ||||
| +  /* 0000023A push si                        */  0x56,
 | ||||
| +  /* 0000023B mov si,0x3fb                   */  0xBE, 0xFB, 0x03,
 | ||||
| +  /* 0000023E call word 0x3c4                */  0xE8, 0x83, 0x01,
 | ||||
| +  /* 00000241 pop si                         */  0x5E,
 | ||||
| +  /* 00000242 push cs                        */  0x0E,
 | ||||
| +  /* 00000243 pop ds                         */  0x1F,
 | ||||
| +  /* 00000244 mov si,0x0                     */  0xBE, 0x00, 0x00,
 | ||||
| +  /* 00000247 mov cx,0x100                   */  0xB9, 0x00, 0x01,
 | ||||
| +  /* 0000024A cld                            */  0xFC,
 | ||||
| +  /* 0000024B rep movsb                      */  0xF3, 0xA4,
 | ||||
| +  /* 0000024D pop cx                         */  0x59,
 | ||||
| +  /* 0000024E pop si                         */  0x5E,
 | ||||
| +  /* 0000024F pop ds                         */  0x1F,
 | ||||
| +  /* 00000250 pop di                         */  0x5F,
 | ||||
| +  /* 00000251 pop es                         */  0x07,
 | ||||
| +  /* 00000252 jmp word 0x3ac                 */  0xE9, 0x57, 0x01,
 | ||||
| +  /* 00000255 push es                        */  0x06,
 | ||||
| +  /* 00000256 push di                        */  0x57,
 | ||||
| +  /* 00000257 push ds                        */  0x1E,
 | ||||
| +  /* 00000258 push si                        */  0x56,
 | ||||
| +  /* 00000259 push cx                        */  0x51,
 | ||||
| +  /* 0000025A push si                        */  0x56,
 | ||||
| +  /* 0000025B mov si,0x404                   */  0xBE, 0x04, 0x04,
 | ||||
| +  /* 0000025E call word 0x3c4                */  0xE8, 0x63, 0x01,
 | ||||
| +  /* 00000261 pop si                         */  0x5E,
 | ||||
| +  /* 00000262 and cx,0xbfff                  */  0x81, 0xE1, 0xFF, 0xBF,
 | ||||
| +  /* 00000266 cmp cx,0xf1                    */  0x81, 0xF9, 0xF1, 0x00,
 | ||||
| +  /* 0000026A jz 0x276                       */  0x74, 0x0A,
 | ||||
| +  /* 0000026C push si                        */  0x56,
 | ||||
| +  /* 0000026D mov si,0x432                   */  0xBE, 0x32, 0x04,
 | ||||
| +  /* 00000270 call word 0x3c4                */  0xE8, 0x51, 0x01,
 | ||||
| +  /* 00000273 pop si                         */  0x5E,
 | ||||
| +  /* 00000274 jmp short 0x233                */  0xEB, 0xBD,
 | ||||
| +  /* 00000276 push cs                        */  0x0E,
 | ||||
| +  /* 00000277 pop ds                         */  0x1F,
 | ||||
| +  /* 00000278 mov si,0x100                   */  0xBE, 0x00, 0x01,
 | ||||
| +  /* 0000027B mov cx,0x100                   */  0xB9, 0x00, 0x01,
 | ||||
| +  /* 0000027E cld                            */  0xFC,
 | ||||
| +  /* 0000027F rep movsb                      */  0xF3, 0xA4,
 | ||||
| +  /* 00000281 pop cx                         */  0x59,
 | ||||
| +  /* 00000282 pop si                         */  0x5E,
 | ||||
| +  /* 00000283 pop ds                         */  0x1F,
 | ||||
| +  /* 00000284 pop di                         */  0x5F,
 | ||||
| +  /* 00000285 pop es                         */  0x07,
 | ||||
| +  /* 00000286 jmp word 0x3ac                 */  0xE9, 0x23, 0x01,
 | ||||
| +  /* 00000289 push dx                        */  0x52,
 | ||||
| +  /* 0000028A push ax                        */  0x50,
 | ||||
| +  /* 0000028B push si                        */  0x56,
 | ||||
| +  /* 0000028C mov si,0x41a                   */  0xBE, 0x1A, 0x04,
 | ||||
| +  /* 0000028F call word 0x3c4                */  0xE8, 0x32, 0x01,
 | ||||
| +  /* 00000292 pop si                         */  0x5E,
 | ||||
| +  /* 00000293 cmp bx,0x40f1                  */  0x81, 0xFB, 0xF1, 0x40,
 | ||||
| +  /* 00000297 jz 0x2a3                       */  0x74, 0x0A,
 | ||||
| +  /* 00000299 push si                        */  0x56,
 | ||||
| +  /* 0000029A mov si,0x432                   */  0xBE, 0x32, 0x04,
 | ||||
| +  /* 0000029D call word 0x3c4                */  0xE8, 0x24, 0x01,
 | ||||
| +  /* 000002A0 pop si                         */  0x5E,
 | ||||
| +  /* 000002A1 jmp short 0x233                */  0xEB, 0x90,
 | ||||
| +  /* 000002A3 mov dx,0x3c0                   */  0xBA, 0xC0, 0x03,
 | ||||
| +  /* 000002A6 mov al,0x20                    */  0xB0, 0x20,
 | ||||
| +  /* 000002A8 out dx,al                      */  0xEE,
 | ||||
| +  /* 000002A9 push dx                        */  0x52,
 | ||||
| +  /* 000002AA push ax                        */  0x50,
 | ||||
| +  /* 000002AB mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 000002AE mov ax,0x4                     */  0xB8, 0x04, 0x00,
 | ||||
| +  /* 000002B1 out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002B2 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 000002B5 mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| +  /* 000002B8 out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002B9 pop ax                         */  0x58,
 | ||||
| +  /* 000002BA pop dx                         */  0x5A,
 | ||||
| +  /* 000002BB push dx                        */  0x52,
 | ||||
| +  /* 000002BC push ax                        */  0x50,
 | ||||
| +  /* 000002BD mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 000002C0 mov ax,0x5                     */  0xB8, 0x05, 0x00,
 | ||||
| +  /* 000002C3 out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002C4 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 000002C7 mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| +  /* 000002CA out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002CB pop ax                         */  0x58,
 | ||||
| +  /* 000002CC pop dx                         */  0x5A,
 | ||||
| +  /* 000002CD push dx                        */  0x52,
 | ||||
| +  /* 000002CE push ax                        */  0x50,
 | ||||
| +  /* 000002CF mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 000002D2 mov ax,0x8                     */  0xB8, 0x08, 0x00,
 | ||||
| +  /* 000002D5 out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002D6 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 000002D9 mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| +  /* 000002DC out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002DD pop ax                         */  0x58,
 | ||||
| +  /* 000002DE pop dx                         */  0x5A,
 | ||||
| +  /* 000002DF push dx                        */  0x52,
 | ||||
| +  /* 000002E0 push ax                        */  0x50,
 | ||||
| +  /* 000002E1 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 000002E4 mov ax,0x9                     */  0xB8, 0x09, 0x00,
 | ||||
| +  /* 000002E7 out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002E8 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 000002EB mov ax,0x0                     */  0xB8, 0x00, 0x00,
 | ||||
| +  /* 000002EE out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002EF pop ax                         */  0x58,
 | ||||
| +  /* 000002F0 pop dx                         */  0x5A,
 | ||||
| +  /* 000002F1 push dx                        */  0x52,
 | ||||
| +  /* 000002F2 push ax                        */  0x50,
 | ||||
| +  /* 000002F3 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 000002F6 mov ax,0x3                     */  0xB8, 0x03, 0x00,
 | ||||
| +  /* 000002F9 out dx,ax                      */  0xEF,
 | ||||
| +  /* 000002FA mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 000002FD mov ax,0x20                    */  0xB8, 0x20, 0x00,
 | ||||
| +  /* 00000300 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000301 pop ax                         */  0x58,
 | ||||
| +  /* 00000302 pop dx                         */  0x5A,
 | ||||
| +  /* 00000303 push dx                        */  0x52,
 | ||||
| +  /* 00000304 push ax                        */  0x50,
 | ||||
| +  /* 00000305 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 00000308 mov ax,0x1                     */  0xB8, 0x01, 0x00,
 | ||||
| +  /* 0000030B out dx,ax                      */  0xEF,
 | ||||
| +  /* 0000030C mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 0000030F mov ax,0x400                   */  0xB8, 0x00, 0x04,
 | ||||
| +  /* 00000312 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000313 pop ax                         */  0x58,
 | ||||
| +  /* 00000314 pop dx                         */  0x5A,
 | ||||
| +  /* 00000315 push dx                        */  0x52,
 | ||||
| +  /* 00000316 push ax                        */  0x50,
 | ||||
| +  /* 00000317 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 0000031A mov ax,0x6                     */  0xB8, 0x06, 0x00,
 | ||||
| +  /* 0000031D out dx,ax                      */  0xEF,
 | ||||
| +  /* 0000031E mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 00000321 mov ax,0x400                   */  0xB8, 0x00, 0x04,
 | ||||
| +  /* 00000324 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000325 pop ax                         */  0x58,
 | ||||
| +  /* 00000326 pop dx                         */  0x5A,
 | ||||
| +  /* 00000327 push dx                        */  0x52,
 | ||||
| +  /* 00000328 push ax                        */  0x50,
 | ||||
| +  /* 00000329 mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 0000032C mov ax,0x2                     */  0xB8, 0x02, 0x00,
 | ||||
| +  /* 0000032F out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000330 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 00000333 mov ax,0x300                   */  0xB8, 0x00, 0x03,
 | ||||
| +  /* 00000336 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000337 pop ax                         */  0x58,
 | ||||
| +  /* 00000338 pop dx                         */  0x5A,
 | ||||
| +  /* 00000339 push dx                        */  0x52,
 | ||||
| +  /* 0000033A push ax                        */  0x50,
 | ||||
| +  /* 0000033B mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 0000033E mov ax,0x7                     */  0xB8, 0x07, 0x00,
 | ||||
| +  /* 00000341 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000342 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 00000345 mov ax,0x300                   */  0xB8, 0x00, 0x03,
 | ||||
| +  /* 00000348 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000349 pop ax                         */  0x58,
 | ||||
| +  /* 0000034A pop dx                         */  0x5A,
 | ||||
| +  /* 0000034B push dx                        */  0x52,
 | ||||
| +  /* 0000034C push ax                        */  0x50,
 | ||||
| +  /* 0000034D mov dx,0x1ce                   */  0xBA, 0xCE, 0x01,
 | ||||
| +  /* 00000350 mov ax,0x4                     */  0xB8, 0x04, 0x00,
 | ||||
| +  /* 00000353 out dx,ax                      */  0xEF,
 | ||||
| +  /* 00000354 mov dx,0x1d0                   */  0xBA, 0xD0, 0x01,
 | ||||
| +  /* 00000357 mov ax,0x41                    */  0xB8, 0x41, 0x00,
 | ||||
| +  /* 0000035A out dx,ax                      */  0xEF,
 | ||||
| +  /* 0000035B pop ax                         */  0x58,
 | ||||
| +  /* 0000035C pop dx                         */  0x5A,
 | ||||
| +  /* 0000035D pop ax                         */  0x58,
 | ||||
| +  /* 0000035E pop dx                         */  0x5A,
 | ||||
| +  /* 0000035F jmp short 0x3ac                */  0xEB, 0x4B,
 | ||||
| +  /* 00000361 push si                        */  0x56,
 | ||||
| +  /* 00000362 mov si,0x411                   */  0xBE, 0x11, 0x04,
 | ||||
| +  /* 00000365 call word 0x3c4                */  0xE8, 0x5C, 0x00,
 | ||||
| +  /* 00000368 pop si                         */  0x5E,
 | ||||
| +  /* 00000369 mov bx,0x40f1                  */  0xBB, 0xF1, 0x40,
 | ||||
| +  /* 0000036C jmp short 0x3ac                */  0xEB, 0x3E,
 | ||||
| +  /* 0000036E push si                        */  0x56,
 | ||||
| +  /* 0000036F mov si,0x43f                   */  0xBE, 0x3F, 0x04,
 | ||||
| +  /* 00000372 call word 0x3c4                */  0xE8, 0x4F, 0x00,
 | ||||
| +  /* 00000375 pop si                         */  0x5E,
 | ||||
| +  /* 00000376 jmp short 0x3b8                */  0xEB, 0x40,
 | ||||
| +  /* 00000378 push si                        */  0x56,
 | ||||
| +  /* 00000379 mov si,0x452                   */  0xBE, 0x52, 0x04,
 | ||||
| +  /* 0000037C call word 0x3c4                */  0xE8, 0x45, 0x00,
 | ||||
| +  /* 0000037F pop si                         */  0x5E,
 | ||||
| +  /* 00000380 jmp short 0x3b8                */  0xEB, 0x36,
 | ||||
| +  /* 00000382 push si                        */  0x56,
 | ||||
| +  /* 00000383 mov si,0x423                   */  0xBE, 0x23, 0x04,
 | ||||
| +  /* 00000386 call word 0x3c4                */  0xE8, 0x3B, 0x00,
 | ||||
| +  /* 00000389 pop si                         */  0x5E,
 | ||||
| +  /* 0000038A cmp al,0x3                     */  0x3C, 0x03,
 | ||||
| +  /* 0000038C jz 0x39d                       */  0x74, 0x0F,
 | ||||
| +  /* 0000038E cmp al,0x12                    */  0x3C, 0x12,
 | ||||
| +  /* 00000390 jz 0x3a1                       */  0x74, 0x0F,
 | ||||
| +  /* 00000392 push si                        */  0x56,
 | ||||
| +  /* 00000393 mov si,0x432                   */  0xBE, 0x32, 0x04,
 | ||||
| +  /* 00000396 call word 0x3c4                */  0xE8, 0x2B, 0x00,
 | ||||
| +  /* 00000399 pop si                         */  0x5E,
 | ||||
| +  /* 0000039A jmp word 0x233                 */  0xE9, 0x96, 0xFE,
 | ||||
| +  /* 0000039D mov al,0x30                    */  0xB0, 0x30,
 | ||||
| +  /* 0000039F jmp short 0x3a3                */  0xEB, 0x02,
 | ||||
| +  /* 000003A1 mov al,0x20                    */  0xB0, 0x20,
 | ||||
| +  /* 000003A3 push si                        */  0x56,
 | ||||
| +  /* 000003A4 mov si,0x3d6                   */  0xBE, 0xD6, 0x03,
 | ||||
| +  /* 000003A7 call word 0x3c4                */  0xE8, 0x1A, 0x00,
 | ||||
| +  /* 000003AA pop si                         */  0x5E,
 | ||||
| +  /* 000003AB iretw                          */  0xCF,
 | ||||
| +  /* 000003AC push si                        */  0x56,
 | ||||
| +  /* 000003AD mov si,0x3d6                   */  0xBE, 0xD6, 0x03,
 | ||||
| +  /* 000003B0 call word 0x3c4                */  0xE8, 0x11, 0x00,
 | ||||
| +  /* 000003B3 pop si                         */  0x5E,
 | ||||
| +  /* 000003B4 mov ax,0x4f                    */  0xB8, 0x4F, 0x00,
 | ||||
| +  /* 000003B7 iretw                          */  0xCF,
 | ||||
| +  /* 000003B8 push si                        */  0x56,
 | ||||
| +  /* 000003B9 mov si,0x3dc                   */  0xBE, 0xDC, 0x03,
 | ||||
| +  /* 000003BC call word 0x3c4                */  0xE8, 0x05, 0x00,
 | ||||
| +  /* 000003BF pop si                         */  0x5E,
 | ||||
| +  /* 000003C0 mov ax,0x14f                   */  0xB8, 0x4F, 0x01,
 | ||||
| +  /* 000003C3 iretw                          */  0xCF,
 | ||||
| +  /* 000003C4 pushaw                         */  0x60,
 | ||||
| +  /* 000003C5 push ds                        */  0x1E,
 | ||||
| +  /* 000003C6 push cs                        */  0x0E,
 | ||||
| +  /* 000003C7 pop ds                         */  0x1F,
 | ||||
| +  /* 000003C8 mov dx,0x402                   */  0xBA, 0x02, 0x04,
 | ||||
| +  /* 000003CB lodsb                          */  0xAC,
 | ||||
| +  /* 000003CC cmp al,0x0                     */  0x3C, 0x00,
 | ||||
| +  /* 000003CE jz 0x3d3                       */  0x74, 0x03,
 | ||||
| +  /* 000003D0 out dx,al                      */  0xEE,
 | ||||
| +  /* 000003D1 jmp short 0x3cb                */  0xEB, 0xF8,
 | ||||
| +  /* 000003D3 pop ds                         */  0x1F,
 | ||||
| +  /* 000003D4 popaw                          */  0x61,
 | ||||
| +  /* 000003D5 ret                            */  0xC3,
 | ||||
| +  /* 000003D6 inc bp                         */  0x45,
 | ||||
| +  /* 000003D7 js 0x442                       */  0x78, 0x69,
 | ||||
| +  /* 000003D9 jz 0x3e5                       */  0x74, 0x0A,
 | ||||
| +  /* 000003DB add [di+0x6e],dl               */  0x00, 0x55, 0x6E,
 | ||||
| +  /* 000003DE jnc 0x455                      */  0x73, 0x75,
 | ||||
| +  /* 000003E0 jo 0x452                       */  0x70, 0x70,
 | ||||
| +  /* 000003E2 outsw                          */  0x6F,
 | ||||
| +  /* 000003E3 jc 0x459                       */  0x72, 0x74,
 | ||||
| +  /* 000003E5 or al,[fs:bx+si]               */  0x65, 0x64, 0x0A, 0x00,
 | ||||
| +  /* 000003E9 push bp                        */  0x55,
 | ||||
| +  /* 000003EA outsb                          */  0x6E,
 | ||||
| +  /* 000003EB imul bp,[bp+0x6f],byte +0x77   */  0x6B, 0x6E, 0x6F, 0x77,
 | ||||
| +  /* 000003EF outsb                          */  0x6E,
 | ||||
| +  /* 000003F0 and [bp+0x75],al               */  0x20, 0x46, 0x75,
 | ||||
| +  /* 000003F3 outsb                          */  0x6E,
 | ||||
| +  /* 000003F4 arpl [si+0x69],si              */  0x63, 0x74, 0x69,
 | ||||
| +  /* 000003F7 outsw                          */  0x6F,
 | ||||
| +  /* 000003F8 outsb                          */  0x6E,
 | ||||
| +  /* 000003F9 or al,[bx+si]                  */  0x0A, 0x00,
 | ||||
| +  /* 000003FB inc di                         */  0x47,
 | ||||
| +  /* 000003FC gs jz 0x448                    */  0x65, 0x74, 0x49,
 | ||||
| +  /* 000003FF outsb                          */  0x6E,
 | ||||
| +  /* 00000400 outsd                          */  0x66, 0x6F,
 | ||||
| +  /* 00000402 or al,[bx+si]                  */  0x0A, 0x00,
 | ||||
| +  /* 00000404 inc di                         */  0x47,
 | ||||
| +  /* 00000405 gs jz 0x455                    */  0x65, 0x74, 0x4D,
 | ||||
| +  /* 00000408 outsw                          */  0x6F,
 | ||||
| +  /* 00000409 gs dec cx                      */  0x64, 0x65, 0x49,
 | ||||
| +  /* 0000040C outsb                          */  0x6E,
 | ||||
| +  /* 0000040D outsd                          */  0x66, 0x6F,
 | ||||
| +  /* 0000040F or al,[bx+si]                  */  0x0A, 0x00,
 | ||||
| +  /* 00000411 inc di                         */  0x47,
 | ||||
| +  /* 00000412 gs jz 0x462                    */  0x65, 0x74, 0x4D,
 | ||||
| +  /* 00000415 outsw                          */  0x6F,
 | ||||
| +  /* 00000416 or al,[gs:bx+si]               */  0x64, 0x65, 0x0A, 0x00,
 | ||||
| +  /* 0000041A push bx                        */  0x53,
 | ||||
| +  /* 0000041B gs jz 0x46b                    */  0x65, 0x74, 0x4D,
 | ||||
| +  /* 0000041E outsw                          */  0x6F,
 | ||||
| +  /* 0000041F or al,[gs:bx+si]               */  0x64, 0x65, 0x0A, 0x00,
 | ||||
| +  /* 00000423 push bx                        */  0x53,
 | ||||
| +  /* 00000424 gs jz 0x474                    */  0x65, 0x74, 0x4D,
 | ||||
| +  /* 00000427 outsw                          */  0x6F,
 | ||||
| +  /* 00000428 gs dec sp                      */  0x64, 0x65, 0x4C,
 | ||||
| +  /* 0000042B gs a32 popaw                   */  0x65, 0x67, 0x61,
 | ||||
| +  /* 0000042E arpl [bx+di+0xa],di            */  0x63, 0x79, 0x0A,
 | ||||
| +  /* 00000431 add [di+0x6e],dl               */  0x00, 0x55, 0x6E,
 | ||||
| +  /* 00000434 imul bp,[bx+0x77],byte +0x6e   */  0x6B, 0x6F, 0x77, 0x6E,
 | ||||
| +  /* 00000438 and [di+0x6f],cl               */  0x20, 0x4D, 0x6F,
 | ||||
| +  /* 0000043B or al,[gs:bx+si]               */  0x64, 0x65, 0x0A, 0x00,
 | ||||
| +  /* 0000043F inc di                         */  0x47,
 | ||||
| +  /* 00000440 gs jz 0x493                    */  0x65, 0x74, 0x50,
 | ||||
| +  /* 00000443 insw                           */  0x6D,
 | ||||
| +  /* 00000444 inc bx                         */  0x43,
 | ||||
| +  /* 00000445 popaw                          */  0x61,
 | ||||
| +  /* 00000446 jo 0x4a9                       */  0x70, 0x61,
 | ||||
| +  /* 00000448 bound bp,[bx+di+0x6c]          */  0x62, 0x69, 0x6C,
 | ||||
| +  /* 0000044B imul si,[si+0x69],word 0x7365  */  0x69, 0x74, 0x69, 0x65, 0x73,
 | ||||
| +  /* 00000450 or al,[bx+si]                  */  0x0A, 0x00,
 | ||||
| +  /* 00000452 push dx                        */  0x52,
 | ||||
| +  /* 00000453 gs popaw                       */  0x65, 0x61,
 | ||||
| +  /* 00000455 fs inc bp                      */  0x64, 0x45,
 | ||||
| +  /* 00000457 fs                             */  0x64,
 | ||||
| +  /* 00000458 db 0x69                        */  0x69,
 | ||||
| +  /* 00000459 or al,[fs:bx+si]               */  0x64, 0x0A, 0x00,
 | ||||
|  }; | ||||
|  #endif | ||||
							
								
								
									
										129
									
								
								0007-MdeModulePkg-TerminalDxe-add-other-text-resolutions.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								0007-MdeModulePkg-TerminalDxe-add-other-text-resolutions.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,129 @@ | ||||
| From 3b413c99f3a5087710f4932b4ba61c2646ae84b9 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 25 Feb 2014 18:40:35 +0100 | ||||
| Subject: [PATCH] MdeModulePkg: TerminalDxe: add other text resolutions | ||||
| 
 | ||||
| When the console output is multiplexed to several devices by | ||||
| ConSplitterDxe, then ConSplitterDxe builds an intersection of text modes | ||||
| supported by all console output devices. | ||||
| 
 | ||||
| Two notable output devices are provided by: | ||||
| (1) MdeModulePkg/Universal/Console/GraphicsConsoleDxe, | ||||
| (2) MdeModulePkg/Universal/Console/TerminalDxe. | ||||
| 
 | ||||
| GraphicsConsoleDxe supports four modes at most -- see | ||||
| InitializeGraphicsConsoleTextMode() and "mGraphicsConsoleModeData": | ||||
| 
 | ||||
| (1a) 80x25 (required by the UEFI spec as mode 0), | ||||
| (1b) 80x50 (not necessarily supported, but if it is, then the UEFI spec | ||||
|      requires the driver to provide it as mode 1), | ||||
| (1c) 100x31 (corresponding to graphics resolution 800x600, which the UEFI | ||||
|      spec requires from all plug-in graphics devices), | ||||
| (1d) "full screen" resolution, derived form the underlying GOP's | ||||
|      horizontal and vertical resolutions with division by EFI_GLYPH_WIDTH | ||||
|      (8) and EFI_GLYPH_HEIGHT (19), respectively. | ||||
| 
 | ||||
| The automatic "full screen resolution" makes GraphicsConsoleDxe's | ||||
| character console very flexible. However, TerminalDxe (which runs on | ||||
| serial ports) only provides the following fixed resolutions -- see | ||||
| InitializeTerminalConsoleTextMode() and "mTerminalConsoleModeData": | ||||
| 
 | ||||
| (2a) 80x25 (required by the UEFI spec as mode 0), | ||||
| (2b) 80x50 (since the character resolution of a serial device cannot be | ||||
|      interrogated easily, this is added unconditionally as mode 1), | ||||
| (2c) 100x31 (since the character resolution of a serial device cannot be | ||||
|      interrogated easily, this is added unconditionally as mode 2). | ||||
| 
 | ||||
| When ConSplitterDxe combines (1) and (2), multiplexing console output to | ||||
| both video output and serial terminal, the list of commonly supported text | ||||
| modes (ie. the "intersection") comprises: | ||||
| 
 | ||||
| (3a) 80x25, unconditionally, from (1a) and (2a), | ||||
| (3b) 80x50, if the graphics console provides at least 640x950 pixel | ||||
|      resolution, from (1b) and (2b) | ||||
| (3c) 100x31, if the graphics device is a plug-in one (because in that case | ||||
|      800x600 is a mandated pixel resolution), from (1c) and (2c). | ||||
| 
 | ||||
| Unfortunately, the "full screen resolution" (1d) of the GOP-based text | ||||
| console is not available in general. | ||||
| 
 | ||||
| Mitigate this problem by extending "mTerminalConsoleModeData" with a | ||||
| handful of text resolutions that are derived from widespread maximal pixel | ||||
| resolutions. This way TerminalDxe won't cause ConSplitterDxe to filter out | ||||
| the most frequent (1d) values from the intersection, and eg. the MODE | ||||
| command in the UEFI shell will offer the "best" (ie. full screen) | ||||
| resolution too. | ||||
| 
 | ||||
| Upstream status: three calendar months (with on-and-off discussion and | ||||
| patches) have not been enough to find a solution to this problem that | ||||
| would please all stakeholders. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - adapt commit 0bc77c63de03 (code and commit message) to upstream commit
 | ||||
|   390b95a49c14 ("MdeModulePkg/TerminalDxe: Refine | ||||
|   InitializeTerminalConsoleTextMode", 2017-01-10). | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 99dc3720ac86059f60156197328cc433603c536e) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  .../Universal/Console/TerminalDxe/Terminal.c  | 41 +++++++++++++++++-- | ||||
|  1 file changed, 38 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
 | ||||
| index a98b690c8b..ded5513c74 100644
 | ||||
| --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
 | ||||
| +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
 | ||||
| @@ -115,9 +115,44 @@ TERMINAL_DEV  mTerminalDevTemplate = {
 | ||||
|  }; | ||||
|   | ||||
|  TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = { | ||||
| -  {80,  25},
 | ||||
| -  {80,  50},
 | ||||
| -  {100, 31},
 | ||||
| +  {   80,  25 }, // from graphics resolution  640 x  480
 | ||||
| +  {   80,  50 }, // from graphics resolution  640 x  960
 | ||||
| +  {  100,  25 }, // from graphics resolution  800 x  480
 | ||||
| +  {  100,  31 }, // from graphics resolution  800 x  600
 | ||||
| +  {  104,  32 }, // from graphics resolution  832 x  624
 | ||||
| +  {  120,  33 }, // from graphics resolution  960 x  640
 | ||||
| +  {  128,  31 }, // from graphics resolution 1024 x  600
 | ||||
| +  {  128,  40 }, // from graphics resolution 1024 x  768
 | ||||
| +  {  144,  45 }, // from graphics resolution 1152 x  864
 | ||||
| +  {  144,  45 }, // from graphics resolution 1152 x  870
 | ||||
| +  {  160,  37 }, // from graphics resolution 1280 x  720
 | ||||
| +  {  160,  40 }, // from graphics resolution 1280 x  760
 | ||||
| +  {  160,  40 }, // from graphics resolution 1280 x  768
 | ||||
| +  {  160,  42 }, // from graphics resolution 1280 x  800
 | ||||
| +  {  160,  50 }, // from graphics resolution 1280 x  960
 | ||||
| +  {  160,  53 }, // from graphics resolution 1280 x 1024
 | ||||
| +  {  170,  40 }, // from graphics resolution 1360 x  768
 | ||||
| +  {  170,  40 }, // from graphics resolution 1366 x  768
 | ||||
| +  {  175,  55 }, // from graphics resolution 1400 x 1050
 | ||||
| +  {  180,  47 }, // from graphics resolution 1440 x  900
 | ||||
| +  {  200,  47 }, // from graphics resolution 1600 x  900
 | ||||
| +  {  200,  63 }, // from graphics resolution 1600 x 1200
 | ||||
| +  {  210,  55 }, // from graphics resolution 1680 x 1050
 | ||||
| +  {  240,  56 }, // from graphics resolution 1920 x 1080
 | ||||
| +  {  240,  63 }, // from graphics resolution 1920 x 1200
 | ||||
| +  {  240,  75 }, // from graphics resolution 1920 x 1440
 | ||||
| +  {  250, 105 }, // from graphics resolution 2000 x 2000
 | ||||
| +  {  256,  80 }, // from graphics resolution 2048 x 1536
 | ||||
| +  {  256, 107 }, // from graphics resolution 2048 x 2048
 | ||||
| +  {  320,  75 }, // from graphics resolution 2560 x 1440
 | ||||
| +  {  320,  84 }, // from graphics resolution 2560 x 1600
 | ||||
| +  {  320, 107 }, // from graphics resolution 2560 x 2048
 | ||||
| +  {  350, 110 }, // from graphics resolution 2800 x 2100
 | ||||
| +  {  400, 126 }, // from graphics resolution 3200 x 2400
 | ||||
| +  {  480, 113 }, // from graphics resolution 3840 x 2160
 | ||||
| +  {  512, 113 }, // from graphics resolution 4096 x 2160
 | ||||
| +  {  960, 227 }, // from graphics resolution 7680 x 4320
 | ||||
| +  { 1024, 227 }, // from graphics resolution 8192 x 4320
 | ||||
|    // | ||||
|    // New modes can be added here. | ||||
|    // | ||||
							
								
								
									
										128
									
								
								0008-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								0008-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,128 @@ | ||||
| From 50b53194f7caea602e04df663358617c280f299c Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 25 Feb 2014 22:40:01 +0100 | ||||
| Subject: [PATCH] MdeModulePkg: TerminalDxe: set xterm resolution on mode | ||||
|  change (RH only) | ||||
| 
 | ||||
| The | ||||
| 
 | ||||
|   CSI Ps ; Ps ; Ps t | ||||
| 
 | ||||
| escape sequence serves for window manipulation. We can use the | ||||
| 
 | ||||
|   CSI 8 ; <rows> ; <columns> t | ||||
| 
 | ||||
| sequence to adapt eg. the xterm window size to the selected console mode. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - refresh commit 519b9751573e against various context changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - Refresh downstream-only commit 2909e025db68 against "MdeModulePkg.dec"
 | ||||
|   context change from upstream commits e043f7895b83 ("MdeModulePkg: Add | ||||
|   PCD PcdPteMemoryEncryptionAddressOrMask", 2017-02-27) and 76081dfcc5b2 | ||||
|   ("MdeModulePkg: Add PROMPT&HELP string of pcd to UNI file", 2017-03-03). | ||||
| 
 | ||||
| Reference: <http://rtfm.etla.org/xterm/ctlseq.html> | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 2909e025db6878723b49644a8a0cf160d07e6444) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  MdeModulePkg/MdeModulePkg.dec                 |  4 +++ | ||||
|  .../Console/TerminalDxe/TerminalConOut.c      | 30 +++++++++++++++++++ | ||||
|  .../Console/TerminalDxe/TerminalDxe.inf       |  2 ++ | ||||
|  3 files changed, 36 insertions(+) | ||||
| 
 | ||||
| diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| index cb30a79758..e562bed57e 100644
 | ||||
| --- a/MdeModulePkg/MdeModulePkg.dec
 | ||||
| +++ b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| @@ -2013,6 +2013,10 @@
 | ||||
|    # @Prompt Enable StatusCode via memory. | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023 | ||||
|   | ||||
| +  ## Controls whether TerminalDxe outputs an XTerm resize sequence on terminal
 | ||||
| +  #  mode change.
 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE|BOOLEAN|0x00010080
 | ||||
| +
 | ||||
|  [PcdsPatchableInModule] | ||||
|    ## Specify memory size with page number for PEI code when | ||||
|    #  Loading Module at Fixed Address feature is enabled. | ||||
| diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
 | ||||
| index aae470e956..26156857aa 100644
 | ||||
| --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
 | ||||
| +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
 | ||||
| @@ -7,6 +7,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 | ||||
|   | ||||
|  **/ | ||||
|   | ||||
| +#include <Library/PrintLib.h>
 | ||||
| +
 | ||||
|  #include "Terminal.h" | ||||
|   | ||||
|  // | ||||
| @@ -80,6 +82,16 @@ CHAR16 mSetCursorPositionString[]  = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0
 | ||||
|  CHAR16 mCursorForwardString[]      = { ESC, '[', '0', '0', 'C', 0 }; | ||||
|  CHAR16 mCursorBackwardString[]     = { ESC, '[', '0', '0', 'D', 0 }; | ||||
|   | ||||
| +//
 | ||||
| +// Note that this is an ASCII format string, taking two INT32 arguments:
 | ||||
| +// rows, columns.
 | ||||
| +//
 | ||||
| +// A %d (INT32) format specification can expand to at most 11 characters.
 | ||||
| +//
 | ||||
| +CHAR8 mResizeTextAreaFormatString[] = "\x1B[8;%d;%dt";
 | ||||
| +#define RESIZE_SEQ_SIZE (sizeof mResizeTextAreaFormatString + 2 * (11 - 2))
 | ||||
| +
 | ||||
| +
 | ||||
|  // | ||||
|  // Body of the ConOut functions | ||||
|  // | ||||
| @@ -506,6 +518,24 @@ TerminalConOutSetMode (
 | ||||
|      return EFI_DEVICE_ERROR; | ||||
|    } | ||||
|   | ||||
| +  if (PcdGetBool (PcdResizeXterm)) {
 | ||||
| +    CHAR16 ResizeSequence[RESIZE_SEQ_SIZE];
 | ||||
| +
 | ||||
| +    UnicodeSPrintAsciiFormat (
 | ||||
| +      ResizeSequence,
 | ||||
| +      sizeof ResizeSequence,
 | ||||
| +      mResizeTextAreaFormatString,
 | ||||
| +      (INT32) TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows,
 | ||||
| +      (INT32) TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns
 | ||||
| +      );
 | ||||
| +    TerminalDevice->OutputEscChar = TRUE;
 | ||||
| +    Status                        = This->OutputString (This, ResizeSequence);
 | ||||
| +    TerminalDevice->OutputEscChar = FALSE;
 | ||||
| +    if (EFI_ERROR (Status)) {
 | ||||
| +      return EFI_DEVICE_ERROR;
 | ||||
| +    }
 | ||||
| +  }
 | ||||
| +
 | ||||
|    This->Mode->Mode  = (INT32) ModeNumber; | ||||
|   | ||||
|    Status            = This->ClearScreen (This); | ||||
| diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
 | ||||
| index b2a8aeba85..eff6253465 100644
 | ||||
| --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
 | ||||
| +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
 | ||||
| @@ -55,6 +55,7 @@
 | ||||
|    DebugLib | ||||
|    PcdLib | ||||
|    BaseLib | ||||
| +  PrintLib
 | ||||
|   | ||||
|  [Guids] | ||||
|    ## SOMETIMES_PRODUCES ## Variable:L"ConInDev" | ||||
| @@ -87,6 +88,7 @@
 | ||||
|  [Pcd] | ||||
|    gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType           ## SOMETIMES_CONSUMES | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable    ## CONSUMES | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm             ## CONSUMES
 | ||||
|   | ||||
|  # [Event] | ||||
|  # # Relative timer event set by UnicodeToEfiKey(), used to be one 2 seconds input timeout. | ||||
| @ -0,0 +1,90 @@ | ||||
| From 0616c1d69ef552bd35700992fae37263ddd8c4ce Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 15:59:06 +0200 | ||||
| Subject: [PATCH] OvmfPkg: take PcdResizeXterm from the QEMU command line (RH | ||||
|  only) | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - refresh downstream-only commit 8abc2a6ddad2 against context differences
 | ||||
|   in the DSC files from upstream commit 5e167d7e784c | ||||
|   ("OvmfPkg/PlatformPei: don't allocate reserved mem varstore if | ||||
|   SMM_REQUIRE", 2017-03-12). | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 6fa0c4d67c0bb8bde2ddd6db41c19eb0c40b2721) | ||||
| (cherry picked from commit 8abc2a6ddad25af7e88dc0cf57d55dfb75fbf92d) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.dsc             | 1 + | ||||
|  OvmfPkg/OvmfPkgIa32X64.dsc          | 1 + | ||||
|  OvmfPkg/OvmfPkgX64.dsc              | 1 + | ||||
|  OvmfPkg/PlatformPei/Platform.c      | 1 + | ||||
|  OvmfPkg/PlatformPei/PlatformPei.inf | 1 + | ||||
|  5 files changed, 5 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| index 2886c10b1b..b974740e2f 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.dsc
 | ||||
| @@ -577,6 +577,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 | ||||
|  !endif | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| index 5a9e9a707a..65a8c6764c 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
 | ||||
| @@ -586,6 +586,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE | ||||
|    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 | ||||
|    gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| index 70c2c3e3b9..72bc289f26 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.dsc
 | ||||
| @@ -582,6 +582,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 | ||||
|  !endif | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE | ||||
| diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
 | ||||
| index 96468701e3..14efbabe39 100644
 | ||||
| --- a/OvmfPkg/PlatformPei/Platform.c
 | ||||
| +++ b/OvmfPkg/PlatformPei/Platform.c
 | ||||
| @@ -748,6 +748,7 @@ InitializePlatform (
 | ||||
|      MemTypeInfoInitialization (); | ||||
|      MemMapInitialization (); | ||||
|      NoexecDxeInitialization (); | ||||
| +    UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);
 | ||||
|    } | ||||
|   | ||||
|    InstallClearCacheCallback (); | ||||
| diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf
 | ||||
| index c53be2f492..e5744ed818 100644
 | ||||
| --- a/OvmfPkg/PlatformPei/PlatformPei.inf
 | ||||
| +++ b/OvmfPkg/PlatformPei/PlatformPei.inf
 | ||||
| @@ -97,6 +97,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack | ||||
							
								
								
									
										196
									
								
								0010-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								0010-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,196 @@ | ||||
| From 4de2ee915d9f3eea6d32cd010ab856ac176f3983 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Sun, 26 Jul 2015 08:02:50 +0000 | ||||
| Subject: [PATCH] ArmVirtPkg: take PcdResizeXterm from the QEMU command line | ||||
|  (RH only) | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - Adapt commit 6b97969096a3 to the fact that upstream has deprecated such
 | ||||
|   setter functions for dynamic PCDs that don't return a status code (such | ||||
|   as PcdSetBool()). Employ PcdSetBoolS(), and assert that it succeeds -- | ||||
|   there's really no circumstance in this case when it could fail. | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - Refresh downstream-only commit d4564d39dfdb against context changes in
 | ||||
|   "ArmVirtPkg/ArmVirtQemu.dsc" from upstream commit 7e5f1b673870 | ||||
|   ("ArmVirtPkg/PlatformHasAcpiDtDxe: allow guest level ACPI disable | ||||
|   override", 2017-03-29). | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit d4564d39dfdbf74e762af43314005a2c026cb262) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc                    |  6 +- | ||||
|  .../TerminalPcdProducerLib.c                  | 87 +++++++++++++++++++ | ||||
|  .../TerminalPcdProducerLib.inf                | 41 +++++++++ | ||||
|  3 files changed, 133 insertions(+), 1 deletion(-) | ||||
|  create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c | ||||
|  create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf | ||||
| 
 | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| index 2405636af6..24c6ea2e64 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -249,6 +249,7 @@
 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640 | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
 | ||||
|   | ||||
|    # | ||||
|    # SMBIOS entry point version | ||||
| @@ -374,7 +375,10 @@
 | ||||
|    MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf | ||||
|    MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf | ||||
|    MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf | ||||
| -  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
 | ||||
| +  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf {
 | ||||
| +    <LibraryClasses>
 | ||||
| +      NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
 | ||||
| +  }
 | ||||
|    MdeModulePkg/Universal/SerialDxe/SerialDxe.inf | ||||
|   | ||||
|    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | ||||
| diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
 | ||||
| new file mode 100644 | ||||
| index 0000000000..814ad48199
 | ||||
| --- /dev/null
 | ||||
| +++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
 | ||||
| @@ -0,0 +1,87 @@
 | ||||
| +/** @file
 | ||||
| +*  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
 | ||||
| +*
 | ||||
| +*  Copyright (C) 2015-2016, Red Hat, Inc.
 | ||||
| +*  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
 | ||||
| +*
 | ||||
| +*  This program and the accompanying materials are licensed and made available
 | ||||
| +*  under the terms and conditions of the BSD License which accompanies this
 | ||||
| +*  distribution.  The full text of the license may be found at
 | ||||
| +*  http://opensource.org/licenses/bsd-license.php
 | ||||
| +*
 | ||||
| +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | ||||
| +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
 | ||||
| +*  IMPLIED.
 | ||||
| +*
 | ||||
| +**/
 | ||||
| +
 | ||||
| +#include <Library/DebugLib.h>
 | ||||
| +#include <Library/PcdLib.h>
 | ||||
| +#include <Library/QemuFwCfgLib.h>
 | ||||
| +
 | ||||
| +STATIC
 | ||||
| +RETURN_STATUS
 | ||||
| +GetNamedFwCfgBoolean (
 | ||||
| +  IN  CONST CHAR8 *FwCfgFileName,
 | ||||
| +  OUT BOOLEAN     *Setting
 | ||||
| +  )
 | ||||
| +{
 | ||||
| +  RETURN_STATUS        Status;
 | ||||
| +  FIRMWARE_CONFIG_ITEM FwCfgItem;
 | ||||
| +  UINTN                FwCfgSize;
 | ||||
| +  UINT8                Value[3];
 | ||||
| +
 | ||||
| +  Status = QemuFwCfgFindFile (FwCfgFileName, &FwCfgItem, &FwCfgSize);
 | ||||
| +  if (RETURN_ERROR (Status)) {
 | ||||
| +    return Status;
 | ||||
| +  }
 | ||||
| +  if (FwCfgSize > sizeof Value) {
 | ||||
| +    return RETURN_BAD_BUFFER_SIZE;
 | ||||
| +  }
 | ||||
| +  QemuFwCfgSelectItem (FwCfgItem);
 | ||||
| +  QemuFwCfgReadBytes (FwCfgSize, Value);
 | ||||
| +
 | ||||
| +  if ((FwCfgSize == 1) ||
 | ||||
| +      (FwCfgSize == 2 && Value[1] == '\n') ||
 | ||||
| +      (FwCfgSize == 3 && Value[1] == '\r' && Value[2] == '\n')) {
 | ||||
| +    switch (Value[0]) {
 | ||||
| +      case '0':
 | ||||
| +      case 'n':
 | ||||
| +      case 'N':
 | ||||
| +        *Setting = FALSE;
 | ||||
| +        return RETURN_SUCCESS;
 | ||||
| +
 | ||||
| +      case '1':
 | ||||
| +      case 'y':
 | ||||
| +      case 'Y':
 | ||||
| +        *Setting = TRUE;
 | ||||
| +        return RETURN_SUCCESS;
 | ||||
| +
 | ||||
| +      default:
 | ||||
| +        break;
 | ||||
| +    }
 | ||||
| +  }
 | ||||
| +  return RETURN_PROTOCOL_ERROR;
 | ||||
| +}
 | ||||
| +
 | ||||
| +#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName)                             \
 | ||||
| +          do {                                                                \
 | ||||
| +            BOOLEAN       Setting;                                            \
 | ||||
| +            RETURN_STATUS PcdStatus;                                          \
 | ||||
| +                                                                              \
 | ||||
| +            if (!RETURN_ERROR (GetNamedFwCfgBoolean (                         \
 | ||||
| +                    "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \
 | ||||
| +              PcdStatus = PcdSetBoolS (TokenName, Setting);                   \
 | ||||
| +              ASSERT_RETURN_ERROR (PcdStatus);                                \
 | ||||
| +            }                                                                 \
 | ||||
| +          } while (0)
 | ||||
| +
 | ||||
| +RETURN_STATUS
 | ||||
| +EFIAPI
 | ||||
| +TerminalPcdProducerLibConstructor (
 | ||||
| +  VOID
 | ||||
| +  )
 | ||||
| +{
 | ||||
| +  UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);
 | ||||
| +  return RETURN_SUCCESS;
 | ||||
| +}
 | ||||
| diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
 | ||||
| new file mode 100644 | ||||
| index 0000000000..fecb37bcdf
 | ||||
| --- /dev/null
 | ||||
| +++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
 | ||||
| @@ -0,0 +1,41 @@
 | ||||
| +## @file
 | ||||
| +#  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
 | ||||
| +#
 | ||||
| +#  Copyright (C) 2015-2016, Red Hat, Inc.
 | ||||
| +#  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
 | ||||
| +#
 | ||||
| +#  This program and the accompanying materials are licensed and made available
 | ||||
| +#  under the terms and conditions of the BSD License which accompanies this
 | ||||
| +#  distribution.  The full text of the license may be found at
 | ||||
| +#  http://opensource.org/licenses/bsd-license.php
 | ||||
| +#
 | ||||
| +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | ||||
| +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
 | ||||
| +#  IMPLIED.
 | ||||
| +#
 | ||||
| +##
 | ||||
| +
 | ||||
| +[Defines]
 | ||||
| +  INF_VERSION                    = 0x00010005
 | ||||
| +  BASE_NAME                      = TerminalPcdProducerLib
 | ||||
| +  FILE_GUID                      = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96
 | ||||
| +  MODULE_TYPE                    = BASE
 | ||||
| +  VERSION_STRING                 = 1.0
 | ||||
| +  LIBRARY_CLASS                  = TerminalPcdProducerLib|DXE_DRIVER
 | ||||
| +  CONSTRUCTOR                    = TerminalPcdProducerLibConstructor
 | ||||
| +
 | ||||
| +[Sources]
 | ||||
| +  TerminalPcdProducerLib.c
 | ||||
| +
 | ||||
| +[Packages]
 | ||||
| +  MdePkg/MdePkg.dec
 | ||||
| +  OvmfPkg/OvmfPkg.dec
 | ||||
| +  MdeModulePkg/MdeModulePkg.dec
 | ||||
| +
 | ||||
| +[LibraryClasses]
 | ||||
| +  DebugLib
 | ||||
| +  PcdLib
 | ||||
| +  QemuFwCfgLib
 | ||||
| +
 | ||||
| +[Pcd]
 | ||||
| +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm
 | ||||
							
								
								
									
										112
									
								
								0011-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								0011-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | ||||
| From c1d277217b6d4115277cac4de26943fde3b7f170 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Tue, 4 Nov 2014 23:02:53 +0100 | ||||
| Subject: [PATCH] OvmfPkg: allow exclusion of the shell from the firmware image | ||||
| 
 | ||||
| When '-D EXCLUDE_SHELL_FROM_FD' is passed to 'build', exclude the shell | ||||
| binary from the firmware image. | ||||
| 
 | ||||
| Peter Jones advised us that firmware vendors for physical systems disable | ||||
| the memory-mapped, firmware image-contained UEFI shell in | ||||
| SecureBoot-enabled builds. The reason being that the memory-mapped shell | ||||
| can always load, it may have direct access to various hardware in the | ||||
| system, and it can run UEFI shell scripts (which cannot be signed at all). | ||||
| 
 | ||||
| Intended use of the new build option: | ||||
| 
 | ||||
| - In-tree builds: don't pass '-D EXCLUDE_SHELL_FROM_FD'. The resultant
 | ||||
|   firmware image will contain a shell binary, independently of SecureBoot | ||||
|   enablement, which is flexible for interactive development. (Ie. no | ||||
|   change for in-tree builds.) | ||||
| 
 | ||||
| - RPM builds: pass both '-D SECURE_BOOT_ENABLE' and
 | ||||
|   '-D EXCLUDE_SHELL_FROM_FD'. The resultant RPM will provide: | ||||
| 
 | ||||
|   - OVMF_CODE.fd: SecureBoot-enabled firmware, without builtin UEFI shell, | ||||
| 
 | ||||
|   - OVMF_VARS.fd: variable store template matching OVMF_CODE.fd, | ||||
| 
 | ||||
|   - UefiShell.iso: a bootable ISO image with the shell on it as default | ||||
|     boot loader. The shell binary will load when SecureBoot is turned off, | ||||
|     and won't load when SecureBoot is turned on (because it is not | ||||
|     signed). | ||||
| 
 | ||||
|     UefiShell.iso is the reason we're not excluding the shell from the DSC | ||||
|     files as well, only the FDF files -- when '-D EXCLUDE_SHELL_FROM_FD' | ||||
|     is specified, the shell binary needs to be built the same, only it | ||||
|     will be included in UefiShell.iso. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 9c391def70366cabae08e6008814299c3372fafd) | ||||
| (cherry picked from commit d9dd9ee42937b2611fe37183cc9ec7f62d946933) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  OvmfPkg/OvmfPkgIa32.fdf    | 2 ++ | ||||
|  OvmfPkg/OvmfPkgIa32X64.fdf | 3 +++ | ||||
|  OvmfPkg/OvmfPkgX64.fdf     | 3 +++ | ||||
|  3 files changed, 8 insertions(+) | ||||
| 
 | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| index 6e1e7f5f44..07c1cdbe81 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32.fdf
 | ||||
| @@ -291,11 +291,13 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
|  INF  FatPkg/EnhancedFatDxe/Fat.inf | ||||
|  INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | ||||
|   | ||||
| +!ifndef $(EXCLUDE_SHELL_FROM_FD)
 | ||||
|  !if $(TOOL_CHAIN_TAG) != "XCODE5" | ||||
|  INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf | ||||
|  INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
| +!endif
 | ||||
|   | ||||
|  !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE) | ||||
|  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| index 1fab3d5014..b1560d6218 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
 | ||||
| @@ -292,11 +292,14 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
|  INF  FatPkg/EnhancedFatDxe/Fat.inf | ||||
|  INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | ||||
|   | ||||
| +!ifndef $(EXCLUDE_SHELL_FROM_FD)
 | ||||
|  !if $(TOOL_CHAIN_TAG) != "XCODE5" | ||||
|  INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf | ||||
|  INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
| +!endif
 | ||||
| +
 | ||||
|   | ||||
|  !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE) | ||||
|  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
| diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| index 6dc48977a0..34cd97aac4 100644
 | ||||
| --- a/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| +++ b/OvmfPkg/OvmfPkgX64.fdf
 | ||||
| @@ -301,11 +301,14 @@ INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResour
 | ||||
|  INF  FatPkg/EnhancedFatDxe/Fat.inf | ||||
|  INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf | ||||
|   | ||||
| +!ifndef $(EXCLUDE_SHELL_FROM_FD)
 | ||||
|  !if $(TOOL_CHAIN_TAG) != "XCODE5" | ||||
|  INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf | ||||
|  INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf | ||||
|  !endif | ||||
|  INF  ShellPkg/Application/Shell/Shell.inf | ||||
| +!endif
 | ||||
| +
 | ||||
|   | ||||
|  !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE) | ||||
|  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf | ||||
| @ -0,0 +1,55 @@ | ||||
| From cdd42dea1b59285def15d38feaf2093f9f1688dd Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 13:49:43 +0200 | ||||
| Subject: [PATCH] ArmPlatformPkg: introduce fixed PCD for early hello message | ||||
|  (RH only) | ||||
| 
 | ||||
| Drew has proposed that ARM|AARCH64 platform firmware (especially virtual | ||||
| machine firmware) print a reasonably early, simple hello message to the | ||||
| serial port, regardless of debug mask settings. This should inform | ||||
| interactive users, and provide some rough help in localizing boot | ||||
| problems, even with restrictive debug masks. | ||||
| 
 | ||||
| If a platform doesn't want this feature, it should stick with the default | ||||
| empty string. | ||||
| 
 | ||||
| RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Suggested-by: Drew Jones <drjones@redhat.com> | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 7ce97b06421434c82095f01a1753a8c9c546cc30) | ||||
| (cherry picked from commit 20b1f1cbd0590aa71c6d99d35e23cf08e0707750) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  ArmPlatformPkg/ArmPlatformPkg.dec | 7 +++++++ | ||||
|  1 file changed, 7 insertions(+) | ||||
| 
 | ||||
| diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec
 | ||||
| index 696d636aac..1553e1ae92 100644
 | ||||
| --- a/ArmPlatformPkg/ArmPlatformPkg.dec
 | ||||
| +++ b/ArmPlatformPkg/ArmPlatformPkg.dec
 | ||||
| @@ -104,6 +104,13 @@
 | ||||
|    ## If set, this will swap settings for HDLCD RED_SELECT and BLUE_SELECT registers | ||||
|    gArmPlatformTokenSpaceGuid.PcdArmHdLcdSwapBlueRedSelect|FALSE|BOOLEAN|0x00000045 | ||||
|   | ||||
| +  #
 | ||||
| +  # Early hello message (ASCII string), printed to the serial port.
 | ||||
| +  # If set to the empty string, nothing is printed.
 | ||||
| +  # Otherwise, a trailing CRLF should be specified explicitly.
 | ||||
| +  #
 | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage|""|VOID*|0x00000100
 | ||||
| +
 | ||||
|  [PcdsFixedAtBuild.common,PcdsDynamic.common] | ||||
|    ## PL031 RealTimeClock | ||||
|    gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024 | ||||
							
								
								
									
										103
									
								
								0013-ArmPlatformPkg-PrePeiCore-write-early-hello-message-.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								0013-ArmPlatformPkg-PrePeiCore-write-early-hello-message-.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,103 @@ | ||||
| From f9b6876cb7e14d4e863cc33c8999ece2cf399ff6 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 13:59:20 +0200 | ||||
| Subject: [PATCH] ArmPlatformPkg: PrePeiCore: write early hello message to the | ||||
|  serial port (RH) | ||||
| 
 | ||||
| The FixedPcdGetSize() macro expands to an integer constant, therefore an | ||||
| optimizing compiler can eliminate the new code, if the platform DSC | ||||
| doesn't override the empty string (size=1) default of | ||||
| PcdEarlyHelloMessage. | ||||
| 
 | ||||
| RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit b16c4c505ce0e27305235533eac9236aa66f132e) | ||||
| (cherry picked from commit 742e5bf6d5ce5a1e73879d6e5c0dd00feda7a9ac) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  ArmPlatformPkg/PrePeiCore/MainMPCore.c          | 5 +++++ | ||||
|  ArmPlatformPkg/PrePeiCore/MainUniCore.c         | 5 +++++ | ||||
|  ArmPlatformPkg/PrePeiCore/PrePeiCore.h          | 1 + | ||||
|  ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf  | 2 ++ | ||||
|  ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf | 2 ++ | ||||
|  5 files changed, 15 insertions(+) | ||||
| 
 | ||||
| diff --git a/ArmPlatformPkg/PrePeiCore/MainMPCore.c b/ArmPlatformPkg/PrePeiCore/MainMPCore.c
 | ||||
| index d379ad8b7a..ff1672f94d 100644
 | ||||
| --- a/ArmPlatformPkg/PrePeiCore/MainMPCore.c
 | ||||
| +++ b/ArmPlatformPkg/PrePeiCore/MainMPCore.c
 | ||||
| @@ -111,6 +111,11 @@ PrimaryMain (
 | ||||
|    UINTN                       TemporaryRamBase; | ||||
|    UINTN                       TemporaryRamSize; | ||||
|   | ||||
| +  if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) {
 | ||||
| +    SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage),
 | ||||
| +      FixedPcdGetSize (PcdEarlyHelloMessage) - 1);
 | ||||
| +  }
 | ||||
| +
 | ||||
|    CreatePpiList (&PpiListSize, &PpiList); | ||||
|   | ||||
|    // Enable the GIC Distributor | ||||
| diff --git a/ArmPlatformPkg/PrePeiCore/MainUniCore.c b/ArmPlatformPkg/PrePeiCore/MainUniCore.c
 | ||||
| index 1500d2bd51..5b0790beac 100644
 | ||||
| --- a/ArmPlatformPkg/PrePeiCore/MainUniCore.c
 | ||||
| +++ b/ArmPlatformPkg/PrePeiCore/MainUniCore.c
 | ||||
| @@ -29,6 +29,11 @@ PrimaryMain (
 | ||||
|    UINTN                       TemporaryRamBase; | ||||
|    UINTN                       TemporaryRamSize; | ||||
|   | ||||
| +  if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) {
 | ||||
| +    SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage),
 | ||||
| +      FixedPcdGetSize (PcdEarlyHelloMessage) - 1);
 | ||||
| +  }
 | ||||
| +
 | ||||
|    CreatePpiList (&PpiListSize, &PpiList); | ||||
|   | ||||
|    // Adjust the Temporary Ram as the new Ppi List (Common + Platform Ppi Lists) is created at | ||||
| diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
 | ||||
| index 7140c7f5b5..1d69a2b468 100644
 | ||||
| --- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
 | ||||
| +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
 | ||||
| @@ -15,6 +15,7 @@
 | ||||
|  #include <Library/DebugLib.h> | ||||
|  #include <Library/IoLib.h> | ||||
|  #include <Library/PcdLib.h> | ||||
| +#include <Library/SerialPortLib.h>
 | ||||
|   | ||||
|  #include <PiPei.h> | ||||
|  #include <Ppi/TemporaryRamSupport.h> | ||||
| diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
 | ||||
| index fb01dd1a11..a6681c1032 100644
 | ||||
| --- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
 | ||||
| +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
 | ||||
| @@ -69,6 +69,8 @@
 | ||||
|    gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize | ||||
|    gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize | ||||
|   | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage
 | ||||
| +
 | ||||
|    gArmTokenSpaceGuid.PcdGicDistributorBase | ||||
|    gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase | ||||
|    gArmTokenSpaceGuid.PcdGicSgiIntId | ||||
| diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
 | ||||
| index e9eb092d3a..a02ff39b7a 100644
 | ||||
| --- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
 | ||||
| +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
 | ||||
| @@ -68,3 +68,5 @@
 | ||||
|    gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize | ||||
|   | ||||
|    gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack | ||||
| +
 | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage
 | ||||
							
								
								
									
										40
									
								
								0014-ArmVirtPkg-set-early-hello-message-RH-only.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								0014-ArmVirtPkg-set-early-hello-message-RH-only.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | ||||
| From 34a88714097996e34811d27b32e77ff71ca763a6 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Wed, 14 Oct 2015 14:07:17 +0200 | ||||
| Subject: [PATCH] ArmVirtPkg: set early hello message (RH only) | ||||
| 
 | ||||
| Print a friendly banner on QEMU, regardless of debug mask settings. | ||||
| 
 | ||||
| RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 | ||||
| Downstream only: | ||||
| <http://thread.gmane.org/gmane.comp.bios.edk2.devel/2996/focus=3433>. | ||||
| 
 | ||||
| Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: | ||||
| 
 | ||||
| - no changes
 | ||||
| 
 | ||||
| Contributed-under: TianoCore Contribution Agreement 1.0 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| (cherry picked from commit 5d4a15b9019728b2d96322bc679099da49916925) | ||||
| (cherry picked from commit 179df76dbb0d199bd905236e98775b4059c6502a) | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| ---
 | ||||
|  ArmVirtPkg/ArmVirtQemu.dsc | 1 + | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
| diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| index 24c6ea2e64..ad6af7f1c6 100644
 | ||||
| --- a/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| +++ b/ArmVirtPkg/ArmVirtQemu.dsc
 | ||||
| @@ -125,6 +125,7 @@
 | ||||
|    gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|$(TPM2_ENABLE) | ||||
|   | ||||
|  [PcdsFixedAtBuild.common] | ||||
| +  gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage|"UEFI firmware starting.\r\n"
 | ||||
|  !if $(ARCH) == AARCH64 | ||||
|    gArmTokenSpaceGuid.PcdVFPEnabled|1 | ||||
|  !endif | ||||
							
								
								
									
										75
									
								
								0015-Tweak-the-tools_def-to-support-cross-compiling.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								0015-Tweak-the-tools_def-to-support-cross-compiling.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,75 @@ | ||||
| From d8b75ad1013b21c089a1af579b510f32c49c5b14 Mon Sep 17 00:00:00 2001 | ||||
| From: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Date: Thu, 16 Aug 2018 15:45:47 -0400 | ||||
| Subject: [PATCH] Tweak the tools_def to support cross-compiling. | ||||
| 
 | ||||
| These files are meant for customization, so this is not upstream. | ||||
| 
 | ||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||||
| Signed-off-by: Cole Robinson <crobinso@redhat.com> | ||||
| ---
 | ||||
|  BaseTools/Conf/tools_def.template | 44 +++++++++++++++---------------- | ||||
|  1 file changed, 22 insertions(+), 22 deletions(-) | ||||
| 
 | ||||
| diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
 | ||||
| index 933b3160fd..e62ccc322d 100755
 | ||||
| --- a/BaseTools/Conf/tools_def.template
 | ||||
| +++ b/BaseTools/Conf/tools_def.template
 | ||||
| @@ -2350,17 +2350,17 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
 | ||||
|  ################## | ||||
|  # GCC5 IA32 definitions | ||||
|  ################## | ||||
| -*_GCC5_IA32_OBJCOPY_PATH         = DEF(GCC5_IA32_PREFIX)objcopy
 | ||||
| -*_GCC5_IA32_CC_PATH              = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_SLINK_PATH           = DEF(GCC5_IA32_PREFIX)gcc-ar
 | ||||
| -*_GCC5_IA32_DLINK_PATH           = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_ASLDLINK_PATH        = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_ASM_PATH             = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_PP_PATH              = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_VFRPP_PATH           = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_ASLCC_PATH           = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_ASLPP_PATH           = DEF(GCC5_IA32_PREFIX)gcc
 | ||||
| -*_GCC5_IA32_RC_PATH              = DEF(GCC5_IA32_PREFIX)objcopy
 | ||||
| +*_GCC5_IA32_OBJCOPY_PATH         = ENV(GCC5_IA32_PREFIX)objcopy
 | ||||
| +*_GCC5_IA32_CC_PATH              = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_SLINK_PATH           = ENV(GCC5_IA32_PREFIX)gcc-ar
 | ||||
| +*_GCC5_IA32_DLINK_PATH           = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_ASLDLINK_PATH        = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_ASM_PATH             = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_PP_PATH              = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_VFRPP_PATH           = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_ASLCC_PATH           = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_ASLPP_PATH           = ENV(GCC5_IA32_PREFIX)gcc
 | ||||
| +*_GCC5_IA32_RC_PATH              = ENV(GCC5_IA32_PREFIX)objcopy
 | ||||
|   | ||||
|  *_GCC5_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32 | ||||
|  *_GCC5_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie | ||||
| @@ -2382,17 +2382,17 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
 | ||||
|  ################## | ||||
|  # GCC5 X64 definitions | ||||
|  ################## | ||||
| -*_GCC5_X64_OBJCOPY_PATH          = DEF(GCC5_X64_PREFIX)objcopy
 | ||||
| -*_GCC5_X64_CC_PATH               = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_SLINK_PATH            = DEF(GCC5_X64_PREFIX)gcc-ar
 | ||||
| -*_GCC5_X64_DLINK_PATH            = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_ASLDLINK_PATH         = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_ASM_PATH              = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_PP_PATH               = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_VFRPP_PATH            = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_ASLCC_PATH            = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_ASLPP_PATH            = DEF(GCC5_X64_PREFIX)gcc
 | ||||
| -*_GCC5_X64_RC_PATH               = DEF(GCC5_X64_PREFIX)objcopy
 | ||||
| +*_GCC5_X64_OBJCOPY_PATH          = ENV(GCC5_X64_PREFIX)objcopy
 | ||||
| +*_GCC5_X64_CC_PATH               = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_SLINK_PATH            = ENV(GCC5_X64_PREFIX)gcc-ar
 | ||||
| +*_GCC5_X64_DLINK_PATH            = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_ASLDLINK_PATH         = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_ASM_PATH              = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_PP_PATH               = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_VFRPP_PATH            = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_ASLCC_PATH            = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_ASLPP_PATH            = ENV(GCC5_X64_PREFIX)gcc
 | ||||
| +*_GCC5_X64_RC_PATH               = ENV(GCC5_X64_PREFIX)objcopy
 | ||||
|   | ||||
|  *_GCC5_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS) -m64 | ||||
|  *_GCC5_X64_ASLDLINK_FLAGS        = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64 | ||||
							
								
								
									
										47
									
								
								0016-BaseTools-do-not-build-BrotliCompress-RH-only.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								0016-BaseTools-do-not-build-BrotliCompress-RH-only.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | ||||
| From cab35d13e43ef37e746befaa1f3c8200edf4e420 Mon Sep 17 00:00:00 2001 | ||||
| From: Laszlo Ersek <lersek@redhat.com> | ||||
| Date: Thu, 4 Jun 2020 13:34:12 +0200 | ||||
| Subject: [PATCH] BaseTools: do not build BrotliCompress (RH only) | ||||
| 
 | ||||
| Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] -> | ||||
| RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase: | ||||
| 
 | ||||
| - New patch.
 | ||||
| 
 | ||||
| BrotliCompress is not used for building ArmVirtPkg or OvmfPkg platforms. | ||||
| It depends on one of the upstream Brotli git submodules that we removed | ||||
| earlier in this rebase series. (See patch "remove upstream edk2's Brotli | ||||
| submodules (RH only"). | ||||
| 
 | ||||
| Do not attempt to build BrotliCompress. | ||||
| 
 | ||||
| Signed-off-by: Laszlo Ersek <lersek@redhat.com> | ||||
| ---
 | ||||
|  BaseTools/Source/C/GNUmakefile | 1 - | ||||
|  MdeModulePkg/MdeModulePkg.dec  | 1 - | ||||
|  2 files changed, 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile
 | ||||
| index df4eb64ea9..52777eaff1 100644
 | ||||
| --- a/BaseTools/Source/C/GNUmakefile
 | ||||
| +++ b/BaseTools/Source/C/GNUmakefile
 | ||||
| @@ -45,7 +45,6 @@ all: makerootdir subdirs
 | ||||
|  LIBRARIES = Common | ||||
|  VFRAUTOGEN = VfrCompile/VfrLexer.h | ||||
|  APPLICATIONS = \ | ||||
| -  BrotliCompress \
 | ||||
|    VfrCompile \ | ||||
|    EfiRom \ | ||||
|    GenFfs \ | ||||
| diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| index e562bed57e..7367adbaa3 100644
 | ||||
| --- a/MdeModulePkg/MdeModulePkg.dec
 | ||||
| +++ b/MdeModulePkg/MdeModulePkg.dec
 | ||||
| @@ -25,7 +25,6 @@
 | ||||
|    Include | ||||
|   | ||||
|  [Includes.Common.Private] | ||||
| -  Library/BrotliCustomDecompressLib/brotli/c/include
 | ||||
|   | ||||
|  [LibraryClasses] | ||||
|    ##  @libraryclass  Defines a set of methods to reset whole system. | ||||
							
								
								
									
										35
									
								
								40-edk2-ovmf-ia32-sb-enrolled.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								40-edk2-ovmf-ia32-sb-enrolled.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| { | ||||
|     "description": "OVMF for i386, with SB+SMM, SB enabled, MS certs enrolled", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_CODE.secboot.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_VARS.secboot.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "i386", | ||||
|             "machines": [ | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "enrolled-keys", | ||||
|         "requires-smm", | ||||
|         "secure-boot", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										36
									
								
								40-edk2-ovmf-x64-sb-enrolled.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								40-edk2-ovmf-x64-sb-enrolled.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| { | ||||
|     "description": "OVMF for x86_64, with SB+SMM, SB enabled, MS certs enrolled", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_VARS.secboot.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "x86_64", | ||||
|             "machines": [ | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "amd-sev", | ||||
|         "enrolled-keys", | ||||
|         "requires-smm", | ||||
|         "secure-boot", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										34
									
								
								50-edk2-ovmf-ia32-sb.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								50-edk2-ovmf-ia32-sb.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| { | ||||
|     "description": "OVMF for i386, with SB+SMM, empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_CODE.secboot.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "i386", | ||||
|             "machines": [ | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "requires-smm", | ||||
|         "secure-boot", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										35
									
								
								50-edk2-ovmf-x64-sb.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								50-edk2-ovmf-x64-sb.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| { | ||||
|     "description": "OVMF for x86_64, with SB+SMM, empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "x86_64", | ||||
|             "machines": [ | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "amd-sev", | ||||
|         "requires-smm", | ||||
|         "secure-boot", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										33
									
								
								60-edk2-ovmf-ia32.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								60-edk2-ovmf-ia32.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| { | ||||
|     "description": "OVMF for i386, without SB, without SMM, with empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_CODE.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf-ia32/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "i386", | ||||
|             "machines": [ | ||||
|                 "pc-i440fx-*", | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										34
									
								
								60-edk2-ovmf-x64.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								60-edk2-ovmf-x64.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| { | ||||
|     "description": "OVMF for x86_64, without SB, without SMM, with empty varstore", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_CODE.fd", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/ovmf/OVMF_VARS.fd", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "x86_64", | ||||
|             "machines": [ | ||||
|                 "pc-i440fx-*", | ||||
|                 "pc-q35-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "acpi-s3", | ||||
|         "amd-sev", | ||||
|         "verbose-dynamic" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										31
									
								
								70-edk2-aarch64-verbose.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								70-edk2-aarch64-verbose.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| { | ||||
|     "description": "UEFI firmware for aarch64, verbose logs", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/aarch64/vars-template-pflash.raw", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "aarch64", | ||||
|             "machines": [ | ||||
|                 "virt-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "verbose-static" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										31
									
								
								70-edk2-arm-verbose.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								70-edk2-arm-verbose.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| { | ||||
|     "description": "UEFI firmware for arm, verbose logs", | ||||
|     "interface-types": [ | ||||
|         "uefi" | ||||
|     ], | ||||
|     "mapping": { | ||||
|         "device": "flash", | ||||
|         "executable": { | ||||
|             "filename": "/usr/share/edk2/arm/QEMU_EFI-pflash.raw", | ||||
|             "format": "raw" | ||||
|         }, | ||||
|         "nvram-template": { | ||||
|             "filename": "/usr/share/edk2/arm/vars-template-pflash.raw", | ||||
|             "format": "raw" | ||||
|         } | ||||
|     }, | ||||
|     "targets": [ | ||||
|         { | ||||
|             "architecture": "arm", | ||||
|             "machines": [ | ||||
|                 "virt-*" | ||||
|             ] | ||||
|         } | ||||
|     ], | ||||
|     "features": [ | ||||
|         "verbose-static" | ||||
|     ], | ||||
|     "tags": [ | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										22
									
								
								RedHatSecureBootPkKek1.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								RedHatSecureBootPkKek1.pem
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDoDCCAoigAwIBAgIJAP71iOjzlsDxMA0GCSqGSIb3DQEBCwUAMFExKzApBgNV | ||||
| BAMTIlJlZCBIYXQgU2VjdXJlIEJvb3QgKFBLL0tFSyBrZXkgMSkxIjAgBgkqhkiG | ||||
| 9w0BCQEWE3NlY2FsZXJ0QHJlZGhhdC5jb20wHhcNMTQxMDMxMTExNTM3WhcNMzcx | ||||
| MDI1MTExNTM3WjBRMSswKQYDVQQDEyJSZWQgSGF0IFNlY3VyZSBCb290IChQSy9L | ||||
| RUsga2V5IDEpMSIwIAYJKoZIhvcNAQkBFhNzZWNhbGVydEByZWRoYXQuY29tMIIB | ||||
| IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkB+Ee42865cmgm2Iq4rJjGhw | ||||
| +d9LB7I3gwsCyGdoMJ7j8PCZSrhZV8ZB9jiL/mZMSek3N5IumAEeWxRQ5qiNJQ31 | ||||
| huarMMtAFuqNixaGcEM38s7Akd9xFI6ZDom2TG0kHozkL08l0LoG+MboGRh2cx2B | ||||
| bajYBc86yHsoyDajFg0pjJmaaNyrwE2Nv1q7K6k5SwSXHPk2u8U6hgSur9SCe+Cr | ||||
| 3kkFaPz2rmgabJBNVxk8ZGYD9sdSm/eUz5NqoWjJqs+Za7yqXgjnORz3+A+6Bn7x | ||||
| y+h23f4i2q06Xls06rPJ4E0EKX64YLkF77XZF1hWFmC5MDLwNkrD8nmNEkBw8wID | ||||
| AQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy | ||||
| YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPOlg4/8ZoQp7o0L0jUIutNWccuww | ||||
| HwYDVR0jBBgwFoAUPOlg4/8ZoQp7o0L0jUIutNWccuwwDQYJKoZIhvcNAQELBQAD | ||||
| ggEBAFxNkoi0gl8drYsR7N8GpnqlK583VQyNbgUArbcMQYlpz9ZlBptReNKtx7+c | ||||
| 3AVzf+ceORO06rYwfUB1q5xDC9+wwhu/MOD0/sDbYiGY9sWv3jtPSQrmHvmGsD8N | ||||
| 1tRGN9tUdF7/EcJgxnBYxRxv7LLYbm/DvDOHOKTzRGScNDsolCZ4J58WF+g7aQol | ||||
| qXM2fp43XOzoP9uR+RKzPc7n3RXDrowFIGGbld6br/qxXBzll+fDNBGF9YonJqRw | ||||
| NuwM9oM9kPc28/nzFdSQYr5TtK/TSa/v9HPoe3bkRCo3uoGkmQw6MSRxoOTktxrL | ||||
| R+SqIs/vdWGA40O3SFdzET14m2k= | ||||
| -----END CERTIFICATE----- | ||||
							
								
								
									
										26
									
								
								build-iso.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								build-iso.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # args | ||||
| dir="$1" | ||||
| 
 | ||||
| # cfg | ||||
| shell="$dir/Shell.efi" | ||||
| enroll="$dir/EnrollDefaultKeys.efi" | ||||
| root="$dir/image" | ||||
| vfat="$dir/shell.img" | ||||
| iso="$dir/UefiShell.iso" | ||||
| 
 | ||||
| # create non-partitioned (1.44 MB floppy disk) FAT image | ||||
| mkdir "$root" | ||||
| mkdir "$root"/efi | ||||
| mkdir "$root"/efi/boot | ||||
| cp "$shell" "$root"/efi/boot/bootx64.efi | ||||
| cp "$enroll" "$root" | ||||
| qemu-img convert --image-opts \ | ||||
| 	driver=vvfat,floppy=on,fat-type=12,label=UEFI_SHELL,dir="$root/" \ | ||||
| 	$vfat | ||||
| 
 | ||||
| # build ISO with FAT image file as El Torito EFI boot image | ||||
| genisoimage -input-charset ASCII -J -rational-rock \ | ||||
| 	-efi-boot "${vfat##*/}" -no-emul-boot -o "$iso" -- "$vfat" | ||||
| rm -rf "$root/" "$vfat" | ||||
							
								
								
									
										831
									
								
								edk2.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										831
									
								
								edk2.spec
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,831 @@ | ||||
| # RPM doesn't detect that code in /usr/share is python3, this forces it | ||||
| # https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build#Python_bytecompilation | ||||
| %global __python %{__python3} | ||||
| 
 | ||||
| %global edk2_stable_date 202008 | ||||
| %global edk2_stable_str  edk2-stable%{edk2_stable_date} | ||||
| %global openssl_version  1.1.1g | ||||
| %global qosb_version     20190521-gitf158f12 | ||||
| %global softfloat_version 20180726-gitb64af41 | ||||
| 
 | ||||
| # Enable this to skip secureboot enrollment, if problems pop up | ||||
| %global skip_enroll 0 | ||||
| 
 | ||||
| %define qosb_testing 0 | ||||
| 
 | ||||
| %ifarch x86_64 | ||||
| %define qosb_testing 1 | ||||
| %endif | ||||
| %if 0%{?fedora:1} | ||||
| %define cross 1 | ||||
| %endif | ||||
| 
 | ||||
| %ifarch %{ix86} x86_64 | ||||
| %if 0%{?fedora:1} | ||||
| %define build_ovmf_ia32 1 | ||||
| %endif | ||||
| %ifarch x86_64 | ||||
| %define build_ovmf_x64 1 | ||||
| %endif | ||||
| %endif | ||||
| %ifarch aarch64 | ||||
| %define build_aavmf_aarch64 1 | ||||
| %endif | ||||
| %ifarch %{arm} | ||||
| %define build_aavmf_arm 1 | ||||
| %endif | ||||
| %if 0%{?cross:1} | ||||
| %define build_ovmf_x64 1 | ||||
| %define build_ovmf_ia32 1 | ||||
| %define build_aavmf_aarch64 1 | ||||
| %define build_aavmf_arm 1 | ||||
| %endif | ||||
| 
 | ||||
| Name:           edk2 | ||||
| # Even though edk2 stable releases are YYYYMM, we need | ||||
| # to use YYYMMDD to avoid needing to bump package epoch | ||||
| # due to previous 'git' Version: | ||||
| Version:        %{edk2_stable_date}01stable | ||||
| Release:        1%{dist} | ||||
| Summary:        EFI Development Kit II | ||||
| 
 | ||||
| License:        BSD-2-Clause-Patent | ||||
| URL:            http://www.tianocore.org/edk2/ | ||||
| 
 | ||||
| Source0:        https://github.com/tianocore/edk2/archive/%{edk2_stable_str}.tar.gz#/%{edk2_stable_str}.tar.gz | ||||
| Source1:        openssl-%{openssl_version}-hobbled.tar.xz | ||||
| Source2:        ovmf-whitepaper-c770f8c.txt | ||||
| #Source3:        https://github.com/puiterwijk/qemu-ovmf-secureboot/archive/v{qosb_version}/qemu-ovmf-secureboot-{qosb_version}.tar.gz | ||||
| Source3:        qemu-ovmf-secureboot-%{qosb_version}.tar.xz | ||||
| Source4:        softfloat-%{softfloat_version}.tar.xz | ||||
| Source5:        RedHatSecureBootPkKek1.pem | ||||
| Source10:       hobble-openssl | ||||
| Source11:       build-iso.sh | ||||
| Source12:       update-tarball.sh | ||||
| Source13:       openssl-patch-to-tarball.sh | ||||
| 
 | ||||
| # Fedora-specific JSON "descriptor files" | ||||
| Source14:       40-edk2-ovmf-x64-sb-enrolled.json | ||||
| Source15:       50-edk2-ovmf-x64-sb.json | ||||
| Source16:       60-edk2-ovmf-x64.json | ||||
| Source17:       40-edk2-ovmf-ia32-sb-enrolled.json | ||||
| Source18:       50-edk2-ovmf-ia32-sb.json | ||||
| Source19:       60-edk2-ovmf-ia32.json | ||||
| Source20:       70-edk2-aarch64-verbose.json | ||||
| Source21:       70-edk2-arm-verbose.json | ||||
| 
 | ||||
| # non-upstream patches | ||||
| Patch0001: 0001-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-NvmExpre.patch | ||||
| Patch0002: 0002-OvmfPkg-silence-EFI_D_VERBOSE-0x00400000-in-the-DXE-.patch | ||||
| Patch0003: 0003-OvmfPkg-enable-DEBUG_VERBOSE.patch | ||||
| Patch0004: 0004-OvmfPkg-increase-max-debug-message-length-to-512.patch | ||||
| Patch0005: 0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch | ||||
| Patch0006: 0006-OvmfPkg-QemuVideoDxe-enable-debug-messages-in-VbeShi.patch | ||||
| Patch0007: 0007-MdeModulePkg-TerminalDxe-add-other-text-resolutions.patch | ||||
| Patch0008: 0008-MdeModulePkg-TerminalDxe-set-xterm-resolution-on-mod.patch | ||||
| Patch0009: 0009-OvmfPkg-take-PcdResizeXterm-from-the-QEMU-command-li.patch | ||||
| Patch0010: 0010-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch | ||||
| Patch0011: 0011-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch | ||||
| Patch0012: 0012-ArmPlatformPkg-introduce-fixed-PCD-for-early-hello-m.patch | ||||
| Patch0013: 0013-ArmPlatformPkg-PrePeiCore-write-early-hello-message-.patch | ||||
| Patch0014: 0014-ArmVirtPkg-set-early-hello-message-RH-only.patch | ||||
| Patch0015: 0015-Tweak-the-tools_def-to-support-cross-compiling.patch | ||||
| Patch0016: 0016-BaseTools-do-not-build-BrotliCompress-RH-only.patch | ||||
| 
 | ||||
| %if 0%{?cross:1} | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?fedora:1} | ||||
| # | ||||
| # actual firmware builds support cross-compiling.  edk2-tools | ||||
| # in theory should build everywhere without much trouble, but | ||||
| # in practice the edk2 build system barfs on archs it doesn't know | ||||
| # (such as ppc), so lets limit things to the known-good ones. | ||||
| # | ||||
| ExclusiveArch:  %{ix86} x86_64 %{arm} aarch64 | ||||
| %else | ||||
| ExclusiveArch:  x86_64 aarch64 | ||||
| %endif | ||||
| 
 | ||||
| BuildRequires:  gcc gcc-c++ | ||||
| BuildRequires:  python3 python3-devel | ||||
| BuildRequires:  libuuid-devel | ||||
| %if 0%{?cross:1} | ||||
| BuildRequires:  gcc-aarch64-linux-gnu | ||||
| BuildRequires:  gcc-arm-linux-gnu | ||||
| BuildRequires:  gcc-x86_64-linux-gnu | ||||
| %endif | ||||
| BuildRequires:  iasl | ||||
| BuildRequires:  nasm | ||||
| BuildRequires:  qemu-img | ||||
| BuildRequires:  genisoimage | ||||
| BuildRequires:  bc | ||||
| BuildRequires:  sed | ||||
| 
 | ||||
| # These are for QOSB | ||||
| BuildRequires:  python3-requests | ||||
| BuildRequires:  qemu-system-x86 | ||||
| %if %{?qosb_testing} | ||||
| # This is used for testing the enrollment: builds are run in a chroot, lacking | ||||
| # a kernel. The testing is only performed on x86_64 for now, but we can't make | ||||
| # the BuildRequires only on a specific arch, as that'd come through in the SRPM | ||||
| # NOTE: The actual enrollment needs to happen in all builds for all architectures, | ||||
| # because OVMF is built as noarch, which means that koji enforces that the build | ||||
| # results don't actually differ per arch, and then it picks a random arches' build | ||||
| # for the actual RPM. | ||||
| BuildRequires:  kernel-core | ||||
| %endif | ||||
| 
 | ||||
| %description | ||||
| EDK II is a development code base for creating UEFI drivers, applications | ||||
| and firmware images. | ||||
| 
 | ||||
| %package tools | ||||
| Summary:        EFI Development Kit II Tools | ||||
| %description tools | ||||
| This package provides tools that are needed to | ||||
| build EFI executables and ROMs using the GNU tools. | ||||
| 
 | ||||
| %package tools-python | ||||
| Summary:        EFI Development Kit II Tools | ||||
| Requires:       python3 | ||||
| BuildArch:      noarch | ||||
| 
 | ||||
| %description tools-python | ||||
| This package provides tools that are needed to build EFI executables | ||||
| and ROMs using the GNU tools.  You do not need to install this package; | ||||
| you probably want to install edk2-tools only. | ||||
| 
 | ||||
| %package tools-doc | ||||
| Summary:        Documentation for EFI Development Kit II Tools | ||||
| BuildArch:      noarch | ||||
| %description tools-doc | ||||
| This package documents the tools that are needed to | ||||
| build EFI executables and ROMs using the GNU tools. | ||||
| 
 | ||||
| %package qosb | ||||
| Summary:        Tool to enroll secureboot | ||||
| Requires:       python3 | ||||
| Buildarch:      noarch | ||||
| %description qosb | ||||
| This package contains QOSB (QEMU OVMF Secure Boot), which can enroll OVMF | ||||
| variable files to enforce Secure Boot. | ||||
| 
 | ||||
| 
 | ||||
| %if 0%{?build_ovmf_x64:1} | ||||
| %package ovmf | ||||
| Summary:        Open Virtual Machine Firmware | ||||
| # OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL | ||||
| # library. | ||||
| License:        BSD-2-Clause-Patent and OpenSSL | ||||
| Provides:       bundled(openssl) | ||||
| Provides:       OVMF = %{version}-%{release} | ||||
| Obsoletes:      OVMF < %{version}-%{release} | ||||
| BuildArch:      noarch | ||||
| %description ovmf | ||||
| EFI Development Kit II | ||||
| Open Virtual Machine Firmware (x64) | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?build_ovmf_ia32:1} | ||||
| %package ovmf-ia32 | ||||
| Summary:        Open Virtual Machine Firmware | ||||
| # OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL | ||||
| # library. | ||||
| License:        BSD-2-Clause-Patent and OpenSSL | ||||
| Provides:       bundled(openssl) | ||||
| BuildArch:      noarch | ||||
| %description ovmf-ia32 | ||||
| EFI Development Kit II | ||||
| Open Virtual Machine Firmware (ia32) | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?build_aavmf_aarch64:1} | ||||
| %package aarch64 | ||||
| Summary:        AARCH64 Virtual Machine Firmware | ||||
| Provides:       AAVMF = %{version}-%{release} | ||||
| Obsoletes:      AAVMF < %{version}-%{release} | ||||
| BuildArch:      noarch | ||||
| # No Secure Boot for AAVMF yet, but we include OpenSSL for the IPv6/HTTP boot stack. | ||||
| License:        BSD-2-Clause-Patent and OpenSSL | ||||
| Provides:       bundled(openssl) | ||||
| %description aarch64 | ||||
| EFI Development Kit II | ||||
| AARCH64 UEFI Firmware | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?build_aavmf_arm:1} | ||||
| %package arm | ||||
| Summary:        ARM Virtual Machine Firmware | ||||
| BuildArch:      noarch | ||||
| # No Secure Boot for ARMv7, but we include OpenSSL for the IPv6/HTTP boot stack. | ||||
| License:        BSD-2-Clause-Patent and OpenSSL | ||||
| %description arm | ||||
| EFI Development Kit II | ||||
| ARMv7 UEFI Firmware | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| %prep | ||||
| %setup -q -n edk2-%{edk2_stable_str} | ||||
| 
 | ||||
| # Ensure old shell and binary packages are not used | ||||
| rm -rf EdkShellBinPkg | ||||
| rm -rf EdkShellPkg | ||||
| rm -rf FatBinPkg | ||||
| rm -rf ShellBinPkg | ||||
| 
 | ||||
| # copy whitepaper into place | ||||
| cp -a -- %{SOURCE2} . | ||||
| # extract openssl into place | ||||
| tar -xf %{SOURCE1} --strip-components=1 --directory CryptoPkg/Library/OpensslLib/openssl | ||||
| # extract softfloat into place | ||||
| tar -xf %{SOURCE4} --strip-components=1 --directory ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3/ | ||||
| 
 | ||||
| # Extract QOSB | ||||
| tar -xf %{SOURCE3} | ||||
| mv qemu-ovmf-secureboot-%{qosb_version}/README.md README.qosb | ||||
| mv qemu-ovmf-secureboot-%{qosb_version}/LICENSE LICENSE.qosb | ||||
| 
 | ||||
| %autopatch -p1 | ||||
| base64 --decode < MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64 > MdeModulePkg/Logo/Logo-OpenSSL.bmp | ||||
| 
 | ||||
| # Extract OEM string from the RH cert, as described here | ||||
| # https://bugzilla.tianocore.org/show_bug.cgi?id=1747#c2 | ||||
| sed \ | ||||
|   -e 's/^-----BEGIN CERTIFICATE-----$/4e32566d-8e9e-4f52-81d3-5bb9715f9727:/' \ | ||||
|   -e '/^-----END CERTIFICATE-----$/d' \ | ||||
|   %{_sourcedir}/RedHatSecureBootPkKek1.pem \ | ||||
| | tr -d '\n' \ | ||||
| > PkKek1.oemstr | ||||
| 
 | ||||
| 
 | ||||
| %build | ||||
| export PYTHON_COMMAND=%{__python3} | ||||
| source ./edksetup.sh | ||||
| 
 | ||||
| # compiler | ||||
| CC_FLAGS="-t GCC5" | ||||
| 
 | ||||
| # parallel builds | ||||
| JOBS="%{?_smp_mflags}" | ||||
| JOBS="${JOBS#-j}" | ||||
| if test "$JOBS" != ""; then | ||||
|         CC_FLAGS="${CC_FLAGS} -n $JOBS" | ||||
| fi | ||||
| 
 | ||||
| # common features | ||||
| CC_FLAGS="$CC_FLAGS --cmd-len=65536 -b DEBUG --hash" | ||||
| CC_FLAGS="$CC_FLAGS -D NETWORK_IP6_ENABLE" | ||||
| CC_FLAGS="$CC_FLAGS -D NETWORK_TLS_ENABLE" | ||||
| CC_FLAGS="$CC_FLAGS -D NETWORK_HTTP_BOOT_ENABLE" | ||||
| CC_FLAGS="$CC_FLAGS -D TPM2_ENABLE" | ||||
| 
 | ||||
| # ovmf features | ||||
| OVMF_FLAGS="${CC_FLAGS}" | ||||
| OVMF_FLAGS="${OVMF_FLAGS} -D FD_SIZE_2MB" | ||||
| 
 | ||||
| # ovmf + secure boot features | ||||
| OVMF_SB_FLAGS="${OVMF_FLAGS}" | ||||
| OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SECURE_BOOT_ENABLE" | ||||
| OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SMM_REQUIRE" | ||||
| OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D EXCLUDE_SHELL_FROM_FD" | ||||
| 
 | ||||
| # arm firmware features | ||||
| ARM_FLAGS="${CC_FLAGS}" | ||||
| 
 | ||||
| unset MAKEFLAGS | ||||
| %make_build -C BaseTools \ | ||||
|   EXTRA_OPTFLAGS="%{optflags}" \ | ||||
|   EXTRA_LDFLAGS="%{__global_ldflags}" | ||||
| sed -i -e 's/-Werror//' Conf/tools_def.txt | ||||
| 
 | ||||
| 
 | ||||
| %if 0%{?cross:1} | ||||
| export GCC5_IA32_PREFIX="x86_64-linux-gnu-" | ||||
| export GCC5_X64_PREFIX="x86_64-linux-gnu-" | ||||
| export GCC5_AARCH64_PREFIX="aarch64-linux-gnu-" | ||||
| export GCC5_ARM_PREFIX="arm-linux-gnu-" | ||||
| %endif | ||||
| 
 | ||||
| # build ovmf (x64) | ||||
| %if 0%{?build_ovmf_x64:1} | ||||
| mkdir -p ovmf | ||||
| build ${OVMF_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc | ||||
| cp Build/OvmfX64/*/FV/OVMF_*.fd ovmf/ | ||||
| rm -rf Build/OvmfX64 | ||||
| 
 | ||||
| # build ovmf (x64) with secure boot | ||||
| build ${OVMF_SB_FLAGS} -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc | ||||
| cp Build/Ovmf3264/*/FV/OVMF_CODE.fd ovmf/OVMF_CODE.secboot.fd | ||||
| 
 | ||||
| # build ovmf (x64) shell iso with EnrollDefaultKeys | ||||
| cp Build/Ovmf3264/*/X64/Shell.efi ovmf/ | ||||
| cp Build/Ovmf3264/*/X64/EnrollDefaultKeys.efi ovmf | ||||
| sh %{_sourcedir}/build-iso.sh ovmf/ | ||||
| 
 | ||||
| %if !%{skip_enroll} | ||||
| python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \ | ||||
|     --qemu-binary /usr/bin/qemu-system-x86_64 \ | ||||
|     --ovmf-binary ovmf/OVMF_CODE.secboot.fd \ | ||||
|     --ovmf-template-vars ovmf/OVMF_VARS.fd \ | ||||
|     --uefi-shell-iso ovmf/UefiShell.iso \ | ||||
|     --oem-string "$(< PkKek1.oemstr)" \ | ||||
|     --skip-testing \ | ||||
|     ovmf/OVMF_VARS.secboot.fd | ||||
| %else | ||||
| # This isn't going to actually give secureboot, but makes json files happy | ||||
| # if we need to test disabling ovmf-vars-generator | ||||
| cp ovmf/OVMF_VARS.fd ovmf/OVMF_VARS.secboot.fd | ||||
| %endif | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| # build ovmf-ia32 | ||||
| %if 0%{?build_ovmf_ia32:1} | ||||
| mkdir -p ovmf-ia32 | ||||
| build ${OVMF_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc | ||||
| cp Build/OvmfIa32/*/FV/OVMF_CODE*.fd ovmf-ia32/ | ||||
| # cp VARS files from from ovmf/, which are all we need | ||||
| cp ovmf/OVMF_VARS*.fd ovmf-ia32/ | ||||
| rm -rf Build/OvmfIa32 | ||||
| 
 | ||||
| # build ovmf-ia32 with secure boot | ||||
| build ${OVMF_SB_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc | ||||
| cp Build/OvmfIa32/*/FV/OVMF_CODE.fd ovmf-ia32/OVMF_CODE.secboot.fd | ||||
| 
 | ||||
| # build ovmf-ia32 shell iso with EnrollDefaultKeys | ||||
| cp Build/OvmfIa32/*/IA32/Shell.efi ovmf-ia32/Shell.efi | ||||
| cp Build/OvmfIa32/*/IA32/EnrollDefaultKeys.efi ovmf-ia32/EnrollDefaultKeys.efi | ||||
| sh %{_sourcedir}/build-iso.sh ovmf-ia32/ | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| # build aarch64 firmware | ||||
| %if 0%{?build_aavmf_aarch64:1} | ||||
| mkdir -p aarch64 | ||||
| build $ARM_FLAGS -a AARCH64 -p ArmVirtPkg/ArmVirtQemu.dsc | ||||
| cp Build/ArmVirtQemu-AARCH64/DEBUG_*/FV/*.fd aarch64 | ||||
| dd of="aarch64/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64 | ||||
| dd of="aarch64/QEMU_EFI-pflash.raw" if="aarch64/QEMU_EFI.fd" conv=notrunc | ||||
| dd of="aarch64/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64 | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| # build ARMv7 firmware | ||||
| %if 0%{?build_aavmf_arm:1} | ||||
| mkdir -p arm | ||||
| build $ARM_FLAGS -a ARM -p ArmVirtPkg/ArmVirtQemu.dsc | ||||
| cp Build/ArmVirtQemu-ARM/DEBUG_*/FV/*.fd arm | ||||
| dd of="arm/QEMU_EFI-pflash.raw" if="/dev/zero" bs=1M count=64 | ||||
| dd of="arm/QEMU_EFI-pflash.raw" if="arm/QEMU_EFI.fd" conv=notrunc | ||||
| dd of="arm/vars-template-pflash.raw" if="/dev/zero" bs=1M count=64 | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %check | ||||
| %if 0%{?build_ovmf_x64:1} | ||||
| %if 0%{?qosb_testing} | ||||
| %if !%{skip_enroll} | ||||
| python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \ | ||||
|     --qemu-binary /usr/bin/qemu-system-x86_64 \ | ||||
|     --ovmf-binary ovmf/OVMF_CODE.secboot.fd \ | ||||
|     --ovmf-template-vars ovmf/OVMF_VARS.fd \ | ||||
|     --uefi-shell-iso ovmf/UefiShell.iso \ | ||||
|     --skip-enrollment \ | ||||
|     --print-output \ | ||||
|     --no-download \ | ||||
|     --kernel-path `rpm -ql kernel-core | grep "\/vmlinuz$" -m 1` \ | ||||
|     ovmf/OVMF_VARS.secboot.fd | ||||
| %endif | ||||
| %endif | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| %install | ||||
| cp CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl | ||||
| mkdir -p %{buildroot}%{_bindir} \ | ||||
|          %{buildroot}%{_datadir}/%{name}/Conf \ | ||||
|          %{buildroot}%{_datadir}/%{name}/Scripts | ||||
| install BaseTools/Source/C/bin/* \ | ||||
|         %{buildroot}%{_bindir} | ||||
| install BaseTools/BinWrappers/PosixLike/LzmaF86Compress \ | ||||
|         %{buildroot}%{_bindir} | ||||
| install BaseTools/BuildEnv \ | ||||
|         %{buildroot}%{_datadir}/%{name} | ||||
| install BaseTools/Conf/*.template \ | ||||
|         %{buildroot}%{_datadir}/%{name}/Conf | ||||
| install BaseTools/Scripts/GccBase.lds \ | ||||
|         %{buildroot}%{_datadir}/%{name}/Scripts | ||||
| 
 | ||||
| cp -R BaseTools/Source/Python %{buildroot}%{_datadir}/%{name}/Python | ||||
| for i in build BPDG Ecc GenDepex GenFds GenPatchPcdTable PatchPcdValue TargetTool Trim UPT; do | ||||
| echo '#!/bin/sh | ||||
| export PYTHONPATH=%{_datadir}/%{name}/Python | ||||
| exec python3 '%{_datadir}/%{name}/Python/$i/$i.py' "$@"' > %{buildroot}%{_bindir}/$i | ||||
|   chmod +x %{buildroot}%{_bindir}/$i | ||||
| done | ||||
| 
 | ||||
| # For distro-provided firmware packages, the specification | ||||
| # (https://git.qemu.org/?p=qemu.git;a=blob;f=docs/interop/firmware.json) | ||||
| # says the JSON "descriptor files" to be searched in this directory: | ||||
| # `/usr/share/firmware/`.  Create it. | ||||
| mkdir -p %{buildroot}/%{_datadir}/qemu/firmware | ||||
| 
 | ||||
| mkdir -p %{buildroot}/usr/share/%{name} | ||||
| %if 0%{?build_ovmf_x64:1} | ||||
| cp -a ovmf %{buildroot}/usr/share/%{name} | ||||
| # Libvirt hardcodes this directory name | ||||
| mkdir %{buildroot}/usr/share/OVMF | ||||
| ln -sf ../%{name}/ovmf/OVMF_CODE.fd                %{buildroot}/usr/share/OVMF | ||||
| ln -sf ../%{name}/ovmf/OVMF_CODE.secboot.fd        %{buildroot}/usr/share/OVMF | ||||
| ln -sf ../%{name}/ovmf/OVMF_VARS.fd                %{buildroot}/usr/share/OVMF | ||||
| ln -sf ../%{name}/ovmf/OVMF_VARS.secboot.fd        %{buildroot}/usr/share/OVMF | ||||
| ln -sf ../%{name}/ovmf/UefiShell.iso               %{buildroot}/usr/share/OVMF | ||||
| 
 | ||||
| for f in %{_sourcedir}/*edk2-ovmf-x64*.json; do | ||||
|     install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware | ||||
| done | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| %if 0%{?build_ovmf_ia32:1} | ||||
| cp -a ovmf-ia32 %{buildroot}/usr/share/%{name} | ||||
| 
 | ||||
| for f in %{_sourcedir}/*edk2-ovmf-ia32*.json; do | ||||
|     install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware | ||||
| done | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| %if 0%{?build_aavmf_aarch64:1} | ||||
| cp -a aarch64 %{buildroot}/usr/share/%{name} | ||||
| # Libvirt hardcodes this directory name | ||||
| mkdir %{buildroot}/usr/share/AAVMF | ||||
| ln -sf ../%{name}/aarch64/QEMU_EFI-pflash.raw      %{buildroot}/usr/share/AAVMF/AAVMF_CODE.fd | ||||
| ln -sf ../%{name}/aarch64/vars-template-pflash.raw %{buildroot}/usr/share/AAVMF/AAVMF_VARS.fd | ||||
| 
 | ||||
| for f in %{_sourcedir}/*edk2-aarch64*.json; do | ||||
|     install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware | ||||
| done | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| %if 0%{?build_aavmf_arm:1} | ||||
| cp -a arm %{buildroot}/usr/share/%{name} | ||||
| ln -sf ../%{name}/arm/QEMU_EFI-pflash.raw          %{buildroot}/usr/share/AAVMF/AAVMF32_CODE.fd | ||||
| 
 | ||||
| for f in %{_sourcedir}/*edk2-arm*.json; do | ||||
|     install -pm 644 $f %{buildroot}/%{_datadir}/qemu/firmware | ||||
| done | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?py_byte_compile:1} | ||||
| # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#manual-bytecompilation | ||||
| %py_byte_compile %{python3} %{buildroot}%{_datadir}/edk2/Python | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| install qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator %{buildroot}%{_bindir} | ||||
| 
 | ||||
| 
 | ||||
| %files tools | ||||
| %license License.txt | ||||
| %license LICENSE.openssl | ||||
| %{_bindir}/DevicePath | ||||
| %{_bindir}/EfiRom | ||||
| %{_bindir}/GenCrc32 | ||||
| %{_bindir}/GenFfs | ||||
| %{_bindir}/GenFv | ||||
| %{_bindir}/GenFw | ||||
| %{_bindir}/GenSec | ||||
| %{_bindir}/LzmaCompress | ||||
| %{_bindir}/LzmaF86Compress | ||||
| %{_bindir}/Split | ||||
| %{_bindir}/TianoCompress | ||||
| %{_bindir}/VfrCompile | ||||
| %{_bindir}/VolInfo | ||||
| %dir %{_datadir}/%{name} | ||||
| %{_datadir}/%{name}/BuildEnv | ||||
| %{_datadir}/%{name}/Conf | ||||
| %{_datadir}/%{name}/Scripts | ||||
| 
 | ||||
| %files tools-python | ||||
| %{_bindir}/build | ||||
| %{_bindir}/BPDG | ||||
| %{_bindir}/Ecc | ||||
| %{_bindir}/GenDepex | ||||
| %{_bindir}/GenFds | ||||
| %{_bindir}/GenPatchPcdTable | ||||
| %{_bindir}/PatchPcdValue | ||||
| %{_bindir}/TargetTool | ||||
| %{_bindir}/Trim | ||||
| %{_bindir}/UPT | ||||
| %dir %{_datadir}/%{name} | ||||
| %{_datadir}/%{name}/Python | ||||
| 
 | ||||
| %files tools-doc | ||||
| %doc BaseTools/UserManuals/*.rtf | ||||
| 
 | ||||
| %files qosb | ||||
| %license LICENSE.qosb | ||||
| %doc README.qosb | ||||
| %{_bindir}/ovmf-vars-generator | ||||
| 
 | ||||
| %if 0%{?build_ovmf_x64:1} | ||||
| %files ovmf | ||||
| %license OvmfPkg/License.txt | ||||
| %license LICENSE.openssl | ||||
| %doc OvmfPkg/README | ||||
| %doc ovmf-whitepaper-c770f8c.txt | ||||
| %dir /usr/share/%{name} | ||||
| %dir /usr/share/%{name}/ovmf | ||||
| %dir /usr/share/qemu/firmware | ||||
| /usr/share/%{name}/ovmf/OVMF*.fd | ||||
| /usr/share/%{name}/ovmf/*.efi | ||||
| /usr/share/%{name}/ovmf/*.iso | ||||
| /usr/share/qemu/firmware/*edk2-ovmf-x64*.json | ||||
| /usr/share/OVMF | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?build_ovmf_ia32:1} | ||||
| %files ovmf-ia32 | ||||
| %license OvmfPkg/License.txt | ||||
| %license LICENSE.openssl | ||||
| %doc OvmfPkg/README | ||||
| %doc ovmf-whitepaper-c770f8c.txt | ||||
| %dir /usr/share/%{name} | ||||
| %dir /usr/share/%{name}/ovmf-ia32 | ||||
| %dir /usr/share/qemu/firmware | ||||
| /usr/share/%{name}/ovmf-ia32/OVMF*.fd | ||||
| /usr/share/%{name}/ovmf-ia32/*.efi | ||||
| /usr/share/%{name}/ovmf-ia32/*.iso | ||||
| /usr/share/qemu/firmware/*edk2-ovmf-ia32*.json | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?build_aavmf_aarch64:1} | ||||
| %files aarch64 | ||||
| %license OvmfPkg/License.txt | ||||
| %license LICENSE.openssl | ||||
| %dir /usr/share/%{name} | ||||
| %dir /usr/share/%{name}/aarch64 | ||||
| %dir /usr/share/qemu/firmware | ||||
| /usr/share/%{name}/aarch64/QEMU*.fd | ||||
| /usr/share/%{name}/aarch64/*.raw | ||||
| /usr/share/qemu/firmware/*edk2-aarch64*.json | ||||
| /usr/share/AAVMF/AAVMF_* | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?build_aavmf_arm:1} | ||||
| %files arm | ||||
| %license OvmfPkg/License.txt | ||||
| %license LICENSE.openssl | ||||
| %dir /usr/share/%{name} | ||||
| %dir /usr/share/%{name}/arm | ||||
| %dir /usr/share/qemu/firmware | ||||
| /usr/share/%{name}/arm/QEMU*.fd | ||||
| /usr/share/%{name}/arm/*.raw | ||||
| /usr/share/qemu/firmware/*edk2-arm*.json | ||||
| /usr/share/AAVMF/AAVMF32_* | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Sep 16 2020 Cole Robinson <crobinso@redhat.com> - 20200801stable-1 | ||||
| - Update to edk2 stable 202008 | ||||
| 
 | ||||
| * Sat Sep 12 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 20200201stable-6 | ||||
| - Tweaks for aarch64/ARMv7 builds | ||||
| - Minor cleanups | ||||
| 
 | ||||
| * Tue Aug 04 2020 Cole Robinson <aintdiscole@gmail.com> - 20200201stable-5 | ||||
| - Fix build failures on rawhide | ||||
| 
 | ||||
| * Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200201stable-4 | ||||
| - Second attempt - Rebuilt for | ||||
|   https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild | ||||
| 
 | ||||
| * Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200201stable-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild | ||||
| 
 | ||||
| * Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 20200201stable-2 | ||||
| - Use make macros | ||||
| - https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro | ||||
| 
 | ||||
| * Mon Apr 13 2020 Cole Robinson <aintdiscole@gmail.com> - 20200201stable-1 | ||||
| - Update to stable-202002 | ||||
| 
 | ||||
| * Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20190501stable-5 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild | ||||
| 
 | ||||
| * Fri Sep 06 2019 Patrick Uiterwijk <puiterwijk@redhat.com> - 20190501stable-4 | ||||
| - Updated HTTP_BOOT option to new upstream value | ||||
| 
 | ||||
| * Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20190501stable-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild | ||||
| 
 | ||||
| * Mon Jul 15 2019 Cole Robinson <aintdiscole@gmail.com> - 20190501stable-2 | ||||
| - License is now BSD-2-Clause-Patent | ||||
| - Re-enable secureboot enrollment | ||||
| - Use qemu-ovmf-secureboot from git | ||||
| 
 | ||||
| * Thu Jul 11 2019 Cole Robinson <crobinso@redhat.com> - 20190501stable-1 | ||||
| - Update to stable-201905 | ||||
| - Update to openssl-1.1.1b | ||||
| - Ship VARS file for ovmf-ia32 (bug 1688596) | ||||
| - Ship Fedora-variant JSON "firmware descriptor files" | ||||
| - Resolves rhbz#1728652 | ||||
| 
 | ||||
| * Mon Mar 18 2019 Cole Robinson <aintdiscole@gmail.com> - 20190308stable-1 | ||||
| - Use YYYYMMDD versioning to fix upgrade path | ||||
| 
 | ||||
| * Fri Mar 15 2019 Cole Robinson <aintdiscole@gmail.com> - 201903stable-1 | ||||
| - Update to stable-201903 | ||||
| - Update to openssl-1.1.0j | ||||
| - Move to python3 deps | ||||
| 
 | ||||
| * Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20180815gitcb5f4f45ce-6 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Nov 14 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 20180815gitcb5f4f45ce-5 | ||||
| - Add -qosb dependency on python3 | ||||
| 
 | ||||
| * Fri Nov 9 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180815gitcb5f4f45ce-4 | ||||
| - Fix network boot via grub (bz 1648476) | ||||
| 
 | ||||
| * Wed Sep 12 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180815gitcb5f4f45ce-3 | ||||
| - Explicitly compile the scripts using py_byte_compile | ||||
| 
 | ||||
| * Fri Aug 31 2018 Cole Robinson <crobinso@redhat.com> - 20180815gitcb5f4f45ce-2 | ||||
| - Fix passing through RPM build flags (bz 1540244) | ||||
| 
 | ||||
| * Tue Aug 21 2018 Cole Robinson <crobinso@redhat.com> - 20180815gitcb5f4f45ce-1 | ||||
| - Update to edk2 git cb5f4f45ce, edk2-stable201808 | ||||
| - Update to qemu-ovmf-secureboot-1.1.3 | ||||
| - Enable TPM2 support | ||||
| 
 | ||||
| * Mon Jul 23 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-5 | ||||
| - Fixes for AMD SEV on OVMF_CODE.fd | ||||
| - Add Provides for bundled OpenSSL | ||||
| 
 | ||||
| * Wed Jul 18 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-4 | ||||
| - Enable IPv6 | ||||
| 
 | ||||
| * Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20180529gitee3198e672e2-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Jun 20 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-2 | ||||
| - Backport two bug fixes from RHEL: connect again virtio-rng devices, and | ||||
|   connect consoles unconditionally in OVMF (ARM firmware already did it) | ||||
| 
 | ||||
| * Tue May 29 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-1 | ||||
| - Rebase to ee3198e672e2 | ||||
| 
 | ||||
| * Tue May 01 2018 Cole Robinson <crobinso@redhat.com> - 20171011git92d07e4-7 | ||||
| - Bump release for new build | ||||
| 
 | ||||
| * Fri Mar 30 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 20171011git92d07e4-6 | ||||
| - Add qemu-ovmf-secureboot (qosb) | ||||
| - Generate pre-enrolled Secure Boot OVMF VARS files | ||||
| 
 | ||||
| * Wed Mar 07 2018 Paolo Bonzini <pbonzini@redhat.com> - 20171011git92d07e4-5 | ||||
| - Fix GCC 8 compilation | ||||
| - Replace dosfstools and mtools with qemu-img vvfat | ||||
| 
 | ||||
| * Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20171011git92d07e4-4 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild | ||||
| 
 | ||||
| * Fri Jan 19 2018 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-3 | ||||
| - Add OpenSSL patches from Fedora | ||||
| - Enable TLS_MODE | ||||
| 
 | ||||
| * Fri Nov 17 2017 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-2 | ||||
| - Backport patches 19-21 from RHEL | ||||
| - Add patches 22-24 to fix SEV slowness | ||||
| - Add fedora conditionals | ||||
| 
 | ||||
| * Tue Nov 14 2017 Paolo Bonzini <pbonzini@redhat.com> - 20171011git92d07e4-1 | ||||
| - Import source and patches from RHEL version | ||||
| - Update OpenSSL to 1.1.0e | ||||
| - Refresh 0099-Tweak-the-tools_def-to-support-cross-compiling.patch | ||||
| 
 | ||||
| * Mon Nov 13 2017 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-6 | ||||
| - Allow non-cross builds | ||||
| - Install /usr/share/OVMF and /usr/share/AAVMF | ||||
| 
 | ||||
| * Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170209git296153c5-5 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170209git296153c5-4 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Mar 15 2017 Cole Robinson <crobinso@redhat.com> - 20170209git296153c5-3 | ||||
| - Ship ovmf-ia32 package (bz 1424722) | ||||
| 
 | ||||
| * Thu Feb 16 2017 Cole Robinson <crobinso@redhat.com> - 20170209git296153c5-2 | ||||
| - Update EnrollDefaultKeys patch (bz #1398743) | ||||
| 
 | ||||
| * Mon Feb 13 2017 Paolo Bonzini <pbonzini@redhat.com> - 20170209git296153c5-1 | ||||
| - Rebase to git master | ||||
| - New patch 0010 fixes failure to build from source. | ||||
| 
 | ||||
| * Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20161105git3b25ca8-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild | ||||
| 
 | ||||
| * Sun Nov 06 2016 Cole Robinson <crobinso@redhat.com> - 20161105git3b25ca8-1 | ||||
| - Rebase to git master | ||||
| 
 | ||||
| * Fri Sep  9 2016 Tom Callaway <spot@fedoraproject.org> - 20160418gita8c39ba-5 | ||||
| - replace legally problematic openssl source with "hobbled" tarball | ||||
| 
 | ||||
| * Thu Jul 21 2016 Gerd Hoffmann <kraxel@redhat.com> - 20160418gita8c39ba-4 | ||||
| - Also build for armv7. | ||||
| 
 | ||||
| * Tue Jul 19 2016 Gerd Hoffmann <kraxel@redhat.com> 20160418gita8c39ba-3 | ||||
| - Update EnrollDefaultKeys patch. | ||||
| 
 | ||||
| * Fri Jul 8 2016 Paolo Bonzini <pbonzini@redhat.com> - 20160418gita8c39ba-2 | ||||
| - Distribute edk2-ovmf on aarch64 | ||||
| 
 | ||||
| * Sat May 21 2016 Cole Robinson <crobinso@redhat.com> - 20160418gita8c39ba-1 | ||||
| - Distribute edk2-aarch64 on x86 (bz #1338027) | ||||
| 
 | ||||
| * Mon Apr 18 2016 Gerd Hoffmann <kraxel@redhat.com> 20160418gita8c39ba-0 | ||||
| - Update to latest git. | ||||
| - Add firmware builds (FatPkg is free now). | ||||
| 
 | ||||
| * Mon Feb 15 2016 Cole Robinson <crobinso@redhat.com> 20151127svn18975-3 | ||||
| - Fix FTBFS gcc warning (bz 1307439) | ||||
| 
 | ||||
| * Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20151127svn18975-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild | ||||
| 
 | ||||
| * Fri Nov 27 2015 Paolo Bonzini <pbonzini@redhat.com> - 20151127svn18975-1 | ||||
| - Rebase to 20151127svn18975-1 | ||||
| - Linker script renamed to GccBase.lds | ||||
| 
 | ||||
| * Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20150519svn17469-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild | ||||
| 
 | ||||
| * Tue May 19 2015 Paolo Bonzini <pbonzini@redhat.com> - 20150519svn17469-1 | ||||
| - Rebase to 20150519svn17469-1 | ||||
| - edk2-remove-tree-check.patch now upstream | ||||
| 
 | ||||
| * Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 20140724svn2670-6 | ||||
| - Rebuilt for GCC 5 C++11 ABI change | ||||
| 
 | ||||
| * Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20140724svn2670-5 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild | ||||
| 
 | ||||
| * Thu Jul 24 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140724svn2670-1 | ||||
| - Rebase to 20140724svn2670-1 | ||||
| 
 | ||||
| * Tue Jun 24 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140624svn2649-1 | ||||
| - Use standalone .tar.xz from buildtools repo | ||||
| 
 | ||||
| * Tue Jun 24 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140328svn15376-4 | ||||
| - Install BuildTools/BaseEnv | ||||
| 
 | ||||
| * Mon Jun 23 2014 Paolo Bonzini <pbonzini@redhat.com> - 20140328svn15376-3 | ||||
| - Rebase to get GCC48 configuration | ||||
| - Package EDK_TOOLS_PATH as /usr/share/edk2 | ||||
| - Package "build" and LzmaF86Compress too, as well as the new | ||||
|   tools Ecc and TianoCompress. | ||||
| 
 | ||||
| * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20131114svn14844-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild | ||||
| 
 | ||||
| * Thu Nov 14 2013 Paolo Bonzini <pbonzini@redhat.com> - 20131114svn14844-1 | ||||
| - Upgrade to r14844. | ||||
| - Remove upstreamed parts of patch 1. | ||||
| 
 | ||||
| * Fri Nov 8 2013 Paolo Bonzini <pbonzini@redhat.com> - 20130515svn14365-7 | ||||
| - Make BaseTools compile on ARM. | ||||
| 
 | ||||
| * Fri Aug 30 2013 Paolo Bonzini <pbonzini@redhat.com> - 20130515svn14365-6 | ||||
| - Revert previous change; firmware packages should be noarch, and building | ||||
|   BaseTools twice is simply wrong. | ||||
| 
 | ||||
| * Mon Aug 19 2013 Kay Sievers <kay@redhat.com> - 20130515svn14365-5 | ||||
| - Add sub-package with EFI shell | ||||
| 
 | ||||
| * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130515svn14365-4 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild | ||||
| 
 | ||||
| * Thu May 23 2013 Dan Horák <dan[at]danny.cz> 20130515svn14365-3 | ||||
| - set ExclusiveArch | ||||
| 
 | ||||
| * Thu May 16 2013 Paolo Bonzini <pbonzini@redhat.com> 20130515svn14365-2 | ||||
| - Fix edk2-tools-python Requires | ||||
| 
 | ||||
| * Wed May 15 2013 Paolo Bonzini <pbonzini@redhat.com> 20130515svn14365-1 | ||||
| - Split edk2-tools-doc and edk2-tools-python | ||||
| - Fix Python BuildRequires | ||||
| - Remove FatBinPkg at package creation time. | ||||
| - Use fully versioned dependency. | ||||
| - Add comment on how to generate the sources. | ||||
| 
 | ||||
| * Thu May 2 2013 Paolo Bonzini <pbonzini@redhat.com> 20130502.g732d199-1 | ||||
| - Create. | ||||
							
								
								
									
										40
									
								
								hobble-openssl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								hobble-openssl
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,40 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # Quit out if anything fails. | ||||
| set -e | ||||
| 
 | ||||
| # Clean out patent-or-otherwise-encumbered code. | ||||
| # MDC-2: 4,908,861 13/03/2007 - expired, we do not remove it but do not enable it anyway | ||||
| # IDEA:  5,214,703 07/01/2012 - expired, we do not remove it anymore | ||||
| # RC5:   5,724,428 01/11/2015 - expired, we do not remove it anymore | ||||
| # EC:    ????????? ??/??/2020 | ||||
| # SRP:   ????????? ??/??/2017 - expired, we do not remove it anymore | ||||
| 
 | ||||
| # Remove assembler portions of IDEA, MDC2, and RC5. | ||||
| # (find crypto/rc5/asm -type f | xargs -r rm -fv) | ||||
| 
 | ||||
| for c in `find crypto/bn -name "*gf2m.c"`; do | ||||
| 	echo Destroying $c | ||||
| 	> $c | ||||
| done | ||||
| 
 | ||||
| for c in `find crypto/ec -name "ec2*.c" -o -name "ec_curve.c"`; do | ||||
| 	echo Destroying $c | ||||
| 	> $c | ||||
| done | ||||
| 
 | ||||
| for c in `find test -name "ectest.c"`; do | ||||
| 	echo Destroying $c | ||||
| 	> $c | ||||
| done | ||||
| 
 | ||||
| for h in `find crypto ssl apps test -name "*.h"` ; do | ||||
| 	echo Removing EC2M references from $h | ||||
| 	cat $h | \ | ||||
| 	awk    'BEGIN {ech=1;} \ | ||||
| 		/^#[ \t]*ifndef.*NO_EC2M/ {ech--; next;} \ | ||||
|                 /^#[ \t]*if/ {if(ech < 1) ech--;} \ | ||||
| 		{if(ech>0) {;print $0};} \ | ||||
| 		/^#[ \t]*endif/ {if(ech < 1) ech++;}' > $h.hobbled && \ | ||||
| 	mv $h.hobbled $h | ||||
| done | ||||
							
								
								
									
										63
									
								
								openssl-patch-to-tarball.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								openssl-patch-to-tarball.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | ||||
| #! /bin/sh | ||||
| 
 | ||||
| : << \EOF | ||||
|   For importing the hobbled OpenSSL tarball from Fedora, the following | ||||
|   steps are necessary. Note that both the "sources" file format and the | ||||
|   pkgs.fedoraproject.org directory structure have changed, accommodating | ||||
|   SHA512 checksums. | ||||
| 
 | ||||
|   # in a separate directory | ||||
|   fedpkg clone -a openssl | ||||
|   cd openssl | ||||
|   fedpkg switch-branch master | ||||
|   gitk -- sources | ||||
| 
 | ||||
|   # the commit that added the 1.1.0h hobbled tarball is 6eb8f620273 | ||||
|   # subject "update to upstream version 1.1.0h" | ||||
|   git checkout 6eb8f620273 | ||||
| 
 | ||||
|   # fetch the hobbled tarball and verify the checksum | ||||
|   ( | ||||
|     set -e | ||||
|     while read HASH_TYPE FN EQ HASH; do | ||||
|       # remove leading and trailing parens | ||||
|       FN="${FN#(*}" | ||||
|       FN="${FN%*)}" | ||||
|       wget \ | ||||
|         http://pkgs.fedoraproject.org/repo/pkgs/openssl/$FN/sha512/$HASH/$FN | ||||
|     done <sources | ||||
|     sha512sum -c sources | ||||
|   ) | ||||
| 
 | ||||
|   # unpack the hobbled tarball into edk2, according to | ||||
|   # "OpenSSL-HOWTO.txt"; WORKSPACE stands for the root of the edk2 project | ||||
|   # tree | ||||
|   tar -x --xz -f openssl-1.1.0h-hobbled.tar.xz | ||||
|   mv -- openssl-1.1.0h "$WORKSPACE"/CryptoPkg/Library/OpensslLib/openssl | ||||
| 
 | ||||
|   # update the INF files as described in "OpenSSL-HOWTO.txt", then save | ||||
|   # the results as a single commit | ||||
|   (cd "$WORKSPACE"/CryptoPkg/Library/OpensslLib && perl process_files.pl) | ||||
|   git rm --cached CryptoPkg/Library/OpensslLib/openssl | ||||
|   git commit -m'remove openssl submodule' | ||||
|   git add -A CryptoPkg/Library/OpensslLib/openssl | ||||
|   git commit -m'add openssl 1.1.0h' | ||||
|   git format-patch -1 | ||||
| 
 | ||||
| Then run the patch through this script which will build a new tar file. | ||||
| EOF | ||||
| 
 | ||||
| set -e | ||||
| edk2_githash=$(awk '/^%global edk2_githash/ {print $3}' edk2.spec) | ||||
| openssl_version=$(awk '/^%global openssl_version/ {print $3}' edk2.spec) | ||||
| mkdir -p tianocore-openssl-${openssl_version} | ||||
| (exec 3> openssl-${openssl_version}-hobbled.tar.xz | ||||
|  cd tianocore-openssl-${openssl_version} | ||||
|  git init . | ||||
|  git config core.whitespace cr-at-eol | ||||
|  git config am.keepcr true | ||||
|  git am | ||||
|  git archive --format=tar --prefix=tianocore-edk2-${edk2_githash}/ \ | ||||
|   HEAD CryptoPkg/Library/OpensslLib/ | \ | ||||
|   xz -9ev >&3) < $1 | ||||
| rm -rf tianocore-openssl-${openssl_version} | ||||
							
								
								
									
										2422
									
								
								ovmf-whitepaper-c770f8c.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2422
									
								
								ovmf-whitepaper-c770f8c.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								sources
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| SHA512 (softfloat-20180726-gitb64af41.tar.xz) = f079debd1bfcc0fe64329a8947b0689ef49246793edcdd28a2879f6550c652b0cf0f53ac4f6f5ab61ac4f7933972e0019d0ab63eb9931b6884c2909f3a5ead30 | ||||
| SHA512 (qemu-ovmf-secureboot-20190521-gitf158f12.tar.xz) = 4dde79864996398cc8cc39cdf859c1ca64ca0d360b0e5e41af9d9f054d36e1c4999e4324c5140a7329bec9b8d131e773ab8ebc28aba8d3f9f63c25517ee9221a | ||||
| SHA512 (edk2-stable202008.tar.gz) = c32340104f27b9b85f79e934cc9eeb739d47b01e13975c88f39b053e9bc5a1ecfe579ab3b63fc7747cc328e104b337b53d41deb4470c3f20dbbd5552173a4666 | ||||
| SHA512 (openssl-1.1.1g-hobbled.tar.xz) = 7cd351d8fd4a028edcdc6804d8b73af7ff5693ab96cafd4f9252534d4e8e9000e22aefa45f51db490da52d89f4e5b41d02452be0b516fbb0fe84e36d5ca54971 | ||||
							
								
								
									
										54
									
								
								update-tarball.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								update-tarball.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| user="tianocore" | ||||
| repo="edk2" | ||||
| branch="master" | ||||
| 
 | ||||
| uri="https://github.com/${user}/${repo}" | ||||
| api="${uri/github.com/api.github.com/repos}" | ||||
| tar="${uri/github.com/codeload.github.com}/legacy.tar.gz" | ||||
| 
 | ||||
| if test $# -ge 1; then | ||||
|   hash=$1 | ||||
|   short=$1 | ||||
| else | ||||
|   hash=$(curl -s "${api}/git/refs/heads/${branch}" | grep '"sha"' | cut -d'"' -f4) | ||||
|   if test "$hash" = ""; then | ||||
| 	echo "# failed to fetch $branch hash" | ||||
| 	exit 1 | ||||
|   fi | ||||
|   short=$(echo $hash | sed -e 's/^\(.......\).*/\1/') | ||||
| fi | ||||
| 
 | ||||
| if test $# = 2; then | ||||
|   date=$2 | ||||
| else | ||||
|   date=$(curl -s "${api}/git/commits/$hash" | awk ' | ||||
| 	  /"committer"/	{ c=1 } | ||||
| 	  /"date"/	{ if (c) { print } } | ||||
|   ' | cut -d'"' -f4) | ||||
|   date="${date%T*}" | ||||
|   date="${date//-/}" | ||||
| fi | ||||
| 
 | ||||
| name="${repo}-${date}-${short}.tar.xz" | ||||
| 
 | ||||
| if test -f "$name"; then | ||||
| 	echo "# exists: $name" | ||||
| 	exit 1 | ||||
| fi | ||||
| 
 | ||||
| echo | ||||
| echo "# specfile update: version $date, release $short" | ||||
| sed -i.old \ | ||||
|         -e "s/\(%global edk2_date[ \t]\+\)\(.*\)/\1$date/" \ | ||||
|         -e "s/\(%global edk2_githash[ \t]\+\)\(.*\)/\1$short/" \ | ||||
|         edk2.spec | ||||
| diff -u edk2.spec.old edk2.spec | ||||
| 
 | ||||
| echo | ||||
| echo "# cleanup ..." | ||||
| rm -vf ${repo}-*.tar* | ||||
| echo "# fetching $name ..." | ||||
| curl "$tar/$hash" | zcat | xz -9e > "$name" | ||||
| exit 0 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user