#PinePhone Interrupts are complicated ... That's why we need a Generic Interrupt Controller to handle them
https://lupyuen.github.io/articles/interrupt?2#generic-interrupt-controller
Finding the Generic Interrupt Controller on #PinePhone
https://lupyuen.github.io/articles/interrupt?3#allwinner-a64-gic
#NuttX RTOS supports Generic Interrupt Controller version 2 ... We hacked it to run on #PinePhone
https://lupyuen.github.io/articles/interrupt?4#gic-version-2
#NuttX's Generic Interrupt Controller for Arm32 ... Seems to run on #PinePhone with a few tweaks
https://lupyuen.github.io/articles/interrupt?4#gic-version-2
Let's test our Generic Interrupt Controller on #QEMU ... Before running on #PinePhone
https://lupyuen.github.io/articles/interrupt?5#test-pinephone-gic-with-qemu
Dumping the #QEMU Device Tree ... Reveals the address of Generic Interrupt Controller
https://lupyuen.github.io/articles/interrupt?5#test-pinephone-gic-with-qemu
Why did the System Timer freeze #PinePhone? Let's find out!
https://lupyuen.github.io/articles/interrupt?6#pinephone-hangs-at-startup
Troubleshooting the Timer Interrupt on #PinePhone
https://lupyuen.github.io/articles/interrupt?7#timer-interrupt-isnt-handled
Inside the Arm64 Vector Table on #PinePhone
https://lupyuen.github.io/articles/interrupt?8#arm64-vector-table-is-wrong
Checking our Arm64 Vector Table on #PinePhone ... Yep it's wrong! 🙄
https://lupyuen.github.io/articles/interrupt?8#arm64-vector-table-is-wrong
What's an Arm64 Exception Level ... And why it matters for #PinePhone Interrupts
https://lupyuen.github.io/articles/interrupt?9#exception-levels
Each Arm64 Exception Level has its own Vector Table ... Here's how #NuttX RTOS loads the Arm64 Vector Table on #PinePhone
https://lupyuen.github.io/articles/interrupt?9#exception-levels
Here's how #PinePhone handles Arm64 Interrupts with a Generic Interrupt Controller ... Explained with Apache #NuttX RTOS
@lupyuen What exactly are the implications of this?
@kreyren We need to run an older version of the GIC Driver, and it seems to work fine: https://lupyuen.github.io/articles/interrupt?7#gic-version-2
Generic Interrupt Controller in #PinePhone is particularly problematic ... It was created 11 years ago for 32-bit Arm CPUs!
https://lupyuen.github.io/articles/interrupt?3#allwinner-a64-gic