1. 08 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Optimise DivRem and PSR manipulation macros · bd0ce26f
      Jeffrey Lee authored
        hdr/Macros - DivRem is now able to use UDIV when building for architectures that support it. A "norem" option is also available, to allow the remainder calculation to be skipped if it's not needed (since we don't get it for free when using UDIV).
        hdr/CPU/Generic32 - PHPSEI, WritePSRc and SetMode now use the ARMv6 CPS instruction where possible, delivering performance gains compared to the equivalent MSR. Where CPS isn't used, WritePSRc now attempts to emit a single MSR instead of the 4 instructions generated by the SCPSR macro.
        Tested on Cortex-A15
        PSR manipulation macros trialed on a few different CPU architectures to arrive at the conclusion that CPS is as good or better than MSR
      Version 2.60. Tagged as 'HdrSrc-2_60'
  2. 04 Apr, 2016 1 commit
  3. 29 Feb, 2016 1 commit
    • Ben Avison's avatar
      New compile-time architecture flags: · 9f9d0319
      Ben Avison authored
        * ARMv7VE (virtualisation extension)
        * ARMv8
        * ARMv8 cryptographic extension
        Machine=RPi builds now targets ARMv8 as well as ARMv6 and ARMv7;
        Machine=CortexA7 builds now set the VE flag; and All and All32 include ARMv8.
      Version 2.58. Tagged as 'HdrSrc-2_58'
  4. 29 Nov, 2015 1 commit
  5. 08 Nov, 2015 3 commits
    • Ben Avison's avatar
      Add a symbol definition for HYP mode · fa17397d
      Ben Avison authored
        This is the mode used for hypervisor exceptions in ARMv7VE and later.
      Version 2.56. Tagged as 'HdrSrc-2_56'
    • Ben Avison's avatar
      More ADFS 4 support · 5de3a597
      Ben Avison authored
        * Decloak ATA switcher error base
      Retagged as 'HdrSrc-2_55'
      Version 2.55. Not tagged
    • Ben Avison's avatar
      Support for OMAP543x, AM5728 and ADFS 4 · ac8f2a6d
      Ben Avison authored
        * Complete the Cortex-A7 support which was initially added for RPi 2, to
          allow for builds that only target Cortex-A7. Because Cortex-A15 and
          Cortex-A17 CPUs are indistinguishable architecturally from Cortex-A7
          (all are ARMv7VE with VFPv4, Advanced SIMD v2 and hardware integer divide)
          any such platforms are expected to use Machine=CortexA7. Also bear in
          mind that if we ever support multiple cores on big.LITTLE CPUs, execution
          can move between these core types at runtime, making an assembly time
          option to distinguish between them meaningless!
        * Correct Machines All and All32 to include support for VFPv4
        * Decloak the ATA driver SWI chunk
        * Add a global error allocation for use by the ATA subsystem (placed in
          global space because it propagates into the CD stack)
      Version 2.55. Tagged as 'HdrSrc-2_55'
  6. 29 Sep, 2015 1 commit
  7. 23 Aug, 2015 1 commit
    • Ben Avison's avatar
      Resync with allocations database · 925f3379
      Ben Avison authored
        Two extra kernel error numbers in NewErrors
        Updated comment in FSNumbers to state filing system prefix used by SDFS
      Version 2.53. Tagged as 'HdrSrc-2_53'
  8. 05 Aug, 2015 1 commit
    • Jeffrey Lee's avatar
      Update VMSAv6 definitions · 625c738d
      Jeffrey Lee authored
        hdr/MEMM/VMSAv6 - Remove XScale-specific L1_X, L2_X, L2L_X flags. Add L2_S flag. Add definitions for the cache size ID register fields.
        Tested on ARM11, Cortex-A7, -A8, -A9, -A15
      Version 2.52. Tagged as 'HdrSrc-2_52'
  9. 18 May, 2015 1 commit
    • Ben Avison's avatar
      Resync with allocations database · 8934eabd
      Ben Avison authored
        * Filetype for MJPEG files
        * Extra AUN error
        * Resolved error base clash between AbortRegions and VFPSupport
        * New alias for OS_Byte 221
      Version 2.51. Tagged as 'HdrSrc-2_51'
  10. 02 Feb, 2015 1 commit
    • Ben Avison's avatar
      Add Raspberry Pi 2 support · 89b7f37b
      Ben Avison authored
        The Raspberry Pi ROM now joins the IOMD ROM in supporting multiple
        architectures, in this case ARMv6 and ARMv7. This has been achieved by
        creating a new machine type specific for Raspberry Pi. The old ARM11ZF
        machine type remains for builds that are ARM11-only.
        The Raspberry Pi 2 uses the Cortex-A7 processor, which includes version 4
        of the VFP instruction set and version 2 of the Advanced SIMD (NEON)
        instruction set. You can now switch on this at assembly time using the new
        switches NoARMVv4 and SupportARMVv4.
      Version 2.50. Tagged as 'HdrSrc-2_50'
  11. 06 Jan, 2015 1 commit
  12. 19 Oct, 2014 1 commit
    • Steve Revill's avatar
      Complete re-implementation of install phase. · 8865464a
      Steve Revill authored
      We now do the same things as for the export phase, but rather than putting
      the results into the build's export directory, we put them somewhere relative
      to the INSTDIR directory.
      Version 2.48. Tagged as 'HdrSrc-2_48'
  13. 12 Oct, 2014 1 commit
  14. 24 Sep, 2014 1 commit
    • Ben Avison's avatar
      Resync with allocations database, and a warning fix · a7cfad09
      Ben Avison authored
        * Extra filetype for Windows .CUR files
        * Warning about Hdr:Wimp being included before Hdr:Services was mistakenly
          being generated every time both files were included, in any order. This
          is because it tested Service_WimpToolSpritesChanged, but that's declared
          using the # operator, so it is valid for forward as well as backward
          references. Changed it to test on a variable, which is only valid for
          backward references (see corresponding change to Wimp 5.46).
        Tested the warning bugfix with the BASIC module, which uses both headers.
      Version 2.46. Tagged as 'HdrSrc-2_46'
  15. 16 Sep, 2014 1 commit
  16. 04 Aug, 2014 1 commit
  17. 29 Jun, 2014 1 commit
    • Jeffrey Lee's avatar
      Add DADebug support to Hdr:Debug · e43e67f3
      Jeffrey Lee authored
        hdr/Debug - Added DADebug support. Doesn't cache the DADebug WriteC pointer in memory anywhere, so can safely be used from a ROM module or if DADebug is loaded/unloaded.
        Tested on BB-xM
      Version 2.43. Tagged as 'HdrSrc-2_43'
  18. 09 Mar, 2014 2 commits
    • Jeffrey Lee's avatar
      Add OS_SpriteOp 65 (TileSpriteScaled) definition · 66481a23
      Jeffrey Lee authored
        hdr/Sprite - Added OS_SpriteOp 65 definition, bump SpriteReason_BadReasonCode up to 66
        Tested on Iyonix, BB-xM
      Version 2.42. Tagged as 'HdrSrc-2_42'
    • Ben Avison's avatar
      Resync with allocations database · c09e76e7
      Ben Avison authored
        * Add extra flag definition to Hdr:GraphicsV
        * Decloak two system service calls previously used only by ROL fork
      Version 2.41. Tagged as 'HdrSrc-2_41'
  19. 26 Jan, 2014 1 commit
  20. 03 Jan, 2014 1 commit
  21. 15 Dec, 2013 1 commit
  22. 29 Nov, 2013 1 commit
    • Ben Avison's avatar
      Resync with allocations database · 84767a10
      Ben Avison authored
        * Add error block for BASIC module
        * Retire RTCSupport switch in Hdr:Machine.Machine
      Version 2.37. Tagged as 'HdrSrc-2_37'
  23. 18 Nov, 2013 1 commit
    • Ben Avison's avatar
      Resync with allocations database · d810cab3
      Ben Avison authored
        * Retire hdr:FreeWay in favour of hdr:FreewayReg
        * SWI chunk and error base for RTC module
        * New shared single error number for drivers to report hardware not found
        * Single service calls for boot sequence to inform (primarily ROM) modules
          that system variables have become valid
      Version 2.36. Tagged as 'HdrSrc-2_36'
  24. 13 Oct, 2013 1 commit
    • Jeffrey Lee's avatar
      Add OS_SpriteOp 38 definition · 25c2cd72
      Jeffrey Lee authored
        hdr/Sprite - Add OS_SpriteOp 38 (CreateRemoveAlpha), for converting between 1bpp masks, alpha masks, and alpha channels
        Tested on BB-xM
      Version 2.35. Tagged as 'HdrSrc-2_35'
  25. 06 Oct, 2013 1 commit
  26. 25 Sep, 2013 1 commit
  27. 24 Aug, 2013 1 commit
    • Ben Avison's avatar
      Workaround StrongARM bug in PLP macro · 0be53ec1
      Ben Avison authored
        Conditional MSR bug applied to the version of PLP that's used when both
        pre-ARMv3 and 32-bit compatibility is required (e.g. disc builds).
        Spotted by Sprow
      Version 2.32. Tagged as 'HdrSrc-2_32'
  28. 06 Aug, 2013 1 commit
  29. 27 Jul, 2013 2 commits
  30. 29 Apr, 2013 1 commit
    • Ben Avison's avatar
      Bugfix to macros in Hdr:CPU.Generic32 · 7a505e55
      Ben Avison authored
        A number of these macros, when build targeting all CPUs (e.g. in disc builds)
        only worked correctly if a register was specified to leave the original
        PSR state in.
        Untested, but no risk to ROM builds.
      Version 2.28. Tagged as 'HdrSrc-2_28'
  31. 06 Apr, 2013 2 commits
  32. 23 Mar, 2013 2 commits
    • Ben Avison's avatar
      Second of a two-part update of HdrSrc. · 726bd695
      Ben Avison authored
        * Hdr:CPU.Arch added to the list of header files included here. This is
          because it's now needed by Hdr:CPU.Generic*.
        * Reintroduced ARMv2 compatibility to many macros. Should allow a new
          universal boot sequence to be constructed.
        * SCPSR in Generic26 optimised in cases where no PSR bits are preserved.
        * RemovePSRFromReg optimised for 32bit-only builds - becomes a no-op.
        * Reordering of braces so that symbol "HAL" doesn't have to be defined -
          useful for disc builds, which target both HAL and non-HAL machines, so
          the symbol is undefined.
        * Added some comments and an assert about No26bitCode and No32bitCode.
        Update originally from Rob Sprowson, bugfixes and additions and split into
        two parts by me.
      Version 2.26. Tagged as 'HdrSrc-2_26'
    • Ben Avison's avatar
      First of a two-part update of Hdr:CPU.Generic* · 154397df
      Ben Avison authored
        Changes split into two parts to make the diffs readable. In this part:
        * Simplified the inclusion of Hdr:Machine.<Machine> - all current builds
          require a new enough version of objasm that the bug with GET directives
          inside conditionals appears to no longer apply.
        * A number of macros used to have large switches of almost-identical code
          depending upon whether an optional register was defined or not - these
          are now simplified by using a local variable to hold the register.
        * RETURNS is no longer wrapped in :LNOT: No26bitCode, since it could still
          be useful for exception return, non-transient callback handlers etc.
          However, its presence is still a warning sign for non-32-bit-compatible
          code, so it emits a warning unless you add an extra argument to indicate
          that you've vetted that the code is 32-bit safe.
        * Operator precedence bug fixed in SCPSR from Generic32 copied across to
          Generic26 (applies if bits to set/clear were given as expressions).
        * Conflicting set and clear bits in SCPSR now produce an error in both
          Generic26 and Generic32 (previously was only a warning in Generic26).
        * Added the same flag bit check in WritePSRc in Generic26 as already
          existed in Generic32.
        * Some comments reformatted for consistency.
        * Uses of mymrs replaced with MRS, and unconditional or flag-only uses of
          mymsr macro replaced with MSR (other ones remain to deal with the
          StrongARM bug).
        * RETURNVC and RETURNVS no longer accept NV condition code.
        * Removed BKPT macro (now implemented natively in objasm).
        Update originally from Rob Sprowson, bugfixed and split into two parts by me.
      Version 2.25. Tagged as 'HdrSrc-2_25'
  33. 27 Jan, 2013 1 commit
    • Ben Avison's avatar
      Rationalisation of Hdr:Machine · 6b8c37eb
      Ben Avison authored
        * Updated comments in 32, All, All32
        * New Machine for IOMD class
        * Phoebe support removed
        * In Hdr:Machine.Machine:
          + Moved the 4 common switches to the top (No32bitCode; No26bitCode;
            NoUnaligned; StrongARM_MSR_bug).
          + Bracketed non 'All' switches, mid term most of these are actually
            kernel private switches, but the HAL kernel still includes a lot of
            pre HAL code so making it tricky to obsolete them in one pass.
          + Bracketed non 'HAL' switches, pending deletion.
          + Bracketed non 'HAL' STB switches, pending deletion.
          + Deleted unused "NewClockChip", "CDVPoduleIRQs", "OldComboSupport",
             "DoPOSTwithoutPowerOn", "M_Phoebe".
          + Moved "HAL32"; "HAL26"; "ROMSizeOffset" to kernel header.
          + Added some comments.
        Changes provided by Sprow
      Version 2.24. Tagged as 'HdrSrc-2_24'
  34. 13 Jan, 2013 1 commit