Hi Quan, My phsyical TPM is v2.0. I alrady tried 'iomem=["fed40,1"]' but didn't work..
Actually, my DOM's TPM driver has been loaded. Meanwhile, I thought xen-devel was too busy with other real issues, so I asked this question to Daniel after that and he sent me a patch. I am trying out his patch on xen-unstable, and if the patch works Daniel will submit it upstream. I will let you guys know about the result soon. Ronny On Wed, Sep 13, 2017 at 8:27 AM, Quan Xu <quan....@gmail.com> wrote: > > > on 2017/9/13 18:42, Wei Liu wrote: > >> Cc VTPM maintainers >> >> On Sun, Sep 10, 2017 at 03:07:04PM -0400, Ronny Ko wrote: >> >>> Hi, >>> >>> I'm a PhD student from Harvard University having a trouble in running >>> vTPM manager. >>> >>> I cannot successfully launch vTPM manager in Xen, because when I >>> command "sudo xl create vtpm-manager.cfg" to launch a virtual TPM VM, >>> I get the following error: >>> >>> libxl: error: libxl_create.c:1295:domcreate_launch_dm: Domain >>> 10:failed give domain access to iomeim range fed44-fed44: Operation >>> not permitted >>> >>> In Xen, virtual TPM is a standalone VM that communicates with DOMu. >>> "vtpm-manager.cfg" is Xen's configuration file for virtual TPM manager >>> VM, whose contents are as follows: >>> >>> ============ vtpm-manager.cfg ================ >>> kernel="/usr/local/lib/xen/boot/vtpmmgr-stubdom.gz" # vTPM manager >>> code image >>> memory=16 # 16M RAM size >>> disk=["file:/home/skyer/Desktop/xen/vtpmmgr-stubdom.img,hda,w"] # >>> disk storage >>> name="vtpmmgr" # Just a nick name >>> iomem=["fed44,1"] # This means, map physical memory from >>> 0xfed44000-0xfed44fff for I/O, which is to be used by virtual TPM >>> manager to communicate with the physical TPM device. >>> =========================================== >>> >> > Ronny, > is your physical TPM device v1.2 or v2.0? > > for tpm1.2.. , commands that are sent to the TPM through the register set > at address FED4.0000 are implicitly associated with locality 0. > try 'iomem=["fed40,1"]' > > > and make sure Dom0 's TPM driver is _not_ loaded... > > Quan > > My kernel is compiled with CONFIG_IO_STRICT_DEVMEM flag disabled, so >>> iomem shouldn't be blocked by the kernel. I tried to map not only >>> 0xfed44000, but also any other random addresses for testing, but all >>> of them give the same error message as above. >>> >>> I'm launching the vTPM manager VM not from inside a DOMu Linux VM, but >>> from inside the Linux kernel directly loaded by Xen-4.9.0 (which I >>> suppose to be DOM0 Linux VM), and I believe this is the correct way to >>> launch vTPM manager. >>> >>> In particular, I get the iomem() "operation not allowed" error at the >>> source code line; >>> ioctl(fd, IOCTL_PRIVCMD_HYPERCALL, hypercall); >>> >>> In ioctl(fd, IOCTL_PRIVCMD_HYPERCALL, hypercall), >>> - "fd" is the special privileged Command device >>> - "IOCTL_PRIVCMD_HYPERCALL" denotes that this is a privileged hypercall >>> command >>> - "hypercall" is an object containing the information of: { >>> hypercall_command_index, target_DOM_id, iomem_start_page, >>> iomem_page_count, allow_or_deny_access}. >>> >>> When I launch the vTPM manager, target_DOM_id = the ID of vTPM >>> manager, iomem_start_page = 0xfed40, iomem_page_count = 5, and >>> allow_or_deny_access = 1, and this ioctl() gives an >>> "operation-not-allowed" error. But if I hard-code DOM_id = 0 just for >>> a test, this error goes away, but then I get a 0xfed0 memory mapping >>> failure error later on. >>> >>> To summarize, I cannot find the reason why the vTPM manager VM crashes >>> with "Operation not permitted". If anyone has a clue, please give me >>> some help. Thanks very much. >>> >>> Ronny >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@lists.xen.org >>> https://lists.xen.org/xen-devel >>> >> >
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel