- 18 Jun, 2012 1 commit
-
-
Robert Sprowson authored
The only fake result now is the hard ROM amount, which is hardwired to 4MB and might not be correct. Unrelated changes hdr.HALDevice: Assign a device for VIDC20. hdr.KernelWS: Reorder into ascending order, remove legacy addresses. s.ARM600: Move PhysSpaceSize inside :LNOT:HAL switch. s.Kernel: Move PhysSpaceSize inside :LNOT:HAL switch. Version 5.35, 4.79.2.153. Tagged as 'Kernel-5_35-4_79_2_153'
-
- 04 Jun, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: hdr/HALEntries - Brought in line with RPi branch, plus addition of new HAL_UARTDefault HAL entry, to allow DualSerial to determine which (if any) of the HAL UARTs should be the default UART accessed via OS_SerialOp s/GetAll - Add GET of Hdr:SerialOp s/PMF/osbyte - Use OS_SerialOp 10 when constructing filename to open for OS_Byte 2 Admin: Tested in OMAP3, Tungsten ROMs Version 5.35, 4.79.2.152. Tagged as 'Kernel-5_35-4_79_2_152'
-
- 26 May, 2012 1 commit
-
-
Robert Sprowson authored
The kernel already looks after all other aspects of the ARM CPU, so can look after the cache control command too. HelpStrs.s:New tokens for help and syntax CmdHelp.s:UK help and syntax Arthur3.s:Tables updates for *CONFIGURE/STATUS, lined some stuff up, default error text sync'd with Hdr:NewErrors MoreComms.s:Parsing and doing of *CACHE Utility.s:Hashing table updated for *CACHE Other minor changes hdr/Options:Bring 'MosVer' into the private header hdr/RISCOS:aasm aliases for SP removed, MainVars and MosVer made private, added definition of the start of application space HeapMan.s:Use of GRAB changed to Pull Offset of TutuCMOS changed for more informative PrintSoundCMOS PMF/osbyte.s:Use OsBytes header file in place of MainVars Version 5.35, 4.79.2.151. Tagged as 'Kernel-5_35-4_79_2_151'
-
- 21 May, 2012 2 commits
-
-
Robert Sprowson authored
-
Robert Sprowson authored
While the HAL and kernel were being split some temporary macros were used for the bits being worked on, after 12 years of use they're probably safe to adopt. mjsCallHAL -> CallHAL; mjsAddressHAL -> AddressHAL; mjsHAL -> HAL. OS_VIDCDividerSWI code now always does NoSuchSWI (had been switched out previously). File vduhint.s no longer assembled (was empty). Version 5.35, 4.79.2.150. Tagged as 'Kernel-5_35-4_79_2_150'
-
- 18 May, 2012 1 commit
-
-
Robert Sprowson authored
Version 5.35, 4.79.2.149. Tagged as 'Kernel-5_35-4_79_2_149'
-
- 15 May, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: s/Kernel - A bug introduced when adding the BFI optimisations meant that NoIrqVecSwiDespatch was enabling IRQs instead of disabling them, leading to lr_irq corruption and a potential crash if the SWIs were used from IRQ mode Admin: Tested on rev A2 BB-xM Having KeyExtend loaded no longer causes random crashes during keyboard input Fixes issue reported on forums: http://www.riscosopen.org/forum/forums/4/topics/1024#posts-12004 Version 5.35, 4.79.2.148. Tagged as 'Kernel-5_35-4_79_2_148'
-
- 25 Apr, 2012 1 commit
-
-
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'
-
- 15 Apr, 2012 1 commit
-
-
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'
-
- 08 Apr, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: hdr/HALDevice - Add device ID for new SmartReflex-based CPUClk device that takes over from the current OMAP3 one on AM/DM37x devices Admin: Tested in OMAP3 ROM Version 5.35, 4.79.2.145. Tagged as 'Kernel-5_35-4_79_2_145'
-
- 25 Mar, 2012 1 commit
-
-
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'
-
- 24 Mar, 2012 2 commits
-
-
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'
-
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'
-
- 19 Mar, 2012 1 commit
-
-
Robert Sprowson authored
On odd numbered versions was coming out as 7F not F7. Version 5.35, 4.79.2.141. Tagged as 'Kernel-5_35-4_79_2_141'
-
- 17 Mar, 2012 1 commit
-
-
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'
-
- 11 Mar, 2012 1 commit
-
-
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'
-
- 25 Feb, 2012 2 commits
-
-
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'
-
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'
-
- 18 Feb, 2012 1 commit
-
-
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'
-
- 09 Feb, 2012 1 commit
-
-
Robert Sprowson authored
-
- 01 Feb, 2012 1 commit
-
-
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'
-
- 27 Jan, 2012 1 commit
-
-
Robert Sprowson authored
Version 5.35, 4.79.2.134. Tagged as 'Kernel-5_35-4_79_2_134'
-
- 15 Jan, 2012 1 commit
-
-
Robert Sprowson authored
Add two more DebugTX in the reset sequence to announce power on reset and CMOS reset code paths. In STB land the range of permitted dates is extended from 2020 (a bit close!) to 2037 when Unix time wraps. Version 5.35, 4.79.2.133. Tagged as 'Kernel-5_35-4_79_2_133'
-
- 05 Jan, 2012 2 commits
-
-
Robert Sprowson authored
Version 5.35, 4.79.2.132. Tagged as 'Kernel-5_35-4_79_2_132'
-
Robert Sprowson authored
Version 5.35, 4.79.2.131. Tagged as 'Kernel-5_35-4_79_2_131'
-
- 10 Dec, 2011 3 commits
-
-
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'
-
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'
-
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'
-
- 27 Nov, 2011 4 commits
-
-
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'
-
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'
-
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'
-
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'
-
- 26 Nov, 2011 1 commit
-
-
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'
-
- 13 Nov, 2011 2 commits
-
-
Ben Avison authored
Version 5.35, 4.79.2.122. Tagged as 'Kernel-5_35-4_79_2_122'
-
Ben Avison authored
Version 5.35, 4.79.2.98.2.54. Tagged as 'Kernel-5_35-4_79_2_98_2_54'
-
- 24 Sep, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: s/Arthur3, s/ChangeDyn, s/HAL, s/HeapMan, s/Middle, s/MoreSWIs, s/NewIRQs, s/Utility, s/VMSAv6, s/PMF/key, s/PMF/osbyte, s/PMF/osword, s/vdu/vdudecl, s/vdu/vdudriver, s/vdu/vduplot, s/vdu/vduwrch - Tweaked lots of LDM/STM instructions in order to get rid of the depracation/performance warnings Admin: Tested on rev A2 BB-xM Version 5.35, 4.79.2.98.2.53. Tagged as 'Kernel-5_35-4_79_2_98_2_53'
-
- 14 Sep, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: s/ARMops - My previous checkin mistakenly changed Cache_InvalidateAll_WB_CR7_Lx so that it cleans and invalidates the cache instead of just invalidating it. This fixes that. Also fixed a warning caused by the trailing space going AWOL from the 'cache type register fields' comment. Admin: Tested on rev A2 BB-xM Version 5.35, 4.79.2.98.2.52. Tagged as 'Kernel-5_35-4_79_2_98_2_52'
-
- 12 Sep, 2011 2 commits
-
-
Jeffrey Lee authored
Detail: hdr/Copro15ops: - Fixed incorrect encodings of ISH/ISHST variants of DMB/DSB instructions s/ARMops, s/HAL, hdr/KernelWS: - Replace the ARMv7 cache maintenance code with the example code from the ARMv7 ARM. This allows it to deal with caches with non power-of-two set/way counts, and caches with only one way. - Fixed Analyse_WB_CR7_Lx to use the cache level ID register to work out how many caches to query instead of just looking for a 0 result from CSSIDR. - Also only look for 7 cache levels, since level 8 doesn't exist according to the ARMv7 ARM. s/NewReset: - Removed some incorrect/misleading debug output Admin: Tested on rev A2 BB-xM Version 5.35, 4.79.2.98.2.51. Tagged as 'Kernel-5_35-4_79_2_98_2_51'
-
Ben Avison authored
Detail: hdr.ARMops added Cortex_A9 hdr.HALDevice added OMAP4 specific device IDs hdr.KernelWS changed definition of DefIRQ1Vspace for M_CortexA9 s.ARMops added CortexA9 specific code for enabling L2 cache added CPUDesc Cortex_A9 s.NewIRQs added CortexA9 specific definition of MaxInterrupts s.NewReset added M_CortexA9 options line 1444: corrected typo line 187: commented out unnecessary operation Admin: Submission from Willi Theiß Version 5.35, 4.79.2.98.2.50. Tagged as 'Kernel-5_35-4_79_2_98_2_50'
-
- 22 Aug, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: s/HAL - Reset_IRQ_Handler now uses HAL_IRQSource to determine the cause of the interrupt, using that value to work out which IIC bus (if any) generated the IRQ. If it's unrecognised it passes it to HAL_KbdScanInterrupt, and if that fails to do anything it'll disable the IRQ. This aims to fix the spurious "No XStart!" debug spam that the OMAP IIC drivers produce when the keyboard scan is running, and to fix the potential IIC breakage that could occur by the IIC code trying to clear the non-existant interrupt. Note that behaviour of HAL_KbdScanInterrupt has now been changed; it now accepts the device number in a1, and is expected to return either -1 (if the interrupt was handled) or the device number given as input (if the interrupt wasn't handled, e.g. not from a device managed by the keyboard scan code). Admin: Tested on rev C2 BB Version 5.35, 4.79.2.98.2.49. Tagged as 'Kernel-5_35-4_79_2_98_2_49'
-