qemu-patch-raspberry4/target
Julian Brown 0f1944735b Correct value of ARM Cortex-A8 MVFR1 register.
The value of the MVFR1 (Media and VFP Feature Register 1) register for
the Cortex-A8 appears to be incorrect (according to the TRM, DDI0344K),
with the "full denormal arithmetic" and "propagation of NaN" fields
holding both 0 instead of both 1.

I had a go tracing the history of the use of this value, and it seems
it's always just been wrong in QEMU: maybe it was derived from early
documentation, or guessed based on the use of a "VFP Lite" implementation
in the Cortex-A8.

Depending on the startup/early-boot code in use, this can manifest as
failure to perform denormal arithmetic properly: in our case, selecting
a Cortex-A8 CPU when using QEMU as an instruction-set simulator for
bare-metal GCC testing caused tests using denormal arithmetic to
fail. Problems might be masked (or not occur) when using a full OS kernel
with suitable trap handlers (I'm not sure).

Signed-off-by: Julian Brown <julian@codesourcery.com>
Message-id: 1481130858-31767-1-git-send-email-julian@codesourcery.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-12-27 14:59:23 +00:00
..
alpha Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm Correct value of ARM Cortex-A8 MVFR1 register. 2016-12-27 14:59:23 +00:00
cris Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
i386 x86: implement la57 paging mode 2016-12-22 16:01:04 +01:00
lm32 Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
m68k Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
microblaze Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
mips Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
moxie Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
openrisc Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
ppc Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
s390x Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sh4 Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sparc Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
tilegx Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
tricore Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
unicore32 Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
xtensa Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00