1. 21 Jan, 2023 1 commit
    • Jeffrey Lee's avatar
      Add FramADR macro · c3e7e5c5
      Jeffrey Lee authored
      While poking around in FileSwitch I spotted that (a) it currently isn't
      using the FramLDR/FramSTR macros (instead manually calculating offsets
      from Proc_LocalStack), and (b) in a few places it was using
      `ADD dest, sp, #Proc_LocalStack+n*4` to get the address of an argument.
      
      Add a FramADR macro which can be used to perform that task, so that
      everything is ready for switching FileSwitch over to using the Fram
      macros.
      
      Version 3.02. Tagged as 'HdrSrc-3_02'
      c3e7e5c5
  2. 13 Jan, 2023 1 commit
  3. 05 Jan, 2023 1 commit
  4. 18 May, 2022 1 commit
    • Ben Avison's avatar
      Only include Hdr:Machine.<Machine> from Hdr:CPU.Arch if not already · 557349cf
      Ben Avison authored
      The logic behind this is to permit the calling source file to override which
      `Machine` type is used, by `GET`ting a different one first. This can be
      useful for a component that can only be built for one `Machine` type
      (for example, many IOMD-only driver modules).
      
      Version 2.99. Not tagged
      557349cf
  5. 28 Apr, 2022 1 commit
  6. 23 Apr, 2022 1 commit
    • Jeffrey Lee's avatar
      Define STREX result codes · 2af3296a
      Jeffrey Lee authored
      Add STREX_succeeded & STREX_failed to Hdr.Global.CPU.Generic32, so
      components don't have to define their own versions
      
      Version 2.98. Tagged as 'HdrSrc-2_98'
      2af3296a
  7. 28 Jan, 2022 1 commit
  8. 27 Nov, 2021 1 commit
    • Stuart Swales's avatar
      Suppress warnings when UAL is in use · b732bf72
      Stuart Swales authored
      Detail:
        APCS Return macro changed when UAL is in use to remove warnings.
        Push and Pull in Hdr:Macros also changed for UAL.
        PullAPCS and single register push/pull substitute Push and Pull macros.
      
      Version 2.96. Tagged as 'HdrSrc-2_96'
      b732bf72
  9. 31 May, 2021 1 commit
    • Robert Sprowson's avatar
      ARMVv4 architecture switch correction · e176d8d2
      Robert Sprowson authored
      Looks like a copy/paste of the ARMVH switch, with the effect that [Support|No]ARMVv4 were both unset false (should be impossible) and [Support|No]ARMVH cross wired as the ARMVv4 value instead.
      
      Version 2.95. Tagged as 'HdrSrc-2_95'
      e176d8d2
  10. 20 Mar, 2021 1 commit
    • Robert Sprowson's avatar
      Add 32k HAL size option · b6d9ce33
      Robert Sprowson authored
      For those HALs which are << 64k this would allow 32k of space reclaim, giving the full progression 32->64->96->128 to choose from.
      
      Version 2.94. Tagged as 'HdrSrc-2_94'
      b6d9ce33
  11. 08 Jan, 2021 1 commit
  12. 28 Nov, 2020 1 commit
    • Julie Stamp's avatar
      Adjust capitalisation for UpCall · 911a214f
      Julie Stamp authored
      Detail:
      Makefile:
      Export to "h.UpCall" rather than "h.Upcall"; this change won't affect any
      builds, but if anybody includes "Global/Upcall.h" then cross-compilation
      fails on case-sensitive filesystems since GNUmakefile uses "UpCall".
      
      Admin:
      Untested
      
      Version 2.92. Tagged as 'HdrSrc-2_92'
      911a214f
  13. 25 Jul, 2020 1 commit
    • Robert Sprowson's avatar
      Suppress macro name conflicts · 993162c8
      Robert Sprowson authored
      ObjAsm 4.08 spots macros using MyBase$Suffix where MyBase is a substring of another macro. Generic32 has CL$op and SE$op which causes many hundreds of warnings due to CLRV and SETV for example.
      Write out the macros longhand, and use a longer unique name for the generic implementation.
      
      Version 2.91. Tagged as 'HdrSrc-2_91'
      993162c8
  14. 20 May, 2020 1 commit
    • ROOL's avatar
      Resync with allocations database · 61adf0db
      ROOL authored
      * Filetype for YAML
      * Error definitions for OS_AMBControl errors as reported by Pyromaniac
      
      Version 2.90. Tagged as 'HdrSrc-2_90'
      61adf0db
  15. 16 Mar, 2020 1 commit
    • ROOL's avatar
      Resync with allocations database · c0c2e402
      ROOL authored
      * Better document the history of ErrorBase_AbortRegions
      * Define OS_Pointer reason codes + missing PointerV code
      
      Version 2.89. Tagged as 'HdrSrc-2_89'
      c0c2e402
  16. 25 Feb, 2020 1 commit
    • ROOL's avatar
      Resync with allocations database · 1cde1fc1
      ROOL authored
      Error allocations, including retrospective allocations for some errors used
      in RISC OS 6.
      
      Version 2.88. Tagged as 'HdrSrc-2_88'
      1cde1fc1
  17. 23 Jan, 2020 1 commit
  18. 16 Nov, 2019 1 commit
  19. 09 Nov, 2019 1 commit
  20. 02 Nov, 2019 1 commit
  21. 12 Oct, 2019 1 commit
    • Ben Avison's avatar
      Add mixed-case versions of Hdr:Proc macros · 9ced1eaf
      Ben Avison authored
      Macros in this header file had inconsistent capitalisation. This is a legacy
      of the earliest macros being `ENTRY` and `EXIT`. Macro names that are all
      uppercase or all lowercase are a bad idea, because they can clash with opcodes
      or assembler directives that are added at a later date: this is what happened
      with `ENTRY` when objasm was developed, hence the introduction of the identical
      `Entry` macro, and mass renaming across the source tree was required when it
      switched to using objasm.
      
      The other downside of all-uppercase or all-lowercase macro names is that it
      makes it impossible to design a syntax colouring algorithm that is forward
      compatible with new opcodes (and ARM continues to add new opcodes with almost
      every new minor revision of the architecture).
      
      Note that related macro names depend on the vintage of the header at which
      they were introduced: compare `ALTENTRY` with `EntryS`.
      
      Additional mixed-case versions of macros `ALTENTRY`, `EXIT`, `EXITS`, `EXITV`,
      `EXITVC`, `EXITVS`, `FRAMLDR` and `FRAMSTR` are hereby introduced. The old
      macro names are also retained (it would be a very large job to substitute them
      throughout the source tree) but at least new code can now consistently use
      mixed case.
      
      The `FRAMCOM` and `FRAMSPL` macros are for internal use of the header file,
      so uppercase versions of these did not need to be retained.
      
      Also:
      * Delete `ENTRY` macro: it's a long time since anything has been buildable
        using aasm, which is the only assembler that accepts this macro
      * Correct cut-and-paste errors in the messages `ExitVC without EntryS` and
        `ExitVS without EntryS`
      
      Version 2.83. Tagged as 'HdrSrc-2_83'
      9ced1eaf
  22. 08 Oct, 2019 1 commit
  23. 12 Sep, 2019 1 commit
  24. 19 Aug, 2019 1 commit
    • Ben Avison's avatar
      Add supersection definitions to MEMM.ARM600 as well · dda94028
      Ben Avison authored
      Some later XScales also supported supersections - albeit ones we don't support
      yet - but they mean it's not incorrect to include these definitions in this
      header. However, defining the bits now means that we don't need to insert
      MEMM_Type build-time switches into the kernel for the page table code that
      now handles supersections.
      
      Version 2.80. Tagged as 'HdrSrc-2_80'
      dda94028
  25. 15 Jul, 2019 1 commit
  26. 23 Jun, 2019 1 commit
    • Ben Avison's avatar
      Add a definition of the BEN bit in SCTLR (née MMU control register) · 79a72575
      Ben Avison authored
      Detail:
      The memory barriers ISB, DSB & DMB were intially introduced in ARMv6 as CP15
      operations, however they were replaced at ARMv7 with dedicated instructions
      and the old CP15 encodings deprecated. Since ARMv7VE was introduced, some CPUs
      can be configured to make the CP15 encodings undefined instructions. For
      unconfigurable CPUs, the CP15 encodings are always enabled, but for others,
      we need to set this bit in SCTLR.
      
      Note, this sort of behaviour usually implies ARM intend on removing these
      instructions in a future architecture, so we might need to plan for this
      eventuality.
      
      Version 2.78. Tagged as 'HdrSrc-2_78'
      79a72575
  27. 30 May, 2018 1 commit
  28. 27 Apr, 2018 1 commit
  29. 15 Apr, 2018 1 commit
  30. 12 Apr, 2018 1 commit
    • Ben Avison's avatar
      Add GNUmakefile for cross-compilation use · e091e732
      Ben Avison authored
      Detail:
        HdrSrc is such an unusual component that the only shared makefile
        fragment it uses is StdTools. Almost every line requires edits to
        accommodate the differences between amu and GNU make, so for clarity
        we use separate makefiles for the two tools.
      Admin:
        I'd forgotten that I'd created the XCompile branch a few years back
        until just now! I think this is a superior solution because it confines
        the changes to a single file, at least in the short-term.
      
      Version 2.74. Tagged as 'HdrSrc-2_74'
      e091e732
  31. 26 Jan, 2018 1 commit
    • Jeffrey Lee's avatar
      Fix non-functional teletext on some platforms, and standardise on HiResTTX across the board · bbca0fed
      Jeffrey Lee authored
      Detail:
        * Neither of our native Cortex-A9 machines natively support 16 colour modes, so HiResTTX must be used since the kernel only supports >16 colour TTX when that option is on.
        * Our Cortex-A8 machines can do 16 colours, but we might as well switch them to HiResTTX as well since they've got plenty of horsepower to render it at that resolution.
        * That just leaves IOMD as the odd one out using low-res TTX. If hardware scrolling or VDU 23,18,1 is used then performance of hi-res TTX doesn't seem to be that much worse than low-res, so for consistency it's probably best to take the performance hit and run all platforms with HiResTTX.
        hdr/Machine/Machine - Updated as above. Also use TTX256 for Cortex-A9 so that the "native" mode 7 will be 256 colour instaed of 16 colour.
      Admin:
        Tested on Pandaboard, iMX6, BB-xM, StrongARM RiscPC
        Fixes lack of teletext on Pandaboard + iMX6
      
      
      Version 2.73. Tagged as 'HdrSrc-2_73'
      bbca0fed
  32. 25 Jul, 2017 1 commit
  33. 07 Jun, 2017 1 commit
  34. 29 Dec, 2016 1 commit
  35. 02 Aug, 2016 1 commit
    • Jeffrey Lee's avatar
      Update VMSAv6 page table definitions · 0b4990ab
      Jeffrey Lee authored
      Detail:
        hdr/MEMM/VMSAv6 - Add AP_PROM for the "privileged mode ROM" permission. Define the shareable bit for L1 page table entries.
      Admin:
        Tested on Raspberry Pi
      
      
      Version 2.69. Tagged as 'HdrSrc-2_69'
      0b4990ab
  36. 01 Aug, 2016 1 commit
  37. 03 Jul, 2016 1 commit
  38. 18 Jun, 2016 1 commit
    • Jeffrey Lee's avatar
      Fix SetMode macro · 833b0b02
      Jeffrey Lee authored
      Detail:
        hdr/CPU/Generic32 - Copy-paste error led to wrong variable name in a conditional block
      Admin:
        Tested on Raspberry Pi, Iyonix
      
      
      Version 2.66. Tagged as 'HdrSrc-2_66'
      833b0b02
  39. 12 Jun, 2016 1 commit
    • Jeffrey Lee's avatar
      Add new PSR manipulation macros, optimised for 32bit machines · 71306206
      Jeffrey Lee authored
      Detail:
        Many of our existing PSR manipulation macros (specifically, ones used for changing mode or controlling interrupts) are based around the code sequences you'd typically use on a 26bit system. Although this has worked well in terms of producing a 32bit version of the OS, it's also left us with macros that can be sub-optimal for 32bit machines, or are inconvenient to use due to the potential of corrupting other PSR flags
        This change adds a new set of macros which are designed and optimised for 32bit-only targets, but can still fall back to 26/32bit neutral or 26bit-only configurations
        hdr/CPU/Generic32:
        - Add the new macros (SEI, CLI, SetModeSEI, SetModeCLI & variants).
        - Improve existing SetMode macro to add 26bit compatibility, and to add an extra optimisation for pre-ARMv6 (emit single MSR if IRQ state is known)
        - Improve SCPSR to allow the source mode to be any 32bit mode
        - Fix conditional 26bit/32bit neutral SCPSR - the 32bit check TEQ corrupts NZCV so we can't do conditional execution on $cond after it (and we've already branched on the opposite condition anyway)
        - Fix 26bit/32bit neutral SCPSR to preserve NZCV when following the MSR code path
        - Make CLRPSR and SETPSR just call through to SCPSR - in terms of output the first two have no advantages over SCPSR
        - Update WritePSRc documentation to reflect that it can now be used in any (non-USR) source mode
        hdr/CPU/Generic26:
        - Update WritePSRc documentation to match Generic32
      Admin:
        Tested on Raspberry Pi
        Output of new macros manually checked for various machine types (RPi, Tungsten, All, 26)
      
      
      Version 2.65. Tagged as 'HdrSrc-2_65'
      71306206
  40. 05 Jun, 2016 1 commit