mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-28 19:06:51 +01:00
Add a new PCITEST_BAR_SUBRANGE ioctl to exercise EPC BAR subrange
mapping end-to-end.
The test programs a simple 2-subrange layout on the endpoint (via
pci-epf-test) and verifies that:
- the endpoint-provided per-subrange signature bytes are observed at
the expected PCIe BAR offsets, and
- writes to each subrange are routed to the correct backing region
(i.e. the submap order is applied rather than accidentally working
due to an identity mapping).
Return -EOPNOTSUPP when the endpoint does not advertise subrange
mapping, -ENODATA when the BAR is disabled, and -EBUSY when the BAR is
reserved for the test register space.
Signed-off-by: Koichiro Den <den@valinux.co.jp>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260124145012.2794108-8-den@valinux.co.jp
42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* pcitest.h - PCI test uapi defines
|
|
*
|
|
* Copyright (C) 2017 Texas Instruments
|
|
* Author: Kishon Vijay Abraham I <kishon@ti.com>
|
|
*
|
|
*/
|
|
|
|
#ifndef __UAPI_LINUX_PCITEST_H
|
|
#define __UAPI_LINUX_PCITEST_H
|
|
|
|
#define PCITEST_BAR _IO('P', 0x1)
|
|
#define PCITEST_INTX_IRQ _IO('P', 0x2)
|
|
#define PCITEST_LEGACY_IRQ PCITEST_INTX_IRQ
|
|
#define PCITEST_MSI _IOW('P', 0x3, int)
|
|
#define PCITEST_WRITE _IOW('P', 0x4, unsigned long)
|
|
#define PCITEST_READ _IOW('P', 0x5, unsigned long)
|
|
#define PCITEST_COPY _IOW('P', 0x6, unsigned long)
|
|
#define PCITEST_MSIX _IOW('P', 0x7, int)
|
|
#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
|
|
#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
|
|
#define PCITEST_BARS _IO('P', 0xa)
|
|
#define PCITEST_DOORBELL _IO('P', 0xb)
|
|
#define PCITEST_BAR_SUBRANGE _IO('P', 0xc)
|
|
#define PCITEST_CLEAR_IRQ _IO('P', 0x10)
|
|
|
|
#define PCITEST_IRQ_TYPE_UNDEFINED -1
|
|
#define PCITEST_IRQ_TYPE_INTX 0
|
|
#define PCITEST_IRQ_TYPE_MSI 1
|
|
#define PCITEST_IRQ_TYPE_MSIX 2
|
|
#define PCITEST_IRQ_TYPE_AUTO 3
|
|
|
|
#define PCITEST_FLAGS_USE_DMA 0x00000001
|
|
|
|
struct pci_endpoint_test_xfer_param {
|
|
unsigned long size;
|
|
unsigned char flags;
|
|
};
|
|
|
|
#endif /* __UAPI_LINUX_PCITEST_H */
|