devices: vfio_pci: identify intel-lpss devices via cmdline

intel-lpss devices need special handling during BAR accesses due to PV
operations in the guest (when compiled with the direct feature). Allow
identification of such devices via a new vfio parameter, intel-lpss, so
that it can tag them for PV handling.

BUG=b:232887201
TEST=crosvm accepts the intel-lpss parameter in --vfio

Change-Id: I6ce710b112e7d286e43014d7dc55ec4e68939731
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3764936
Tested-by: Peter Fang <peter.fang@intel.corp-partner.google.com>
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
4 files changed
tree: 8fb30cb3ae36af4051a15debd2d04acfba4085ae
  1. .cargo/
  2. .devcontainer/
  3. .github/
  4. .vscode/
  5. aarch64/
  6. acpi_tables/
  7. anti_tamper/
  8. arch/
  9. argh_helpers/
  10. base/
  11. bin/
  12. bit_field/
  13. broker_ipc/
  14. ci/
  15. common/
  16. cros_async/
  17. crosvm-fuzz/
  18. crosvm_control/
  19. crosvm_plugin/
  20. devices/
  21. disk/
  22. docs/
  23. fuse/
  24. gpu_display/
  25. hypervisor/
  26. infra/
  27. integration_tests/
  28. io_uring/
  29. kernel_cmdline/
  30. kernel_loader/
  31. kvm/
  32. kvm_sys/
  33. libcras_stub/
  34. linux_input_sys/
  35. logo/
  36. media/
  37. metrics/
  38. net_sys/
  39. net_util/
  40. power_monitor/
  41. protos/
  42. qcow_utils/
  43. resources/
  44. rutabaga_gfx/
  45. seccomp/
  46. serde_keyvalue/
  47. src/
  48. system_api_stub/
  49. tests/
  50. third_party/
  51. tools/
  52. tpm2/
  53. tpm2-sys/
  54. tracing/
  55. tube_transporter/
  56. usb_sys/
  57. usb_util/
  58. vfio_sys/
  59. vhost/
  60. virtio_sys/
  61. vm_control/
  62. vm_memory/
  63. win_audio/
  64. win_util/
  65. x86_64/
  66. .dockerignore
  67. .gitignore
  68. .gitmodules
  69. .rustfmt.toml
  70. ARCHITECTURE.md
  71. Cargo.lock
  72. Cargo.toml
  73. CONTRIBUTING.md
  74. LICENSE
  75. mypy.ini
  76. navbar.md
  77. OWNERS
  78. PRESUBMIT.cfg
  79. pyproject.toml
  80. README.chromeos.md
  81. README.md
  82. run_tests
  83. rust-toolchain
  84. setup_cros_cargo.sh
  85. test_all
  86. unblocked_terms.txt
README.md

crosvm - The Chrome OS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linux’s KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the Chrome OS platform. Compared to QEMU, crosvm doesn’t emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on Chrome OS devices.

Logo