1. 16 May, 2020 1 commit
    • Jeffrey Lee's avatar
      Fix SMP doorbell device · ab4dbe5a
      Jeffrey Lee authored
      With FIQs enabled, the doorbell interrupts were only being delivered as
      FIQs, not IRQs. Fix so that they'll be delivered as both (the current
      SMP module expects them to be IRQs, but FIQs could be a sensible future
      improvement)
      
      Fixes hang on Service_PagesUnsafe when SMP module is active (+
      unreliable SMP thread scheduling), due to the doorbell interrupts never
      triggering
      
      Version 1.05. Tagged as 'HAL_iMx6-1_05'
      ab4dbe5a
  2. 01 Feb, 2019 1 commit
  3. 06 Dec, 2018 2 commits
    • Jeffrey Lee's avatar
      Implement CPU/SoC die temperature sensing · 80e47e0b
      Jeffrey Lee authored
      Detail:
        hdr/CPUSpeed, s/CPUSpeed - Increase CPU clock device to API 0.2, and implement GetDieTemperature function
        hdr/iMx6qMemMap, hdr/iMx6qReg - Additional register definitions
      Admin:
        Tested on wandboard
      
      
      Version 1.03. Tagged as 'iMx6-1_03'
      80e47e0b
    • Jeffrey Lee's avatar
      Implement FIQ support · 73799d6c
      Jeffrey Lee authored
      Detail:
        The iMX6 features a GICv1 with security extensions implemented. This means that (because we're running in secure state) we can get it to generate FIQs from interrupt sources which are assigned to "group 0", and IRQs from interrupt sources which are assigned to "group 1"
        The way that RISC OS handles FIQs isn't particularly well-suited to the way the GIC handles FIQs (we don't call HAL_FIQSource on entry to the FIQ vector), but by invoking HAL_FIQSource from the start of the FIQ enable/disable/clear entry points (and using cached values where appropriate) we arrive at behaviour that the GIC seems to be happy with
        hdr/StaticWS - Reserve some space for storing FIQ state, and a spinlock for controlling access to some shared hardware registers
        hdr/iMx6q - Add macros for claiming/releasing the HAL spinlock
        hdr/iMx6qIRQs - Add extra definitions required for using FIQs
        s/Boot - Adjust SMP startup to assign private IRQs to group 1 by default
        s/Interrupts - Adjust IRQ startup to assign IRQs to group 1 by default, and route group 0 to the FIQ pin. Implement the HAL FIQ calls, switching them between group 1 and group 0 as appropriate.
      Admin:
        Tested on wandboard
      
      
      Version 1.02. Tagged as 'iMx6-1_02'
      73799d6c
  4. 03 Aug, 2018 1 commit
    • John Ballance's avatar
      Changes to ethernet phy detection · 443fc226
      John Ballance authored
      Detail:
        Recent changes, which used active pin control when releasing the phy
        reset pin, failed to work in the RevD iMx6 boards. Reverted to older method
        for these.
      Admin:
        tested in various iMx6 variants
      
      Version 1.01. Tagged as 'iMx6-1_01'
      443fc226
  5. 29 Jul, 2018 1 commit
    • Jeffrey Lee's avatar
      Fix analogue audio being very prone to FIFO underflows · d4e9420e
      Jeffrey Lee authored
      Detail:
        s/SDMA - Fix the last descriptor of circular DMA transfers to have both WRAP+CONT set. By only setting WRAP, the transfer stops, which for audio playback meant that the CPU had a very tight time window to spot the unexpected stoppage and restart it before the FIFO in the I2S transmitter runs dry.
        s/Audio - Fix FIFO underflow IRQ handler to disable the correct IRQ
        hdr/StaticWS - Update comment
      Admin:
        Tested on iMx6
        Fixes frequent pauses in audio when playing CDs via DiskSample, where the bug was causing frequent FIFO underflows (and then a very noticeable pause while the OS stops and restarts audio output)
        Theoretically this could have happened with any workload, but CD+DiskSample seemed to be the perfect storm to make it very obvious.
      
      
      Version 1.00. Tagged as 'iMx6-1_00'
      d4e9420e
  6. 21 Jul, 2018 1 commit
  7. 20 Jul, 2018 1 commit
    • John Ballance's avatar
      Make HAL Ethernet chip detection detect incorrect phy POR address · e101abe8
      John Ballance authored
      Detail:
        Some devices do not stabilise one of the phy configuration pins
        whilst the phy is being reset. As a result it might come up with one
        of 2 different addresses. The HAL now detects this and propagates the
        correct phy address via the Ethernet HAL_Device
      Admin:
        tested on iMx6
      
      Version 0.98. Tagged as 'iMx6-0_98'
      e101abe8
  8. 07 Jul, 2018 1 commit
    • Jeffrey Lee's avatar
      Merge SMP branch to trunk · 3f3e9d52
      Jeffrey Lee authored
      Detail:
        Makefile, s/DBell - Add doorbell HAL device implementation, using GIC SGIs
        h/irq_numbers, hdr/iMx6IRQs - Increase IMX_INTERRUPT_COUNT. Core 0 private interrupts are 0-31, core 1 160-191, core 2 192-223, core 3 224-255. Shared interrupts are 32-159.
        hdr/StaticWS - Reserve space for doorbell device & storing last SGI for each core
        hdr/iMx6q - Tidy things up a bit by removing the DebugInterrupts code
        s/Boot - Implement SMP HAL entry points
        s/Interrupts - Tidy up interrupt handling and implement new HAL IRQ calls
        s/Top - Enable cache/TLB maintenance op broadcast, and add some silicion errata workarounds
      Admin:
        Untested
        Requires Kernel-6_09
      
      
      Version 0.97. Tagged as 'iMx6-0_97'
      3f3e9d52
  9. 29 Jun, 2018 1 commit
  10. 28 Jun, 2018 1 commit
  11. 21 Jun, 2018 1 commit
  12. 14 May, 2018 2 commits
  13. 13 May, 2018 1 commit
  14. 03 Feb, 2018 1 commit
    • Jeffrey Lee's avatar
      Disable HAL video driver · f893280b
      Jeffrey Lee authored
      Detail:
        Makefile - Now that the full IMXVideo module is in public CVS, and we're moving towards a stable release, there's no particular need for having the HAL version of the video driver enabled. Disable it to reduce the potential for bugs or other weird behaviour.
      Admin:
        Tested on wandboard
      
      
      Version 0.90. Tagged as 'iMx6-0_90'
      f893280b
  15. 31 Dec, 2017 1 commit
    • John Ballance's avatar
      Improved GPIO isolation · 066d20b0
      John Ballance authored
      Detail:
      Occasional misstarts of EtherTH in RevD boards resolved to GPIO issues.
      Barrier instructions added.
      Admin:
      
      
      Version 0.89. Tagged as 'iMx6-0_89'
      066d20b0
  16. 25 Oct, 2017 1 commit
  17. 09 Sep, 2017 1 commit
    • ROOL's avatar
      Participate in keyboard scan dependencies · d13cbfef
      ROOL authored
      Detail:
        Add keyboard scan code with list of modules that the kernel needs to do the same (the EHCI code was bypassed, and the HAL EHCI not linked against).
        Reorder the HALEntries to match Kernel-5_89.
        Remove unused stub functions.
      Admin:
        Submission for USB bounty.
      
      Version 0.87. Tagged as 'iMx6-0_87'
      d13cbfef
  18. 05 Sep, 2017 1 commit
  19. 04 Sep, 2017 1 commit
  20. 30 Aug, 2017 1 commit
  21. 17 Aug, 2017 1 commit
  22. 04 Aug, 2017 1 commit
    • John Ballance's avatar
      Resolve I2C error recovery abort · a28f024f
      John Ballance authored
      Detail:
        The code for unlocking stuck I2C transaction failed to get the base
        address of the I2C GPIO port. This had caused an AODT if the I2C transaction
        failed. Issue corrected
      Admin:
      
      
      Version 0.82. Tagged as 'iMx6-0_82'
      a28f024f
  23. 30 Jul, 2017 1 commit
    • ROOL's avatar
      Build fix · d1c1f3f2
      ROOL authored
      Admin:
        As a side effect of changes in USBDriver-1_20, rename the library object.
      
      Version 0.81. Tagged as 'iMx6-0_81'
      d1c1f3f2
  24. 26 Jul, 2017 1 commit
    • John Ballance's avatar
      Resolve I2C differences between RevB and C boards and RevD · 614ca66e
      John Ballance authored
      Detail:
         RevD boards have put the HDMI EDID I2C lines on I2C2 instead of
         I2C1. This conflicts with the CMOS RAM. A routine has been created
         to detect the RevD board (by the presence of a power swithch on the
         Ethernet Phy), so the HAL can set up appropriately.
      Admin:
         Tested on Rev B and Rev D iMx6 boards
      
      
      Version 0.80. Tagged as 'iMx6-0_80'
      614ca66e
  25. 18 Jul, 2017 1 commit
    • John Ballance's avatar
      Added routine to control Ethernet Phy power and reset pins · b248c405
      John Ballance authored
      Detail:
        HAL_EtherDevice now gives access to a routine to control the
        Ethernet Phy power and reset pins. This updated device is present if the
        hal workspace pointer is non zero (bug fix) and GPIO_WriteBit routine
        now writes correctly in all cases.
      Admin:
        tested on iMx6 revC2 and revD1
      
      
      Version 0.79. Tagged as 'iMx6-0_79'
      b248c405
  26. 24 Apr, 2017 1 commit
    • John Ballance's avatar
      Correct HAL Serial handshake configuration call. · 59fb0e1c
      John Ballance authored
      Detail:
      Further serial port testing showed inconsistency in handshake configuration.
      This in now corrected.
      Tested using a DeviceFS test setup and DeviceFS calls.
      
      Admin:
      
      
      Version 0.78. Tagged as 'iMx6-0_78'
      59fb0e1c
  27. 07 Apr, 2017 1 commit
  28. 11 Mar, 2017 1 commit
  29. 20 Jan, 2017 1 commit