On Mon, Sep 08, 2025 at 05:08:35PM +0200, Niklas Cassel wrote:
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?
I have not tested latest one yet. Look like inbound address have not switch back to MSI ITS address after disable() and enable().
Frank
Kind regards, Niklas