• Jeffrey Lee's avatar
    Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks. · 538f3c24
    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
HALEntries 6.93 KB