pvmfw: Boot the verified kernel instead of x1

As we currently support receiving the payload address through the DT or
the legacy ABI (i.e. register x1, set by the VMM), make sure that the
kernel address used during verification is the one pvmfw executes as
previously, we were always booting from the x1 value, even if a kernel
location was found in the DT (and verified).

Functionally, this allows pvmfw to boot pVMs spawned by crosvm with
--protected-vm-with-firmware, a mode where pKVM prevents the VMM from
setting other registers than x0 (i.e. where x1 is forced to 0).

Test: crosvm --protected-vm-with-firmware pvmfw.bin <...>
Change-Id: I0b6cd590a49d693a31443bfe8a2e8cce40960acd
1 file changed
tree: dab1d54a7f46f8ed7b89d6361d8ed9914f738a9b
  1. apex/
  2. apkdmverity/
  3. authfs/
  4. avmd/
  5. compos/
  6. demo/
  7. docs/
  8. encryptedstore/
  9. javalib/
  10. launcher/
  11. libs/
  12. microdroid/
  13. microdroid_manager/
  14. pvmfw/
  15. rialto/
  16. tests/
  17. virtualizationmanager/
  18. virtualizationservice/
  19. vm/
  20. vm_payload/
  21. vmbase/
  22. vmclient/
  23. zipfuse/
  24. .clang-format
  25. .gitignore
  26. Android.bp
  27. OWNERS
  28. PREUPLOAD.cfg
  29. README.md
  30. TEST_MAPPING
README.md

Virtualization

This repository contains userspace services related to running virtual machines on Android, especially protected virtual machines. See the getting started documentation and Microdroid README for more information.