mbox series

[v4,0/8] tpm: Enable usage of TPM TIS with interrupts

Message ID 20200617142305.1198672-1-stefanb@linux.vnet.ibm.com (mailing list archive)
Headers show
Series tpm: Enable usage of TPM TIS with interrupts | expand

Message

Stefan Berger June 17, 2020, 2:22 p.m. UTC
This series of patches enables the usage of the TPM TIS with interrupts.
We use the unused IRQ 13, which is the only one accepted by Windows.

    Stefan

v3->v4:
 - Changed TPM_IRQ_DISABLED from -1 to ~0

v2->v3:
 - Extended series to disable IRQ for TIS on sysbus

v1->v2:
 - Added updated DSDT

Stefan Berger (8):
  tpm_tis: Allow lowering of IRQ also when locality is not active
  tpm: Extend TPMIfClass with get_irqnum() function
  tests: Temporarily ignore DSDT table differences
  tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ
  acpi: Enable TPM IRQ
  tests: Add updated DSDT
  tpm: Guard irq related ops in case interrupts are disabled
  tpm: Disable interrupt support for TIS on sysbus

 hw/i386/acpi-build.c         |  11 +++++------
 hw/tpm/tpm_tis_common.c      |  12 +++++++++---
 hw/tpm/tpm_tis_isa.c         |  17 ++++++++++++++---
 hw/tpm/tpm_tis_sysbus.c      |  12 +++++++++++-
 include/hw/acpi/tpm.h        |   3 ++-
 include/sysemu/tpm.h         |  12 ++++++++++++
 tests/data/acpi/q35/DSDT.tis | Bin 8357 -> 8360 bytes
 7 files changed, 53 insertions(+), 14 deletions(-)

Comments

no-reply@patchew.org June 17, 2020, 2:33 p.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20200617142305.1198672-1-stefanb@linux.vnet.ibm.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PATCH v4 0/8] tpm: Enable usage of TPM TIS with interrupts
Type: series
Message-id: 20200617142305.1198672-1-stefanb@linux.vnet.ibm.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20200617142305.1198672-1-stefanb@linux.vnet.ibm.com -> patchew/20200617142305.1198672-1-stefanb@linux.vnet.ibm.com
Switched to a new branch 'test'
527f6a6 tpm: Disable interrupt support for TIS on sysbus
2409660 tpm: Guard irq related ops in case interrupts are disabled
727db5a tests: Add updated DSDT
9ae0b0d acpi: Enable TPM IRQ
62a659a tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ
4e3994a tests: Temporarily ignore DSDT table differences
651ddf0 tpm: Extend TPMIfClass with get_irqnum() function
9fe25b1 tpm_tis: Allow lowering of IRQ also when locality is not active

=== OUTPUT BEGIN ===
1/8 Checking commit 9fe25b11a231 (tpm_tis: Allow lowering of IRQ also when locality is not active)
2/8 Checking commit 651ddf03a413 (tpm: Extend TPMIfClass with get_irqnum() function)
ERROR: Macros with complex values should be enclosed in parenthesis
#77: FILE: include/sysemu/tpm.h:28:
+#define TPM_IRQ_DISABLED  ~0

total: 1 errors, 0 warnings, 70 lines checked

Patch 2/8 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

3/8 Checking commit 4e3994ae9e45 (tests: Temporarily ignore DSDT table differences)
4/8 Checking commit 62a659ab5c12 (tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ)
5/8 Checking commit 9ae0b0d6f724 (acpi: Enable TPM IRQ)
6/8 Checking commit 727db5ac78ac (tests: Add updated DSDT)
7/8 Checking commit 240966001b86 (tpm: Guard irq related ops in case interrupts are disabled)
8/8 Checking commit 527f6a6fdb16 (tpm: Disable interrupt support for TIS on sysbus)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200617142305.1198672-1-stefanb@linux.vnet.ibm.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org June 17, 2020, 2:50 p.m. UTC | #2
Patchew URL: https://patchew.org/QEMU/20200617142305.1198672-1-stefanb@linux.vnet.ibm.com/



Hi,

This series failed the asan build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
export ARCH=x86_64
make docker-image-fedora V=1 NETWORK=1
time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
=== TEST SCRIPT END ===

  GEN     docs/interop/qemu-qmp-ref.html
  GEN     docs/interop/qemu-qmp-ref.txt
  GEN     docs/interop/qemu-qmp-ref.7
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  CC      qga/commands.o
  CC      qga/guest-agent-command-state.o
  CC      qga/main.o
