From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: hao.a.wu@intel.com) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by groups.io with SMTP; Tue, 09 Apr 2019 18:06:30 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Apr 2019 18:06:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,331,1549958400"; d="scan'208";a="336457716" Received: from shwdeopenpsi014.ccr.corp.intel.com ([10.239.9.8]) by fmsmga005.fm.intel.com with ESMTP; 09 Apr 2019 18:06:28 -0700 From: "Wu, Hao A" To: devel@edk2.groups.io Cc: Hao Wu , Jordan Justen , Laszlo Ersek , Ard Biesheuvel , David Woodhouse , Ray Ni Subject: [PATCH v2 0/8] Duplicate 8259/8254 components in OvmfPkg Date: Wed, 10 Apr 2019 09:06:20 +0800 Message-Id: <20190410010628.19708-1-hao.a.wu@intel.com> X-Mailer: git-send-email 2.12.0.windows.1 This series is also available at: https://github.com/hwu25/edk2/tree/ovmf_8259_8254_v2 V2 changes: Due to the file license change, rebase the whole series onto the tip of the master branch. The 'Contributed-under' tag is removed from the log messages as well. The V2 series keeps all the 'Reviewed-by' tags from Laszlo from the previous version of the series. V1 history: As a sub-task to remove the IntelFrameworkPkg (BZ-1604), 8259InterruptControllerDxe driver (PcAtChipsetPkg) Legacy8259 protocol (IntelFrameworkPkg) 8254TimerDxe driver (PcAtChipsetPkg) will be removed in the near future. Meanwhile, OVMF will still require those components (due to CSM support & HPET emulation stability concern). Thus, the series will copy the below 8259/8254 components: A. 8259InterruptControllerDxe driver (PcAtChipsetPkg) B. Two 8259 related PCDs (PcAtChipsetPkg) C. Legacy8259 protocol (IntelFrameworkPkg) D. 8254TimerDxe driver (PcAtChipsetPkg) in the OvmfPkg to address the above-mentioned issue. Tests done for the proposed series: A. OvmfPkg build pass for VS2015 & GCC5 tool chains; B. Boot to Shell with commands: qemu-system-x86_64.exe -pflash \OVMF.fd -debugcon file:boot.log -global isa-debugcon.iobase=0x402 qemu-system-x86_64.exe -machine q35 -pflash \OVMF.fd -debugcon file:boot.log -global isa-debugcon.iobase=0x402 C. 'stall X' command under Shell to verify the timer is working properly. (Please note that there will be a subsequent patch to remove the 8259/8254 components after platforms dropping the dependencies on them.) Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: David Woodhouse Cc: Ray Ni Hao Wu (8): OvmfPkg: Copy 8259InterruptControllerDxe driver from PcAtChipsetPkg OvmfPkg: Copy Legacy8259 protocol definitions from IntelFrameworkPkg OvmfPkg/OvmfPkg.dec: Add 8259-related PCDs in OVMF DEC file OvmfPkg/8259InterruptControllerDxe: Update to make it build for OVMF OvmfPkg/AcpiPlatformDxe: Consume the 8259 PCD defined in OvmfPkg OvmfPkg: Copy 8254TimerDxe driver from PcAtChipsetPkg OvmfPkg/8254TimerDxe: Update to make it build for OVMF OvmfPkg: Update DSC/FDF files to consume 8259/8254 drivers in OvmfPkg OvmfPkg/OvmfPkg.dec | 29 +- OvmfPkg/OvmfPkgIa32.dsc | 6 +- OvmfPkg/OvmfPkgIa32X64.dsc | 6 +- OvmfPkg/OvmfPkgX64.dsc | 6 +- OvmfPkg/OvmfPkgIa32.fdf | 4 +- OvmfPkg/OvmfPkgIa32X64.fdf | 4 +- OvmfPkg/OvmfPkgX64.fdf | 4 +- OvmfPkg/8254TimerDxe/8254Timer.inf | 42 ++ OvmfPkg/8259InterruptControllerDxe/8259.inf | 45 ++ OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 5 +- OvmfPkg/8254TimerDxe/Timer.h | 185 ++++++ OvmfPkg/8259InterruptControllerDxe/8259.h | 218 +++++++ OvmfPkg/Include/Protocol/Legacy8259.h | 291 +++++++++ OvmfPkg/8254TimerDxe/Timer.c | 401 +++++++++++++ OvmfPkg/8259InterruptControllerDxe/8259.c | 622 ++++++++++++++++++++ OvmfPkg/8254TimerDxe/Timer.uni | 16 + OvmfPkg/8254TimerDxe/TimerExtra.uni | 14 + OvmfPkg/8259InterruptControllerDxe/Legacy8259.uni | 16 + OvmfPkg/8259InterruptControllerDxe/Legacy8259Extra.uni | 14 + 19 files changed, 1909 insertions(+), 19 deletions(-) create mode 100644 OvmfPkg/8254TimerDxe/8254Timer.inf create mode 100644 OvmfPkg/8259InterruptControllerDxe/8259.inf create mode 100644 OvmfPkg/8254TimerDxe/Timer.h create mode 100644 OvmfPkg/8259InterruptControllerDxe/8259.h create mode 100644 OvmfPkg/Include/Protocol/Legacy8259.h create mode 100644 OvmfPkg/8254TimerDxe/Timer.c create mode 100644 OvmfPkg/8259InterruptControllerDxe/8259.c create mode 100644 OvmfPkg/8254TimerDxe/Timer.uni create mode 100644 OvmfPkg/8254TimerDxe/TimerExtra.uni create mode 100644 OvmfPkg/8259InterruptControllerDxe/Legacy8259.uni create mode 100644 OvmfPkg/8259InterruptControllerDxe/Legacy8259Extra.uni -- 2.12.0.windows.1