Commit 02832075 authored by Robert Sprowson's avatar Robert Sprowson
Browse files

Fix for spurious IIC access when probing

When HAL_NVMemoryType reports NVMemoryFlag_MaybeIIC the kernel tries to probe a number of common/known addresses on startup, however the result of the probe is stored around line 1346 without a value value for zero page in R2.
This is sufficiently early on that the default data abort handler (from when probing the ARM's abort model) is still in place so the stores are silently skipped.
Due to the RAM clear the NVRamBase (and size) are 0, which later on in ValChecksum result in a zero length IIC probe to address &01.
Now, R2 is initialised.

Version 5.35, 4.79.2.239. Tagged as 'Kernel-5_35-4_79_2_239'
parent 72eab294
master CrossCompilationSupport HAL RISC_OS-5_26 SMP SMP_bp Kernel-6_19 Kernel-6_18 Kernel-6_17 Kernel-6_16 Kernel-6_15 Kernel-6_14 Kernel-6_13 Kernel-6_12 Kernel-6_11 Kernel-6_10 Kernel-6_09 Kernel-6_08 Kernel-6_08-4_129_2_10 Kernel-6_08-4_129_2_9 Kernel-6_07 Kernel-6_06 Kernel-6_05 Kernel-6_05-4_129_2_8 Kernel-6_04 Kernel-6_03 Kernel-6_02 Kernel-6_01 Kernel-6_01-3 Kernel-6_01-2 Kernel-6_01-1 Kernel-6_00 Kernel-5_99 Kernel-5_98 Kernel-5_97 Kernel-5_97-4_129_2_7 Kernel-5_96 Kernel-5_95 Kernel-5_94 Kernel-5_93 Kernel-5_92 Kernel-5_91 Kernel-5_90 Kernel-5_89 Kernel-5_89-4_129_2_6 Kernel-5_88 Kernel-5_88-4_129_2_5 Kernel-5_88-4_129_2_4 Kernel-5_87 Kernel-5_86 Kernel-5_86-4_129_2_3 Kernel-5_86-4_129_2_2 Kernel-5_86-4_129_2_1 Kernel-5_85 Kernel-5_84 Kernel-5_83 Kernel-5_82 Kernel-5_81 Kernel-5_80 Kernel-5_79 Kernel-5_78 Kernel-5_77 Kernel-5_76 Kernel-5_75 Kernel-5_74 Kernel-5_73 Kernel-5_72 Kernel-5_71 Kernel-5_70 Kernel-5_69 Kernel-5_68 Kernel-5_67 Kernel-5_66 Kernel-5_65 Kernel-5_64 Kernel-5_63 Kernel-5_62 Kernel-5_61 Kernel-5_60 Kernel-5_59 Kernel-5_58 Kernel-5_57 Kernel-5_56 Kernel-5_55 Kernel-5_54 Kernel-5_54-1 Kernel-5_53 Kernel-5_52 Kernel-5_51 Kernel-5_50 Kernel-5_49 Kernel-5_48 Kernel-5_35-4_79_2_327 Kernel-5_35-4_79_2_326 Kernel-5_35-4_79_2_325 Kernel-5_35-4_79_2_324 Kernel-5_35-4_79_2_323 Kernel-5_35-4_79_2_322 Kernel-5_35-4_79_2_321 Kernel-5_35-4_79_2_320 Kernel-5_35-4_79_2_319 Kernel-5_35-4_79_2_318 Kernel-5_35-4_79_2_317 Kernel-5_35-4_79_2_316 Kernel-5_35-4_79_2_315 Kernel-5_35-4_79_2_314 Kernel-5_35-4_79_2_313 Kernel-5_35-4_79_2_312 Kernel-5_35-4_79_2_311 Kernel-5_35-4_79_2_310 Kernel-5_35-4_79_2_309 Kernel-5_35-4_79_2_308 Kernel-5_35-4_79_2_307 Kernel-5_35-4_79_2_306 Kernel-5_35-4_79_2_305 Kernel-5_35-4_79_2_304 Kernel-5_35-4_79_2_303 Kernel-5_35-4_79_2_302 Kernel-5_35-4_79_2_301 Kernel-5_35-4_79_2_300 Kernel-5_35-4_79_2_299 Kernel-5_35-4_79_2_298 Kernel-5_35-4_79_2_297 Kernel-5_35-4_79_2_296 Kernel-5_35-4_79_2_295 Kernel-5_35-4_79_2_294 Kernel-5_35-4_79_2_293 Kernel-5_35-4_79_2_292 Kernel-5_35-4_79_2_291 Kernel-5_35-4_79_2_290 Kernel-5_35-4_79_2_289 Kernel-5_35-4_79_2_288 Kernel-5_35-4_79_2_287 Kernel-5_35-4_79_2_286 Kernel-5_35-4_79_2_285 Kernel-5_35-4_79_2_284 Kernel-5_35-4_79_2_283 Kernel-5_35-4_79_2_282 Kernel-5_35-4_79_2_281 Kernel-5_35-4_79_2_280 Kernel-5_35-4_79_2_279 Kernel-5_35-4_79_2_278 Kernel-5_35-4_79_2_277 Kernel-5_35-4_79_2_276 Kernel-5_35-4_79_2_275 Kernel-5_35-4_79_2_274 Kernel-5_35-4_79_2_273 Kernel-5_35-4_79_2_272 Kernel-5_35-4_79_2_271 Kernel-5_35-4_79_2_270 Kernel-5_35-4_79_2_269 Kernel-5_35-4_79_2_268 Kernel-5_35-4_79_2_267 Kernel-5_35-4_79_2_266 Kernel-5_35-4_79_2_265 Kernel-5_35-4_79_2_264 Kernel-5_35-4_79_2_263 Kernel-5_35-4_79_2_262 Kernel-5_35-4_79_2_261 Kernel-5_35-4_79_2_260 Kernel-5_35-4_79_2_259 Kernel-5_35-4_79_2_258 Kernel-5_35-4_79_2_257 Kernel-5_35-4_79_2_256 Kernel-5_35-4_79_2_255 Kernel-5_35-4_79_2_254 Kernel-5_35-4_79_2_253 Kernel-5_35-4_79_2_252 Kernel-5_35-4_79_2_251 Kernel-5_35-4_79_2_250 Kernel-5_35-4_79_2_249 Kernel-5_35-4_79_2_248 Kernel-5_35-4_79_2_247 Kernel-5_35-4_79_2_246 Kernel-5_35-4_79_2_245 Kernel-5_35-4_79_2_244 Kernel-5_35-4_79_2_243 Kernel-5_35-4_79_2_242 Kernel-5_35-4_79_2_241 Kernel-5_35-4_79_2_240 Kernel-5_35-4_79_2_239 HAL_merge
No related merge requests found
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.238"
Module_Date SETS "18 Sep 2014"
Module_ApplicationDate SETS "18-Sep-14"
Module_MinorVersion SETS "4.79.2.239"
Module_Date SETS "01 Oct 2014"
Module_ApplicationDate SETS "01-Oct-14"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.238)"
Module_HelpVersion SETS "5.35 (18 Sep 2014) 4.79.2.238"
Module_FullVersion SETS "5.35 (4.79.2.239)"
Module_HelpVersion SETS "5.35 (01 Oct 2014) 4.79.2.239"
END
......@@ -5,19 +5,19 @@
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.238
#define Module_Date_CMHG 18 Sep 2014
#define Module_MinorVersion_CMHG 4.79.2.239
#define Module_Date_CMHG 01 Oct 2014
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.238"
#define Module_Date "18 Sep 2014"
#define Module_MinorVersion "4.79.2.239"
#define Module_Date "01 Oct 2014"
#define Module_ApplicationDate "18-Sep-14"
#define Module_ApplicationDate "01-Oct-14"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.238)"
#define Module_HelpVersion "5.35 (18 Sep 2014) 4.79.2.238"
#define Module_FullVersion "5.35 (4.79.2.239)"
#define Module_HelpVersion "5.35 (01 Oct 2014) 4.79.2.239"
#define Module_LibraryVersionInfo "5:35"
......@@ -1198,6 +1198,7 @@ InitCMOSCache Entry "r1-r6, sb,r12"
CallHAL HAL_NVMemoryType
MOV R5, R0
ANDS R0, R0, #NVMemoryFlag_Provision
ASSERT NVMemoryFlag_None = 0
BEQ InitCMOSCache_NoCMOS
; If it's only a maybe, then we probe
......@@ -1340,6 +1341,7 @@ InitCMOSCache_NoCMOS
5
; Set the NVRam count
LDR R2, =ZeroPage
STRB R1, [R2, #NVRamBase]
STRB R4, [R2, #NVRamSize]
STRB R5, [R2, #NVRamPageSize]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment