Commit 34714751 authored by Ben Avison's avatar Ben Avison Committed by ROOL
Browse files

Cross-compilable

Detail:
* Makefile: get directory separator and header extension from shared makefiles
* Standalone version now registers its Messages file with ResourceFS
* Enable GitLab CI

Version 0.82. Tagged as 'PortableHAL-0_82'
parent 43d2467a
/aif/
/gpa/
/o/
/objs/
/Makefile.d
/rm/
include:
- project: 'Support/CI'
file: '/PortableHAL.yml'
......@@ -14,13 +14,6 @@
#
# Makefile for Portable (HAL based)
#
# ***********************************
# *** C h a n g e L i s t ***
# ***********************************
# Date Name Description
# ---- ---- -----------
# 09-Mar-01 SNB Recreated
#
COMPONENT = Portable
HEADER1 = Portable
......@@ -28,10 +21,10 @@ ROM_SOURCE = GetAll.s
HEADER2 = CPUClkDevice
HEADER3 = BMUDevice
ASMCHEADER1 = Portable
CHEADER1 = CPUClkDevice
EXPORTS = ${C_EXP_HDR}.${ASMCHEADER1} ${C_EXP_HDR}.${CHEADER1}
CHEADER1 = CPUClkDevice
EXPORTS = ${C_EXP_HDR}${SEP}${ASMCHEADER1}${SUFFIX_HEADER} \
${C_EXP_HDR}${SEP}${CHEADER1}${SUFFIX_HEADER}
include StdTools
include AAsmModule
# Dynamic dependencies:
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.1.
;
GBLS Module_MajorVersion
GBLA Module_Version
......@@ -10,14 +9,12 @@
GBLS Module_ApplicationDate
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "0.81"
Module_Version SETA 81
Module_MajorVersion SETS "0.82"
Module_Version SETA 82
Module_MinorVersion SETS ""
Module_Date SETS "20 Jan 2017"
Module_ApplicationDate SETS "20-Jan-17"
Module_Date SETS "23 Dec 2024"
Module_ApplicationDate SETS "23-Dec-24"
Module_ComponentName SETS "PortableHAL"
Module_ComponentPath SETS "castle/RiscOS/Sources/HWSupport/PortableHAL"
Module_FullVersion SETS "0.81"
Module_HelpVersion SETS "0.81 (20 Jan 2017)"
Module_FullVersion SETS "0.82"
Module_HelpVersion SETS "0.82 (23 Dec 2024)"
END
/* (0.81)
/* (0.82)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.81
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 20 Jan 2017
#define Module_MajorVersion_CMHG 0.82
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 23 Dec 2024
#define Module_MajorVersion "0.81"
#define Module_Version 81
#define Module_MajorVersion "0.82"
#define Module_Version 82
#define Module_MinorVersion ""
#define Module_Date "20 Jan 2017"
#define Module_Date "23 Dec 2024"
#define Module_ApplicationDate "20-Jan-17"
#define Module_ApplicationDate "23-Dec-24"
#define Module_ComponentName "PortableHAL"
#define Module_ComponentPath "castle/RiscOS/Sources/HWSupport/PortableHAL"
#define Module_FullVersion "0.81"
#define Module_HelpVersion "0.81 (20 Jan 2017)"
#define Module_LibraryVersionInfo "0:81"
#define Module_FullVersion "0.82"
#define Module_HelpVersion "0.82 (23 Dec 2024)"
#define Module_LibraryVersionInfo "0:82"
......@@ -31,6 +31,7 @@
GET Hdr:FSNumbers
GET Hdr:NewErrors
GET Hdr:MsgTrans
GET Hdr:ResourceFS
GET Hdr:Proc
GET Hdr:Portable
GET Hdr:HALEntries
......@@ -56,6 +57,11 @@ DebugTimer * 6 ; Which HAL timer to use with DebugSpeed
GBLL Speed
Speed SETL {TRUE}
[ :LNOT::DEF:standalone
GBLL standalone
standalone SETL {FALSE}
]
GBLS Erratum_486865 ; ARM1176 WFI erratum - workaround needed to avoid deadlock
; NA -> use regular CP15 WFI
; Workaround -> use ARM's erratum workaround
......@@ -72,5 +78,10 @@ Erratum_486865 SETS "NA" ; ARMv6 not supported by this module build, so
GET Front.s
GET StPortable.s ;Module header and misc. functions.
[ standalone
ResFileChain
ResourceFile $MergedMsgs, Resources.Portable.Messages
DCD 0
]
END
......@@ -237,6 +237,13 @@ Init ROUT
;DLINE "Portable module initialisation"
]
[ standalone
; register resources
ADRL R0, ResFileChain
SWI XResourceFS_RegisterFiles
EXIT VS
]
; open messages file
wsaddr R0,MsgTransBlk
......@@ -298,6 +305,12 @@ Die ROUT
wsaddr R0,MsgTransBlk
SWI XMessageTrans_CloseFile
[ standalone
; deregister resources
ADRL R0, ResFileChain
SWI XResourceFS_DeregisterFiles
]
CLRV
EXIT
......@@ -306,16 +319,35 @@ Die ROUT
UServTab
DCD 0
DCD UService - Module_BaseAddr
ASSERT Service_ResourceFSStarting < Service_Hardware
[ standalone
DCD Service_ResourceFSStarting
]
DCD Service_Hardware
DCD 0
DCD UServTab - Module_BaseAddr
Service
MOV R0, R0
TEQ R1, #Service_Hardware
[ standalone
TEQNE R1, #Service_ResourceFSStarting
]
MOVNE PC, LR
UService
Entry "R0-R1"
Entry "R0-R3"
LDR R12, [R12]
[ standalone
TEQ R1, #Service_ResourceFSStarting
BNE %FT40
; Re-register our resources
ADRL R0, ResFileChain
MOV LR, PC
MOV PC, R2
EXIT
40
; Other service call processing
]
AND R0, R0, #&FF
CMP R0, #1
BHI %FT90
......@@ -583,6 +615,12 @@ SWIIdle
LDRNE PC, DSB_Write ; Call DSB, with tail-call to WFI code
EXIT
[ SupportARMv7
Idle_WFI
WFI
EXIT
]
[ SupportARMv6 :LAND: NoARMv7
[ Erratum_486865 = "Workaround"
; Use the ARMv6 NOP instruction, just in case MOV R0,R0 stops the workaround from working
......@@ -611,12 +649,6 @@ Idle_CP15
EXIT
]
[ SupportARMv7
Idle_WFI
WFI
EXIT
]
;******************************************************************************
;
; SWI Portable_Speed2 - Extra CPU speed controls to augment Portable_Speed
......
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