1. 26 Jun, 2012 2 commits
  2. 24 Jun, 2012 1 commit
  3. 04 Jun, 2012 1 commit
  4. 23 May, 2012 2 commits
    • Ben Avison's avatar
      Refinement to Timer clear change from a recent commit · 250f852b
      Ben Avison authored
      Detail:
        An undocumented entry condition of TickOne is that r0 contains the device
        number corresponding to Timer0. This must be passed to HAL_IRQClear on
        some platforms.
      Admin:
        Tested only on a Raspberry Pi. Also added enumeration of entry numbers in
        comments in Hdr:HALEntries - a handy reference when debugging from the
        command line!
      
      Version 5.35, 4.79.2.147.2.8. Tagged as 'Kernel-5_35-4_79_2_147_2_8'
      250f852b
    • John Ballance's avatar
      Added HAL_TimerIRQClear cann for system timer 0 · 41e5831f
      John Ballance authored
      Detail:
        (list files and functions that have changed)
      Admin:
        shown running in system
        (highlight level of testing that has taken place)
        (bugfix number if appropriate)
      
      
      Version 5.35, 4.79.2.147.2.7. Tagged as 'Kernel-5_35-4_79_2_147_2_7'
      41e5831f
  5. 21 May, 2012 1 commit
  6. 20 May, 2012 1 commit
    • John Ballance's avatar
      Changes to resolve some of the BCM2835 initial hacks · f549c0ff
      John Ballance authored
        1: Added HAL_FramebufferAddress entry.
        2: Minor mod the NoIrqVecSwiDispatch mods recently submitted. Improved coverage
        3: Added compile time switch InverseTextTransparency to toggle sense of text
        (pre-wimp) for use until correct transparency behaviour is introduced in the RPi
        start.elf.
        4: Ensured that if a non aligned frame buffer is reported, ALL of the space
        is actually mapped in.
      Detail:
        (list files and functions that have changed)
      Admin:
        builds and runs .. Still needs service_mode extension work to replace hard
        coded mode definition files
        (highlight level of testing that has taken place)
        (bugfix number if appropriate)
      
      
      Version 5.35, 4.79.2.147.2.5. Tagged as 'Kernel-5_35-4_79_2_147_2_5'
      f549c0ff
  7. 18 May, 2012 2 commits
  8. 14 May, 2012 1 commit
    • Ben Avison's avatar
      Fixed cache detection code · 115e6d35
      Ben Avison authored
      Detail:
        The cache details were previously fixed in a look-up table based upon the
        CPU as determined from the Main ID register for "fancy" ARMv6 CPUs (that is,
        ARMv6K, ARMv6Z, ARMv6T2). So the details for the S3C6410 were being used
        for all ARM1176JZF-S CPUs, which isn't correct for the BCM2835, which has
        the same CPU. Adrian's original stopgap solution was to override the
        settings with a bunch of MOV instructions, which had the effect of making
        the kernel useless on any other CPU. Now the details are read from the ARM
        cache type register for fancy ARMv6 CPUs. This necessitated adding support
        for an extra cache type: writeback, with cache cleaning using R7, and cache
        lockdown format C. Since we don't actually do cache lockdown, this follows
        the same code path as cache lockdown type A, which was originally written
        for ARM9 CPUs.
      Admin:
        Tested in a Raspberry Pi build
      
      Version 5.35, 4.79.2.147.2.2. Tagged as 'Kernel-5_35-4_79_2_147_2_2'
      115e6d35
  9. 10 May, 2012 1 commit
    • Ben Avison's avatar
      Merge of Raspberry Pi support code against latest kernel · f092f5f5
      Ben Avison authored
      Detail:
        This is a new branch from the current tip of the HAL branch, incorporating
        the changes received from Adrian Lees. The same caveats apply - this is a
        work in progress and will not work on any other platform at present.
      Admin:
        Builds, but not tested.
      
      Version 5.35, 4.79.2.147.2.1. Tagged as 'Kernel-5_35-4_79_2_147_2_1'
      f092f5f5
  10. 25 Apr, 2012 1 commit
    • Ben Avison's avatar
      Fix stack imbalances · 105674f6
      Ben Avison authored
      Detail:
        In a couple of early exits from LookForHALRTC, R12 was missing from the
        pull macros.
      Admin:
        Fix received from John Ballance.
      
      Version 5.35, 4.79.2.147. Tagged as 'Kernel-5_35-4_79_2_147'
      105674f6
  11. 15 Apr, 2012 1 commit
    • Jeffrey Lee's avatar
      OS_ChangeDynamicArea performance optimisations · 5e11e665
      Jeffrey Lee authored
      Detail:
        s/ChangeDyn:
          - Apply various optimisations to OS_ChangeDynamicArea to reduce the execution time when performing large grows/shrinks.
          - Optimisations can be toggled on/off with FastCDA_* flags for debugging.
          - On a 1GHz 512MB BB-xM, the initial *FreePool call now takes 0.15s instead of 13.46s. On a 512MB Iyonix the time has dropped from 1.18s to 0.23s.
          - Growing screen memory (on BB-xM) has also seen significant gains - between 2x and 4x speedup, depending on what state the source pages are in.
          - Added/updated documentation for a few functions and made more use of ROUTs for safety
        s/ARM600, s/VMSAv6:
          - Update BangCamUpdate, etc. to add support for the PageFlags_Unsafe flag that OS_ChangeDynamicArea uses to bypass cache/TLB maintenance in some situations
          - Avoid BangCamUpdate calling BangL2PT to map out the page if the page isn't mapped in (avoids unnecessary cache/TLB flush)
        s/ArthurSWIs:
          - Add extra ASSERT for safety
        s/AMBcontrol/memory
          - Fix incorrect assumption that the usable size of a heap block is always 8 less than the value stored in the header. Even with the old 8 byte aligned allocations the usable size will always be 4 bytes less than the value in the header. This code would have resulted in some slight memory wasteage, as AMBcontrol will have always tried growing the block four bytes bigger than needed.
      Admin:
        Tested on Iyonix & BB-xM
      
      
      Version 5.35, 4.79.2.146. Tagged as 'Kernel-5_35-4_79_2_146'
      5e11e665
  12. 08 Apr, 2012 1 commit
  13. 25 Mar, 2012 1 commit
    • Robert Sprowson's avatar
      Tighten up time conversions. · 1cd6a8f2
      Robert Sprowson authored
      Convrsions.s:
      Don't trash R4 in OS_ConvertDateAndTime
      Reject buffer sizes > 2G (seems reasonable for a time string, and allows us to claw back a flag bit).
      PMF/osword.s:
      Just call Territory_ConvertDateAndTime directly since that's all OS_ConvertDateAndTime does.
      Trim some now irrelevant comments and switched out code.
      
      Version 5.35, 4.79.2.144. Tagged as 'Kernel-5_35-4_79_2_144'
      1cd6a8f2
  14. 24 Mar, 2012 2 commits
    • Ben Avison's avatar
      Retired *Configure options, and a new header export · 68f45833
      Ben Avison authored
      Detail:
        * As noted in recent commits to ADFS, the *Configure options Dir and NoDir
          haven't done anything since RISC OS 2, so ADFS has stopped reading the
          CMOS bit. Unusually, these options are implemented by the kernel, so this
          is the accompanying change to remove the *Configure options. This frees
          up a bit of CMOS for future re-use.
        * Now exports a C version of Hdr:ModHand.
      Admin:
        Builds OK, but not tested in a ROM build yet (should be fairly safe though)
      
      Version 5.35, 4.79.2.143. Tagged as 'Kernel-5_35-4_79_2_143'
      68f45833
    • Jeffrey Lee's avatar
      Fix asasm 2.00 error · 36751c40
      Jeffrey Lee authored
      Detail:
        s/AMBControl/service - Fix missing colon on end of :OR: operator
      Admin:
        Identical binary under objasm
      
      
      Version 5.35, 4.79.2.142. Tagged as 'Kernel-5_35-4_79_2_142'
      36751c40
  15. 19 Mar, 2012 1 commit
  16. 17 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Correct mode 47 parameters · 60c8dfe3
      Jeffrey Lee authored
      Detail:
        s/vdu/vdumodes - Mode 47 is 360 pixels wide, so should be 45 text columns, not 90
      Admin:
        Tested in Iyonix ROM softload
      
      
      Version 5.35, 4.79.2.140. Tagged as 'Kernel-5_35-4_79_2_140'
      60c8dfe3
  17. 11 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Select correct mouse type for IOMD systems · eacf838f
      Jeffrey Lee authored
      Detail:
        s/NewReset - When resetting the mouse type, for M_32 builds, check what IOMD version is fitted and select Quadrature/PS2 as appropriate
        Falls back to USB if no IOMD/unrecognised IOMD
      Admin:
        Tested in IOMD softload on RiscPC
      
      
      Version 5.35, 4.79.2.139. Tagged as 'Kernel-5_35-4_79_2_139'
      eacf838f
  18. 25 Feb, 2012 2 commits
    • Jeffrey Lee's avatar
      Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks. · 538f3c24
      Jeffrey Lee authored
      Detail:
        hdr/OSEntries, s/HAL, s/Kernel - Add compressed ROM support.
        With the current scheme, a compressed ROM will have everything except the HAL and kernel compressed.
        During the keyboard scan period the kernel will allocate some temporary decompression workspace and call the decompression stub that was appended to the ROM.
        The decompression stub is expected to perform in-place decompression of the ROM. Once decompression is complete the workspace will be freed and the page tables updated to make the ROM image readonly.
        It's the HAL's responsibility to make sure any compressed ROM is located in an area of physically contiguous RAM large enough to hold the uncompressed image.
        More info here: http://www.riscosopen.org/wiki/documentation/show/Compressed%20ROMs
        Makefile, h/OSEntries - Add C export of hdr/OSEntries
        hdr/HALDevice - Add device ID for Tungsten video device. Convert tabs to spaces for consistency.
        hdr/HALEntries, s/NewReset - Moved KbdFlag_* definitions to hdr/HALEntries so HALs can use them in their keyboard scan code
        s/ArthurSWIs, S/HAL, s/HeapSort, s/Kernel, s/MemInfo, s/Middle, s/NewIRQs, s/TickEvents, s/vdu/vdugrafb - Make use of BLX, BFI and long multiplies if the CPU supports them. Don't support SWI calls from thumb mode if the CPU doesn't support thumb.
        s/HAL - Made the LDMIA in Init_MapInRAM more sensible (register order was backwards). The old code did work, but wasn't doing what the comments described. Removed unused/unfinished HAL_Write0 function. Improve RISCOS_LogToPhys to check L1PT for any section mappings if the logical_to_physical call fails
        s/ModHand - Save one instruction by using ADR instead of MOV+ADD to compute lr
        s/NewReset, s/PMF/key - Pass L1PT to HAL_Reset to allow machines without hardware reset (e.g. IOMD) to perform resets by manually disabling the MMU and restarting the ROM
        s/vdu/vdudriver, s/vdu/vdugrafv - Use GVEntry macro borrowed from NVidia module for setting up the GraphicsV jump table. Make GraphicsV_ReadPaletteEntry call HAL_Video_ReadPaletteEntry if left unclaimed. Fixup GV_Render to only call HAL_Video_Render if the HAL call is implemented.
      Admin:
        Tested with OMAP3, IOMD & Tungsten ROMs/softloads.
      
      
      Version 5.35, 4.79.2.138. Tagged as 'Kernel-5_35-4_79_2_138'
      538f3c24
    • Robert Sprowson's avatar
      Fix *SAVE syntax error message. · b9c19bd2
      Robert Sprowson authored
      The text had cunning hardspaces in it so that the *HELP text lines up nicely using OS_PrettyPrint, but not taking into account that internationalised syntax errors don't use OS_PrettyPrint so output VDU31,31,31 and jumped all over the place.
      Syntax message rephrased to fit on one line.
      Syntax and help for *TV cleared up since the help text contained all the syntax information.
      Spotted 2 wasted instructions in Oscli.s while investigating, added some comments too.
      
      Version 5.35, 4.79.2.137. Tagged as 'Kernel-5_35-4_79_2_137'
      b9c19bd2
  19. 18 Feb, 2012 1 commit
    • Robert Sprowson's avatar
      Process some callbacks during module initialisation. · 07f59bea
      Robert Sprowson authored
      When in DebugROMInit=TRUE mode each call to XOS_NewLine also checks and
      processes pending callbacks (in VduLF). This makes the USB enumeration
      come out in a different order because they're all collected at the end.
      As an intermediate step, collect callbacks for DebugROMInit=FALSE too.
      Note: developers should not rely on this behaviour, this will be phased
      out before the next stable release.
      
      Version 5.35, 4.79.2.136. Tagged as 'Kernel-5_35-4_79_2_136'
      07f59bea
  20. 09 Feb, 2012 1 commit
  21. 01 Feb, 2012 1 commit
    • Jeffrey Lee's avatar
      Add null hash table entry checks to SysCommsModule & UtilityModule hash table lookup · 97f47c50
      Jeffrey Lee authored
      Detail:
        s/Oscli - In SysCommsHashedLookup and UtilCommsHashedLookup, check for null hash table entries instead of just blindly calling ModCommsLookUp_AltEntry.
        This fixes an issue where a crash will occur iff:
        (a) You enter a command which has no entry in one of the two hash tables
        (b) The command is a valid command (with a code entry point) if you reinterpret the corresponding module header as a command table
        In reality, for recent versions of RISC OS 5, you'll get a crash only when trying to execute the command 's'. Some previous OS versions (e.g. 5.12) appear to have been immune to the crash.
        If (a) was true but (b) was false the bug would have also resulted in a small performance hit caused by attempting to scan the module headers for matching commands.
      Admin:
        Tested in Tungsten & OMAP ROM builds
        's' no longer crashes, and commands included in the two hash tables still seem to function as normal.
        Fixes issue reported on forums:
        http://www.riscosopen.org/forum/forums/4/topics/902
      
      
      Version 5.35, 4.79.2.135. Tagged as 'Kernel-5_35-4_79_2_135'
      97f47c50
  22. 27 Jan, 2012 1 commit
  23. 15 Jan, 2012 1 commit
  24. 05 Jan, 2012 2 commits
  25. 10 Dec, 2011 3 commits
    • Jeffrey Lee's avatar
      Fix OS_Heap 4. Fix stack imbalance in system heap code. · 19995840
      Jeffrey Lee authored
      Detail:
        s/HeapMan - The code to check if it's safe to shrink a block by 4 bytes assumed 'addr' was the address of the block, when in reality it's just an offset. This was causing the "OK to shrink?" check to always ignore the shrink request on heaps located below the 2G limit, but fail with "heap corrupt" errors in heaps located above the 2G limit.
        s/ArthurSWIs - Fix stack imbalance causing a crash if OS_Heap returns an unexpected error in DoSysHeapOpWithExtension/ClaimSysHeapNode
      Admin:
        Tested in Iyonix ROM softload
        Testbed didn't pick up heap shrink bug due to the sanity checks it performs not being vigorous enough.
      
      
      Version 5.35, 4.79.2.130. Tagged as 'Kernel-5_35-4_79_2_130'
      19995840
    • Jeffrey Lee's avatar
      Fix heap test compile errors · 3ba8734f
      Jeffrey Lee authored
      Detail:
        TestSrc/HeapTest/c/testbed - Added missing semicolon
        TestSrc/HeapTest/s/asm - Include Hdr:MsgTrans for XMessageTrans_CopyError
      Admin:
        Now compiles and runs properly!
      
      
      Version 5.35, 4.79.2.129. Tagged as 'Kernel-5_35-4_79_2_129'
      3ba8734f
    • Jeffrey Lee's avatar
      Improve heap manager. Add heap testbed. Add dummy implementation of some... · 4a30b643
      Jeffrey Lee authored
      Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
      
      Detail:
        s/HeapMan, hdr/KernelWS - Heap manager improvements:
          - Errors generated by interrupted heap operations that are forced to complete by a OS_Heap call from the background are now cached in kernel workspace until the foreground task is resumed. This prevents them from being potentially overwritten by MessageTrans running out of background error buffers.
          - Added new OS_Heap reason code, #7 - Get area aligned. This allows areas of memory to be allocated at specific (power-of-2) alignments, and optionally without crossing a given (power-of-2) boundary. Alignment & boundary calculations are performed using logical addresses.
          - Removed the limitation that all free and allocated blocks must be a multiple of 8 bytes in length. This change was required in order to allow OS_Heap 7 to function correctly. Now the only requirements are that blocks must be multiples of 4 bytes in length, at 4 byte alignment, with a minimum length of 8 bytes. 4 extra padding bytes may still be added to the end of allocations in order to avoid creating 4-byte free blocks.
        s/HeapMan, TestSrc/HeapTest/Makefile, TestSrc/HeapTest/c/testbed, TestSrc/HeapTest/s/asm - Added heap testbed program. Can either use the OS_Heap SWI or directly include a copy of the Kernel's heap manager sources.
        s/vdudecl, s/vduswis - Added dummy implementations of OS_ScreenMode 4, 5 and 6. This prevents the Wimp generating lots of "Unknown OS_ScreenMode reason code" errors when redrawing the screen.
        s/Arthur3, s/Oscli - Moved dotstring closer to where it's used to avoid "ADRL out of range" errors in Tungsten build
      Admin:
        Tested in OMAP3 ROM & Tungsten ROM softload.
        Heap testbed successfully performed over 400 million heap ops, so there shouldn't be any serious bugs in the new code (touch wood)
      
      
      Version 5.35, 4.79.2.128. Tagged as 'Kernel-5_35-4_79_2_128'
      4a30b643
  26. 27 Nov, 2011 4 commits
    • Robert Sprowson's avatar
      Rationalise some old switches. · 189b92c1
      Robert Sprowson authored
      Export less in hdr:RISCOS.
      Delete unused GetDecimalPair routine.
      Move CheckYear with other RTC stuff out of PMF/osword.
      Hide DebugROMInit and DebugROMErrors in release (even numbered) versions.
      
      Version 5.35, 4.79.2.127. Tagged as 'Kernel-5_35-4_79_2_127'
      189b92c1
    • Robert Sprowson's avatar
      Added 'UnConv' error (see also HdrSrc). · 191ae197
      Robert Sprowson authored
      Implement OS_ConvertVariform, internally the other conversions now just call it.
      Add tester for Variform to 'Dev'.
      Made block copy weirdness for XScale dependent on XScale arch flag.
      
      Version 5.35, 4.79.2.126. Tagged as 'Kernel-5_35-4_79_2_126'
      191ae197
    • Robert Sprowson's avatar
      Conversions rationalisation. · 0d73c680
      Robert Sprowson authored
      Delete pmf/convdate, moved to conversions.
      Moved OS_BinaryToDecimal to conversions.
      Remove OS_ConvertHex16 and friends.
      Add OS_ConvertVariform skeleton.
      Tidied conversions.
      
      Version 5.35, 4.79.2.125. Tagged as 'Kernel-5_35-4_79_2_125'
      0d73c680
    • Robert Sprowson's avatar
      Reindent Arthur2. · 2d883d8d
      Robert Sprowson authored
      Expand tabs.
      Swap DCI for instructions now Objasm 4 is out.
      Symbols for FSControl_CAT/RUN/OPT changed to non Arthur definitions.
      Still boots on IOMD class, no other testing.
      
      Version 5.35, 4.79.2.124. Tagged as 'Kernel-5_35-4_79_2_124'
      2d883d8d
  27. 26 Nov, 2011 1 commit
    • Jeffrey Lee's avatar
      Merge Cortex kernel into HAL branch · 50f95feb
      Jeffrey Lee authored
      Detail:
        This is a full merge of the Cortex kernel back into the HAL branch. Since the Cortex kernel is/was just a superset of the HAL branch, at this point in time both branches are identical.
        Main features the HAL branch gains from this merge:
        - ARMv6/ARMv7 support
        - High processor vectors/zero page relocation support
        - objasm 4 warning fixes
        - Improved HAL related functionality:
          - Support for HAL-driven RTCs instead of kernel-driven IIC based ones
          - Support for arbitrary size machine IDs
          - Support for multiple IIC busses
          - Support for any HAL size, instead of hardcoded 64k size
          - Probably some other stuff I've forgotten
        - Probably a few bug fixes here and there
      Admin:
        Tested on BB-xM & Iyonix.
        Was successfully flashed to ROM on an Iyonix to test the Cortex branch implementation of the 2010 RTC bug fix.
        IOMD build untested - but has been known to work in the past.
      
      
      Version 5.35, 4.79.2.123. Tagged as 'Kernel-5_35-4_79_2_123'
      50f95feb
  28. 13 Nov, 2011 2 commits