1. 05 Dec, 2009 1 commit
    • Jeffrey Lee's avatar
      Fix HAL RTC initialisation in Cortex kernel · fc0b6873
      Jeffrey Lee authored
      Detail:
        LookForHALRTC wasn't initialising R12 to point to the OS Byte workspace before calling CheckYear, and instead relying on the previous value. This resulted in the RTC initialisation breaking once HAL_InitDevices started doing things to corrupt R12.
      Admin:
        Tested on rev C2 beagleboard
      
      
      Version 5.35, 4.79.2.98.2.18. Tagged as 'Kernel-5_35-4_79_2_98_2_18'
      fc0b6873
  2. 06 Nov, 2009 1 commit
    • Jeffrey Lee's avatar
      Fix bug when creating code variables via OS_SetVarVal, remove errant line from... · e1e71002
      Jeffrey Lee authored
      Fix bug when creating code variables via OS_SetVarVal, remove errant line from s.ARM600, automatically enable alignment exceptions if NoUnaligned is TRUE (Cortex branch)
      
      Detail:
        s/ARM600 - Removed an errant line that could have caused problems if the ARM600 MMU model was used with the WB_CR7_Lx cache type
        s/Arthur2 - OS_SetVarVal was failing to call XOS_SynchroniseCodeAreas after copying the code variables code block into the system heap. This has now been fixed.
        s/HAL - Alignment exceptions are now automatically enabled when the kernel is built with the NoUnaligned option turned on.
      Admin:
        Tested on rev C2 beagleboard. OS_SetVarVal fix means the Debugger module now shows the right register names instead of ofla!
      
      
      Version 5.35, 4.79.2.98.2.15. Tagged as 'Kernel-5_35-4_79_2_98_2_15'
      e1e71002
  3. 22 Oct, 2009 1 commit
    • Jeffrey Lee's avatar
      Fix error handling for sparse dynamic area resize operations, increase Cortex... · 04f4e5cd
      Jeffrey Lee authored
      Fix error handling for sparse dynamic area resize operations, increase Cortex kernel version number to 5.15
      
      Detail:
        s/ChangeDyn - Swap CMP with TEQ to avoid accidental clobbering of V flag before its state is checked on return from a SWI. Errors encountered during sparse dynamic area resize operations (OS_DynamicArea 9 & 10) should now be reported properly.
        Version - Update kernel version/date to 5.15, to match current HAL version. This change is to allow modules to properly detect whether the kernel has the sparse dynamic area fix - it does not (yet) mean that the Cortex kernel contains all the features of the current development HAL kernel!
      Admin:
        Tested on rev C2 beagleboard
      
      
      Version 5.35, 4.79.2.98.2.14. Tagged as 'Kernel-5_35-4_79_2_98_2_14'
      04f4e5cd
  4. 30 Sep, 2009 1 commit
    • Jeffrey Lee's avatar
      Update Cortex kernel to cope correctly with HAL RTC errors · d08aa9dc
      Jeffrey Lee authored
      Detail:
        The kernel will now attempt to cope with errors returned by HAL RTC devices - For RTC read operations, instead of just loading random garbage, the bad result will now be ignored and the soft 5-byte time left unaltered.
      Admin:
        Tested on rev C2 beagleboard. Year now correctly defaults to 1970 instead of 1900 if the OMAP3 RTC driver returns an error because the RTC isn't running yet.
      
      
      Version 5.35, 4.79.2.98.2.13. Tagged as 'Kernel-5_35-4_79_2_98_2_13'
      d08aa9dc
  5. 23 Jul, 2009 1 commit
    • Jeffrey Lee's avatar
      Add HAL RTC support to Cortex branch of kernel, clean up RTCSupport code · 7f21e480
      Jeffrey Lee authored
      Detail:
        HAL kernels (on the Cortex branch at least) now support HALDevice-based RTCs. If the kernels own RTC code is disabled or fails to detect an RTC, then after HAL_InitDevices is called the HALDevice list will be scanned for any HAL-resident RTC devices.
        Additionally, the RTCSupport flag (in Hdr:Machine.Machine), which was previously TRUE for all HAL kernels, can now be set to FALSE in HAL kernels to disable the kernels own IIC RTC code. This allows the unwanted legacy RTC code to be disabled for machines which are known to use HAL RTCs instead.
        hdr/RTCDevice - new header describing data structures used for HAL RTC device
        hdr/HALDevice - added RTCDevice device type, IIC serial bus type
        hdr/KernelWS - upgraded RTCFitted from a 1 byte field to 4 byte. It now stores either a null value (for no RTC), a value <2048 for an IIC RTC address, or a value >= 2048 for a RTCDevice ptr
        Makefile - added header export of hdr/RTCDevice
        s/GetAll - include hdr/RTCDevice
        s/NewReset - initialise HAL RTC after HAL_InitDevices if required
        s/PMF/i2cutils, s/PMF/osinit, s/PMF/osword - modifications to allow use of HAL RTC (and disallow use of builtin IIC RTC)
      Admin:
        Tested on rev C2 beagleboard
      
      
      Version 5.35, 4.79.2.98.2.11. Tagged as 'Kernel-5_35-4_79_2_98_2_11'
      7f21e480
  6. 17 Jul, 2009 1 commit
  7. 15 Jun, 2009 1 commit
    • Ben Avison's avatar
      Fix bugs and inefficiencies revealed by unaligned data audit · 8a9e694c
      Ben Avison authored
      Detail:
        s.PMF.i2cutils line 454: this LDR of byte values was harmless (bits 8
          upwards are discarded later) but slower than an LDRB on ARMv6 or later.
        s.PMF.i2cutils line 556: should have loaded RTCFitted using LDRB. Looks
          like effect would have been to reduce utilisation of CMOS cache.
        s.vdu.vduswis line 1500: mistakenly accessing ExternalFramestore using LDR.
          I don't think the intention was to prevent the screen DA being resized
          while screen memory was claimed, but that was the effect.
        s.vdu.vduwrch line 3106: this LDR of a 1-byte variable was harmless (only
          used for testing bit 4) but slower than an LDRB on ARMv6 or later.
        CPU version is no longer specified in the makefile - it's better to inherit
        it from the build environment now that we actually set it appropriately.
      Admin:
        Built and briefly tested.
      
      Version 5.35, 4.79.2.98.2.9. Tagged as 'Kernel-5_35-4_79_2_98_2_9'
      8a9e694c
  8. 17 May, 2009 1 commit
    • Ben Avison's avatar
      Miscellaneous v6-related updates · 9d9aa41b
      Ben Avison authored
      Detail:
       * Stopped calling the broken abort fixup code when running under VMSAv6.
         Might be desirable to update it, possibly farmed out to a separate module -
         still need to think about this.
       * Unaligned load optimisations can now be disabled by the global NoUnaligned
         flag for testing purposes.
       * Extended OS_ReadUnsigned to permit reading of 64-bit unsigned integers.
         See Docs.ReadUnsigned for more details. Also sped it up by using MLA
         (or UMLAL) for most digits rather than repeated addition.
       * Bugfix is OS_GSRead: an uninitialised r0 was being passed to
         OS_ReadUnsigned, causing undesirable effects on rare occasions.
      Admin:
        Tested on a rev B7 beagleboard.
      
      Version 5.35, 4.79.2.98.2.8. Tagged as 'Kernel-5_35-4_79_2_98_2_8'
      9d9aa41b
  9. 10 May, 2009 3 commits
    • Jeffrey Lee's avatar
      Disable paged scrolling when using the debug terminal · 76cbfa84
      Jeffrey Lee authored
      Detail:
        s/vdu/vduwrch - Modify PageTest to never use paged scrolling when DebugTerminal is true (since serial terminals aren't able to send shift up/down messages)
      Admin:
        Tested on rev C2 beagleboard.
      
      
      Version 5.35, 4.79.2.98.2.7. Tagged as 'Kernel-5_35-4_79_2_98_2_7'
      76cbfa84
    • Ben Avison's avatar
      Unaligned loads/stores optimised for ARMv6+ · 70865f8b
      Ben Avison authored
      Detail:
        Having scanned the kernel source for unaligned load code fragments which
        would abort on ARMv6 and v7 and not having found any, I took the opportunity
        to give them build-time switches to use unaligned LDR((S)H)/STR(H)
        instructions if built for a new enough platform. Also added a couple of
        cases of LDRSB that will benefit v4 CPUs and a few instances of the v6
        SXTH instruction, but since objasm doesn't yet understand it (and when it
        does, not everyone will have upgraded) they are currently written as
        DCI statements.
        Most of the changes are to OS_Word handlers, which are notorious in that
        their input/output block is not word-aligned.
      Admin:
        Not tested, but it should at least build.
      
      Version 5.35, 4.79.2.98.2.6. Tagged as 'Kernel-5_35-4_79_2_98_2_6'
      70865f8b
    • Jeffrey Lee's avatar
      Assorted kernel fixes for ARMv6/ARMv7 · ca8f36f5
      Jeffrey Lee authored
      Detail:
        s/ARMops - Fix IMB_Range_WB_CR7_Lx to clean the correct number of cache lines
        s/HAL - Change CP15 control register flags so unaligned loads are enabled on ARMv6 (to simplify support for ARMv7 where unaligned loads are always enabled, and to match the behaviour expected by the example code in Hdr:CPU.Arch)
        s/AMBControl/memmap - Make AMB_LazyFixUp use the correct L2PT protection flags depending on ARM600/VMSAv6 MMU model. Also guard against problems caused by future L2PT flag changes.
        s/vdu/vdugrafj - Fix previously undiscovered 32bit incompatability in GetSprite (OS_SpriteOp 14/16)
      Admin:
        Tested on rev C2 beagleboard
      
      
      Version 5.35, 4.79.2.98.2.5. Tagged as 'Kernel-5_35-4_79_2_98_2_5'
      ca8f36f5
  10. 23 Apr, 2009 1 commit
    • Jeffrey Lee's avatar
      Fix kernel cache clean/invalidate operations for Cortex CPUs · d28235ea
      Jeffrey Lee authored
      Detail:
        s/ARMops - Fix set/way-based cache ops for cache type WB_CR7_Lx to iterate sets/ways/cache levels properly
        s/HAL - Fix HAL_InvalidateCache_ARMvF to iterate sets/ways/cache levels properly
      Admin:
        Tested on rev C2 beagleboard
      
      
      Version 5.35, 4.79.2.98.2.4. Tagged as 'Kernel-5_35-4_79_2_98_2_4'
      d28235ea
  11. 06 Mar, 2009 1 commit
    • Jeffrey Lee's avatar
      Add VMSAv6 MMU support, fixes to allow booting on beagleboard · 3d1317e7
      Jeffrey Lee authored
      Detail:
        s/ARM600 - fix to SyncCodeAreasRange to correctly read cache line length for WB_CR7_Lx caches
        s/ARMops - Cortex cache handling fixes. Enable L2 cache for Cortex.
        s/ChangeDyn - VMSAv6 support in AllocateBackingLevel2
        s/HAL - Improve RISCOS_InitARM to set/clear correct CP15 flags for ARMv6/v7. VMSAv6 support in code to generate initial page tables.
        s/NewReset - Extra DebugTX calls during OS startup. Disable pre-HAL Processor_Type for HAL builds.
        s/VMSAv6 - Main VMSAv6 MMU code - stripped down version of s/ARM600 with support for basic VMSAv6 features.
        hdr/Options - Use VMSAv6 MMU code, not ARM600. Disable ARM6support since current VMSAv6 code will conflict with it.
      Admin:
        Tested basic OS functionality under qemu-omap3 and revision B6 beagleboard.
      
      
      Version 5.35, 4.79.2.98.2.3. Tagged as 'Kernel-5_35-4_79_2_98_2_3'
      3d1317e7
  12. 21 Feb, 2009 1 commit
    • Jeffrey Lee's avatar
      Add support for Cortex cache type. Extend ARM_Analyse to, where appropriate,... · ad9cdf41
      Jeffrey Lee authored
      Add support for Cortex cache type. Extend ARM_Analyse to, where appropriate, use CPU feature registers to identify CPU capabilities.
      
      Detail:
        s/ARMops - Support for Cortex multi-level cache (CT_ctype_WB_CR7_Lx). New ARM_Analyse_Fancy to identify CPU capabilities using feature registers.
        s/HAL - Modify pre-ARMop cache code to handle Cortex-syle caches.
        s/MemInfo - Replace ARM_flush_TLB macro call with appropriate ARMop to provide Cortex compatability
        hdr/ARMops - Update list of ARM architectures
        hdr/CoPro15ops - Deprecate ARM_flush_* macros for HAL kernels, as they are no longer capable of flushing all cache types. ARMops should be used instead.
        hdr/KernelWS - Add storage space for multi-level cache properties required for new cache cleaning code.
      Admin:
        Tested under qemu-omap3. Still unable to verify on real hardware due to lack of appropriate MMU code. However new OMAP3 HAL code that uses similar cache management functions appears to work fine on real hardware.
      
      
      Version 5.35, 4.79.2.98.2.2. Tagged as 'Kernel-5_35-4_79_2_98_2_2'
      ad9cdf41
  13. 01 Feb, 2009 1 commit
    • Jeffrey Lee's avatar
      Initial kernel support for Cortex-A8 processors. · e2262380
      Jeffrey Lee authored
      Detail:
        hdr/ARMops - Added Cortex_A8 processor type, new ARM architecture number
        hdr/Options - Enabled various kernel debug options
        s/ARMops - Added Cortex-A8/OMAP3530 to known CPUs list. Ignore cache type register for ARM architecture &F.
        s/NewIRQs - Increase MaxInterrupts to 96
      Admin:
        Brief testing under qemu-omap3.
      
      
      
      Version 5.35, 4.79.2.98.2.1. Tagged as 'Kernel-5_35-4_79_2_98_2_1'
      e2262380
  14. 22 Dec, 2008 1 commit
    • Ben Avison's avatar
      Minor kernel updates · ab08ee91
      Ben Avison authored
      Detail:
        * Added some documentation on previously undocumented HAL calls
        * Corrected NVMemoryFlag_Provision bitmask to match documentation
        * Bugfix: NVMemoryFlag_ProtectAtEnd flag was being ignored
      Admin:
        Not tested
      
      Version 5.35, 4.79.2.98. Tagged as 'Kernel-5_35-4_79_2_98'
      ab08ee91
  15. 23 Sep, 2005 1 commit
  16. 16 Sep, 2005 1 commit
  17. 15 Sep, 2005 1 commit
    • Ben Avison's avatar
      Bugfix to *Help. · 82d4de44
      Ben Avison authored
      Detail:
        Internationalisation of *Help code (ie probably dating back to RISC OS 3.1)
        broke the Escape condition checking. This is particularly nasty if you
        do *Help . on a machine with slow hardware scrolling!
      Admin:
        Not tested.
      
      Version 5.35, 4.79.2.89. Tagged as 'Kernel-5_35-4_79_2_89'
      82d4de44
  18. 04 May, 2005 1 commit
  19. 21 Mar, 2005 1 commit
  20. 04 Nov, 2004 1 commit
  21. 02 Nov, 2004 1 commit
    • John Ballance's avatar
      several mode: · 208da9fd
      John Ballance authored
           1: default ticker based vsync generated whenever no device present to do so
           2: graphicsv handling and spec updated to use the hi 8 bits in the
              reason code (R4) to define the display number. Kernel only knows
              of display 0
      Detail:
      Admin:
           tested castle  castle added ip
      
      
      Version 5.35, 4.79.2.81. Tagged as 'Kernel-5_35-4_79_2_81'
      208da9fd
  22. 29 Oct, 2004 1 commit
  23. 13 Oct, 2004 1 commit
    • Ben Avison's avatar
      Bugfix and header change. · 9a6346d8
      Ben Avison authored
      Detail:
        * I noticed in passing that the default exception handlers were broken for
          non-IOMD machines if the exception was raised in FIQ mode - unless you
          had a very large application slot, then the machine would lock up. Now
          properly HAL-ised.
        * Added a new event number, allocated for PRISM use back in June.
      Admin:
        Not tested. However, it can't make the situation any worse!
      
      Version 5.35, 4.79.2.78. Tagged as 'Kernel-5_35-4_79_2_78'
      9a6346d8
  24. 06 Oct, 2004 1 commit
    • Ben Avison's avatar
      Change to calling conditions of UnthreadV. · 5e89ff87
      Ben Avison authored
      Detail:
        Previously, UnthreadV was only called when the IRQsema chain was empty, the
        link for the just-completed interrupt having just been removed. However,
        the information in the link is necessary to allow OS_Heap to be called from
        UnthreadV context, and patching up IRQsema within the UnthreadV handler
        prevents the implementation of a prioritised threading scheme. As a result,
        we must call UnthreadV every time the interrupt dispatch unthreads, and
        leave it up to the UnthreadV handler to distinguish between return to
        thread context and return from a nested interrupt handler.
      Admin:
        Will require some sort of patch to enable heap-safe prioritised threading
        on RISC OS-STB 5.0.0 or RISC OS 5.07, the only two released OSes with the
        previous UnthreadV behaviour.
      
      Version 5.35, 4.79.2.77. Tagged as 'Kernel-5_35-4_79_2_77'
      5e89ff87
  25. 08 Sep, 2004 1 commit
  26. 06 Sep, 2004 1 commit
    • John Ballance's avatar
      fix for invalid cmos checksum computation on iyonix new version date for 5.07 · 83827e89
      John Ballance authored
      Detail:
         CheckSumBlock called IIC_OpV to checksum byte 0 of CMOS, but read back the
         resultant checksum from the wrong offset (#20.. new R1 value)..  now
         corrected to #24 as the correct offset (approx line 997).
      
      Admin:
         tested at castle in iyonix
         castle added IP
      
      
      Version 5.35, 4.79.2.74. Tagged as 'Kernel-5_35-4_79_2_74'
      83827e89
  27. 12 Aug, 2004 1 commit
  28. 25 Jun, 2004 1 commit
    • Kevin Bracey's avatar
      * Changed some STB switches to Embedded_UI · 0731377c
      Kevin Bracey authored
      * Added use of CDVPoduleIRQs (from Hdr:Machine)
      * Fixed checksum corruption in OS_NVMemory block writes ending just below
        the checksum byte.
      * Fixed R4 corruption by OS_Byte 162 with certain HALs.
      
      Version 5.35, 4.79.2.71. Tagged as 'Kernel-5_35-4_79_2_71'
      0731377c
  29. 21 Jun, 2004 2 commits
    • Ben Avison's avatar
      Bugfixes to OS_Bytes 13 and 14. · 799120d5
      Ben Avison authored
      Detail:
        Event numbers greater than 31 are possible, it's just that OS_GenerateEvent
        doesn't bother cheking the event semaphores for them. However, the value
        returned in R1 from these OS_Bytes always indicated that such events were
        disabled. This suggests that OS_GenerateEvent was not always so, but the
        initials in comments there suggest the change was about RISC OS 3.0.
        The OS_Bytes now correctly reflect OS_GenerateEvent behaviour.
        Another bug fix is that once the event semaphores had saturated at 255,
        OS_Byte 13 was still happy to decrement the semaphore, so for example 256
        enables followed by 255 disables would have disabled the event.
      Admin:
        Not tested.
      
      Version 5.35, 4.79.2.70. Tagged as 'Kernel-5_35-4_79_2_70'
      799120d5
    • Ben Avison's avatar
      Added UnthreadV (vector &2B). Called near the end of despatch of the outermost... · 297a95c2
      Ben Avison authored
      Added UnthreadV (vector &2B). Called near the end of despatch of the outermost interrupt, in IRQ32/26 mode with IRQs disabled, just before transient and non-transient callback checking is performed. Suitable for implementing a CBAI replacement.
      
      Version 5.35, 4.79.2.69. Tagged as 'Kernel-5_35-4_79_2_69'
      297a95c2
  30. 18 Jun, 2004 1 commit
    • Ben Avison's avatar
      Added four new VDU variables. · f0e2e714
      Ben Avison authored
      Detail:
        174: left border size
        175: bottom border size
        176: right border size
        177: top border size
      Admin:
        Not tested.
      
      Version 5.35, 4.79.2.68. Tagged as 'Kernel-5_35-4_79_2_68'
      f0e2e714
  31. 07 May, 2004 1 commit
  32. 06 May, 2004 1 commit
    • Kevin Bracey's avatar
      * HAL can choose to limit amount of screen memory to allocate · 0f6941a8
      Kevin Bracey authored
        [Not fully implemented - for now leaves at least 16MB free if only
        one RAM area; was 1MB].
      * Added HAL_USBControllerInfo, HAL_MonitorLeadID and HAL_Video_Render.
      * Added HAL->OS call OS_IICOpV.
      * OS_MMUControl now allows independent control of I and C bits.
      * Added facility to deactivate keyboard debounce (magic word "NoKd" in
        R2 in KeyV 0).
      * Fixed problem with RAM amounts not a multiple of 4MB.
      * Supremacy bit (in VDU 19) now sets all 8 bits of supremacy.
      * Added PaletteV 14 (reads gamma tables).
      * Added Supremacy transfer functions (like gamma correction, but for
        supremacy). Allows easy global supremacy effects in a mode-independent
        fashion. Controlled with PaletteV 15,16.
      * Added modes 50-53 (320x240, 1,2,4,8bpp). Intended for small LCD.
      * Added 13.5kHz versions of TV modes (selected by Hdr:Machine).
      * Upped desktop version to 5.06.
      
      Version 5.35, 4.79.2.66. Tagged as 'Kernel-5_35-4_79_2_66'
      0f6941a8
  33. 02 Dec, 2003 1 commit
    • Ben Avison's avatar
      Fixed bug in KeyV handling: if it was called before the keyboard handler was... · 4248980f
      Ben Avison authored
      Fixed bug in KeyV handling: if it was called before the keyboard handler was installed, it would abort reading from an address that used to be in the logical copy of physical space on an IOMD machine. This manifested itself during software-initiated resets as an abort during ROM init, leaving you with an apparently dead machine.
      
      Version 5.35, 4.79.2.61. Tagged as 'Kernel-5_35-4_79_2_61'
      4248980f
  34. 31 Mar, 2003 1 commit
  35. 02 Mar, 2003 1 commit
    • Kevin Bracey's avatar
      OSDelink/RelinkApp now work on the list in opposite orders so that the order... · d5916783
      Kevin Bracey authored
      OSDelink/RelinkApp now work on the list in opposite orders so that the order of vector claims doesn't get toggled.
      
      Fix for *FX5 not working due to a TST having been swapped for CMP.
      Checkprotectionlink option added to HAL version so CMOS lock is
      implemented.
      Updated HAL docs.
      
      Version 5.35, 4.79.2.58. Tagged as 'Kernel-5_35-4_79_2_58'
      d5916783
  36. 28 Feb, 2003 1 commit
  37. 21 Feb, 2003 1 commit
    • Ben Avison's avatar
      Miscellaneous stuff. · d91e9420
      Ben Avison authored
      Detail:
        * Merged in the change to RISC OS 4.02 kernel that moved the GSTrans
          workspace out of scratch space.
        * Fixed a few bugs in callback postponement, and interrupt holes in
          callback dispatch. See Docs.CallbackChange for full info.
        * Fixed SystemSizeCMOS to SysHeapCMOS - wouldn't build as was.
        * Added an export of a C version of Hdr:HALDevice, based on the Hdr2H
          translation but with an additional struct definition. Required by
          SoundControl 1.00.
        * Added some additional location and ID allocations to Hdr:HALDevice.
          Required by today's HAL and SoundControl.
      Admin:
        Partially tested.
      
      Version 5.35, 4.79.2.56. Tagged as 'Kernel-5_35-4_79_2_56'
      d91e9420