Options 11.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
; Copyright 2000 Pace Micro Technology plc
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
;     http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;

; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; essential global variables
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                GET   Version
                GBLS  VersionNo
VersionNo       SETS  "$VString ($Date)"

24
MosVer          *       6               ; As returned by OS_Byte 0
25

26 27 28 29
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; now the conditional flags for the version we want
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

30 31 32
AssemblingArthur SETL  {TRUE}
; defined in hdr.system to allow conditionals in macros

33 34 35
                GBLL    CacheOff
CacheOff        SETL    {FALSE}

36 37 38
                GBLL    ShowWS
ShowWS          SETL    {TRUE}          ; Make KernelWS be verbose

39 40 41 42 43 44
                GBLL    Module
Module          SETL    {FALSE}

                GBLL    SqueezeMods     ; whether squeezed modules are allowed
SqueezeMods     SETL    {TRUE}

45
                GBLL    International   ; whether text and error messages come from  messages file.
46 47 48 49 50 51
International   SETL    {TRUE}

                GBLL    CacheCommonErrors       ; whether common internationalised errors are cached in sysheap
CacheCommonErrors       SETL    International :LAND: {TRUE}

                GBLL    CacheCMOSRAM            ; Whether to keep a RAM copy of CMOS RAM for faster access
52
CacheCMOSRAM    SETL    {TRUE}
53

54
                GBLL    ProtectStationID        ; Disallow writes to NetStnCMOS (via OS_Byte & OS_NVMemory)
Jeffrey Lee's avatar
Jeffrey Lee committed
55
ProtectStationID        SETL {TRUE}
56

57 58 59
                GBLL    ValidateCMOS            ; Apply special CMOS-corruption detection code,
ValidateCMOS    SETL    {TRUE}                  ; and do minimal default settings.

Robert Sprowson's avatar
Robert Sprowson committed
60 61 62
                GBLL    ChecksumCMOS            ; Inspect the CMOS checksum byte, and act like a CMOS reset if it's
ChecksumCMOS    SETL    {TRUE}                  ; invalid. Also, calculate CMOS checksum and write it when needed.

63 64 65 66 67 68
                GBLL    IgnoreVRAM              ; if true, don't add VRAM to the RAM list (+ don't use for screen)
IgnoreVRAM      SETL    {FALSE}

                GBLL    ShrinkableDAs           ; if true, support Shrinkable Dynamic Areas (eg. CacheFS)
ShrinkableDAs   SETL    {TRUE}

69
                GBLL    DA_Batman               ; Holey dynamic areas Batman!
Robert Sprowson's avatar
Robert Sprowson committed
70
DA_Batman       SETL    {TRUE}                  ; concept of sparsely mapped dynamic areas introduced for Ursula
71

72 73
LongCLISize          * 1024                     ; buffer size for long commands

74
                GBLL    SASTMhatbroken          ; whether ROM must support SA110's with broken STM^ (revision 3 should fix this)
75 76

                GBLL    ARM6support
77
                GBLL    XScaleMiniCache         ; is the XScale mini data-cache used (at all)
Kevin Bracey's avatar
Kevin Bracey committed
78
                GBLL    XScaleJTAGDebug
79

Jeffrey Lee's avatar
Jeffrey Lee committed
80
SASTMhatbroken     SETL SupportARMv4 :LAND: NoARMv5
Jeffrey Lee's avatar
Jeffrey Lee committed
81 82 83 84

                GBLL    CacheCleanerHack        ; Cache clean hack in ClearPhysRAM for platforms that use DCacheCleanAddress. Does not work with all CPUs!
                GBLL    InterruptDelay          ; True if we might be running on a CPU with CPUFlag_InterruptDelay set (e.g. StrongARM)
CacheCleanerHack   SETL {TRUE}
Jeffrey Lee's avatar
Jeffrey Lee committed
85
InterruptDelay     SETL SupportARMv4 :LAND: NoARMv5
Kevin Bracey's avatar
Kevin Bracey committed
86

87
ARM6support        SETL (MEMM_Type = "ARM600") :LAND: NoARMv4
Kevin Bracey's avatar
Kevin Bracey committed
88 89
XScaleMiniCache    SETL {FALSE}
XScaleJTAGDebug    SETL {TRUE}
90 91 92 93 94 95 96

                ;mjs
                ;Chocolate flavours implemented for Ursula, but they are generally useful performance enhancements
                ;(not all Ursula performance improvements are flagged with Chocolate - eg. simple changes such as slicker SWI
                ;despatch and wider SWI hashing)
                ;
                ;any ARM
