Detailed Explanation of Interrupts in ARMv8/ARMv9 – Interrupt Examples (Virtualization Part)

Click the blue "Arm Selected" in the top left corner and select "Set as Star"

Drainage Keywords: armv8, armv9, gic, gicv2, gicv3, exceptions, interrupts, irq, fiq, serror, sync, synchronous exceptions, asynchronous exceptions, vector table, vector table base address, VBAR, vbar_el3, interrupt nesting, interrupt cascading, Linux Kernel, optee, ATF, TF-A, optee, hypervisor, SPM

The relevant control bits affecting interrupt routing are mainly HCR_EL2.IMO/FMO/AMO (this article only discusses irq/virq, so we will only look at the IMO bit), in addition, the HCR_EL2.TGE bit affects whether the Application acts as Host or Guest.

Below is a summary of the routing rules for these bits:Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

After learning the principles, let’s look at four examples: (1) HCR_EL2.IMO=1, HCR_EL2.TGE=1 routing to EL2, Application as GuestDetailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

(2) HCR_EL2.IMO=1, HCR_EL2.TGE=0 routing to EL2, Application as HostDetailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

(3) HCR_EL2.IMO=0, HCR_EL2.TGE=1 routing to EL1, Application as GuestDetailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

(4) HCR_EL2.IMO=0, HCR_EL2.TGE=0 routing to EL1, Application as HostDetailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

Latest ReleasesCourse8-Day Introduction to ARM ArchitectureCourse“8-Day Introduction to Trustzone/TEE/Security Architecture” Limited Time 128 YuanClassic Course【Member】Arm Selected Classroom – Platinum VIP Introduction Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)【Course】”From Introduction to Mastery of ARMv8/ARMv9 Architecture” – Phase II Video Course Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)Course】Trustzone/TEE/Security from Introduction to Mastery – Standard Video Course Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)Course】Secure Boot from Introduction to Mastery (Phase II) Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)Course】CA/TA Development from Introduction to MasteryCourse】”In-depth Development of ATF Architecture” – Video CourseCourse】”In-depth Development of OP-TEE System” – Video CourseCourse】ATF/OP-TEE/Hafnium/Linux/Xen Code ReadingCourseHSM/HSE/SHE/SE/Crypto Engine OverviewCourseIntroduction to Keystore/Keymaster/KeymintCourse】Arm Microarchitecture Class and Arm MMU/SMMU Discussion ClassCourse】TEE Overview Course – TEE/Security Interview Course【Guidance】[Guide] Four Ways to Watch Our Courses【Guidance】What is the Difference Between Phase I and Phase II of Arm Video Courses?【Guidance】What are the Differences Between the Replay Version, Standard Version, and High-Configuration Version of Trustzone/TEE/Security from Introduction to Mastery?

【Store Address】

Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

【Customer Service Consultation】

Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

Detailed Explanation of Interrupts in ARMv8/ARMv9 - Interrupt Examples (Virtualization Part)

Leave a Comment