hw_arndale: consider timer resets
On Arndale, the kernel timer resets to the initial value of the last count-down and continues as soon as it reaches zero. We must check this via the interrupt status when we read out the timer value and in case return 0 instead of the real value. fix #1299
This commit is contained in:
parent
2f5fbe73d3
commit
09e6c3457f
|
@ -245,8 +245,8 @@ class Genode::Timer : public Mmio
|
||||||
unsigned value(unsigned const cpu)
|
unsigned value(unsigned const cpu)
|
||||||
{
|
{
|
||||||
switch (cpu) {
|
switch (cpu) {
|
||||||
case 0: return read<L0_frcnto>();
|
case 0: return read<L0_int_cstat::Frcnt>() ? 0 : read<L0_frcnto>();
|
||||||
case 1: return read<L1_frcnto>();
|
case 1: return read<L1_int_cstat::Frcnt>() ? 0 : read<L1_frcnto>();
|
||||||
default: return 0;
|
default: return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue