summaryrefslogtreecommitdiff
path: root/src/arch/arm/linux/system.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm/linux/system.cc')
-rw-r--r--src/arch/arm/linux/system.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/arch/arm/linux/system.cc b/src/arch/arm/linux/system.cc
index e714cc913..bc7fd2cb6 100644
--- a/src/arch/arm/linux/system.cc
+++ b/src/arch/arm/linux/system.cc
@@ -80,13 +80,20 @@ LinuxArmSystem::LinuxArmSystem(Params *p)
}
// With ARM udelay() is #defined to __udelay
- uDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>(
- "__udelay", "__udelay", 1000, 0);
+ // newer kernels use __loop_udelay and __loop_const_udelay symbols
+ uDelaySkipEvent = addKernelFuncEvent<UDelayEvent>(
+ "__loop_udelay", "__udelay", 1000, 0);
+ if(!uDelaySkipEvent)
+ uDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>(
+ "__udelay", "__udelay", 1000, 0);
// constant arguments to udelay() have some precomputation done ahead of
// time. Constant comes from code.
- constUDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>(
- "__const_udelay", "__const_udelay", 1000, 107374);
+ constUDelaySkipEvent = addKernelFuncEvent<UDelayEvent>(
+ "__loop_const_udelay", "__const_udelay", 1000, 107374);
+ if(!constUDelaySkipEvent)
+ constUDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>(
+ "__const_udelay", "__const_udelay", 1000, 107374);
secDataPtrAddr = 0;
secDataAddr = 0;