97
                ;
98 99 100 101 102 103
                GBLL    ChocolateSysHeap        ;whether to save cost of SysHeap block claim/release for common cases (eg. callback blocks)
                                                ;also reduces SysHeap stress by using fewer blocks in total
                GBLL    ChocolateOSMod          ;whether to reduce SysHeap stress in module handling
                GBLL    ChocolateSysVars        ;whether to do performance improvements in system variable handling
                GBLL    ChocolateOscli          ;whether to do performance improvements in Oscli command stuff
                GBLL    ChocolateService        ;whether to implement fast module service call distribution (uses table introduced
104
                                                ;into module format by Ursula API)
105
                GBLL    ChocolateAMB            ;whether to compile support for Lazy task swapping
106
                                                ;possibly enabled at run time for some ARMs only
107 108 109 110 111
ChocolateSysHeap       SETL {TRUE}
ChocolateOSMod         SETL {TRUE}
ChocolateSysVars       SETL {TRUE}
ChocolateOscli         SETL {TRUE}
ChocolateService       SETL {TRUE}
Jeffrey Lee's avatar
Jeffrey Lee committed
112
ChocolateAMB           SETL {TRUE}
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
  [ ChocolateSysHeap
                       GBLA  MaxChocolateCBBlocks  ;max quick CallBack blocks available at any one time (else ordinary heap nodes used)
                       GBLA  MaxChocolateSVBlocks  ;max quick Software Vector blocks available at any one time (else ordinary heap nodes used)
                       GBLA  MaxChocolateTKBlocks  ;max quick Ticker blocks available at any one time (else ordinary heap nodes used)
                       GBLA  MaxChocolateMRBlocks  ;max module ROM blocks before ordinary heap nodes are used (reduces total no. nodes in SysHeap)
                       GBLA  MaxChocolateMABlocks  ;max module Active blocks before ordinary heap nodes are used
                       GBLA  MaxChocolateMSBlocks  ;max module SWI Hash blocks before ordinary heap nodes are used
MaxChocolateCBBlocks   SETA   32
MaxChocolateSVBlocks   SETA  128
MaxChocolateTKBlocks   SETA   32
MaxChocolateMRBlocks   SETA  150
MaxChocolateMABlocks   SETA  150
MaxChocolateMSBlocks   SETA  150
  ]

                          GBLL    Oscli_QuickAliases
                          GBLL    Oscli_HashedCommands
Oscli_QuickAliases        SETL    {TRUE} :LAND: ChocolateOscli   ;try to do a better job of checking for aliases
Oscli_HashedCommands      SETL    {TRUE} :LAND: ChocolateOscli   ;try to do a better job of finding commands

                     GBLL    mjsServiceTrace          ;for statistics gathering on service calls only
mjsServiceTrace      SETL    {FALSE}
                     GBLL    mjsSysHeapNodesTrace     ;for statistics gathering on some SysHeap nodes only
mjsSysHeapNodesTrace SETL    {FALSE}

                GBLL    DebugROMInit
139 140 141 142 143 144
                GBLL    DebugHALTX

              [ FreezeDevRel
DebugROMInit    SETL    {FALSE}
DebugHALTX      SETL    {FALSE}
              |
145
DebugROMInit    SETL    (Version :AND: 1) = 1   ; Yes for odd numbered development
146 147
DebugHALTX      SETL    (Version :AND: 1) = 1   ; Yes for odd numbered development
              ]
148 149

                GBLL    DebugROMPostInit ; Displays when the PostInit service call is sent to each ROM module (currently works on vanilla service call handling only)
150
DebugROMPostInit SETL   (:LNOT: ChocolateService) :LAND: {FALSE}
Kevin Bracey's avatar
Kevin Bracey committed
151 152

                GBLL    DebugTerminal           ; default WRCH and RDCH through HAL
153
DebugTerminal   SETL    {FALSE}
Kevin Bracey's avatar
Kevin Bracey committed
154

155 156 157
                GBLL    DebugHeaps              ; initialise claimed and freed blocks
DebugHeaps      SETL    {FALSE}                 ; (may slow things down unacceptably)

