This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Juno R1 Running SMC in Normal Domain

Hi there,

I have implemented my Juno R1 board with the Android system of Linaro.

Now I'm trying to call the SMC instruction with an application implemented in the normal domain.

I see the website ARM Information Center  mentions "SMC is available only for software executing at EL1 or higher. It is UNDEFINED in EL0." However, I don't know how to execute the my application at EL1 so could you please give me some instruction about this?

Thank you very much.

Simon

  • Hi Simon,

    Applications running on an operating system can only execute in EL0 and are unprivileged.  EL1 is a privileged exception level at which the kernel runs.  The only way that an application can access privileged operations is to request them from the kernel via a library API function provided by the operating system.  The library function will call into the kernel using an SVC call, then the kernel may use SMC calls to to the firmware to request secure operations.  I have explained this a little further in the case you have raised with juno-support.

    The ARMv8-A Software Programmers Guide at ARM Information Centerhttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/index.htmlprovides an explanation of how the exception levels are used in a software stack.

    Kind regards

    Michele