Update OS_IICOp to support multiple IIC buses
Jeffrey Lee authored
Detail:
  OS_IICOp (and in turn, RISCOS_IICOpV) now treat the top byte of R1 as containing the IIC bus number, allowing multiple buses to be used.
  hdr/KernelWS - Changed workspace a bit so that the kernel can support up to IICBus_Count buses (currently 3), each with its own IICBus_* block.
  s/HAL - Update Reset_IRQ_Handler to cope with interrupts from all IIC buses instead of just the first. Fix/update RISCOS_IICOpV description.
  s/NewIRQs - Update InitialiseIRQ1Vtable to set up interrupt handlers for all IRQ-supporting IIC buses
  s/NewReset - Get rid of the IICAbort call that was just before IICInit. IICInit now calls IICAbort itself.
  s/PMF/IIC - Bulk of the changes. Code now uses the IICBus_ structures instead of the IICStatus and IICType variables. Re-entrancy code has been updated to take into account the possiblity of multiple buses; when OS_IICOp calls are nested, the IIC transfers will be added to bus-specific queues instead of all going in the same queue. However only one queue will be processed at a time.
  s/ChangeDyn - Workspace shuffling means a couple of MOV's needed to be swapped with LDR's when getting immediate constants
Admin:
  Tested with OMAP & IOMD ROM builds.
  Both high & low-level bus types seem to work OK, along with re-entrancy, both on the same bus and on a different bus.


Version 5.35, 4.79.2.98.2.33. Tagged as 'Kernel-5_35-4_79_2_98_2_33'
327d3980
Name Last commit Last update
..
ExportVals 32-bit Kernel.
Old Import from cleaned 360 CD
ARMops Add support for Cortex cache type. Extend ARM_Analyse to, where appropriate, use CPU feature registers to identify CPU capabilities.
Copro15ops Add GET Hdr:CPU.Arch to Kernel copy of Copro15ops, so I don't accidentally break the HAL again
EnvNumbers Import from cleaned 360 CD
HALDevice Add ClearIRQ entry to base HAL device struct, plus a couple of new HAL device IDs & bus types
HALEntries Minor kernel updates
KernelWS Update OS_IICOp to support multiple IIC buses
KeyWS * HAL can choose to limit amount of screen memory to allocate
ModHand Added new offset field to module header for flags
OSEntries * HAL can choose to limit amount of screen memory to allocate
Options Fix some issues preventing the Cortex kernel from being used on non-Cortex machines
PublicWS Commit of kernel as featured in release 5.00.
RISCOS Clean reimport of hdr.RISCOS (real commit date 2008-03-28 by bavison), without any of the 3rd party allocations.
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