(subset) [PATCH v21 0/9] PCI: EP: Add RC-to-EP doorbell with platform MSI controller
Niklas Cassel
cassel at kernel.org
Mon Sep 8 08:08:35 PDT 2025
On Mon, Jul 21, 2025 at 08:48:11PM +0530, Manivannan Sadhasivam wrote:
> On Thu, 10 Jul 2025 15:13:46 -0400, Frank Li wrote:
> > [...]
>
> Applied, thanks!
>
> [3/9] PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller
> commit: b537ffe0eb2ab458f20ec135cc2b565c63a2ea00
> [4/9] PCI: endpoint: pci-ep-msi: Add MSI address/data pair mutable check
> commit: 1f2ed78e43abb9ac0856a82867f64d472368a832
> [5/9] PCI: endpoint: Add pci_epf_align_inbound_addr() helper for address alignment
> commit: 1c2c5f9855a5cf4617bcda721c22dbd3345f06a1
> [6/9] PCI: endpoint: pci-epf-test: Add doorbell test support
> commit: 5d4da5f8092e5a77ae371ae1112283b59790ac22
> [7/9] misc: pci_endpoint_test: Add doorbell test case
> commit: a1a293e709a4ec0fa2e4253993a4b75f581c6cf2
> [8/9] selftests: pci_endpoint: Add doorbell test case
> commit: b964b4894fcfc72e7496cf52a33cbba39d094c5b
Hello all,
I wanted to test this on rk3588, so I added msi-map to the pcie_ep node.
It works the first time:
# ./pcitest -r pcie_ep_doorbell.DOORBELL_TEST
TAP version 13
1..1
# Starting 1 tests from 1 test cases.
# RUN pcie_ep_doorbell.DOORBELL_TEST ...
[ 17.996519] offset: 70040
[ 17.997904] left: 250 status: 0x240
# OK pcie_ep_doorbell.DOORBELL_TEST
ok 1 pcie_ep_doorbell.DOORBELL_TEST
# PASSED: 1 / 1 tests passed.
# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0
Prints on EP side:
[ 17.924761] pci_epf_test_enable_doorbell
[ 17.926035] doorbell offset: 70040
[ 17.927898] pci_epf_test_doorbell_handler
[ 17.932816] pci_epf_test_disable_doorbell
However, if I run the exact same test case again:
# ./pcitest -r pcie_ep_doorbell.DOORBELL_TEST
TAP version 13
1..1
# Starting 1 tests from 1 test cases.
RUN pcie_ep_doorbell.DOORBELL_TEST ...
[ 34.672546] offset: 70040
[ 35.688190] left: 0 status: 0x0
[ 35.688480] pci-endpoint-test 0000:01:00.0: Failed to trigger doorbell in endpoint
# pci_endpoint_test.c:258:DOORBELL_TEST:Expected 0 (0) == ret (-22)
# pci_endpoint_test.c:258:DOORBELL_TEST:Test failed for Doorbell
# DOORBELL_TEST: Test failed
# FAIL pcie_ep_doorbell.DOORBELL_TEST
not ok 1 pcie_ep_doorbell.DOORBELL_TEST
# FAILED: 0 / 1 tests passed.
Prints on EP side:
[ 34.600717] pci_epf_test_enable_doorbell
[ 34.602086] doorbell offset: 70040
[ 35.624718] pci_epf_test_disable_doorbell
As you can see the print that I added in pci_epf_test_doorbell_handler()
never comes the second time executing this test case.
Frank, do you see the same problem?
Kind regards,
Niklas
More information about the linux-arm-kernel
mailing list