---
  AR      libvhost-user.a
  GEN     docs/interop/qemu-ga-ref.txt
  GEN     docs/interop/qemu-ga-ref.7
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-keymap
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    ivshmem-client
  LINK    ivshmem-server
  AS      pc-bios/optionrom/multiboot.o
  AS      pc-bios/optionrom/linuxboot.o
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  CC      pc-bios/optionrom/linuxboot_dma.o
  AS      pc-bios/optionrom/pvh.o
  AS      pc-bios/optionrom/kvmvapic.o
---
  BUILD   pc-bios/optionrom/linuxboot_dma.raw
  BUILD   pc-bios/optionrom/kvmvapic.raw
  SIGN    pc-bios/optionrom/multiboot.bin
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  SIGN    pc-bios/optionrom/linuxboot.bin
  SIGN    pc-bios/optionrom/linuxboot_dma.bin
  LINK    qemu-storage-daemon
---
  BUILD   pc-bios/optionrom/pvh.img
  BUILD   pc-bios/optionrom/pvh.raw
  LINK    qemu-img
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  SIGN    pc-bios/optionrom/pvh.bin
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-io
  LINK    qemu-edid
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    fsdev/virtfs-proxy-helper
  LINK    scsi/qemu-pr-helper
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-bridge-helper
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    virtiofsd
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    vhost-user-input
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINK    qemu-ga
/usr/bin/ld: /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o): warning: common of `__interception::real_vfork' overridden by definition from /usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  GEN     x86_64-softmmu/hmp-commands.h
  GEN     x86_64-softmmu/hmp-commands-info.h
  GEN     x86_64-softmmu/config-devices.h
---
  CC      x86_64-softmmu/hw/scsi/vhost-scsi.o
  CC      x86_64-softmmu/hw/scsi/vhost-user-scsi.o
  CC      x86_64-softmmu/hw/tpm/tpm_ppi.o
/tmp/qemu-test/src/fpu/softfloat.c:3365:13: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
    absZ &= ~ ( ( ( roundBits ^ 0x40 ) == 0 ) & roundNearestEven );
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            !
/tmp/qemu-test/src/fpu/softfloat.c:3423:18: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
        absZ0 &= ~ ( ( (uint64_t) ( absZ1<<1 ) == 0 ) & roundNearestEven );
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 !
/tmp/qemu-test/src/fpu/softfloat.c:3483:18: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
        absZ0 &= ~(((uint64_t)(absZ1<<1) == 0) & roundNearestEven);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 !
/tmp/qemu-test/src/fpu/softfloat.c:3606:13: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
    zSig &= ~ ( ( ( roundBits ^ 0x40 ) == 0 ) & roundNearestEven );
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            !
/tmp/qemu-test/src/fpu/softfloat.c:3760:13: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
    zSig &= ~ ( ( ( roundBits ^ 0x200 ) == 0 ) & roundNearestEven );
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            !
/tmp/qemu-test/src/fpu/softfloat.c:3987:21: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
                    ~ ( ( (uint64_t) ( zSig1<<1 ) == 0 ) & roundNearestEven );
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    !
/tmp/qemu-test/src/fpu/softfloat.c:4003:22: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
            zSig0 &= ~ ( ( (uint64_t) ( zSig1<<1 ) == 0 ) & roundNearestEven );
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     !
/tmp/qemu-test/src/fpu/softfloat.c:4273:18: error: bitwise negation of a boolean expression; did you mean logical negation? [-Werror,-Wbool-operation]
        zSig1 &= ~ ( ( zSig2 + zSig2 == 0 ) & roundNearestEven );
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 !
8 errors generated.
make[1]: *** [/tmp/qemu-test/src/rules.mak:69: fpu/softfloat.o] Error 1
make[1]: *** Waiting for unfinished jobs....
/tmp/qemu-test/src/migration/ram.c:919:45: error: implicit conversion from 'unsigned long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Werror,-Wimplicit-int-float-conversion]
            xbzrle_counters.encoding_rate = UINT64_MAX;
                                          ~ ^~~~~~~~~~
/usr/include/stdint.h:130:23: note: expanded from macro 'UINT64_MAX'
---
18446744073709551615UL
^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [/tmp/qemu-test/src/rules.mak:69: migration/ram.o] Error 1
make: *** [Makefile:527: x86_64-softmmu/all] Error 2
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 669, in <module>
    sys.exit(main())
---
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=1eb82116e25740a68f0f82e83cce66ad', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=x86_64-softmmu', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-42oji2ml/src/docker-src.2020-06-17-10.46.07.12769:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-debug']' returned non-zero exit status 2.
filter=--filter=label=com.qemu.instance.uuid=1eb82116e25740a68f0f82e83cce66ad
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-42oji2ml/src'
make: *** [docker-run-test-debug@fedora] Error 2

real    4m7.834s
user    0m8.164s


The full log is available at
http://patchew.org/logs/20200617142305.1198672-1-stefanb@linux.vnet.ibm.com/testing.asan/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Eric Auger June 18, 2020, 7:27 a.m. UTC | #3
Hi Stefan,

On 6/17/20 4:22 PM, Stefan Berger wrote:
> This series of patches enables the usage of the TPM TIS with interrupts.
> We use the unused IRQ 13, which is the only one accepted by Windows.
> 
>     Stefan
> 
> v3->v4:
>  - Changed TPM_IRQ_DISABLED from -1 to ~0
> 
> v2->v3:
>  - Extended series to disable IRQ for TIS on sysbus
> 
> v1->v2:
>  - Added updated DSDT
> 
> Stefan Berger (8):
>   tpm_tis: Allow lowering of IRQ also when locality is not active
>   tpm: Extend TPMIfClass with get_irqnum() function
>   tests: Temporarily ignore DSDT table differences
>   tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ
>   acpi: Enable TPM IRQ
>   tests: Add updated DSDT
>   tpm: Guard irq related ops in case interrupts are disabled
>   tpm: Disable interrupt support for TIS on sysbus
> 
>  hw/i386/acpi-build.c         |  11 +++++------
>  hw/tpm/tpm_tis_common.c      |  12 +++++++++---
>  hw/tpm/tpm_tis_isa.c         |  17 ++++++++++++++---
>  hw/tpm/tpm_tis_sysbus.c      |  12 +++++++++++-
>  include/hw/acpi/tpm.h        |   3 ++-
>  include/sysemu/tpm.h         |  12 ++++++++++++
>  tests/data/acpi/q35/DSDT.tis | Bin 8357 -> 8360 bytes
>  7 files changed, 53 insertions(+), 14 deletions(-)
> 
I checked this series does not bring any regression on ARM TPM-TIS
device. So if useful/relevant, feel free to add my T-b from the ARM pov.

Tested-by: Eric Auger <eric.auger@redhat.com>

Thanks

Eric
Michael S. Tsirkin June 23, 2020, 1:09 p.m. UTC | #4
On Wed, Jun 17, 2020 at 10:22:57AM -0400, Stefan Berger wrote:
> This series of patches enables the usage of the TPM TIS with interrupts.
> We use the unused IRQ 13, which is the only one accepted by Windows.
> 
>     Stefan


ACPI parts:

Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

How do we want this merged? TPM tree or mine?

> v3->v4:
>  - Changed TPM_IRQ_DISABLED from -1 to ~0
> 
> v2->v3:
>  - Extended series to disable IRQ for TIS on sysbus
> 
> v1->v2:
>  - Added updated DSDT
> 
> Stefan Berger (8):
>   tpm_tis: Allow lowering of IRQ also when locality is not active
>   tpm: Extend TPMIfClass with get_irqnum() function
>   tests: Temporarily ignore DSDT table differences
>   tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ
>   acpi: Enable TPM IRQ
>   tests: Add updated DSDT
>   tpm: Guard irq related ops in case interrupts are disabled
>   tpm: Disable interrupt support for TIS on sysbus
> 
>  hw/i386/acpi-build.c         |  11 +++++------
>  hw/tpm/tpm_tis_common.c      |  12 +++++++++---
>  hw/tpm/tpm_tis_isa.c         |  17 ++++++++++++++---
>  hw/tpm/tpm_tis_sysbus.c      |  12 +++++++++++-
>  include/hw/acpi/tpm.h        |   3 ++-
>  include/sysemu/tpm.h         |  12 ++++++++++++
>  tests/data/acpi/q35/DSDT.tis | Bin 8357 -> 8360 bytes
>  7 files changed, 53 insertions(+), 14 deletions(-)
> 
> -- 
> 2.24.1
> 
>
Stefan Berger June 23, 2020, 1:23 p.m. UTC | #5
On 6/23/20 9:09 AM, Michael S. Tsirkin wrote:
> On Wed, Jun 17, 2020 at 10:22:57AM -0400, Stefan Berger wrote:
>> This series of patches enables the usage of the TPM TIS with interrupts.
>> We use the unused IRQ 13, which is the only one accepted by Windows.
>>
>>      Stefan
>
> ACPI parts:
>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
>
> How do we want this merged? TPM tree or mine?

Queued it here: https://github.com/stefanberger/qemu-tpm/commits/tpm-next

Was going to send a PR later this week with this part. Will add your Rb-s.


    Stefan


>
>> v3->v4:
>>   - Changed TPM_IRQ_DISABLED from -1 to ~0
>>
>> v2->v3:
>>   - Extended series to disable IRQ for TIS on sysbus
>>
>> v1->v2:
>>   - Added updated DSDT
>>
>> Stefan Berger (8):
>>    tpm_tis: Allow lowering of IRQ also when locality is not active
>>    tpm: Extend TPMIfClass with get_irqnum() function
>>    tests: Temporarily ignore DSDT table differences
>>    tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ
>>    acpi: Enable TPM IRQ
>>    tests: Add updated DSDT
>>    tpm: Guard irq related ops in case interrupts are disabled
>>    tpm: Disable interrupt support for TIS on sysbus
>>
>>   hw/i386/acpi-build.c         |  11 +++++------
>>   hw/tpm/tpm_tis_common.c      |  12 +++++++++---
>>   hw/tpm/tpm_tis_isa.c         |  17 ++++++++++++++---
>>   hw/tpm/tpm_tis_sysbus.c      |  12 +++++++++++-
>>   include/hw/acpi/tpm.h        |   3 ++-
>>   include/sysemu/tpm.h         |  12 ++++++++++++
>>   tests/data/acpi/q35/DSDT.tis | Bin 8357 -> 8360 bytes
>>   7 files changed, 53 insertions(+), 14 deletions(-)
>>
>> -- 
>> 2.24.1
>>
>>
Stefan Berger June 25, 2020, 10:37 p.m. UTC | #6
On 6/18/20 3:27 AM, Auger Eric wrote:

I have to defer this series since there are some things that don't work 
on the Linux level with IRQ 13 (edge) while they do work fine on the old 
IRQ 5 (festeoi). I know which changes to make to Linux so that it works 
on IRQ 13 as well, but I am not sure whether those changes are 
acceptable. So now we could upstream this one here:

[PATCH v4 4/8] tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and 
TPM_TIS_SYSBUS_IRQ


    Stefan

> Hi Stefan,
>
> On 6/17/20 4:22 PM, Stefan Berger wrote:
>> This series of patches enables the usage of the TPM TIS with interrupts.
>> We use the unused IRQ 13, which is the only one accepted by Windows.
>>
>>      Stefan
>>
>> v3->v4:
>>   - Changed TPM_IRQ_DISABLED from -1 to ~0
>>
>> v2->v3:
>>   - Extended series to disable IRQ for TIS on sysbus
>>
>> v1->v2:
>>   - Added updated DSDT
>>
>> Stefan Berger (8):
>>    tpm_tis: Allow lowering of IRQ also when locality is not active
>>    tpm: Extend TPMIfClass with get_irqnum() function
>>    tests: Temporarily ignore DSDT table differences
>>    tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ
>>    acpi: Enable TPM IRQ
>>    tests: Add updated DSDT
>>    tpm: Guard irq related ops in case interrupts are disabled
>>    tpm: Disable interrupt support for TIS on sysbus
>>
>>   hw/i386/acpi-build.c         |  11 +++++------
>>   hw/tpm/tpm_tis_common.c      |  12 +++++++++---
>>   hw/tpm/tpm_tis_isa.c         |  17 ++++++++++++++---
>>   hw/tpm/tpm_tis_sysbus.c      |  12 +++++++++++-
>>   include/hw/acpi/tpm.h        |   3 ++-
>>   include/sysemu/tpm.h         |  12 ++++++++++++
>>   tests/data/acpi/q35/DSDT.tis | Bin 8357 -> 8360 bytes
>>   7 files changed, 53 insertions(+), 14 deletions(-)
>>
> I checked this series does not bring any regression on ARM TPM-TIS
> device. So if useful/relevant, feel free to add my T-b from the ARM pov.
>
> Tested-by: Eric Auger <eric.auger@redhat.com>
>
> Thanks
>
> Eric
>