Prevent disabling of the D-cache on Cortex-A53. Other OS_MMUControl 0 fixes.
Jeffrey Lee authored
Detail:
  On Cortex-A53, a load/store exclusive instruction will abort if it targets non-cacheable memory or if the D-cache is disabled. Since the correct operation of these instructions is important to the OS and apps, it makes sense to prevent *Cache Off / OS_MMUControl 0 from being able to disable the D-cache on such systems.
  hdr/OSMisc, s/ARMops - Add new OS_PlatformFeatures 0 flag to indicate when disabling of the D-cache isn't allowed
  s/VMSAv6 - Update MMUControl_ModifyControl to force the D-cache to always be on when the "unsafe to disable D-cache" PlatformFeatures flag is set. Also, disallow mismatched I+D cache settings if we have an L2 cache (causes issues due to IMB ops only flushing to PoU), and fix dangerous D-cache invalidation when it's only the I-cache which is being disabled
  s/ARM600 - Clean up MMUControl_ModifyControl a bit so that it's a closer match to the VMSAv6 version, and fix the dangerous D-cache invalidation.
Admin:
  Tested on ARM11, Cortex-A7, Cortex-A53


Version 5.62. Tagged as 'Kernel-5_62'
d7299988
Name Last commit Last update
..
ExportVals 32-bit Kernel.
ARMops Support for ARMv8
Copro15ops ARMv7 fixes
EnvNumbers Import from cleaned 360 CD
EtherDevice Change struct layouts for C module compatibility
HALDevice New HAL device ID reservations
HALEntries Add OS_ReadSysInfo 9,6 and 9,7
KernelWS Add support for shareable pages and additional access privileges
KeyWS Delete STB code
ModHand Resolve 2x header clashes
OSEntries Teach the kernel about different memory attributes
OSMem Add support for shareable pages and additional access privileges
OSMisc Prevent disabling of the D-cache on Cortex-A53. Other OS_MMUControl 0 fixes.
OSRSI6 Add initial support for "physical memory pools"
Options Add support for shareable pages and additional access privileges
PL310 Add ARMops for PL310 L2 cache controller
PublicWS Fix HiProcVecs build. Remove old-style PublicWS definitions.
RISCOS Resync with allocations database
VIDCList Reverse interlace deprecation decision
Variables Import from cleaned 360 CD
VduExt Improve Service_DisplayStatus, Service_DisplayChanged functionality
VideoDevice Update VDU HAL device for new OMAPVideo driver, fix MVA-based cache/TLB maintenance ops aborting on ARMv7, add warning to VDU driver about inconsistent state variables during screen mode changes