Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks.
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
Name Last commit Last update
..
ExportVals 32-bit Kernel.
Old Import from cleaned 360 CD
ARMops Kernel updates to support Cortex-A9 CPUs
Copro15ops ARMv7 fixes
EnvNumbers Import from cleaned 360 CD
GPIODevice Add new GPIO device type & OMAP3 GPIO device ID
HALDevice Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks.
HALEntries Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks.
KernelWS Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
KeyWS * HAL can choose to limit amount of screen memory to allocate
ModHand Added new offset field to module header for flags
OSEntries Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks.
OSRSI6 Add ESC_Status to list of OS_ReadSysInfo 6 items
Options Get tag for 5.18.
PublicWS Add new OS_ReadSysInfo 6 items codes. Change naming of PublicWS values.
RISCOS Rationalise some old switches.
RTCDevice Migrate 2012 RTC fix to Cortex branch of kernel
Variables Import from cleaned 360 CD
VduExt Added four new VDU variables.
VideoDevice 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