Hello experts,
I'm using LS1028ARDB, and want to support ENETC in my embedded OS, but we do not have its driver to enable its, so my question is can we use legacy INTx to enable ENETC without MSI-X support? In other words, without MSI-X, only use INTx, such as INTA, INTB, does the ENETC can work normally?
189 its:gic-its@6020000 {190 compatible = "arm,gic-v3-its"; 191 msi-controller; 192 reg = <0x0 0x06020000 0 0x20000>;/* GIC Translater */pcie@1f0000000 { /* rcie_enetc */ 623 compatible = "pci-host-ecam-generic"; 624 reg = <0x01 0xf0000000 0x0 0x100000>; 625 #address-cells = <3>; 626 #size-cells = <2>; 627 #interrupt-cells = <1>; 628 msi-parent = <&its>;
Hello 家镇 徐,
There is no setting to change MSI-X to INTx for functional events.
We use INTA/INTB for error reporting only.
Thanks,
Yiping
ENETC is operating as an SR-IOV multi-PF capable Root Complex Integrated Endpoint. As such, it contains multiple physical and virtual PCIe functions. ENETC also hosts PCIe functions for other related Ethernet functions, such as the IEEE 1588/1722, TSN Ethernet switch and MDIO. The PCIe layer allows a PCIe device driver to discover and configure the device.
ENETC connects to the Root Complex Event Collector to convey power management and error messages. It supports generation of MSI-X messages representing functional interrupts towards the system.
In LS1028 Reference Manual, I didn't find any description mentioned that ENETC can work with INTx, I will confirm with the hardware AE team, will provide more feedback later.
In addition, you could refer to the attached enetc Linux Kernel driver for your development, please refer to enetc.c for details.
Thanks,
Yiping