summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg/Drivers
diff options
context:
space:
mode:
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2012-03-26 11:05:25 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2012-03-26 11:05:25 +0000
commite28e0ad9d7cb0c5ea0d07dd5e7bf3c7cde7e95ba (patch)
tree1f6e533b3a0c966e727ef1f392a2a260588fe7c9 /ArmPlatformPkg/Drivers
parent8dd9e159b9ec56ed3f52a12bb4189088e8fbfcb2 (diff)
downloadedk2-e28e0ad9d7cb0c5ea0d07dd5e7bf3c7cde7e95ba.zip
edk2-e28e0ad9d7cb0c5ea0d07dd5e7bf3c7cde7e95ba.tar.gz
edk2-e28e0ad9d7cb0c5ea0d07dd5e7bf3c7cde7e95ba.tar.bz2
ArmPlatformPkg/SP805WatchdogDxe: Removed late initialization capability from the watchdog
The watchdog driver is a UEFI architectural driver. The watchdog controller is always going to be intialized. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13137 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/Drivers')
-rw-r--r--ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c43
-rw-r--r--ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf4
2 files changed, 8 insertions, 39 deletions
diff --git a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c
index c2ebffd..a9ec88c 100644
--- a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c
+++ b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805Watchdog.c
@@ -1,6 +1,6 @@
/** @file
*
-* Copyright (c) 2011, ARM Limited. All rights reserved.
+* Copyright (c) 2011-2012, ARM Limited. All rights reserved.
*
* This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License
@@ -29,8 +29,6 @@
EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
-BOOLEAN mSP805Initialized = FALSE;
-
EFI_STATUS
SP805Identify (
VOID
@@ -217,14 +215,6 @@ SP805SetTimerPeriod (
EFI_STATUS Status = EFI_SUCCESS;
UINT64 Ticks64bit;
- // Initialize the hardware if not already done
- if( !mSP805Initialized ) {
- Status = SP805Initialize();
- if (EFI_ERROR(Status)) {
- goto EXIT;
- }
- }
-
SP805Unlock();
if( TimerPeriod == 0 ) {
@@ -298,14 +288,6 @@ SP805GetTimerPeriod (
return EFI_INVALID_PARAMETER;
}
- // Initialize the hardware if not already done
- if( !mSP805Initialized ) {
- Status = SP805Initialize();
- if (EFI_ERROR(Status)) {
- goto EXIT;
- }
- }
-
// Check if the watchdog is stopped
if ( (MmioRead32(SP805_WDOG_CONTROL_REG) & SP805_WDOG_CTRL_INTEN) == 0 ) {
// It is stopped, so return zero.
@@ -372,11 +354,14 @@ EFI_WATCHDOG_TIMER_ARCH_PROTOCOL gWatchdogTimer = {
**/
EFI_STATUS
+EFIAPI
SP805Initialize (
- VOID
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
+ EFI_HANDLE Handle;
// Check if the SP805 hardware watchdog module exists on board
Status = SP805Identify();
@@ -398,23 +383,7 @@ SP805Initialize (
// Prohibit any rogue access to SP805 registers
SP805Lock();
-
- mSP805Initialized = TRUE;
-
- EXIT:
- return Status;
-}
-
-EFI_STATUS
-EFIAPI
-SP805InstallProtocol (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
-
+
//
// Make sure the Watchdog Timer Architectural Protocol has not been installed in the system yet.
// This will avoid conflicts with the universal watchdog
diff --git a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
index 7cacf69..ffcd501 100644
--- a/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
+++ b/ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
@@ -1,6 +1,6 @@
/** @file
*
-* Copyright (c) 2011, ARM Limited. All rights reserved.
+* Copyright (c) 2011-2012, ARM Limited. All rights reserved.
*
* This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License
@@ -19,7 +19,7 @@
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
- ENTRY_POINT = SP805InstallProtocol
+ ENTRY_POINT = SP805Initialize
[Sources.common]
SP805Watchdog.c