public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: prapal@linux.microsoft.com
To: devel@edk2.groups.io
Subject: vTPM support in cloud-Hypervisor in aarch64
Date: Wed, 27 Apr 2022 13:00:43 -0500	[thread overview]
Message-ID: <88c67b19-3959-1e4d-2027-f0cdeb3ba79a@linux.microsoft.com> (raw)

Folks,

I am trying to enable vTPM support in Windows Guest while using
cloud-hypervisor as the VMM and OVMF firmware from edk2 repo.

The Firmware is built with the following command:

build -a AARCH64 -t GCC5 -p ArmVirtPkg/ArmVirtCloudHv.dsc -b DEBUG \
          -D TPM2_ENABLE=TRUE -D TPM2_CONFIG_ENABLE=TRUE \
          -D SOURCE_DEBUG_ENABLE

Below is the FDT, I am passing to the guest/firmware from
cloud-hypervisor:

  Printing the FDT:
  /
    compatible : "linux,dummy-virt "
    #address-cells : [2]
    #size-cells : [2]
    interrupt-parent : [1]
    cpus/
      #address-cells : [1]
      #size-cells : [0]
      cpu@0/
        device_type : "cpu"
        compatible : "arm,arm-v8 "
        reg : [0]
        phandle : [6]
      cpu-map/
        cluster0/
          core0/
            thread0/
              cpu : [6]
    memory/
      device_type : "memory"
      reg : [0, 40000000, 0, 80000000]
    chosen/
      bootargs : "earlycon=pl011,mmio,0x09000000"
    intc/
      compatible : "arm,gic-v3 "
      interrupt-controller : []
      #interrupt-cells : [3]
      reg : [0, 8FF0000, 0, 10000, 0, 8FD0000, 0, 20000]
      phandle : [1]
      #address-cells : [2]
      #size-cells : [2]
      ranges : []
      interrupts : [1, 9, 4]
      msic/
        compatible : "arm,gic-v3-its "
        msi-controller : []
        phandle : [2]
        reg : [0, 8FB0000, 0, 20000]
    timer/
      compatible : "arm,armv8-timer "
      always-on : []
      interrupts : [1, D, 4, 1, E, 4, 1, B, 4, 1, A, 4]
    pmu/
      compatible : "arm,armv8-pmuv3 "
      interrupts : [1, 7, 104]
    apb-pclk/
      compatible : "fixed-clock "
      #clock-cells : [0]
      clock-frequency : "\u{1}n6"
      clock-output-names : "clk24mhz"
      phandle : [3]
    psci/
      compatible : "arm,psci-0.2 "
      method : "hvc"
    tpm@FED40000/
      compatible : "tcg,tpm-tis-mmio "
      interrupts : [0, 2C, 1]
      reg : [0, FED40000, 0, 5000]
    pl011@9000000/
      compatible : "arm,pl011 arm,primecell "
      reg : [0, 9000000, 0, 1000]
      clocks : [3]
      clock-names : "apb_pclk"
      interrupts : [0, B, 1]
    rtc@9010000/
      compatible : "arm,pl031 arm,primecell "
      reg : [0, 9010000, 0, 1000]
      interrupts : [0, 8, 4]
      clocks : [3]
      clock-names : "apb_pclk"
    pl061@9020000/
      compatible : "arm,pl061 arm,primecell "
      reg : [0, 9020000, 0, 1000]
      interrupts : [0, 9, 1]
      gpio-controller : []
      #gpio-cells : [2]
      clocks : [3]
      clock-names : "apb_pclk"
      phandle : [4]
    gpio-keys/
      compatible : "gpio-keys "
      #size-cells : [0]
      #address-cells : [1]
      button@1/
        label : "GPIO Key Poweroff"
        linux,code : [74]
        gpios : [4, 3, 0]
    pci@30000000/
      compatible : "pci-host-ecam-generic "
      device_type : "pci"
      ranges : [1000000, 0, 0, 0, 9050000, 0, 10000, 2000000, 0, 
10000000, 0, 10000000, 0, 20000000, 3000000, 2, 0, 2, 0, FD, 0]
      bus-range : [0, 0]
      linux,pci-domain : [0]
      #address-cells : [3]
      #size-cells : [2]
      reg : [0, 30000000, 0, 100000]
      #interrupt-cells : [1]
      interrupt-map : []
      interrupt-map-mask : []
      dma-coherent : []
      msi-map : [0, 2, 0, 100]
      msi-parent : [2]


https://github.com/praveen-pk/edk2/commit/59cf5ce41ff6ad2f81273bbd55160747637c3cc2
  and
https://github.com/praveen-pk/edk2/commit/55e7fcc21b7aeaaae457f60f8427aaf1e2ff432c

are the changes made to enable TPM support in cloud-hypervisor's recipe.


With the above setup I am running into the following failure:

"""""

Install PPI: 6CC45765-CCE4-42FD-BC56-011AAAC6C9A8
Install PPI: 8C9F4DE3-7B90-47EF-9308-287CECD66DE8
Install PPI: E09F355D-DAE8-4910-B14A-92780FDCF7CB
Install PPI: 75CF14AE-3441-49DC-AA10-BB35A7BA8BAB
Loading PEIM BF7F2B0C-9F2F-4889-AB5C-12460022BE87
add-symbol-file 
/root/winiot/edk2/Build/ArmVirtCloudHv-AARCH64/DEBUG_GCC5/AARCH64/OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei/DEBUG/Tcg2ConfigPei.dll 
0xBFAC1240

Loading PEIM at 0x000BFAC1160 EntryPoint=0x000BFAC2C2C Tcg2ConfigPei.efi

Synchronous Exception at 0xBFAC312
""""


Further debugging I noticed the Exception happens during an MmioRead. 
Below is the related trace:

""""
add-symbol-file 
/root/winiot/edk2/Build/ArmVirtCloudHv-AARCH6/DEBUG_GCC5/AARCH64/OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei/DEBUG/Tcg2ConfigPei.dll 
0xBFAC1240

Loading PEIM at 0x000BFAC1160 EntryPoint=0x000BFAC2C2C Tcg2ConfigPei.efi

_ModuleEntryPoint
ProcessLibraryConstructorList start _ModuleEntryPoint
  BaseDebugLibSerialPortConstructor
  TimerConstructor
  Tpm2DeviceLibConstructor
  Tpm2GetPtpInterface Register = FED40000
  Tpm2IsPtpPresence Start, Reg = FED40000
  ioLibArmVirt.c MmioRead8
  ioLibArmVirt.c MmioRead8
Synchronous Exception at 0xBFAC312
""""

Any thoughts on what could be going wrong with TPM device configuration 
in the firmware? I'd appreciate any inputs on this issue.

-- 
Regards,
Praveen K Paladugu

                 reply	other threads:[~2022-04-27 18:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=88c67b19-3959-1e4d-2027-f0cdeb3ba79a@linux.microsoft.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox