Illegal Operation when using Hypervisor API

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Illegal Operation when using Hypervisor API

481 Views
jessekleve
Contributor I

When using the hypervisor API, I get a "SIGILL: Illegal Instruction" on every function call. For example, running the following from a manager partition will cause a SIGILL even though partition 2 restarts.

fh_partition_restart(2);

Everything appears to work. Partition 2 will restart with no errors reported besides the SIGILL in the manager partition. I can't find any documentation on this unexpected SIGILL. Could anyone explain what is possibly happening here?

As a work around, I'm registering a signal handler that ignores SIGILL.

This has only been tested on a T1040D4RDB.

0 Kudos
1 Reply

371 Views
bpe
NXP Employee
NXP Employee

SIGILL is a generic, POSIX-compatible signal that indicates an illegal
instruction in the task command flow. Hypercalls are not expected
to happen in userspace, although the hardware supports this scenario.
The recommended way to request Hypervisor services from a userland
task is via Hypervisor Management driver. See SDK 2.0 documentation,
Section 11.1.2.10. There is a small reference application that shows
how to do it safely:

http://git.freescale.com/git/cgit.cgi/ppc/sdk/hypervisor/hypervisor.git/tree/tools/partman


Have a great day,
Platon

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos