• Jeffrey Lee's avatar
    Initial SMP changes · 9944afaf
    Jeffrey Lee authored
      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
      Tested on Raspberry Pi 2, 3, OMAP4, iMX6
    Version 5.86, Tagged as 'Kernel-5_86-4_129_2_2'
VersionNum 839 Bytes