- 16 Aug, 2019 2 commits
-
-
Ben Avison authored
Add a new reason code, OS_Memory 22, equivalent to OS_Memory 14, but accepting a 64-bit physical address in r1/r2. Current ARM architectures can only express 40-bit or 32-bit physical addresses in their page tables (depending on whether they feature the LPAE extension or not) so unlike OS_Memory 14, OS_Memory 22 can return an error if an invalid physical address has been supplied. OS_Memory 15 should still be used to release a temporary mapping, whether you claimed it using OS_Memory 14 or OS_Memory 22. The logical memory map has had to change to accommodate supersection mapping of the physical access window, which needs to be 16MB wide and aligned to a 16MB boundary. This results in there being 16MB less logical address space available for dynamic areas on all platforms (sorry) and there is now a 1MB hole spare in the system address range (above IO). The internal function RISCOS_AccessPhysicalAddress has been changed to accept a 64-bit physical address. This function has been a candidate for adding to the kernel entry points from the HAL for a long time - enough that it features in the original HAL documentation - but has not been so added (at least not yet) so there are no API compatibility issues there. Requires RiscOS/Sources/Programmer/HdrSrc!2
-
Ben Avison authored
This is facilitated by two extended calls. From the HAL: * RISCOS_MapInIO64 allows the physical address to be specified as 64-bit From the OS: * OS_Memory 21 acts like OS_Memory 13, but takes a 64-bit physical address There is no need to extend RISCOS_LogToPhys, instead we change its return type to uint64_t. Any existing HALs will only read the a1 register, thereby narrowing the result to 32 bits, which is fine because all existing HALs only expected a 32-bit physical address space anyway. Internally, RISCOS_MapInIO has been rewritten to detect and use supersections for IO regions that end above 4GB. Areas that straddle the 4GB boundary should also work, although if you then search for a sub-area that doesn't, it won't find a match and will instead map it in again using vanilla sections - this is enough of an edge case that I don't think we need to worry about it too much. The rewrite also conveniently fixes a bug in the old code: if the area being mapped in went all the way up to physical address 0xFFFFFFFF (inclusive) then only the first megabyte of the area was actually mapped in due to a loop termination issue. Requires RiscOS/Sources/Programmer/HdrSrc!2
-
- 29 Jul, 2017 1 commit
-
-
Jeffrey Lee authored
Detail: This commit lays some of the groundwork for SMP support within the HAL, kernel, and OS. Makefile, hdr/HALDevice, hdr/DBellDevice - Add definitions for a doorbell HAL device, to allow CPU cores to signal each other via interrupts hdr/HALEntries - Repurpose HAL_Matrix and HAL_Touchscreen entry points for new SMP-related entry points. Add a couple of IRQ-related definitions. hdr/KernelWS - Boost MaxInterrupts to 256 hdr/Options - Add new SMP build switch to control whether the kernel is built in SMP-friendly mode or not. SMP-friendly kernels should still run on single-core machines, but may behave slightly differently. s/ARMops - Make as many ARMops SMP-safe as possible, relying on hardware support for broadcasting of cache/TLB maintenance operations s/ExtraSWIs - Make SMP-friendly full OS_SynchroniseCodeAreas only sync application space and the RMA (full-cache IMB not really possible with SMP) s/NewIRQs - Update IRQ despatcher comments to (hopefully) reflect reality Docs/SMP/HAL, Docs/SMP/IRQ - Add documentation covering the new HAL calls and IRQ behaviour Admin: Tested on Raspberry Pi 2, 3, OMAP4, iMX6 Version 5.86, 4.129.2.2. Tagged as 'Kernel-5_86-4_129_2_2'
-
- 13 Dec, 2016 2 commits
-
-
Jeffrey Lee authored
Detail: For a while we've known that the correct way of doing cache maintenance on ARMv6+ (e.g. when converting a page from cacheable to non-cacheable) is as follows: 1. Write new page table entry 2. Flush old entry from TLB 3. Clean cache + drain write buffer The MMU_Changing ARMops (e.g. MMU_ChangingEntry) implement the last two items, but in the wrong order. This has caused the operations to fall out of favour and cease to be used, even in pre-ARMv6 code paths where the effects of improper cache/TLB management perhaps weren't as readily visible. This change re-specifies the relevant ARMops so that they perform their sub-operations in the correct order to make them useful on modern ARMs, updates the implementations, and updates the kernel to make use of the ops whereever relevant. File changes: - Docs/HAL/ARMop_API - Re-specify all the MMU_Changing ARMops to state that they are for use just after a page table entry has been changed (as opposed to before - e.g. 5.00 kernel behaviour). Re-specify the cacheable ones to state that the TLB invalidatation comes first. - s/ARM600, s/ChangeDyn, s/HAL, s/MemInfo, s/VMSAv6, s/AMBControl/memmap - Replace MMU_ChangingUncached + Cache_CleanInvalidate pairs with equivalent MMU_Changing op - s/ARMops - Update ARMop implementations to do everything in the correct order - s/MemMap2 - Update ARMop usage, and get rid of some lingering sledgehammer logic from ShuffleDoublyMappedRegionForGrow Admin: Tested on pretty much everything currently supported Version 5.70. Tagged as 'Kernel-5_70'
-
Jeffrey Lee authored
Add new ARMops. Add macros which map the ARMv7/v8 cache/TLB maintenance mnemonics (as featured in recent ARM ARMs) to MCR ops. Detail: - Docs/HAL/ARMop_API - Document the new ARMops. These ops are intended to help with future work (DMA without OS_Memory 0 "make temp uncacheable", and minimising cache maintenance when unmapping pages) and aren't in use just yet. - hdr/Copro15ops - Add new macros for ARMv7+ which map the mnemonics seen in recent ARM ARMs to the corresponding MCR ops. This should make things easier when cross-referencing docs and reduce the risk of typos. - hdr/KernelWS - Shuffle kernel workspace a bit to make room for the new ARMops - hdr/OSMisc - Expose new ARMops via OS_MMUControl 2 - s/ARMops - Implement the new ARMops. Change the ARMv7+ ARMops to use the new mnemonic macros. Also get rid of myDSB / myISB usage from ARMv7+ code paths; use DSB/ISB/etc. directly to ensure correct behaviour - s/HAL - Mnemonic + ISB/DSB updates. Change software RAM clear to do 16 bytes at a time for kernel workspace instead of 32 to allow the kernel workspace tweaks to work. Admin: Binary diff shows that mnemonics map to the original MCR ops correctly Note: Raspberry Pi builds will now emit lots of warnings due to increased DSB/ISB instruction use. However it should be safe to ignore these as they should only be present in v7+ code paths. Note: New ARMops haven't been tested yet, will be disabled (or at least hidden from user code) in a future checkin Version 5.68. Tagged as 'Kernel-5_68'
-
- 09 Oct, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: s/ARMops - Fix pre-rev T StrongARMs using the wrong XCBTable, causing invalid page flags to be used for the write-through cache policy Docs/HAL/Serial - Update HAL UART API docs. Mostly filling in some blanks, but also correcting a couple of things, and documenting new Features bit 4, LineStatus bit 8, and the effect on InterruptID. Admin: Tested on pre-rev T StrongARM RiscPC Version 5.61. Tagged as 'Kernel-5_61'
-
- 30 Jun, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: This change gets rid of the following switches from the source (picking appropriate code paths for a 32bit HAL build): * FixCallBacks * UseProcessTransfer * CanLiveOnROMCard * BleedinDaveBell * NewStyleEcfs * DoVdu23_0_12 * LCDPowerCtrl * HostVdu * Print * EmulatorSupport * TubeInfo * AddTubeBashers * TubeChar, TubeString, TubeDumpNoStack, TubeNewlNoStack macros * FIQDebug * VCOstartfix * AssemblingArthur (n.b. still defined for safety with anything in Hdr: which uses it, but not used explicitly by the kernel) * MouseBufferFix * LCDInvert * LCDSupport * DoInitialiseMode * Interruptible32bitModes * MouseBufferManager * StrongARM (new CacheCleanerHack and InterruptDelay switches added to hdr/Options to cover some functionality that StrongARM previously covered) * SAcleanflushbroken * StrongARM_POST * IrqsInClaimRelease * CheckProtectionLink * GSWorkspaceInKernelBuffers * EarlierReentrancyInDAShrink * LongCommandLines * ECC * NoSPSRcorruption * RMTidyDoesNowt * RogerEXEY * StorkPowerSave * DebugForcedReset * AssembleKEYV * AssemblePointerV * ProcessorVectors * Keyboard_Type Assorted old files have also been deleted. Admin: Identical binary to previous revision for IOMD & Raspberry Pi builds Version 5.51. Tagged as 'Kernel-5_51'
-
- 10 Mar, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: This set of changes tackles two main issues: * Before mapping out a cacheable page or making it uncacheable, the OS performs a cache clean+invalidate op. However this leaves a small window where data may be fetched back into the cache, either accidentally (dodgy interrupt handler) or via agressive prefetch (as allowed for by the architecture). This rogue data can then result in coherency issues once the pages are mapped out or made uncacheable a short time later. The fix for this is to make the page uncacheable before performing the cache maintenance (although this isn't ideal, as prior to ARMv7 it's implementation defined whether address-based cache maintenance ops affect uncacheable pages or not - and on ARM11 it seems that they don't, so for that CPU we currently force a full cache clean instead) * Modern ARMs generally ignore unexpected cache hits, so there's an interrupt hole in the current OS_Memory 0 "make temporarily uncacheable" implementation where the cache is being flushed after the page has been made uncacheable (consider the case of a page that's being used by an interrupt handler, but the page is being made uncacheable so it can also be used by DMA). As well as affecting ARMv7+ devices this was found to affect XScale (and ARM11, although untested for this issue, would have presumably suffered from the "can't clean uncacheable pages" limitation) The fix for this is to disable IRQs around the uncache sequence - however FIQs are currently not being dealt with, so there's still a potential issue there. File changes: - Docs/HAL/ARMop_API, hdr/KernelWS, hdr/OSMisc - Add new Cache_CleanInvalidateRange ARMop - s/ARM600, s/VMSAv6 - BangCam updated to make the page uncacheable prior to flushing the cache. Add GetTempUncache macro to help with calculating the page flags required for making pages uncacheable. Fix abort in OS_MMUControl on Raspberry Pi - MCR-based ISB was resetting ZeroPage pointer to 0 - s/ARMops - Cache_CleanInvalidateRange implementations. PL310 MMU_ChangingEntry/MMU_ChangingEntries refactored to rely on Cache_CleanInvalidateRange_PL310, which should be a more optimal implementation of the cache cleaning code that was previously in MMU_ChangingEntry_PL310. - s/ChangeDyn - Rename FastCDA_UpFront to FastCDA_Bulk, since the cache maintenance is no longer performed upfront. CheckCacheabilityR0ByMinusR2 now becomes RemoveCacheabilityR0ByMinusR2. PMP LogOp implementation refactored quite a bit to perform cache/TLB maintenance after making page table changes instead of before. One flaw with this new implementation is that mapping out large areas of cacheable pages will result in multiple full cache cleans while the old implementation would have (generally) only performed one - a two-pass approach over the page list would be needed to solve this. - s/GetAll - Change file ordering so GetTempUncache macro is available earlier - s/HAL - ROM decompression changed to do full MMU_Changing instead of MMU_ChangingEntries, to make sure earlier cached data is truly gone from the cache. ClearPhysRAM changed to make page uncacheable before flushing cache. - s/MemInfo - OS_Memory 0 interrupt hole fix - s/AMBControl/memmap - AMB_movepagesout_L2PT now split into cacheable+non-cacheable variants. Sparse map out operation now does two passes through the page list so that they can all be made uncacheable prior to the cache flush + map out. Admin: Tested on StrongARM, XScale, ARM11, Cortex-A7, Cortex-A9, Cortex-A15, Cortex-A53 Appears to fix the major issues plaguing SATA on IGEPv5 Version 5.35, 4.79.2.306. Tagged as 'Kernel-5_35-4_79_2_306'
-
- 28 Feb, 2016 1 commit
-
-
Robert Sprowson authored
For disc based applications (ie. those that don't know the architecture at build time, like a ROM would) we have OS_PlatformFeatures to provide an abstract way of seeing when new chunks of instructions get added. Back at ARMv6 ARM deprecated SWP, but currently we have no way of knowing that at runtime without grubbing round the coprocessor registers. Add 3 new flags * One to say LDR/STREX is (not) available * One to say that SWP/SWPB is (not) available * One to say that CLREX and LDR/STREX[B|H|D] is (not) available shame it took a few goes for ARM to bring in these variants, requiring 3 flags not 1. Also: Condition the exception on vector read code on No32bitCode, rather than just having it permanently disabled. Improve the HAL device docs. Tested on a StrongARM Risc PC, Model B Pi, and Titanium. Version 5.35, 4.79.2.303. Tagged as 'Kernel-5_35-4_79_2_303'
-
- 15 Aug, 2015 1 commit
-
-
Jeffrey Lee authored
Detail: s/ARMops - Change VMSAv6 cache policy mapping so that default NCB policy maps to Normal, non-cacheable memory rather than Device memory. This allows unaligned accesses to work, and also delivers some major performance improvements for some activities (write performance seems about 2x better than Device) Docs/HAL/ARMop_API - Wrap the new barrier ARMop description text to match the rest of the file Admin: Tested on ARM11, Cortex-A7, -A8, -A9 Note - relaxed memory consistency rules for Normal vs. Device mean that now more than ever, developers authoring device drivers for ARMv6+ need to be careful to use memory barriers in all the right places (preferably the new ARMop barriers exposed by OS_MMUControl 2 to ensure compatibility with all machines) Version 5.35, 4.79.2.280. Tagged as 'Kernel-5_35-4_79_2_280'
-
- 14 Aug, 2015 1 commit
-
-
Jeffrey Lee authored
Detail: - Docs/HAL/ARMop_API - Updated with documentation for the new ARMops. - s/ARMops - Set up pointers for the new memory barrier ARMops. Add full implementations for ARMv6 & ARMv7; older architectures should be able to get by with a mix of null ops & write buffer drain ops. Update ARMopPtrTable to validate structure against the list in hdr/OSMisc - hdr/KernelWS - Reserve workspace for new ARMops. Free up a bit of space by limiting ourselves to 2 cache levels with ARMv7. Remove some unused definitions. - hdr/OSMisc - New header defining OS_PlatformFeatures & OS_MMUControl reason codes, OS_PlatformFeatures 0 flags, and OS_MMUControl 2 ARMop indices - Makefile - Add export rules for OSMisc header - hdr/ARMops, s/ARM600, s/VMSAv6 - Remove CPUFlag_* and MMUCReason_* definitions. Update OS_MMUControl write buffer drain to use DSB_ReadWrite ARMop (which is what most existing write buffer drain implementations have been renamed to). - s/GetAll - Get Hdr:OSMisc - s/Kernel - Use OS_PlatformFeatures reason code symbols - s/vdu/vdudecl - Remove unused definition Admin: Tested on ARM11, Cortex-A8, Cortex-A9 Version 5.35, 4.79.2.279. Tagged as 'Kernel-5_35-4_79_2_279'
-
- 05 Aug, 2015 1 commit
-
-
Jeffrey Lee authored
Improve support for VMSAv6 cache policies & memory types. Expose raw ARMops via OS_MMUControl & cache information via OS_PlatformFeatures. Detail: Docs/HAL/ARMop_API - Document two new ARMops: Cache_Examine and IMB_List hdr/KernelWS - Shuffle workspace round a bit to allow space for the two new ARMops. IOSystemType now deleted (has been deprecated and fixed at 0 for some time) s/ARM600 - Cosmetic changes to BangCam to make it clearer what's going on. Add OS_MMUControl 2 (get ARMop) implementation. s/ARMops - Switch out different ARMop implementations and XCB tables depending on MMU model - helps reduce assembler warnings and make it clearer what code paths are and aren't possible. Add implementations of the two new ARMops. Simplify ARM_Analyse_Fancy by removing some tests which we know will have certain results. Use CCSIDR constants in ARMv7 ARMops instead of magic numbers. Update XCB table comments, and add a new table for VMSAv6 s/ChangeDyn - Define constant for the new NCB 'idempotent' cache policy (VMSAv6 normal, non-cacheable memory) s/HAL - Use CCSIDR constants instead of magic numbers. Extend RISCOS_MapInIO to allow the TEX bits to be specified. s/Kernel - OS_PlatformFeatures 33 (read cache information) implementation (actually, just calls through to an ARMop) s/MemInfo - Modify VMSAv6 OS_Memory 0 cache/uncache implementation to use the XCB table instead of modifying L2_C directly. This allows the cacheability to be changed without affecting the memory type - important for e.g. unaligned accesses to work correctly. Implement cache policy support for OS_Memory 13. s/Middle - Remove IOSystemType from OS_ReadSysInfo 6. s/VMSAv6 - Make sure BangCam uses the XCB table for working out the attributes of temp-uncacheable pages instead of manipulating L2_C directly. Add OS_MMUControl 2 implementation. s/AMBControl/memmap - Update VMSAv6 page table pokeing to use XCB table s/PMF/osinit - Remove IOSystemType reference, and switch out some pre-HAL code that was trying to use IOSystemType. Admin: Tested on Iyonix, ARM11, Cortex-A7, -A8, -A9, -A15 Note that contrary to the comments in the source the default NCB policy currently maps to VMSAv6 Device memory type (as per previous kernel versions). This is just a temporary measure, and it will be switched over to Normal, non-cacheable once appropriate memory barriers have been added to the affected IO code. Version 5.35, 4.79.2.273. Tagged as 'Kernel-5_35-4_79_2_273'
-
- 06 Dec, 2014 1 commit
-
-
Robert Sprowson authored
Docs/HAL/NewAPI: More clearly describe the intent of the different bus types. hdr/HALDevice Reclassify the OMAP interconnect as either a system bus or peripheral bus, noting their names from the datasheet. Reclassify the GPMC as an expansion bus. Add AMBA 3's AXI bus, which (along with the existing AHB/APB) is what iMx6 uses. Delete redundant iMx6 interconnect type. Version 5.35, 4.79.2.249. Tagged as 'Kernel-5_35-4_79_2_249'
-
- 14 Apr, 2014 1 commit
-
-
Robert Sprowson authored
The only function to use the abandoned extensions to OS_ClaimDeviceVector, the 2nd & 3rd members of the structure never got used. Change uses of HAL_IICDevice to pass in the bus, and expect the device number back. Docs updated accordingly. Version 5.35, 4.79.2.218. Tagged as 'Kernel-5_35-4_79_2_218'
-
- 07 Sep, 2012 1 commit
-
-
Jeffrey Lee authored
Detail: Docs/RPiNotes - Deleted, contents no longer relevant s/HAL, s/Kernel, s/vdu/vduswis, s/pmf/key - Cleaned up debug code s/NewIRQs - No need to piggy back on timer 0 IRQ to generate a fake VSync; PushModeInfo already claims/releases TickerV as appropriate if video driver doesn't provide a VSync IRQ. s/NewReset - Re-enable LookForHALRTC call, the stack imbalance bug was fixed before the Pi changes were merged in s/vdu/vducursoft - Streamline PostWrchCursor a bit by only preserving R14 around RestorePointer if the software pointer is in use s/vdu/vdudriver - Amend ModeChangeSub improvements to ensure old external framestore handling logic is used if driver doesn't support framestore growth/realloc Admin: Tested on Raspberry Pi with high processor vectors Kernel now looks to be in a good state for merging back into HAL branch Note - Software mouse pointer support in vducursoft only checks HALVideoFeatures, so doesn't take into account the capabilities of any GraphicsV driver that may be in use. Version 5.35, 4.79.2.147.2.20. Tagged as 'Kernel-5_35-4_79_2_147_2_20'
-
- 10 May, 2012 1 commit
-
-
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'
-
- 07 Aug, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: hdr/ARMops - Reserve OS_PlatformFeatures 0 bit 20 for indicating whether high processor vectors are in use s/Kernel - Add local definitions of BYTEWS, LDROSB, STROSB, VDWS macros (previously in Hdr:Macros) s/MoreComms - Fix potential buffer overflow when filling error buffer (although GSTrans shouldn't overflow the buffer in the first place?) s/Arthur2 - GSRead number detection fix s/ArthurSWIs - Updated OS_ReadUnsigned to support reading 64bit numbers Docs/ReadUnsigned - Docs for the updated OS_ReadUnsigned interface Admin: Untested! Needs HdrSrc 1.86 Version 5.35, 4.79.2.120. Tagged as 'Kernel-5_35-4_79_2_120'
-
- 17 May, 2009 1 commit
-
-
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'
-
- 22 Dec, 2008 1 commit
-
-
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'
-
- 04 Oct, 2008 1 commit
-
-
Ben Avison authored
Detail: Updated GraphicsV documentation Upped ROM version number - currently matches latest Castle release (5.13) Admin: No code change Version 5.35, 4.79.2.96. Tagged as 'Kernel-5_35-4_79_2_96'
-
- 02 Nov, 2004 1 commit
-
-
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'
-
- 06 May, 2004 1 commit
-
-
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'
-
- 02 Mar, 2003 1 commit
-
-
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'
-
- 21 Feb, 2003 1 commit
-
-
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'
-
- 27 Jan, 2003 1 commit
-
-
Kevin Bracey authored
*Configure ANYTHINGsize was broken due to not setting R0 to ReadUnsigned IIC ack message uninternationalised OS_Memory was saying we only had 4M of RAM VDU4 scrolling when output was switched to sprite was causing corruption on use of CTRL-J and CTRL-K Default SystemSize CMOS set to 32k Version 5.35, 4.79.2.55. Tagged as 'Kernel-5_35-4_79_2_55'
-
- 18 Dec, 2002 1 commit
-
-
Ben Avison authored
Added 256-colour version of the (high-resolution only) teletext code, and support for teletext when hardware scroll is disabled. Both are required for Tungsten. Turned off the module init/final service calls, since we still don't have an allocation for them. Upped the OS version number to 5.01. Version 5.35, 4.79.2.53. Tagged as 'Kernel-5_35-4_79_2_53'
-
- 13 Dec, 2002 1 commit
-
-
Ben Avison authored
Detail: * Rejigged documented meaning of device "Location" field so that we can fit full PCI locations in. * Defined lots of device "Type" values in Hdr:HALDevice. * Removed obsolete DMA-related HAL entries in Hdr:HALEntries (no longer required by DMAManager 0_15-4_4_2_6, no longer provided by Tungsten HAL 0.07). * OS_Hardware 2 and 3 actually work now. * Changed OS_Hardware 4 to take a maximum major version number to match. * HAL workspace is now USR mode readable. * Service calls issued after module initialisation/finalisation (see Docs.ModPostServ). Admin: OS_Hardware tested, service calls not tested. Version 5.35, 4.79.2.52. Tagged as 'Kernel-5_35-4_79_2_52'
-
- 30 Nov, 2002 1 commit
-
-
Ben Avison authored
Detail: Lots of changes since last version, at least the following: * Updated OS timestamp, removed alpha status * Negative INKEY OS version changed to &AA * GraphicsV is now alocated vector number &2A * ROM moved up to &FC000000 * Max application slot increased to 512 Mbytes (for now) * Max size of RMA increased to 256 Mbytes * RMA is now first-created dynamic area (so it gets lowest address after top of application slot) * OS_Memory 10 reimplemeted * New OS_ReadSysInfo 6 values 18-22 added * OS_ReadSysInfo 8 gains flag bit to indicate soft power-off * Misc internal top-bit-set-address fixes * *ChangeDynamicArea can take sizes in megabytes or gigabytes * Magic word "&off" in R0 passed to OS_Reset powers down if possible * Added acceleration: block copy; CLS; text window scroll up; rectangle fill * Disabled LED flashing in page mode (liable to crash) * Masked sprite plot and VDU 5 text avoids reading the screen if poss...
-
- 16 Oct, 2002 1 commit
-
-
Ben Avison authored
Detail: * Implemented OS_Hardware 2, 3 and 4 as described in Docs.HAL.NewAPI. * Added new OS->HAL and HAL->OS routines to register HAL devices with the OS during hard resets. * Updated Docs.HAL.NewAPI to correct inconsistencies, fill in missing definitions, and allow for interrupt sharing. * Now uses OS_LeaveOS to trigger callbacks after ROM module init. Admin: Untested. Requires new HAL. Version 5.35, 4.79.2.49. Tagged as 'Kernel-5_35-4_79_2_49'
-
- 07 Oct, 2002 1 commit
-
-
Kevin Bracey authored
Version 5.35, 4.79.2.48. Tagged as 'Kernel-5_35-4_79_2_48'
-
- 22 Aug, 2002 1 commit
-
-
Ben Avison authored
Version 5.47. Tagged as 'Kernel-5_47'
-
- 15 Jun, 2001 1 commit
-
-
Mike Stephens authored
Look for LongCommandLine flag, command line size currently set at 1k. For HAL/32bit builds, the kernel buffer space is at high (top bit set) address, which may break some code using signed comparisons. So *beware* that there may be some latent bugs in old kernel code using these buffers, not yet found. One such bug, in s.Arthur2 found and fixed. Tested moderately on ARM9 desktop build. Lovely to reimplement things I did two and half years ago. Version 5.35, 4.79.2.37. Tagged as 'Kernel-5_35-4_79_2_37'
-
- 11 Jun, 2001 1 commit
-
-
Kevin Bracey authored
* Allows HAL-driven software resets. * Sound buffers corrected to be uncacheable. Version 5.35, 4.79.2.33. Tagged as 'Kernel-5_35-4_79_2_33'
-
- 07 Mar, 2001 1 commit
-
-
Kevin Bracey authored
-
- 01 Mar, 2001 1 commit
-
-
Mike Stephens authored
Version 5.35, 4.79.2.18. Tagged as 'Kernel-5_35-4_79_2_18'
-
- 13 Feb, 2001 1 commit
-
-
Kevin Bracey authored
Version 5.35, 4.79.2.17. Tagged as 'Kernel-5_35-4_79_2_17'
-
- 12 Jan, 2001 1 commit
-
-
Mike Stephens authored
kernel now attempts to substitute video mode numbers in face of h/w with limited bits-per-pixel support (not tested yet) HAL_API document added - early draft only, of interest to those writing or modifying HALs for new h/w ARMop_API document added - early draft only, of interest only to those modifying kernel to support new ARM cores *** polite comments on HAL_API welcome *** Version 5.35, 4.79.2.15. Tagged as 'Kernel-5_35-4_79_2_15'
-
- 09 Jan, 2001 1 commit
-
-
Mike Stephens authored
First attempt at ARM9 support, and general clean-up of old ARM-specific code, now using vectored ARMops. Not tested. Version 5.35, 4.79.2.14. Tagged as 'Kernel-5_35-4_79_2_14'
-
- 20 Oct, 2000 1 commit
-
-
Kevin Bracey authored
-
- 16 Oct, 2000 1 commit
-
-
Kevin Bracey authored
More stuff. Up to the desktop now; cache on, working keyboard. Some source restructuring to start to make splitting it up into several object files more feasible.
-