158
                GBLL    DebugCDA2       ; ChangeDynamicArea and related options
159
DebugCDA2       SETL    {FALSE}
160

161
              [ DebugHeaps :LOR: DebugROMInit :LOR: DebugROMPostInit :LOR: DebugCDA2
162 163 164
                ! 0, "*** WARNING *** Debugging assembled in"
              ]

165
  [ :LNOT: :DEF: HiProcVecs
166
                GBLL    HiProcVecs              ; Relocate processor vectors and first 16K of workspace to &FFFF0000
167 168
HiProcVecs      SETL    "$Machine"="Tungsten" :LOR: :LNOT: NoARMv6
  ]
169

170 171 172
                GBLL    CompatibilityPage       ; Add a read-only page at &0 for compatibility with buggy zero page reading software
CompatibilityPage SETL  HiProcVecs

173
                GBLA    FirstUnpluggableModule
174
FirstUnpluggableModule  SETA 8                  ; Podule, FileSwitch, ResourceFS, Messages, MessageTrans,
175 176
                                                ; TerritoryManager, UK. Moot now the keyboard and mouse aren't
                                                ; in the kernel - unplug those and you're stuffed.
177

178 179 180 181 182 183 184 185 186 187 188 189
                GBLL  PMPDebug
PMPDebug        SETL  {FALSE}                   ; Physical memory pool debugging

                GBLL  PMPParanoid
PMPParanoid     SETL  {FALSE}                   ; Validate PMPs after most ops

                GBLL  PMPRAMFS
PMPRAMFS        SETL  {TRUE}                    ; Whether RAMFS DA is a PMP (requires compatible RAMFS module)

 [ PMPRAMFS
PMPRAMFS_Size   * 256                           ; Number of logical pages (physical size is unlimited)
 |
190 191
                GBLA    MaxRAMFS_Size
MaxRAMFS_Size   SETA    128                     ; Max size available for RAM Disc
192
 ]
193

194 195 196 197 198 199
                GBLL    CacheablePageTables
CacheablePageTables SETL {TRUE}                 ; Use cacheable page tables where possible

                GBLL    SyncPageTables
SyncPageTables  SETL    (MEMM_Type = "VMSAv6") :LOR: CacheablePageTables ; Any page table modification (specifically, overwriting faulting entries) requires synchronisation

Jeffrey Lee's avatar
Jeffrey Lee committed
200 201 202
                GBLL    SMP
SMP             SETL    (MEMM_Type = "VMSAv6") :LAND: {TRUE} ; Enable SMP-related changes

203
                    GBLL  UseNewFX0Error
Jeffrey Lee's avatar
Jeffrey Lee committed
204
UseNewFX0Error      SETL  ((Version :AND: 1) = 1) ; Whether *FX 0 should show the ROM link date instead of the UtilityModule date
205 206 207 208 209 210 211

                    GBLS  GetMessages
 [ International
GetMessages         SETS  "GET s.MsgCode"
 |
GetMessages         SETS  ""
 ]
212 213 214 215 216 217 218
                    GBLS  GetUnsqueeze
 [ SqueezeMods
GetUnsqueeze        SETS  "GET s.Unsqueeze"
 |
GetUnsqueeze        SETS  ""
 ]
                    GBLS  GetKernelMEMC
219
GetKernelMEMC       SETS  "GET s." :CC: MEMM_Type
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246

; control switches for med_00001 (the flood fill routines 1024 line limit).
; Switches have the following effects:
;
; _userma     Will use rma if >48K is free, up to a maximum of 128K. It will
;             try to acheive the latter by growing the rma if possible.
; _twowords   Use two word entries in the queue. This overcomes the limitation
;             of the original packed word format.

                    GBLL  med_00001_userma
                    GBLL  med_00001_twowords
med_00001_userma    SETL  {TRUE}
med_00001_twowords  SETL  {TRUE}

 [ med_00001_userma
smallest_rma_size   * (48*1024)                  ; define the low threshold for rma use
largest_rma_size    * (128*1024)                 ; and the ceiling for rma use
 ]

; Ickle macros. We want to be able to turn IRQs on and off fast in the
; code in various places. To do this easily, have a name for the
; SVC26/32 mode we run in.

USR2632 * USR32_mode
SVC2632 * SVC32_mode

        END