Initial SMP changes
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'
9944afaf
Name Last commit Last update
..
AMBControl Implement support for cacheable pagetables
PMF Remove a dead function
vdu Fix software pointer when ExtraBytes is in use
ARM600 Implement support for cacheable pagetables
ARMops Initial SMP changes
Arthur2 Fix incorrect OS_SynchroniseCodeAreas call
Arthur3 Extend MonitorType configure keyword
ArthurSWIs Reimplement AMBControl ontop of the PMP system
CPUFeatures Revise comments - it's multiprocessing extensions, not virtualisation
ChangeDyn Fix inverted global vs. per-page cache flush logic in PMP LogOp_MapOut
Convrsions Add OS_Memory 24 implementation. Change OS_ValidateAddress to use it. Fix kernel leaving the physical access MB in a messy state. Try and protect against infinite abort loops caused by bad environment handlers.
Exceptions Implement support for cacheable pagetables
ExtraSWIs Initial SMP changes
GetAll Fix screen redirection when in teletext modes. Fix *ScreenLoad buffer overflow.
HAL Implement some ARM11 errata workarounds
HeapMan Delete lots of old switches
HeapSort Avoid unnecesssary remainder calculations
Kernel Expose CLREX via OS_PlatformFeatures
LibKern More HAL work. IOMD HAL work in progress. Lots of my own little build scripts. Don't touch this.
MOSDict Import from cleaned 360 CD
MemInfo Implement support for cacheable pagetables
MemMap2 Implement support for cacheable pagetables
Middle Fix to OS_ReadSysInfo 1
ModHand Issue Service_ModulePostInit when really post init
MoreComms Resolve 2x header clashes
MoreSWIs
MsgCode
NewIRQs
NewReset
Oscli
SWINaming
Super1
SysComms
TickEvents
UnSqueeze
Utility
VMSAv6