Is it possible to execute an IRQ in EL3 (secure monitor) if IRQ was fired in EL1 context? E.g. I have entered EL1 via spsr_el3 (el1h selected) and after that setup a vector table with vbar_el1. Now, some IRQs I want to execute in EL3 mode. How can I do that?
Related Questions in ARM64
- llvm headers do not compile under msvc 2013
- clang -Xclang -cc1 -O3 mips.c -emit-llvm , clang error: -emit-llvm cannot be used when linking
- clang::HeaderSearch search path ignored
- Generate C++ style code using LLVM
- What does an overlong bitshift on a LLVM vector yield?
- How can I store arbitrary data in LLVM metadata?
- Error when compiling simple LLVM example with Mingw
- In LLVM IR, how can I print the name of a unnamed value which is represented as an unsigned numeric value with their prefix such as %2?
- Why static_assert calls in unused template methods in LLVM
- With Swift open sourced, what would it take to have it running on the JVM?
Related Questions in BARE-METAL
- llvm headers do not compile under msvc 2013
- clang -Xclang -cc1 -O3 mips.c -emit-llvm , clang error: -emit-llvm cannot be used when linking
- clang::HeaderSearch search path ignored
- Generate C++ style code using LLVM
- What does an overlong bitshift on a LLVM vector yield?
- How can I store arbitrary data in LLVM metadata?
- Error when compiling simple LLVM example with Mingw
- In LLVM IR, how can I print the name of a unnamed value which is represented as an unsigned numeric value with their prefix such as %2?
- Why static_assert calls in unused template methods in LLVM
- With Swift open sourced, what would it take to have it running on the JVM?
Related Questions in IRQ
- llvm headers do not compile under msvc 2013
- clang -Xclang -cc1 -O3 mips.c -emit-llvm , clang error: -emit-llvm cannot be used when linking
- clang::HeaderSearch search path ignored
- Generate C++ style code using LLVM
- What does an overlong bitshift on a LLVM vector yield?
- How can I store arbitrary data in LLVM metadata?
- Error when compiling simple LLVM example with Mingw
- In LLVM IR, how can I print the name of a unnamed value which is represented as an unsigned numeric value with their prefix such as %2?
- Why static_assert calls in unused template methods in LLVM
- With Swift open sourced, what would it take to have it running on the JVM?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
What you want is called "Physical IRQ Routing", and is controlled via
scr_el3
. From the manual:If you only want to handle some IRQs at EL3 and leave others to EL1, then you can simply handle that in the EL3 exception vector by setting:
spsr_el1
tospsr_el3
.elr_el1
toelr_el3
.elr_el3
tovbar_el1
plus one of0x80
/0x280
/0x480
/0x680
depending on the state bits inspsr_el3
.spsr_el3 = (spsr_el3 & ~0xf00fff) | 0x3c5
. If your architecture has PAN support, you'll also have to checkspsr_el1
for theSPAN
field, and if that's zero, OR0x400000
intospsr_el3
.