I'm trying to pass a function pointer from EL1 (Android Kernel) to EL2(Hypervisor) using a SMC Call and trapping the SMC call in the hypervisor. I understand that just passing the pointer the the Hypervisor won't work because its a VA and it means nothing to the Hypervisor.
Any comments on how to do it? I would want to invoke the function from EL2 basically and not from EL1.
My guesses are that I might need to use ion memory or might need to convert the VA -> IPA/PA
Any help or pointers is appreciated, thanks!