summaryrefslogtreecommitdiff
path: root/BeagleBoardPkg
diff options
context:
space:
mode:
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2011-07-20 15:13:06 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2011-07-20 15:13:06 +0000
commit2d08d17d651d81d267f00dcfdff0a46013b49907 (patch)
tree71a83510ff87942ddc3224a4c7869cbd7f3eb1a7 /BeagleBoardPkg
parent3e4df77fc34c9b06e78dbced73a3e7ae57315d65 (diff)
downloadedk2-2d08d17d651d81d267f00dcfdff0a46013b49907.zip
edk2-2d08d17d651d81d267f00dcfdff0a46013b49907.tar.gz
edk2-2d08d17d651d81d267f00dcfdff0a46013b49907.tar.bz2
BeagleBoardPkg: Ensure there is no pending IRQ and disable timer
When the BeagleBoard UEFI is started from a 1st (or 2nd stage) boot loader it is possible there are still some pending IRQ. Clean the interrupts before starting the BeagleBoard UEFI. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12034 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'BeagleBoardPkg')
-rwxr-xr-xBeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c13
-rwxr-xr-xBeagleBoardPkg/Library/BeagleBoardLib/Clock.c1
2 files changed, 12 insertions, 2 deletions
diff --git a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c
index a74b60d..5a40cce 100755
--- a/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c
+++ b/BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoard.c
@@ -17,6 +17,8 @@
#include <Library/DebugLib.h>
#include <Library/PcdLib.h>
+#include <Omap3530/Omap3530.h>
+
VOID
PadConfiguration (
VOID
@@ -101,12 +103,21 @@ ArmPlatformGetBootMode (
VOID
ArmPlatformNormalInitialize (
VOID
- ) {
+ )
+{
//Set up Pin muxing.
PadConfiguration ();
// Set up system clocking
ClockInit ();
+
+ // Turn off the functional clock for Timer 3
+ MmioAnd32 (CM_FCLKEN_PER, 0xFFFFFFFF ^ CM_ICLKEN_PER_EN_GPT3_ENABLE );
+ ArmDataSyncronizationBarrier ();
+
+ // Clear IRQs
+ MmioWrite32 (INTCPS_CONTROL, INTCPS_CONTROL_NEWIRQAGR);
+ ArmDataSyncronizationBarrier ();
}
/**
diff --git a/BeagleBoardPkg/Library/BeagleBoardLib/Clock.c b/BeagleBoardPkg/Library/BeagleBoardLib/Clock.c
index 8de24f8..1985a6b 100755
--- a/BeagleBoardPkg/Library/BeagleBoardLib/Clock.c
+++ b/BeagleBoardPkg/Library/BeagleBoardLib/Clock.c
@@ -46,7 +46,6 @@ ClockInit (
// Turn on functional & interface clocks to various Peripherals.
MmioOr32(CM_FCLKEN_PER, CM_FCLKEN_PER_EN_UART3_ENABLE
- | CM_FCLKEN_PER_EN_GPT3_ENABLE
| CM_FCLKEN_PER_EN_GPT4_ENABLE
| CM_FCLKEN_PER_EN_GPIO2_ENABLE
| CM_FCLKEN_PER_EN_GPIO3_ENABLE