1. 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
  2. 28 Jan, 2022 1 commit
  3. 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'
  4. 28 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Add new "26" machine type. Simplify ARM2 support. · 7d0f8d91
      Jeffrey Lee authored
        hdr/Machine/26, hdr/Machine/Machine - Add new "26" machine type, which targets all 26 bit machines/OS versions (running only in 26 bit mode)
        hdr/CPU/Arch - Use ELIF to avoid bracket spam. Remove duplicate CortexA7 case.
        hdr/CPU/Generic26 - Add NOPs to PSR manipulation macros in order to make them ARM2-safe (Generic32 macros are already structured to have suitable NOPs when generating 32bit-neutral code, so it makes sense for Generic26 to take care of ARM2 as well). This removes the need for components which use these macros to insert any manual NOPs, whether for the StrongARM MSR bug or the ARM2 TEQP bug.
        hdr/CPU/Generic32 - Flag the StrongARM MSR NOP diagnostic message as a warning, so the line number can be included in the output, so developers can more easily investigate the issue.
        Tested with PlingSystem build
      Version 2.63. Tagged as 'HdrSrc-2_63'
  5. 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'
  6. 08 Nov, 2015 1 commit
    • 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'
  7. 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'
  8. 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'
  9. 03 Jun, 2011 1 commit
    • Ben Avison's avatar
      Added support for Machine=ARM11ZF · b3bff27a
      Ben Avison authored
        Suitable for ARMv6Z CPUs with VFPv2, e.g. ARM1176JZF-S
        Required by the S3C6410 HAL
      Version 1.82. Tagged as 'HdrSrc-1_82'
  10. 14 Jun, 2009 1 commit
    • Ben Avison's avatar
      Added support for machine-neutral builds · c8aa9b4a
      Ben Avison authored
        For use when building binaries which must run on a wide range of ARM
        architectures - typically used by disc builds rather than rom builds.
        Use Machine=All to target all machines, or Machine=All32 for any
        architecture from v3 (ARM600) upwards.
        Tested in a BuildHost build.
      Version 1.69. Tagged as 'HdrSrc-1_69'
  11. 08 May, 2009 2 commits
    • Ben Avison's avatar
      Fixed Hdr:CPU.Arch so that it actually works · 44a5cb1d
      Ben Avison authored
        Didn't previously interact with other standard RISC OS headers, especially
        Has now been used successfully in an (as-yet unreleased) build of Squash
        to add compatibility with ARMv6
      Version 1.67. Tagged as 'HdrSrc-1_67'
    • Steve Revill's avatar
      Very minor tweaks to the CPU.Arch header file. · 742e287d
      Steve Revill authored
      Changed the formatting of example 4 to look more consistent with they way
      we format asm code. Corrected the comments for example 5 to indicate that
      R0 may be corrupted also.
      Version 1.66. Tagged as 'HdrSrc-1_66'
  12. 06 May, 2009 1 commit
    • Ben Avison's avatar
      Added new assembler header file Hdr:CPU.Arch · 679c3da6
      Ben Avison authored
        Defines a large selection of boolean assembler variables, permitting
        authors to test the CPU architecture features required by the target
        platform(s) of a given build. Examples of use are included.
        Not tested in anger yet.
      Version 1.65. Tagged as 'HdrSrc-1_65'