[PATCH v8 2/2] bus: mhi: host: pci: Enable IP_SW1, IP_ETH0 and IP_ETH1 channels for QDU100
From: Vivek Pernamitta <hidden>
Date: 2026-02-12 11:00:40
Also in:
linux-arm-msm, lkml
Subsystem:
mhi bus, the rest · Maintainers:
Manivannan Sadhasivam, Linus Torvalds
From: Vivek Pernamitta <redacted> Enable IP_SW1 (ch:48/49), IP_ETH0 (ch:50,51) and IP_ETH1 (ch:52, 53) channels over MHI for M-plane, NETCONF and S-plane interface for QDU100. M-plane: Implement DU M-Plane software for non-real-time O-RAN management between O-DU and O-RU using NETCONF/YANG and O-RAN WG4 M-Plane YANG models. Provide capability exchange, configuration management, performance monitoring, and fault management per O-RAN.WG4.TS.MP.0-R004-v18.00. YANG model based interface aligned with O-RAN WG4 M-Plane specifications over TCP between the OAM application on the host and the DU M-Plane software running on the X100 platform. Netconf: Use NETCONF protocol for configuration operations such as fetching, modifying, and deleting network device configurations. This interface is used for IETF Netconf communication, enabling a Netconf server on the ORU to interact with a Netconf client running on the host. S-plane: Support frequency and time synchronization between O-DUs and O-RUs using Synchronous Ethernet and IEEE 1588. Assume PTP transport over L2 Ethernet (ITU-T G.8275.1) for full timing support; allow PTP over UDP/IP (ITU-T G.8275.2) with reduced reliability, as per ORAN spec O-RAN.WG4.CUS.0-R003-v12.00. To support accurate phase and time synchronization between the host (L2) and device (L1-High), the system must exchange PTP messages as raw Layer-2 Ethernet frames, because the ITU-T G.8275.1 profile operates strictly over Ethernet multicast and not over IP networks. This means the device’s PTP stack can only send and receive PTP Announce, Sync, Follow-Up, and Delay messages in native Ethernet format, not as IPv4/IPv6 packets. However, the host and device communicate only through MHI/PCIe, which provides no native Ethernet interface. Therefore, the system must implement a virtual Ethernet interface over MHI on both sides. This virtual Layer-2 link enables true Ethernet-frame transport, ensuring the device’s PTP implementation remains fully compliant with the G.8275.1 Ethernet-based timing model. Signed-off-by: Vivek Pernamitta <redacted> --- drivers/bus/mhi/host/pci_generic.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
index 0884a384b77fc3f56fa62a12351933132ffc9293..6affef34ffc449eb48cd254bf3d8d69a49aeafdb 100644
--- a/drivers/bus/mhi/host/pci_generic.c
+++ b/drivers/bus/mhi/host/pci_generic.c@@ -253,6 +253,13 @@ static const struct mhi_channel_config mhi_qcom_qdu100_channels[] = { MHI_CHANNEL_CONFIG_DL(41, "MHI_PHC", 32, 4), MHI_CHANNEL_CONFIG_UL(46, "IP_SW0", 256, 5), MHI_CHANNEL_CONFIG_DL(47, "IP_SW0", 256, 5), + MHI_CHANNEL_CONFIG_UL(48, "IP_SW1", 256, 6), + MHI_CHANNEL_CONFIG_DL(49, "IP_SW1", 256, 6), + MHI_CHANNEL_CONFIG_UL(50, "IP_ETH0", 256, 7), + MHI_CHANNEL_CONFIG_DL(51, "IP_ETH0", 256, 7), + MHI_CHANNEL_CONFIG_UL(52, "IP_ETH1", 256, 8), + MHI_CHANNEL_CONFIG_DL(53, "IP_ETH1", 256, 8), + }; static struct mhi_event_config mhi_qcom_qdu100_events[] = {
@@ -268,6 +275,7 @@ static struct mhi_event_config mhi_qcom_qdu100_events[] = { MHI_EVENT_CONFIG_SW_DATA(5, 512), MHI_EVENT_CONFIG_SW_DATA(6, 512), MHI_EVENT_CONFIG_SW_DATA(7, 512), + MHI_EVENT_CONFIG_SW_DATA(8, 512), }; static const struct mhi_controller_config mhi_qcom_qdu100_config = {
--
2.34.1