[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250307103128.3287497-1-s-vadapalli@ti.com>
Date: Fri, 7 Mar 2025 16:01:24 +0530
From: Siddharth Vadapalli <s-vadapalli@...com>
To: <lpieralisi@...nel.org>, <kw@...ux.com>,
<manivannan.sadhasivam@...aro.org>, <robh@...nel.org>,
<bhelgaas@...gle.com>, <vigneshr@...com>, <kishon@...nel.org>,
<cassel@...nel.org>, <wojciech.jasko-EXT@...tinental-corporation.com>,
<thomas.richard@...tlin.com>, <bwawrzyn@...co.com>
CC: <linux-pci@...r.kernel.org>, <linux-omap@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
<srk@...com>, <s-vadapalli@...com>
Subject: [PATCH 0/4] Loadable Module support for PCIe Cadence and J721E
Hello,
This series enables support to build the PCIe Cadence Controller drivers
and the PCI J721E Application/Wrapper/Glue driver as Loadable Kernel
Modules. The motivation for this series is that PCIe is not a necessity
for booting the SoC, due to which it doesn't have to be a built-in
module. Additionally, the defconfig doesn't enable the PCIe Cadence
Controller drivers and the PCI J721E driver, due to which PCIe is not
supported by default. Enabling the configs as of now (i.e. without this
series) will result in built-in drivers i.e. a bloated Linux Image for
everyone who doesn't have the PCIe Controller. Therefore, with this
series, after enabling support for building the drivers as loadable
modules, the driver configs can be enabled in the defconfig to build
the drivers as loadable modules, thereby enabling PCIe.
Series is based on linux-next tagged next-20250306.
--------------------------
Series has been tested for
--------------------------
[1] Loading and Unloading the PCI J721E driver when operating in the
Root-Complex mode on J721E-EVM with an NVMe SSD connected to the PCIe
Connector. "hdparm" based reads of the NVMe SSD have been performed to
validated functionality before and after a module unload-load sequence
using modprobe. Logs:
https://gist.github.com/Siddharth-Vadapalli-at-TI/085fd24d416bab5dc7d798156ce130b3
[2] Loading and Unloading the PCI J721E driver when operating in the
Endpoint mode on J784S4-EVM with 6 Physical Functions configured in the
Endpoint and connected to the J721E-EVM as the Root-Complex. Logs:
https://gist.github.com/Siddharth-Vadapalli-at-TI/1ec568a76bc3ebc1082d434aab4ab00b
The following changes to arch/arm64/configs/defconfig were made to test
this series and will be posted as a patch after this series gets merged:
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 3a3706db2982..0ca073141c3e 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -209,6 +209,12 @@ CONFIG_NFC=m
CONFIG_NFC_NCI=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
+CONFIG_PCI_J721E=m
+CONFIG_PCI_J721E_HOST=m
+CONFIG_PCI_J721E_EP=m
+CONFIG_PCIE_CADENCE=m
+CONFIG_PCIE_CADENCE_HOST=m
+CONFIG_PCIE_CADENCE_EP=m
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCI_IOV=y
Regards,
Siddharth.
Kishon Vijay Abraham I (1):
PCI: cadence: Add support to build pcie-cadence library as a kernel
module
Siddharth Vadapalli (3):
PCI: cadence-host: Introduce cdns_pcie_host_disable helper for cleanup
PCI: cadence-ep: Introduce cdns_pcie_ep_disable helper for cleanup
PCI: j721e: Add support to build as a loadable module
drivers/pci/controller/cadence/Kconfig | 12 +-
drivers/pci/controller/cadence/pci-j721e.c | 37 +++++-
.../pci/controller/cadence/pcie-cadence-ep.c | 16 +++
.../controller/cadence/pcie-cadence-host.c | 113 ++++++++++++++++++
drivers/pci/controller/cadence/pcie-cadence.c | 12 ++
drivers/pci/controller/cadence/pcie-cadence.h | 14 ++-
6 files changed, 194 insertions(+), 10 deletions(-)
--
2.34.1
Powered by blists - more mailing lists