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
..
AMBControl Add support for shareable pages and additional access privileges
PMF Remove a dead function
vdu Delete lots of old switches
ARM600 Prevent disabling of the D-cache on Cortex-A53. Other OS_MMUControl 0 fixes.
ARMops Prevent disabling of the D-cache on Cortex-A53. Other OS_MMUControl 0 fixes.
Arthur2 Delete lots of old switches
Arthur3 Delete lots of old switches
ArthurSWIs Resolve 2x header clashes
CPUFeatures Revise comments - it's multiprocessing extensions, not virtualisation
ChangeDyn Fix CAM indexing in DoTheGrowPageUnavailable
Convrsions Add OS_Memory 24 implementation. Change OS_ValidateAddress to use it. Fix kernel leaving the physical access MB in a messy state. Try and protect against infinite abort loops caused by bad environment handlers.
Exceptions Tidy things up a bit
ExtraSWIs Tidy things up a bit
GetAll Add support for shareable pages and additional access privileges
HAL Add support for shareable pages and additional access privileges
HeapMan Delete lots of old switches
HeapSort Avoid unnecesssary remainder calculations
Kernel Add support for shareable pages and additional access privileges
LibKern More HAL work. IOMD HAL work in progress. Lots of my own little build scripts. Don't touch this.
MOSDict Import from cleaned 360 CD
MemInfo Add support for shareable pages and additional access privileges
Middle Fix OS_BreakPt when called from SVC mode
ModHand Resolve 2x header clashes
MoreComms Resolve 2x header clashes
MoreSWIs Delete pre-HAL and 26bit code
MsgCode
NewIRQs
NewReset
Oscli
SWINaming
Super1
SysComms
TickEvents
UnSqueeze
Utility
VMSAv6