arm: AArch64 report cache size correctly when reading CTR_EL0
authorBjoern A. Zeeb <baz21@cam.ac.uk>
Thu, 9 Feb 2017 23:54:28 +0000 (18:54 -0500)
committerBjoern A. Zeeb <baz21@cam.ac.uk>
Thu, 9 Feb 2017 23:54:28 +0000 (18:54 -0500)
commitf0786704db90b0020066d19652886b9311516b45
tree56bcb4ec6451d4df047abb9b8ac91ee69638aa0a
parent653b4657e67f24339abd18a154a57ca5d578b4b9
arm: AArch64 report cache size correctly when reading CTR_EL0

Trying to read MISCREG_CTR_EL0 on AArch64 returned 0 as is was not
implmemented.  With that an operating system relying on the cache line
sizes reported in order to manage the caches would (a) panic given the
returned value 0 is not valid (high bit is RES1) or (b) worst case would
assume a cache line size of 4 doing a tremendous amount of extra
instruction work (including fetching).  Return the same values as for ARMv7
as the fields seem to be the same, or RES0/1 seem to be reported
accordingly for AArch64

In collaboration with:  Andrew Turner

Testing Done: Checked on FreeBSD boots with extra printfs;  also observed a
reduction of a factor of about 10 in instruction fetches for a simple
micro-test.

Reviewed at http://reviews.gem5.org/r/3667/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
src/arch/arm/isa.cc