Tweak data abort handler to try and avoid recusrive aborts confusing AMBControl
Jeffrey Lee authored
Detail:
  s/VMSAv6 - The code to detect aborting MVA ops now only runs if the aborting instruction wasn't located in application space.
  This is a workaround for an issue where:
  (a) The aborting instruction is in application space
  (b) The aborting instruction is attempting to access memory located in the same page as itself
  (c) That page is not mapped in (despite the fact that code is being executed from it)
  Originally attempting to load the aborting the instruction would have triggered another abort, causing AMBControl to map in the page and resume the first abort handler. The first abort handler would then have determined that it wasn't an MVA op and called AMBControl, only to be told by AMBControl that it wasn't a lazy fixup abort (even though it really was), thus triggering the abort environment handler.
  By ignoring instructions located in application space the second abort is avoided, allowing AMBControl to correctly process the abort.
Admin:
  Tested on rev A2 BB-xM.
  Fixes issue with DPScan crashing - http://www.freelists.org/post/davidpilling/DPScan-ARMini-crash
  Still need to determine how the ICache is able to become so out of sync with the DCache & page tables.


Version 5.35, 4.79.2.98.2.40. Tagged as 'Kernel-5_35-4_79_2_98_2_40'
8df5d3f5
Name Last commit Last update
..
AMBControl Add hdr.Variables to the C header export, fix ARMv6 issues
PMF Add ID's for CPUClk HAL device. Trim dead code.
vdu 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
ARM600 Fix bug when creating code variables via OS_SetVarVal, remove errant line from s.ARM600, automatically enable alignment exceptions if NoUnaligned is TRUE (Cortex branch)
ARMops Kernel fixes for ARMv6
Arthur2 Fix bug when creating code variables via OS_SetVarVal, remove errant line from s.ARM600, automatically enable alignment exceptions if NoUnaligned is TRUE (Cortex branch)
Arthur3 Support for keys held down in the HAL at power on.
ArthurSWIs Miscellaneous v6-related updates
ChangeDyn Update OS_IICOp to support multiple IIC buses
Convrsions 32-bit Kernel.
End Commit of kernel as featured in release 5.00.
ExtraSWIs * Converted to building with ObjAsm (but still a single object file using ORG).
FlashROM 32-bit Kernel.
GetAll Update Cortex branch of kernel to support HALSize env variable. Export C version of hdr.OSEntries.
HAL Kernel fixes for ARMv6
HeapMan * Converted to building with ObjAsm (but still a single object file using ORG).
HeapSort Lots of Tungsten work.
KbdResA1 32-bit Kernel.
KbdResPC Lots of Tungsten work.
KbdResRCMM Reimplement enhancements to kernel Dynamic Area support from
Kernel Update Cortex branch of kernel to support HALSize env variable. Export C version of hdr.OSEntries.
LibKern More HAL work. IOMD HAL work in progress. Lots of my own little build scripts. Don't touch this.
MEMC1 Import from cleaned 360 CD
MEMC2 Import from cleaned 360 CD
MOSDict Import from cleaned 360 CD
MemInfo
Middle
ModHand
MoreComms
MoreSWIs
Morris
MsgCode
NewIRQs
NewReset
Oscli
SWINaming
Super1
SysComms
TickEvents
UnSqueeze
Utility
VMSAv6