• Oliver Upton's avatar
    Merge branch kvm-arm64/ffa-proxy into kvmarm/next · 1a08f492
    Oliver Upton authored
    * kvm-arm64/ffa-proxy:
      : pKVM FF-A Proxy, courtesy Will Deacon and Andrew Walbran
      :
      : From the cover letter:
      :
      : pKVM's primary goal is to protect guest pages from a compromised host by
      : enforcing access control restrictions using stage-2 page-tables. Sadly,
      : this cannot prevent TrustZone from accessing non-secure memory, and a
      : compromised host could, for example, perform a 'confused deputy' attack
      : by asking TrustZone to use pages that have been donated to protected
      : guests. This would effectively allow the host to have TrustZone
      : exfiltrate guest secrets on its behalf, hence breaking the isolation
      : that pKVM intends to provide.
      :
      : This series addresses this problem by providing pKVM with the ability to
      : monitor SMCs following the Arm FF-A protocol. FF-A provides (among other
      : things) a set of memory management APIs allowing the Normal World to
      : share, donate or lend pages with Secure. By monitoring these SMCs, pKVM
      : can ensure that the pages that are shared, lent or donated to Secure by
      : the host kernel are only pages that it owns.
      KVM: arm64: pkvm: Add support for fragmented FF-A descriptors
      KVM: arm64: Handle FFA_FEATURES call from the host
      KVM: arm64: Handle FFA_MEM_LEND calls from the host
      KVM: arm64: Handle FFA_MEM_RECLAIM calls from the host
      KVM: arm64: Handle FFA_MEM_SHARE calls from the host
      KVM: arm64: Add FF-A helpers to share/unshare memory with secure world
      KVM: arm64: Handle FFA_RXTX_MAP and FFA_RXTX_UNMAP calls from the host
      KVM: arm64: Allocate pages for hypervisor FF-A mailboxes
      KVM: arm64: Probe FF-A version and host/hyp partition ID during init
      KVM: arm64: Block unsafe FF-A calls from the host
    Signed-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
    1a08f492
mem_protect.c 28.2 KB