Commits (2)
  • Jeffrey Lee's avatar
    Fix aborts on Cortex-A15 when using lazy task swapping · 99b3f14a
    Jeffrey Lee authored
    Detail:
      s/VMSAv6 - After AMB_LazyFixUp has modified the page tables, perform a DSB + ISB to ensure the page table write has completed before we return from the abort handler.
    Admin:
      Tested on IGEPv5
      Fixes aborts seen in desktop, e.g. when !CloseUp is rebuilding its sprite (heavy RAM write activity delaying pagetable write?)
    
    
    Version 5.35, 4.79.2.262. Tagged as 'Kernel-5_35-4_79_2_262'
    99b3f14a
  • Robert Sprowson's avatar
    Get a tag for 5.22 · 23bab047
    Robert Sprowson authored
    Version 5.35, 4.79.2.263. Tagged as 'Kernel-5_35-4_79_2_263'
    23bab047
......@@ -16,14 +16,14 @@ VString SETS Module_MajorVersion
SystemName SETS "NC OS"
Date SETS Module_Date ; version for STB/NC OS
|
Version SETA 521
VString SETS "5.21"
Version SETA 522
VString SETS "5.22"
SystemName SETS "RISC OS"
[ (Version :AND: 1) = 1
Date SETS Module_Date ; Odd-numbered (i.e. development) build, use
; date of last source check in
|
Date SETS "10 Jun 2013" ; version for RISC OS on desktop computers
Date SETS "13 Apr 2015" ; version for RISC OS on desktop computers
; Desktop and Switcher use this via OS_Byte 0
]
]
......
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.261"
Module_Date SETS "29 Mar 2015"
Module_ApplicationDate SETS "29-Mar-15"
Module_MinorVersion SETS "4.79.2.263"
Module_Date SETS "19 Apr 2015"
Module_ApplicationDate SETS "19-Apr-15"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.261)"
Module_HelpVersion SETS "5.35 (29 Mar 2015) 4.79.2.261"
Module_FullVersion SETS "5.35 (4.79.2.263)"
Module_HelpVersion SETS "5.35 (19 Apr 2015) 4.79.2.263"
END
......@@ -5,19 +5,19 @@
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.261
#define Module_Date_CMHG 29 Mar 2015
#define Module_MinorVersion_CMHG 4.79.2.263
#define Module_Date_CMHG 19 Apr 2015
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.261"
#define Module_Date "29 Mar 2015"
#define Module_MinorVersion "4.79.2.263"
#define Module_Date "19 Apr 2015"
#define Module_ApplicationDate "29-Mar-15"
#define Module_ApplicationDate "19-Apr-15"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.261)"
#define Module_HelpVersion "5.35 (29 Mar 2015) 4.79.2.261"
#define Module_FullVersion "5.35 (4.79.2.263)"
#define Module_HelpVersion "5.35 (19 Apr 2015) 4.79.2.263"
#define Module_LibraryVersionInfo "5:35"
......@@ -497,6 +497,10 @@ PAbPreVeneer ROUT
SUB r0, lr_abort, #4 ; aborting address
MOV r2, #1
BL AMB_LazyFixUp ; can trash r0-r7, returns NE status if claimed and fixed up
; DSB + ISB required to ensure effect of page table write is fully
; visible (after overwriting a faulting entry)
myDSB NE,r0
myISB NE,r0,,y
Pull "r0-r7, lr", NE ; restore regs and
SUBNES pc, lr_abort, #4 ; restart aborting instruction if fixed up
LDR lr, [sp, #8*4] ; (not a lazy abort) restore lr
......@@ -570,6 +574,10 @@ DAbPreVeneer ROUT
ARM_read_FAR r0 ; aborting address
MOV r2, #0
BL AMB_LazyFixUp ; can trash r0-r7, returns NE status if claimed and fixed up
; DSB + ISB required to ensure effect of page table write is fully
; visible (after overwriting a faulting entry)
myDSB NE,r0
myISB NE,r0,,y
LDR lr_abort, [r13_abort, #15*4] ; restore lr_abort
LDMIA r13_abort, {r0-r7} ; restore regs
ADDNE r13_abort, r13_abort, #17*4 ; if fixed up, restore r13_abort
......