- 08 Aug, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: A whole mass of changes to add high processor vectors + zero page relocation support to the Cortex branch of the kernel At the moment the code can only cope with two ZeroPage locations, &0 and &FFFF0000. But with a bit more tweaking those restrictions can probably be lifted, allowing ZeroPage to be hidden at almost any address (assuming it's fixed at compile time). If I've done my job right, these restrictions should all be enforced by asserts. There's a new option, HiProcVecs, in hdr/Options to control whether high processor vectors are used. When enabling it and building a ROM, remember: * FPEmulator needs to be built with the FPEAnchor=High option specified in the components file (not FPEAnchorType=High as my FPEmulator commit comments suggested) * ShareFS needs unplugging/removing since it can't cope with it yet * Iyonix users will need to use the latest ROOL boot sequence, to ensure the softloaded modules are compatible (OMAP, etc. don't really softload much so they're OK with older sequences) * However VProtect also needs patching to fix a nasty bug there - http://www.riscosopen.org/tracker/tickets/294 The only other notable thing I can think of is that the ProcessTransfer code in s/ARM600 & s/VMSAv6 is disabled if high processor vectors are in use (it's fairly safe to say that code is obsolete in HAL builds anyway?) Fun challenge for my successor: Try setting ZeroPage to &FFFF00FF (or similar) so its value can be loaded with MVN instead of LDR. Then use positive/negative address offsets to access the contents. File changes: - hdr/ARMops - Modified ARMop macro to take the ZeroPage pointer as a parameter instead of 'zero' - hdr/Copro15ops - Corrected $quick handling in myISB macro - hdr/Options - Added ideal setting for us to use for HiProcVecs - s/AMBControl/allocate, s/AMBControl/growp, s/AMBControl/mapslot, s/AMBControl/memmap, s/AMBControl/service, s/AMBControl/shrinkp, s/Arthur2, s/Arthur3, s/ArthurSWIs, s/ChangeDyn, s/ExtraSWIs, s/HAL, s/HeapMan, s/Kernel, s/MemInfo, s/Middle, s/ModHand, s/MoreSWIs, s/MsgCode, s/NewIRQs, s/NewReset, s/Oscli, s/PMF/buffer, s/PMF/IIC, s/PMF/i2cutils, s/PMF/key, s/PMF/mouse, s/PMF/osbyte, s/PMF/oseven, s/PMF/osinit, s/PMF/osword, s/PMF/oswrch, s/SWINaming, s/Super1, s/SysComms, s/TickEvents, s/Utility, s/vdu/vdu23, s/vdu/vdudriver, s/vdu/vdugrafl, s/vdu/vdugrafv, s/vdu/vdupalxx, s/vdu/vdupointer, s/vdu/vduswis, s/vdu/vduwrch - Lots of updates to deal with zero page relocation - s/ARM600 - UseProcessTransfer option. Zero page relocation support. Deleted pre-HAL ClearPhysRAM code to tidy the file up a bit. - s/ARMops - Zero page relocation support. Set CPUFlag_HiProcVecs when high vectors are in use. - s/KbdResPC - Disable compilation of dead code - s/VMSAv6 - UseProcessTransfer option. Zero page relocation support. Admin: Tested with OMAP & Iyonix ROM softloads, both with high & low zero page. High zero page hasn't had extensive testing, but boot sequence + ROM apps seem to work. Version 5.35, 4.79.2.98.2.48. Tagged as 'Kernel-5_35-4_79_2_98_2_48'
-
- 04 Jun, 2011 1 commit
-
-
Jeffrey Lee authored
Detail: Makefile - Added hdr.Variables to the C header export list hdr/ARMops, s/ARMops - Added ARM1176JZF-S to the list of known CPUs s/ARMops - Fix unaligned memory access in ARM_PrintProcessorType hdr/Copro15ops, s/ARMops, s/HAL, s/VMSAv6, s/AMBControl/memmap - Fixed all myDSB/myISB/etc. macro instances to specify a temp register, so that they work properly when building an ARMv6 version of the kernel Admin: Fixes build errors with the latest Draw module. Should also allow the kernel to work properly with the new S3C6410 port. ARMv6 version builds OK, but no other builds or runtime tests have been made. Version 5.35, 4.79.2.98.2.38. Tagged as 'Kernel-5_35-4_79_2_98_2_38'
-
- 04 Oct, 2010 1 commit
-
-
Jeffrey Lee authored
Detail: hdr/Options - ARM6support and GetKernelMEMC values are now derived from the value of MEMM_Type s/ARMops, s/HAL - Code to detect and handle ARMv7 CPUs is now only enabled when using VMSAv6 MMU model. Saves us from having to deal with lack of myIMB, myDSB, etc. implementations on pre-ARMv6. s/HAL - Removed some debug code s/NewReset - Fix bug spotted by Tom Walker where R12 wasn't being restored by LookForHALRTC if a non-HAL RTC had already been found s/AMBControl/memmap - correct the assert clause that was checking that &FFE are the correct L2PT protection bits for non-VMSAv6 machines Admin: Tested this kernel on a rev C2 beagleboard & Iyonix softload. Also compiled it into an IOMD ROM, but didn't try running it. Version 5.35, 4.79.2.98.2.32. Tagged as 'Kernel-5_35-4_79_2_98_2_32'
-
- 23 Jun, 2010 1 commit
-
-
Jeffrey Lee authored
Update Cortex kernel to use correct instruction/memory barriers and to perform branch target predictor maintenance. Plus tweak default CMOS settings. Detail: hdr/Copro15ops - Added myISB, myDSB, myDMB macros to provide barrier functionality on ARMv6+ s/ARMops, s/HAL, s/VMSAv6, s/AMBControl/memmap - Correct barrier operations are now performed on ARMv6+ following CP15 writes. Branch predictors are now also maintained properly. s/NewReset - Change default CMOS settings so number of CDFS drives is 0 in Cortex builds. Fixes rogue CDFS icon on iconbar. Admin: Tested on rev C2 beagleboard Version 5.35, 4.79.2.98.2.27. Tagged as 'Kernel-5_35-4_79_2_98_2_27'
-
- 10 May, 2009 1 commit
-
-
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'
-
- 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 possible * Framestore made USR mode accessible * Fix for VDU 5,127 bug - now relies on font definitions being in extreme quarters of memory, rather than bottom half * Allocated 64-bit OS_Convert... SWIs * IIC errors use allocated error numbers * Looks for Dallas RTC before Philips RTC because we're using a Philips NVRAM device with the same ID * Fix to bug that meant the oscillator in the Dallas RTC wasn't enabled * Default mouse type (USB) changed to allocated number * Ram disc max size increased to 128 Mbytes (Ursula merge) and made cacheable for StrongARMs (not XScale) * Branch through zero handler now works in USR mode, by use of a trampoline in the system stack to allow PC-relative register storage * Address exception handler changed to not use 0 as workspace * OS_Memory 13 extended to allow specification of cacheability and access privileges * Added OS_Memory 16 to return important memory addresses * RISCOS_MapInIO() takes cacheable flag in bit 3, access permissions in bits 10 and 11, doubly-mapped flag in bit 20, and access permissions specified flag in bit 21 * Bug fix in last version for application abort handlers didn't quite work; register shuffle required * "Module is not 32-bit compatible" error now reports the module name * Default configured language changed from 10 to 11 (now Desktop again) Version 5.35, 4.79.2.51. Tagged as 'Kernel-5_35-4_79_2_51'
-
- 28 Oct, 2002 1 commit
-
-
Ben Avison authored
In the No26bitCode case (ie when abort handlers are entered in ABT32 mode), if lazy task swapping was enabled and a data abort occurred that was not a page translation fault, then the code in AMB_LazyFixUp to map in the whole application slot was being circumvented, leading to problems for abort handlers in application space because r14_abt was corrupted by any abort due to accessing the abort handler itself. The test of the FSR (to compensate for the FAR being unusable for external aborts) which prompted the circumvention has therefore been moved inside AMB_LazyFixup. Also now preserves the FSR and FAR across AMB_LazyFixUp, so they are now visible from application abort handlers if desired. Version 5.35, 4.79.2.50. Tagged as 'Kernel-5_35-4_79_2_50'
-
- 18 Jun, 2001 1 commit
-
-
Mike Stephens authored
Ursula. Quite a hairy code merge really, so let's hope it is worth it to someone. What you get (back after 2 or 3 years): - much more efficient for largish numbers of DAs (relevance to current build = approx 0) - fancy reason codes to support fast update of Switcher bar display (relevance = 0) - support for clamped maximum area sizes, to avoid address space exhaustion with big memory (relevance = 0) - better implementation of shrinkable DAs, performance wise (if lots of DAs, relevance = approx 0) - support for 'Sparse' DAs. Holey dynamic areas, Batman! (relevance, go on someone use the darned things) Moderately development tested on HAL/32bit ARM9 desktop. Note the Switcher should be compiled to use the new reason codes 6&7, for fabled desktop builds. Also, during this work, so I could see the wood for the trees, redid some source code clean up, removing pre-Medusa stuff (like I did about 3 years ago on Ursula, sigh). That's why loads of source files have changed. The new DA stuff is confined pretty much to hdr.KernelWS and s.ChangeDyn. Ta. Version 5.35, 4.79.2.38. Tagged as 'Kernel-5_35-4_79_2_38'
-
- 13 Jun, 2001 1 commit
-
-
Mike Stephens authored
LazyFixup now ensures all app pages are mapped in before handing on a real (no-lazy) abort. This allows an abort handler in app space itself, without scrambling the details of the original abort (via a lazy abort in abort mode). Many a happy minute spent coding and testing for recursive aborts and fixups, but lets just pretend it doesn't happen shall we. Tested with simple popbang code on ARM9 desktop build. Version 5.35, 4.79.2.36. Tagged as 'Kernel-5_35-4_79_2_36'
-
- 06 Jun, 2001 1 commit
-
-
Mike Stephens authored
hooks to give correct mapping info for OS_Memory 0 same for OS_ReadMemMapEntries same for OS_FindMemMapEntries Lazy fixup routine no longer assumes an abort in current app space must be a truant page. However, work in this area not complete (no support yet for abort handler code in app space itself, eg. for C trampoline) Good to know this will be a big performance boost when our products use one monolithic application (sarcasm). Ta Version 5.35, 4.79.2.32. Tagged as 'Kernel-5_35-4_79_2_32'
-
- 22 May, 2001 1 commit
-
-
Mike Stephens authored
Reimplement Lazy task swapping, an amusing idea from Ursula, would have done it sooner but couldn't be bothered (humour). Currently activates for all ARMs flagged as base-restored abort model. No handling of eg. StrongARM pre-revT bug, but then the kernel no longer runs on StrongARM (progress). Still some details to fix: all aborts in current app space assumed to be missing pages, but this must be fixed to handle abort code in app space, things like debuggers marking code read only. Plus, small fixes: OS_Memory 8 returns vaguely useful info for RAM,VRAM in HAL build (temporary partial implementation) Broken handling of old BBC commands with (fx,tv etc) with no spaces fixed (fudgeulike code from Ursula, now 32-bit). Version 5.35, 4.79.2.31. Tagged as 'Kernel-5_35-4_79_2_31'
-
- 23 Jan, 2001 1 commit
-
-
Mike Stephens authored
Detail: Admin: not tested
-
- 10 Nov, 2000 1 commit
-
-
Mike Stephens authored
Version 5.35, 4.79.2.12. Tagged as 'Kernel-5_35-4_79_2_12'
-
- 20 Oct, 2000 1 commit
-
-
Mike Stephens authored
more use of ARMops in page manipulation, change register usage of ARmops tested by kernel boot to star prompt only Version 5.35, 4.79.2.11. Tagged as 'Kernel-5_35-4_79_2_11'
-
- 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.
-
- 07 May, 1997 1 commit
-
-
Kevin Bracey authored
-
- 01 May, 1997 1 commit
-
-
Kevin Bracey authored
-
- 06 Nov, 1996 1 commit
-
-
Neil Turton authored
-