From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0C25121161B08 for ; Wed, 3 Apr 2019 00:00:40 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Apr 2019 00:00:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,303,1549958400"; d="scan'208";a="139707662" Received: from shwdeopenpsi014.ccr.corp.intel.com ([10.239.9.8]) by fmsmga007.fm.intel.com with ESMTP; 03 Apr 2019 00:00:38 -0700 From: Hao Wu To: edk2-devel@lists.01.org Cc: Hao Wu , Jordan Justen , Laszlo Ersek , Ard Biesheuvel , David Woodhouse , Ray Ni Date: Wed, 3 Apr 2019 15:00:28 +0800 Message-Id: <20190403070036.1404-1-hao.a.wu@intel.com> X-Mailer: git-send-email 2.12.0.windows.1 Subject: [RFC PATCH v1 0/8] Duplicate 8259/8254 components in OvmfPkg X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Apr 2019 07:00:41 -0000 This series is also available at: https://github.com/hwu25/edk2/tree/ovmf_8259_8254_rfcv1 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 | 48 ++ OvmfPkg/8259InterruptControllerDxe/8259.inf | 51 ++ OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 5 +- OvmfPkg/8254TimerDxe/Timer.h | 191 ++++++ OvmfPkg/8259InterruptControllerDxe/8259.h | 224 +++++++ OvmfPkg/Include/Protocol/Legacy8259.h | 297 +++++++++ OvmfPkg/8254TimerDxe/Timer.c | 407 +++++++++++++ OvmfPkg/8259InterruptControllerDxe/8259.c | 628 ++++++++++++++++++++ OvmfPkg/8254TimerDxe/Timer.uni | 22 + OvmfPkg/8254TimerDxe/TimerExtra.uni | 20 + OvmfPkg/8259InterruptControllerDxe/Legacy8259.uni | 22 + OvmfPkg/8259InterruptControllerDxe/Legacy8259Extra.uni | 20 + 19 files changed, 1975 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