From 21ca2f28e6c5e006820956d7d56150184faeef85 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Tue, 21 Feb 2017 14:43:00 +0100 Subject: [PATCH] OvmfPkg/QemuFwCfg: introduce FW_CFG_IO_SELECTOR, adapt the package Introduce the FW_CFG_IO_SELECTOR macro for IO Port 0x510 (the Selector Register), and update all references in OvmfPkg. Cc: Jordan Justen Suggested-by: Jordan Justen Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Reviewed-by: Jordan Justen --- OvmfPkg/Include/IndustryStandard/QemuFwCfg.h | 6 ++++++ OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | 2 +- OvmfPkg/SmmControl2Dxe/SmiFeatures.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/Include/IndustryStandard/QemuFwCfg.h b/OvmfPkg/Include/IndustryStandard/QemuFwCfg.h index c7e9b5c382..776bfe88ae 100644 --- a/OvmfPkg/Include/IndustryStandard/QemuFwCfg.h +++ b/OvmfPkg/Include/IndustryStandard/QemuFwCfg.h @@ -42,6 +42,12 @@ #define FW_CFG_DMA_CTL_SELECT BIT3 #define FW_CFG_DMA_CTL_WRITE BIT4 +// +// The fw_cfg registers can be found at these IO Ports, on the IO-mapped +// platforms (Ia32 and X64). +// +#define FW_CFG_IO_SELECTOR 0x510 + // // Numerically defined keys. // diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c index 7744873217..1387ea85f3 100644 --- a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c +++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c @@ -42,7 +42,7 @@ QemuFwCfgSelectItem ( ) { DEBUG ((EFI_D_INFO, "Select Item: 0x%x\n", (UINT16)(UINTN) QemuFwCfgItem)); - IoWrite16 (0x510, (UINT16)(UINTN) QemuFwCfgItem); + IoWrite16 (FW_CFG_IO_SELECTOR, (UINT16)(UINTN) QemuFwCfgItem); } diff --git a/OvmfPkg/SmmControl2Dxe/SmiFeatures.c b/OvmfPkg/SmmControl2Dxe/SmiFeatures.c index e070969065..352ffa0173 100644 --- a/OvmfPkg/SmmControl2Dxe/SmiFeatures.c +++ b/OvmfPkg/SmmControl2Dxe/SmiFeatures.c @@ -281,7 +281,7 @@ SaveSmiFeatures ( S3SaveState, // This EFI_BOOT_SCRIPT_IO_WRITE_OPCODE, // OpCode EfiBootScriptWidthUint16, // Width - (UINT64)0x510, // Address + (UINT64)FW_CFG_IO_SELECTOR, // Address (UINTN)1, // Count &FeaturesOkItemAsUint16 // Buffer ); -- 2.39.2