- 28 Feb, 2010 1 commit
-
-
Jeffrey Lee authored
Update VDU HAL device for new OMAPVideo driver, fix MVA-based cache/TLB maintenance ops aborting on ARMv7, add warning to VDU driver about inconsistent state variables during screen mode changes Detail: hdr/VideoDevice - removed Address2 and Device2 fields as it makes more sense for them to be in the device specific field (which for OMAP3 is a pointer to an OMAP3-specific struct) s/VMSAv6 - Modify data abort handler to ignore aborts that are generated by MVA-based cache/TLB maintenance ops. Unlike earlier ARM architectures, MVA-based ops can abort under ARMv7 if the page has no mapping to a physical address. s/vdu/vdudriver - Add a warning about VDU driver state variables (particularly CursorAddr) being left in invalid states during the execution of mode changes. This can cause problems if any attempt is made to output to the screen during the mode change (e.g. as a result of an abort) Admin: Tested on rev C2 beagleboard. Video device changes mean that OMAP3 HAL 0.23 will be needed for ROM compilation to succeed. Version 5.35, 4.79.2.98.2.24. Tagged as 'Kernel-5_35-4_79_2_98_2_24'
-
- 15 Jun, 2009 1 commit
-
-
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'
-
- 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'
-
- 10 May, 2009 3 commits
-
-
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'
-
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'
-
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'
-
- 23 Sep, 2005 1 commit
-
-
John Ballance authored
no other changes Detail: Admin: Version 5.35, 4.79.2.91. Tagged as 'Kernel-5_35-4_79_2_91'
-
- 04 May, 2005 1 commit
-
-
Kevin Bracey authored
Version 5.35, 4.79.2.85. Tagged as 'Kernel-5_35-4_79_2_85'
-
- 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'
-
- 29 Oct, 2004 1 commit
-
-
John Ballance authored
HAL_Video_IIC_Op Detail: Admin: JB Castle IP Version 5.35, 4.79.2.79. Tagged as 'Kernel-5_35-4_79_2_79'
-
- 18 Jun, 2004 1 commit
-
-
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'
-
- 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'
-
- 31 Mar, 2003 1 commit
-
-
Kevin Bracey authored
Added "fast" flash tool for Customer L, allowing ROMs to be sent serially at 115200 baud not 9600 baud. Fix to VDU despatch for ARMv4 and later. Fixes to power on delete keyboard and keyboard timeout Implemented MemoryReadPhys and MemoryAmounts with the HAL. Version 5.35, 4.79.2.59. Tagged as 'Kernel-5_35-4_79_2_59'
-
- 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'
-
- 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...
-
- 07 Oct, 2002 1 commit
-
-
Kevin Bracey authored
Version 5.35, 4.79.2.48. Tagged as 'Kernel-5_35-4_79_2_48'
-
- 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'
-
- 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'
-
- 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'
-
- 20 Oct, 2000 1 commit
-
-
Kevin Bracey authored
-
- 17 Oct, 2000 1 commit
-
-
Stewart Brodie authored
Detail: It's actually in a section removed conditionally for the HAL but it does keep the HAL branch up to date.
-
- 16 Oct, 2000 3 commits
-
-
Mike Stephens authored
Version 5.35, 4.79.2.10. Tagged as 'Kernel-5_35-4_79_2_10'
-
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.
-
Mike Stephens authored
Version 5.35, 4.79.2.9. Tagged as 'Kernel-5_35-4_79_2_9'
-
- 10 Oct, 2000 1 commit
-
-
Mike Stephens authored
-
- 06 Oct, 2000 1 commit
-
-
Kevin Bracey authored
It says "Abort on data transfer".
-
- 05 Oct, 2000 3 commits
-
-
Mike Stephens authored
-
Mike Stephens authored
mjs macros switch on HAL for calling video code in HAL/pseudo HAL cases vduhint code even more almost ready to move to HAL Version 5.35, 4.79.2.6. Tagged as 'Kernel-5_35-4_79_2_6'
-
Mike Stephens authored
further kernel/HAL split work in video area almost-HAL code for VIDC20/IOMD in vdu.vduhint, now almost divorced from kernel workspace tested briefly in Ursula desktop environment Version 5.35, 4.79.2.4. Tagged as 'Kernel-5_35-4_79_2_4'
-
- 03 Oct, 2000 1 commit
-
-
Mike Stephens authored
partial video changes for kernel/HAL split near-HAL code for VIDC/IOMD in vdu.vduhint briefly tested in Ursula desktop build still some kernel workspace dependency in near-HAL code Version 5.35, 4.79.2.3. Tagged as 'Kernel-5_35-4_79_2_3'
-
- 15 Sep, 2000 1 commit
-
-
Kevin Bracey authored
* Added ARM_IMB and ARM_IMBRange SWIs as recommended by ARMv5. * Some early prototype HAL bits popped in - a lot of source restructuring still to come. * New debug target creates an AIF image with debug information, and translates this into an ASCII object file for the 16702B logic analyser. Version 5.35, 4.79.2.1. Tagged as 'Kernel-5_35-4_79_2_1'
-
- 28 Jun, 2000 1 commit
-
-
Ben Avison authored
Added compile-time support for full-resolution teletext characters in teletext emulation mode (MODE 7) for that authentic BBC Micro feel. Also introduced a few useful teletext control features via VDU 23,18. Unrelatedly, fixed *ScreenLoad to work for interlaced displays. Detail: The new typeface is designed on a 16x20 grid (previously we had used 8x10), so it uses a screen resolution of 640x500 pixels (rather than 320x250). Since we have been unable to source a genuine teletext font, and since examination of a BBC Micro suggests that the genuine font may not have been a power-of-2 pixels wide, I have designed one specially, based upon the one supplied in Zap distributions (a 12x20 font). Rather than increase the amount of workspace that the kernel requires for cacheing graphic characters, it now generates them on the fly, as they are required; this should only add about 25% to their rendering time. The new VDU 23 sequences are as follows: VDU 23,18,0,mode,0,0,0,0,0,0 Switch transparency mode mode = 0: "Text" mode: the whole display is set opaque mode = 1: "Mix" mode: foreground colours, and both foreground and background of boxed text are opaque; non-boxed background colours are all transparent mode = 2: "Box" mode: boxed regions are opaque, others are transparent mode = 3: "TV" mode: the whole display is set transparent Default is mode = 0. VDU 23,18,1,suspend,0,0,0,0,0,0 Suspend or resume bitmap updates This call allows an application to request that the kernel suspends updates to the framebuffer bitmap. This allows for a significant speed increase in the rendering time for a large amount of text, for example when redrawing a complete teletext page, because each time you plot a single character, it can cause the whole of the rest of the line to be re-rendered. When you switch out of suspend mode, the whole screen is refreshed in a single pass. Note that the appearance of the display is undefined is you cause a hardware scroll while in suspend mode. suspend = 0: screen update is enabled suspend = 1: screen update is suspended Default is suspend = 0. VDU 23,18,2,reveal,0,0,0,0,0,0 Reveal/conceal reveal = 0: characters between the Conceal control code and the next colour control code are replaced by spaces reveal = 1: all characters are displayed Default is reveal = 0. VDU 23,18,3,black_emable,0,0,0,0,0,0 Enable/disable black foreground colour control codes black_enable = 0: control codes &80 and &90 do nothing black_enable = 1: control code &80 selects black text, control code &90 selects black graphics Default is black_enable = 0. I have performed some timing tests on the rendering of complete teletext pages grabbed from the teletext server. These show that the new code generally imposes a 2x speed hit. However, when using the VDU 23,18,1 suspend function, this improves to a 20% speed increase when compared to the old low-resolution code. Better still, because the framebuffer is only being updated for the final stage of this process, the screen *appears* to be updated some 3x faster than with the old code! A comment on the VDU variable Log2BPC is in order: in previous kernels, this was able unambiguously to refer to both the framebuffer width of a character in bytes, and the framebuffer width of an "addressable pixel" in bits; this no longer works with the 16-pixel wide teletext font. Bearing in mind that future kernels may support Unicode system fonts where the width varies from character to character, I have chosen to fix Log2BPC to the "addressable pixel" definition. Admin: Requires HdrSrc 0.89 and (for non-desktop builds) Interlace 0.61. A monitor definition file containing a definition for a 640x500 screen mode is also required; version 0.40 of ModeFiles contains a suitable mode for STB-400. Tested fairly rigourously on an Ursula build, a Lazarus build and an STB-400 build, using genuine teletext pages and Yellow River Kingdom. Version 5.30. Tagged as 'Kernel-5_30'
-
- 12 May, 2000 1 commit
-
-
Ben Avison authored
Detail: In the previous version, Portable_Idle was called each time that the callback chain was examined. This is only desirable in cases where we're polling the keyboard, waiting before scrolling the text window; in the normal case, it's an unnecessary slow-down. Now fixed to only call Portable_Idle if we're waiting for a key up/down/timeout. Admin: Not tested. Version 5.28. Tagged as 'Kernel-5_28'
-
- 10 May, 2000 1 commit
-
-
Ben Avison authored
In particular, they can go off when Scroll Lock etc have frozen the text output. Detail: The callback chain is examined at least once per line scroll. Additionally, it is examined repeatedly while Scroll Lock or Ctrl-Shift are acting, while idling between lines if Ctrl is held down, and while waiting for the Shift key to be pressed at the bottom of a screen when in page mode. The opportunity is also taken to call Portable_Idle after each time that the callback chain has been examined. Admin: Not tested. Version 5.27. Tagged as 'Kernel-5_27'
-
- 17 Apr, 2000 1 commit
-
-
Kevin Bracey authored
Had one of those weekend brainstorms - managed to speed up SWI despatcher _and_ add Thumb support to it. Fixed OS_BreakPt - was confused by PC/PSR split. Version 5.24. Not tagged
-
- 13 Apr, 2000 1 commit
-
-
Kevin Bracey authored
RPCEm update. * Register allocation in default ErrorV handler fixed - problems occured when callbacks were triggered on way out. * OS_Byte 19 didn't manipulate interrupt disable flag correctly in 26-bit builds. * Stray bit of debugging left in sprite code many years ago removed. Version 5.23. Not tagged
-
- 04 Apr, 2000 1 commit
-
-
Kevin Bracey authored
Details: The Kernel will now compile to produce a pure 32-bit system if No26bitCode is set to TRUE. If No26bitCode is FALSE, then the Kernel will be a standard 26-bit Kernel, although some internal changes have taken place to minimise compile switches between the two cases. See Docs.32bit for more technical info. The hardest part was the flood-fill... Other changes: Pointer shape changes now take place on the next VSync, rather than actually WAITING for the VSync. Turning the Hourglass on shouldn't slow your machine down by 5% now :) Lots of really crusty pre-IOMD code removed. Admin: Tested in 32 and 26-bit forms in a limited desktop build. Basically, this will need to see a lot of use to iron out difficulties. I'd like anyone who has a non-frozen project to at least attempt using this Kernel. Version 5.23. Tagged as 'Kernel-5_23'
-
- 10 Mar, 2000 1 commit
-
-
Kevin Bracey authored
Version 5.21. Tagged as 'Kernel-5_21'
-