PPC64: Fix timebase
commite3ea652962383a2ffc05b2f1b10a0e97542eb6f8
authorAlexander Graf <agraf@suse.de>
Mon, 21 Dec 2009 11:24:17 +0000 (21 12:24 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Mon, 21 Dec 2009 12:42:37 +0000 (21 13:42 +0100)
tree7ce782d8d043830083b0aed139da7f28ea591383
parentc4b3be39661d158b3480ad6982dfdee36ec67c7a
PPC64: Fix timebase

On PPC we have a 64-bit time base. Usually (PPC32) this is accessed using
two separate 32 bit SPR accesses to SPR_TBU and SPR_TBL.

On PPC64 the SPR_TBL register acts as 64 bit though, so we get the full
64 bits as return value. If we only take the lower ones, fine. But Linux
wants to see all 64 bits or it breaks.

This patch makes PPC64 Linux work even after TB crossed the 32-bit boundary,
which usually happened a few seconds after bootup.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
darwin-user/main.c
hw/ppc.c
linux-user/main.c
target-ppc/cpu.h
target-ppc/op_helper.c