• Jeffrey Lee's avatar
    Perform extra TLB maintenance on ARMv6+. Other cache/TLB maintenance tweaks. · aca7f939
    Jeffrey Lee authored
    Detail:
      s/ARMops - Implement Cache_RangeThreshold for PL310 (helps AMBControl to decide what type of TLB maintenance is best). Fix MMU_ChangingEntry_PL310 doing more work than is necessary; was attempting to flush all ways for a given address tag, when really it should have only been flushing all the lines within a page and letting the cache worry about the tags/indices they correspond to.
      s/ChangeDyn, s/VMSAv6, s/AMBControl/memmap - Do extra TLB maintenance following writes to the page tables, as mandated by the ARMv6+ memory order model. Fixes frequent crashes on Cortex-A9 when running with lazy task swapping disabled (and presumably fixes other crashes too)
      s/MemInfo - Fix OS_Memory cache/uncache so that it does cache/TLB maintenance on a per-page basis instead of a global basis. Vastly improves performance when you have a large cache, but may need tweaking again in future to do a global op if large numbers of pages are being modified.
    Admin:
      Tested on Pandaboard
    
    
    Version 5.35, 4.79.2.255. Tagged as 'Kernel-5_35-4_79_2_255'
    aca7f939
VMSAv6 61.1 KB