Commit r1287 (which only increases the L11 timer frequency from 10Hz to 100Hz) causes HelenOS boot to become extremely unreliable under QEMU. Revert the frequency fix so the timer frequency is set back to 10Hz, but instead increase the get-msecs counter increment by 10. This ensures that while the timer resolution is degraded, get-msecs still returns a reasonably time accurate value.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk CC: Artyom Tarasenko atar4qemu@gmail.com --- openbios-devel/arch/sparc64/entry.S | 2 +- openbios-devel/arch/sparc64/vectors.S | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/openbios-devel/arch/sparc64/entry.S b/openbios-devel/arch/sparc64/entry.S index d03128a..33632b1 100644 --- a/openbios-devel/arch/sparc64/entry.S +++ b/openbios-devel/arch/sparc64/entry.S @@ -17,7 +17,7 @@
#define PROM_ADDR 0x1fff0000000 #define CFG_ADDR 0x1fe02000510 -#define HZ 1 * 1000 * 1000 +#define HZ 10 * 1000 * 1000 #define TICK_INT_DIS 0x8000000000000000
.globl entry, _entry diff --git a/openbios-devel/arch/sparc64/vectors.S b/openbios-devel/arch/sparc64/vectors.S index 927c1cd..cd2b988 100644 --- a/openbios-devel/arch/sparc64/vectors.S +++ b/openbios-devel/arch/sparc64/vectors.S @@ -30,7 +30,7 @@ #define PROM_ADDR 0x1fff0000000 #define SER_ADDR 0x1fe020003f8 #define TICK_INT_DIS 0x8000000000000000 -#define TICK_INTERVAL 1*1000*1000 +#define TICK_INTERVAL 10*1000*1000
.section ".text.vectors", "ax" .align 16384 @@ -630,7 +630,7 @@ softint_irq: nop
ldx [%g3], %g1 - add %g1, 10, %g1 ! 100Hz = 10ms + add %g1, 100, %g1 ! 10Hz = 100ms stx %g1, [%g3]
tick_rearm: