überXMHF (rpi3-armv8_32): Add mixed-trust scheduler üapp and MAVLINK serial-heartbeat protocol üapp

This task adds a mixed-trust non-preemptive uapp hypervisor scheduler extension for a guest OS scheduler uapp. It also adds a MAVLINK serial heart-beat protocol implementation as a uapp and an uapp hypervisor extension.

The following features are included:

  1. mixed-trust non-preemptive uapp hypervisor scheduler extension
  2. linux guest OS scheduler uapp example in both user and kernel mode
  3. linux guest OS scheduler uapp libraries in both user and kernel mode to interface with other guest OS schedulers
  4. MAVLINK serial heart-beat uapp hypervisor extension (depends on mixed-trust uapp hypervisor scheduler extension)
  5. MAVLINK serial heart-beat linux guest OS uapp

Build and Testing Parameters

  1. Look into docs/general-swreq on how to build and view documentation
  2. max_cpus=1 should be added to the rpi3 kernel command line
  3. the following configure options need to be passed while building
    • --enable-fiqreflection
    • --enable-debug-uart
    • --enable-uart-mini if using mini UART OR --enable-uart-pl011 if using full UART
    • --enable-uapp-hypmtscheduler
  4. Optionally, secure hyptask boot-strapping can be tested by passing the additional configure option --enable-uapp-hypmtscheduler-secure-hyptask-bootstrap

Linked PRs:

Submitted PR and linked PR to OP. Also update OP with build and test configuration and parameters

Ok, I performed some initial tests as specified within docs/rpi3-cortext_a53-armv8_32/build/build-uapp-hypmtscheduler.rst using the test application and kernel module (hypmtschedulertestkmod.ko and hypmtschedulertest_userapp).

The tests were all successful with the build and testing parameters specified within the OP. I pushed a few changes to the PR, so please do a pull on the PR branch to get the latest changes.

@dionisiodeniz: Do you want to run your zsrmv scheduler specific tests just to confirm everything is good? I can go ahead and merge this PR thereafter.