Commit ab08ee91 authored by Ben Avison's avatar Ben Avison
Browse files

Minor kernel updates

Detail:
  * Added some documentation on previously undocumented HAL calls
  * Corrected NVMemoryFlag_Provision bitmask to match documentation
  * Bugfix: NVMemoryFlag_ProtectAtEnd flag was being ignored
Admin:
  Not tested

Version 5.35, 4.79.2.98. Tagged as 'Kernel-5_35-4_79_2_98'
parent 6ac1bdda
......@@ -906,6 +906,10 @@ See OS_ReadSysInfo reason code 2
See OS_ReadSysInfo reason code 3
-- void HAL_PlatformInfo(unsigned int unused, unsigned int *flags, unsigned int *defined_flags)
See OS_ReadSysInfo reason code 8
RISC OS entry points from HAL init
----------------------------------
......
......@@ -183,8 +183,8 @@ unsigned int HAL_NVMemoryType(void)
If bits 0-7 are 0 or 1 no other NVMemory calls need be available,
and bits 8-31 should be zero.
If bits 0-7 are 2, Size, ProtectedSize, Protection and IICAddress calls must
be available.
If bits 0-7 are 2, Size, PageSize, ProtectedSize, Protection and IICAddress
calls must be available.
If bits 0-7 are 3, all calls except IICAddress must be available.
......@@ -199,6 +199,13 @@ unsigned int HAL_NVMemorySize(void)
This is to suit the current RISC OS Kernel, which does not use bytes 0-15.
unsigned int HAL_NVMemoryPageSize(void)
Returns the number of bytes in a page of NVMemory. The HAL can be assured
that block writes to NVMemory will not straddle multiple pages (whether by
IIC operation or HAL_NVMemoryWrite call).
Returns 0 if page splitting is not required.
unsigned int HAL_NVMemoryProtectedSize(void)
Returns the number of bytes of NVMemory that are protected. These should
......
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.97"
Module_Date SETS "03 Dec 2008"
Module_ApplicationDate SETS "03-Dec-08"
Module_MinorVersion SETS "4.79.2.98"
Module_Date SETS "22 Dec 2008"
Module_ApplicationDate SETS "22-Dec-08"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.97)"
Module_HelpVersion SETS "5.35 (03 Dec 2008) 4.79.2.97"
Module_FullVersion SETS "5.35 (4.79.2.98)"
Module_HelpVersion SETS "5.35 (22 Dec 2008) 4.79.2.98"
END
......@@ -5,19 +5,19 @@
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.97
#define Module_Date_CMHG 03 Dec 2008
#define Module_MinorVersion_CMHG 4.79.2.98
#define Module_Date_CMHG 22 Dec 2008
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.97"
#define Module_Date "03 Dec 2008"
#define Module_MinorVersion "4.79.2.98"
#define Module_Date "22 Dec 2008"
#define Module_ApplicationDate "03-Dec-08"
#define Module_ApplicationDate "22-Dec-08"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.97)"
#define Module_HelpVersion "5.35 (03 Dec 2008) 4.79.2.97"
#define Module_FullVersion "5.35 (4.79.2.98)"
#define Module_HelpVersion "5.35 (22 Dec 2008) 4.79.2.98"
#define Module_LibraryVersionInfo "5:35"
......@@ -178,7 +178,7 @@ NVMemoryFlag_None * 0
NVMemoryFlag_MaybeIIC * 1
NVMemoryFlag_IIC * 2
NVMemoryFlag_HAL * 3
NVMemoryFlag_Provision * 7 ; mask for provision
NVMemoryFlag_Provision * &FF ; mask for provision
NVMemoryFlag_ProtectAtEnd * 1:SHL:8 ; Protected region at end
NVMemoryFlag_Deprotectable * 1:SHL:9
NVMemoryFlag_LowRead * 1:SHL:10 ; locations 0-15 are readable
......
......@@ -1469,9 +1469,9 @@ InitCMOSCache Entry "r1-r6, sb,r12"
[ HAL
AddressHAL
CallHAL HAL_NVMemoryType
MOV R5, R0
ANDS R0, R0, #NVMemoryFlag_Provision
BEQ InitCMOSCache_NoCMOS
MOV R5, R0
; If it's only a maybe, then we probe
TEQ R5, #NVMemoryFlag_MaybeIIC
......
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