Loading Documentation/devicetree/bindings/platform/msm/ipa.txt 0 → 100644 +227 −0 Original line number Diff line number Diff line Qualcomm technologies inc. Internet Packet Accelerator Internet Packet Accelerator (IPA) is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. Required properties: IPA node: - compatible : "qcom,ipa" - reg: Specifies the base physical addresses and the sizes of the IPA registers. - reg-names: "ipa-base" - string to identify the IPA CORE base registers. "bam-base" - string to identify the IPA BAM base registers. "a2-bam-base" - string to identify the A2 BAM base registers. - interrupts: Specifies the interrupt associated with IPA. - interrupt-names: "ipa-irq" - string to identify the IPA core interrupt. "bam-irq" - string to identify the IPA BAM interrupt. "a2-bam-irq" - string to identify the A2 BAM interrupt. - qcom,ipa-hw-ver: Specifies the IPA hardware version. - qcom,ipa-ram-mmap: An array of unsigned integers representing addresses and sizes which are used by the driver to access IPA RAM. Optional: - qcom,wan-rx-ring-size: size of WAN rx ring, default is 192 - qcom,lan-rx-ring-size: size of LAN rx ring, default is 192 - qcom,arm-smmu: SMMU is present and ARM SMMU driver is used - qcom,msm-smmu: SMMU is present and QSMMU driver is used - qcom,smmu-s1-bypass: Boolean context flag to set SMMU to S1 bypass - qcom,smmu-fast-map: Boolean context flag to set SMMU to fastpath mode - ipa_smmu_ap: AP general purpose SMMU device compatible "qcom,ipa-smmu-ap-cb" - ipa_smmu_wlan: WDI SMMU device compatible "qcom,ipa-smmu-wlan-cb" - ipa_smmu_uc: uc SMMU device compatible "qcom,ipa-smmu-uc-cb" - qcom,use-a2-service: determine if A2 service will be used - qcom,use-ipa-tethering-bridge: determine if tethering bridge will be used - qcom,use-ipa-bamdma-a2-bridge: determine if a2/ipa hw bridge will be used - qcom,ee: which EE is assigned to (non-secure) APPS from IPA-BAM POV. This is a number - qcom,ipa-hw-mode: IPA hardware mode - Normal, Virtual memory allocation, memory allocation over a PCIe bridge - qcom,msm-bus,name: String representing the client-name - qcom,msm-bus,num-cases: Total number of usecases - qcom,msm-bus,active-only: Boolean context flag for requests in active or dual (active & sleep) contex - qcom,msm-bus,num-paths: Total number of master-slave pairs - qcom,msm-bus,vectors-KBps: Arrays of unsigned integers representing: master-id, slave-id, arbitrated bandwidth in KBps, instantaneous bandwidth in KBps - qcom,ipa-bam-remote-mode: Boolean context flag to determine if ipa bam is in remote mode. - qcom,modem-cfg-emb-pipe-flt: Boolean context flag to determine if modem configures embedded pipe filtering rules - qcom,skip-uc-pipe-reset: Boolean context flag to indicate whether a pipe reset via the IPA uC is required - qcom,ipa-wdi2: Boolean context flag to indicate whether using wdi-2.0 or not - qcom,bandwidth-vote-for-ipa: Boolean context flag to indicate whether ipa clock voting is done by bandwidth voting via msm-bus-scale driver or not - qcom,use-64-bit-dma-mask: Boolean context flag to indicate whether using 64bit dma mask or not - qcom,use-dma-zone: Boolean context flag to indicate whether memory allocations controlled by IPA driver that do not specify a struct device * should use GFP_DMA to workaround IPA HW limitations - qcom,use-rg10-limitation-mitigation: Boolean context flag to activate the mitigation to register group 10 AP access limitation - qcom,do-not-use-ch-gsi-20: Boolean context flag to activate software workaround for IPA limitation to not use GSI physical channel 20 - qcom,tethered-flow-control: Boolean context flag to indicate whether apps based flow control is needed for tethered call. - qcom,rx-polling-sleep-ms: Receive Polling Timeout in millisecond, default is 1 millisecond. - qcom,ipa-polling-iteration: IPA Polling Iteration Count,default is 40. - qcom,ipa-tz-unlock-reg: Register start addresses and ranges which need to be unlocked by TZ. IPA pipe sub nodes (A2 static pipes configurations): -label: two labels are supported, a2-to-ipa and ipa-to-a2 which supply static configuration for A2-IPA connection. -qcom,src-bam-physical-address: The physical address of the source BAM -qcom,ipa-bam-mem-type:The memory type: 0(Pipe memory), 1(Private memory), 2(System memory) -qcom,src-bam-pipe-index: Source pipe index -qcom,dst-bam-physical-address: The physical address of the destination BAM -qcom,dst-bam-pipe-index: Destination pipe index -qcom,data-fifo-offset: Data fifo base offset -qcom,data-fifo-size: Data fifo size (bytes) -qcom,descriptor-fifo-offset: Descriptor fifo base offset -qcom,descriptor-fifo-size: Descriptor fifo size (bytes) Optional properties: -qcom,ipa-pipe-mem: Specifies the base physical address and the size of the IPA pipe memory region. Pipe memory is a feature which may be supported by the target (HW platform). The Driver support using pipe memory instead of system memory. In case this property will not appear in the IPA DTS entry, the driver will use system memory. - clocks: This property shall provide a list of entries each of which contains a phandle to clock controller device and a macro that is the clock's name in hardware.This should be "clock_rpm" as clock controller phandle and "clk_ipa_clk" as macro for "iface_clk" - clock-names: This property shall contain the clock input names used by driver in same order as the clocks property.This should be "iface_clk" IPA SMMU sub nodes -compatible: "qcom,ipa-smmu-ap-cb" - represents the AP context bank. -compatible: "qcom,ipa-smmu-wlan-cb" - represents IPA WLAN context bank. -compatible: "qcom,ipa-smmu-uc-cb" - represents IPA uC context bank (for uC offload scenarios). - iommus : the phandle and stream IDs for the SMMU used by this root - qcom,iova-mapping: specifies the start address and size of iova space. - qcom,additional-mapping: specifies any addtional mapping needed for this context bank. The format is <iova pa size> IPA SMP2P sub nodes -compatible: "qcom,smp2pgpio-map-ipa-1-out" - represents the out gpio from ipa driver to modem. -compatible: "qcom,smp2pgpio-map-ipa-1-in" - represents the in gpio to ipa driver from modem. -gpios: Binding to the gpio defined in XXX-smp2p.dtsi Example: qcom,ipa@fd4c0000 { compatible = "qcom,ipa"; reg = <0xfd4c0000 0x26000>, <0xfd4c4000 0x14818>; <0xfc834000 0x7000>; reg-names = "ipa-base", "bam-base"; "a2-bam-base"; interrupts = <0 252 0>, <0 253 0>; <0 29 1>; interrupt-names = "ipa-irq", "bam-irq"; "a2-bam-irq"; qcom,ipa-hw-ver = <1>; clocks = <&clock_rpm clk_ipa_clk>; clock-names = "iface_clk"; qcom,msm-bus,name = "ipa"; qcom,msm-bus,num-cases = <3>; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = <90 512 0 0>, <90 585 0 0>, /* No vote */ <90 512 100000 800000>, <90 585 100000 800000>, /* SVS */ <90 512 100000 1200000>, <90 585 100000 1200000>; /* PERF */ qcom,bus-vector-names = "MIN", "SVS", "PERF"; qcom,pipe1 { label = "a2-to-ipa"; qcom,src-bam-physical-address = <0xfc834000>; qcom,ipa-bam-mem-type = <0>; qcom,src-bam-pipe-index = <1>; qcom,dst-bam-physical-address = <0xfd4c0000>; qcom,dst-bam-pipe-index = <6>; qcom,data-fifo-offset = <0x1000>; qcom,data-fifo-size = <0xd00>; qcom,descriptor-fifo-offset = <0x1d00>; qcom,descriptor-fifo-size = <0x300>; }; qcom,pipe2 { label = "ipa-to-a2"; qcom,src-bam-physical-address = <0xfd4c0000>; qcom,ipa-bam-mem-type = <0>; qcom,src-bam-pipe-index = <7>; qcom,dst-bam-physical-address = <0xfc834000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x00>; qcom,data-fifo-size = <0xd00>; qcom,descriptor-fifo-offset = <0xd00>; qcom,descriptor-fifo-size = <0x300>; }; /* smp2p gpio information */ qcom,smp2pgpio_map_ipa_1_out { compatible = "qcom,smp2pgpio-map-ipa-1-out"; gpios = <&smp2pgpio_ipa_1_out 0 0>; }; qcom,smp2pgpio_map_ipa_1_in { compatible = "qcom,smp2pgpio-map-ipa-1-in"; gpios = <&smp2pgpio_ipa_1_in 0 0>; }; ipa_smmu_ap: ipa_smmu_ap { compatible = "qcom,ipa-smmu-ap-cb"; iommus = <&apps_smmu 0x720>; qcom,iova-mapping = <0x20000000 0x40000000>; qcom,additional-mapping = /* modem tables in IMEM */ <0x146bd000 0x146bd000 0x2000>; }; ipa_smmu_wlan: ipa_smmu_wlan { compatible = "qcom,ipa-smmu-wlan-cb"; iommus = <&apps_smmu 0x721>; qcom,additional-mapping = /* ipa-uc ram */ <0x1e60000 0x1e60000 0x80000>; }; ipa_smmu_uc: ipa_smmu_uc { compatible = "qcom,ipa-smmu-uc-cb"; iommus = <&apps_smmu 0x722>; qcom,iova-mapping = <0x40000000 0x20000000>; }; }; Documentation/devicetree/bindings/platform/msm/msm_gsi.txt 0 → 100644 +15 −0 Original line number Diff line number Diff line * Qualcomm Technologies, Inc. GSI driver module GSI is a HW accelerator that supports Generic SW Interfaces (GSI) which are peripheral specific (IPA in this case). GSI translates SW transfer elements (TRE) into TLV transactions which are then processed by the peripheral. This Driver configures and communicates with GSI HW. Required properties: - compatible: Must be "qcom,msm_gsi" Example: qcom,msm-gsi { compatible = "qcom,msm_gsi"; } Documentation/devicetree/bindings/platform/msm/rmnet_ipa.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line * Qualcomm Technologies, Inc. RmNet IPA driver module This module enables embedded data calls using IPA HW. Required properties: - compatible: Must be "qcom,rmnet-ipa" Optional: - qcom,rmnet-ipa-ssr: determine if modem SSR is supported - qcom,ipa-loaduC: indicate that ipa uC should be loaded - qcom,ipa-advertise-sg-support: determine how to respond to a query regarding scatter-gather capability - qcom,ipa-napi-enable: Boolean context flag to indicate whether to enable napi framework or not - qcom,wan-rx-desc-size: size of WAN rx desc fifo ring, default is 256 Example: qcom,rmnet-ipa { compatible = "qcom,rmnet-ipa"; qcom,wan-rx-desc-size = <256>; } Documentation/devicetree/bindings/platform/msm/rmnet_ipa3.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line * Qualcomm Technologies, Inc. RmNet IPA driver module This module enables embedded data calls using IPA v3 HW. Required properties: - compatible: Must be "qcom,rmnet-ipa3" Optional: - qcom,rmnet-ipa-ssr: determine if modem SSR is supported - qcom,ipa-loaduC: indicate that ipa uC should be loaded - qcom,ipa-advertise-sg-support: determine how to respond to a query regarding scatter-gather capability - qcom,ipa-napi-enable: Boolean context flag to indicate whether to enable napi framework or not - qcom,wan-rx-desc-size: size of WAN rx desc fifo ring, default is 256 Example: qcom,rmnet-ipa3 { compatible = "qcom,rmnet-ipa3"; qcom,wan-rx-desc-size = <256>; } drivers/platform/msm/Kconfig +84 −0 Original line number Diff line number Diff line Loading @@ -54,4 +54,88 @@ config USB_BAM USB BAM driver was added to supports SPS Peripheral-to-Peripheral transfers between the USB and other peripheral. config IPA tristate "IPA support" depends on SPS && NET help This driver supports the Internet Packet Accelerator (IPA) core. IPA is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. The driver support client connection and configuration for the IPA core. Kernel and user-space processes can call the IPA driver to configure IPA core. config RMNET_IPA tristate "IPA RMNET WWAN Network Device" depends on IPA && MSM_QMI_INTERFACE help This WWAN Network Driver implements network stack class device. It supports Embedded data transfer from A7 to Q6. Configures IPA HW for RmNet Data Driver and also exchange of QMI messages between A7 and Q6 IPA-driver. config GSI bool "GSI support" help This driver provides the transport needed to talk to the IPA core. It replaces the BAM transport used previously. The GSI connects to a peripheral component via uniform TLV interface, and allows it to interface with other peripherals and CPUs over various types of interfaces such as MHI, xDCI, xHCI, GPI, WDI, Ethernet, etc. config IPA3 tristate "IPA3 support" select GSI depends on NET help This driver supports the Internet Packet Accelerator (IPA3) core. IPA is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. The driver support client connection and configuration for the IPA core. Kernel and user-space processes can call the IPA driver to configure IPA core. config RMNET_IPA3 tristate "IPA3 RMNET WWAN Network Device" depends on IPA3 && MSM_QMI_INTERFACE help This WWAN Network Driver implements network stack class device. It supports Embedded data transfer from A7 to Q6. Configures IPA HW for RmNet Data Driver and also exchange of QMI messages between A7 and Q6 IPA-driver. config ECM_IPA tristate "STD ECM LAN Driver support" depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the STD ECM protocol. This Network interface is aimed to allow data path go through IPA core while using STD ECM protocol. config RNDIS_IPA tristate "RNDIS_IPA Network Interface Driver support" depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the RNDIS protocol. This Network interface is aimed to allow data path go through IPA core while using RNDIS protocol. config IPA_UT tristate "IPA Unit-Test Framework and Test Suites" depends on IPA3 && DEBUG_FS help This Module implements IPA in-kernel test framework. The framework supports defining and running tests, grouped into suites according to the sub-unit of the IPA being tested. The user interface to run and control the tests is debugfs file system. endmenu Loading
Documentation/devicetree/bindings/platform/msm/ipa.txt 0 → 100644 +227 −0 Original line number Diff line number Diff line Qualcomm technologies inc. Internet Packet Accelerator Internet Packet Accelerator (IPA) is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. Required properties: IPA node: - compatible : "qcom,ipa" - reg: Specifies the base physical addresses and the sizes of the IPA registers. - reg-names: "ipa-base" - string to identify the IPA CORE base registers. "bam-base" - string to identify the IPA BAM base registers. "a2-bam-base" - string to identify the A2 BAM base registers. - interrupts: Specifies the interrupt associated with IPA. - interrupt-names: "ipa-irq" - string to identify the IPA core interrupt. "bam-irq" - string to identify the IPA BAM interrupt. "a2-bam-irq" - string to identify the A2 BAM interrupt. - qcom,ipa-hw-ver: Specifies the IPA hardware version. - qcom,ipa-ram-mmap: An array of unsigned integers representing addresses and sizes which are used by the driver to access IPA RAM. Optional: - qcom,wan-rx-ring-size: size of WAN rx ring, default is 192 - qcom,lan-rx-ring-size: size of LAN rx ring, default is 192 - qcom,arm-smmu: SMMU is present and ARM SMMU driver is used - qcom,msm-smmu: SMMU is present and QSMMU driver is used - qcom,smmu-s1-bypass: Boolean context flag to set SMMU to S1 bypass - qcom,smmu-fast-map: Boolean context flag to set SMMU to fastpath mode - ipa_smmu_ap: AP general purpose SMMU device compatible "qcom,ipa-smmu-ap-cb" - ipa_smmu_wlan: WDI SMMU device compatible "qcom,ipa-smmu-wlan-cb" - ipa_smmu_uc: uc SMMU device compatible "qcom,ipa-smmu-uc-cb" - qcom,use-a2-service: determine if A2 service will be used - qcom,use-ipa-tethering-bridge: determine if tethering bridge will be used - qcom,use-ipa-bamdma-a2-bridge: determine if a2/ipa hw bridge will be used - qcom,ee: which EE is assigned to (non-secure) APPS from IPA-BAM POV. This is a number - qcom,ipa-hw-mode: IPA hardware mode - Normal, Virtual memory allocation, memory allocation over a PCIe bridge - qcom,msm-bus,name: String representing the client-name - qcom,msm-bus,num-cases: Total number of usecases - qcom,msm-bus,active-only: Boolean context flag for requests in active or dual (active & sleep) contex - qcom,msm-bus,num-paths: Total number of master-slave pairs - qcom,msm-bus,vectors-KBps: Arrays of unsigned integers representing: master-id, slave-id, arbitrated bandwidth in KBps, instantaneous bandwidth in KBps - qcom,ipa-bam-remote-mode: Boolean context flag to determine if ipa bam is in remote mode. - qcom,modem-cfg-emb-pipe-flt: Boolean context flag to determine if modem configures embedded pipe filtering rules - qcom,skip-uc-pipe-reset: Boolean context flag to indicate whether a pipe reset via the IPA uC is required - qcom,ipa-wdi2: Boolean context flag to indicate whether using wdi-2.0 or not - qcom,bandwidth-vote-for-ipa: Boolean context flag to indicate whether ipa clock voting is done by bandwidth voting via msm-bus-scale driver or not - qcom,use-64-bit-dma-mask: Boolean context flag to indicate whether using 64bit dma mask or not - qcom,use-dma-zone: Boolean context flag to indicate whether memory allocations controlled by IPA driver that do not specify a struct device * should use GFP_DMA to workaround IPA HW limitations - qcom,use-rg10-limitation-mitigation: Boolean context flag to activate the mitigation to register group 10 AP access limitation - qcom,do-not-use-ch-gsi-20: Boolean context flag to activate software workaround for IPA limitation to not use GSI physical channel 20 - qcom,tethered-flow-control: Boolean context flag to indicate whether apps based flow control is needed for tethered call. - qcom,rx-polling-sleep-ms: Receive Polling Timeout in millisecond, default is 1 millisecond. - qcom,ipa-polling-iteration: IPA Polling Iteration Count,default is 40. - qcom,ipa-tz-unlock-reg: Register start addresses and ranges which need to be unlocked by TZ. IPA pipe sub nodes (A2 static pipes configurations): -label: two labels are supported, a2-to-ipa and ipa-to-a2 which supply static configuration for A2-IPA connection. -qcom,src-bam-physical-address: The physical address of the source BAM -qcom,ipa-bam-mem-type:The memory type: 0(Pipe memory), 1(Private memory), 2(System memory) -qcom,src-bam-pipe-index: Source pipe index -qcom,dst-bam-physical-address: The physical address of the destination BAM -qcom,dst-bam-pipe-index: Destination pipe index -qcom,data-fifo-offset: Data fifo base offset -qcom,data-fifo-size: Data fifo size (bytes) -qcom,descriptor-fifo-offset: Descriptor fifo base offset -qcom,descriptor-fifo-size: Descriptor fifo size (bytes) Optional properties: -qcom,ipa-pipe-mem: Specifies the base physical address and the size of the IPA pipe memory region. Pipe memory is a feature which may be supported by the target (HW platform). The Driver support using pipe memory instead of system memory. In case this property will not appear in the IPA DTS entry, the driver will use system memory. - clocks: This property shall provide a list of entries each of which contains a phandle to clock controller device and a macro that is the clock's name in hardware.This should be "clock_rpm" as clock controller phandle and "clk_ipa_clk" as macro for "iface_clk" - clock-names: This property shall contain the clock input names used by driver in same order as the clocks property.This should be "iface_clk" IPA SMMU sub nodes -compatible: "qcom,ipa-smmu-ap-cb" - represents the AP context bank. -compatible: "qcom,ipa-smmu-wlan-cb" - represents IPA WLAN context bank. -compatible: "qcom,ipa-smmu-uc-cb" - represents IPA uC context bank (for uC offload scenarios). - iommus : the phandle and stream IDs for the SMMU used by this root - qcom,iova-mapping: specifies the start address and size of iova space. - qcom,additional-mapping: specifies any addtional mapping needed for this context bank. The format is <iova pa size> IPA SMP2P sub nodes -compatible: "qcom,smp2pgpio-map-ipa-1-out" - represents the out gpio from ipa driver to modem. -compatible: "qcom,smp2pgpio-map-ipa-1-in" - represents the in gpio to ipa driver from modem. -gpios: Binding to the gpio defined in XXX-smp2p.dtsi Example: qcom,ipa@fd4c0000 { compatible = "qcom,ipa"; reg = <0xfd4c0000 0x26000>, <0xfd4c4000 0x14818>; <0xfc834000 0x7000>; reg-names = "ipa-base", "bam-base"; "a2-bam-base"; interrupts = <0 252 0>, <0 253 0>; <0 29 1>; interrupt-names = "ipa-irq", "bam-irq"; "a2-bam-irq"; qcom,ipa-hw-ver = <1>; clocks = <&clock_rpm clk_ipa_clk>; clock-names = "iface_clk"; qcom,msm-bus,name = "ipa"; qcom,msm-bus,num-cases = <3>; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = <90 512 0 0>, <90 585 0 0>, /* No vote */ <90 512 100000 800000>, <90 585 100000 800000>, /* SVS */ <90 512 100000 1200000>, <90 585 100000 1200000>; /* PERF */ qcom,bus-vector-names = "MIN", "SVS", "PERF"; qcom,pipe1 { label = "a2-to-ipa"; qcom,src-bam-physical-address = <0xfc834000>; qcom,ipa-bam-mem-type = <0>; qcom,src-bam-pipe-index = <1>; qcom,dst-bam-physical-address = <0xfd4c0000>; qcom,dst-bam-pipe-index = <6>; qcom,data-fifo-offset = <0x1000>; qcom,data-fifo-size = <0xd00>; qcom,descriptor-fifo-offset = <0x1d00>; qcom,descriptor-fifo-size = <0x300>; }; qcom,pipe2 { label = "ipa-to-a2"; qcom,src-bam-physical-address = <0xfd4c0000>; qcom,ipa-bam-mem-type = <0>; qcom,src-bam-pipe-index = <7>; qcom,dst-bam-physical-address = <0xfc834000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x00>; qcom,data-fifo-size = <0xd00>; qcom,descriptor-fifo-offset = <0xd00>; qcom,descriptor-fifo-size = <0x300>; }; /* smp2p gpio information */ qcom,smp2pgpio_map_ipa_1_out { compatible = "qcom,smp2pgpio-map-ipa-1-out"; gpios = <&smp2pgpio_ipa_1_out 0 0>; }; qcom,smp2pgpio_map_ipa_1_in { compatible = "qcom,smp2pgpio-map-ipa-1-in"; gpios = <&smp2pgpio_ipa_1_in 0 0>; }; ipa_smmu_ap: ipa_smmu_ap { compatible = "qcom,ipa-smmu-ap-cb"; iommus = <&apps_smmu 0x720>; qcom,iova-mapping = <0x20000000 0x40000000>; qcom,additional-mapping = /* modem tables in IMEM */ <0x146bd000 0x146bd000 0x2000>; }; ipa_smmu_wlan: ipa_smmu_wlan { compatible = "qcom,ipa-smmu-wlan-cb"; iommus = <&apps_smmu 0x721>; qcom,additional-mapping = /* ipa-uc ram */ <0x1e60000 0x1e60000 0x80000>; }; ipa_smmu_uc: ipa_smmu_uc { compatible = "qcom,ipa-smmu-uc-cb"; iommus = <&apps_smmu 0x722>; qcom,iova-mapping = <0x40000000 0x20000000>; }; };
Documentation/devicetree/bindings/platform/msm/msm_gsi.txt 0 → 100644 +15 −0 Original line number Diff line number Diff line * Qualcomm Technologies, Inc. GSI driver module GSI is a HW accelerator that supports Generic SW Interfaces (GSI) which are peripheral specific (IPA in this case). GSI translates SW transfer elements (TRE) into TLV transactions which are then processed by the peripheral. This Driver configures and communicates with GSI HW. Required properties: - compatible: Must be "qcom,msm_gsi" Example: qcom,msm-gsi { compatible = "qcom,msm_gsi"; }
Documentation/devicetree/bindings/platform/msm/rmnet_ipa.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line * Qualcomm Technologies, Inc. RmNet IPA driver module This module enables embedded data calls using IPA HW. Required properties: - compatible: Must be "qcom,rmnet-ipa" Optional: - qcom,rmnet-ipa-ssr: determine if modem SSR is supported - qcom,ipa-loaduC: indicate that ipa uC should be loaded - qcom,ipa-advertise-sg-support: determine how to respond to a query regarding scatter-gather capability - qcom,ipa-napi-enable: Boolean context flag to indicate whether to enable napi framework or not - qcom,wan-rx-desc-size: size of WAN rx desc fifo ring, default is 256 Example: qcom,rmnet-ipa { compatible = "qcom,rmnet-ipa"; qcom,wan-rx-desc-size = <256>; }
Documentation/devicetree/bindings/platform/msm/rmnet_ipa3.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line * Qualcomm Technologies, Inc. RmNet IPA driver module This module enables embedded data calls using IPA v3 HW. Required properties: - compatible: Must be "qcom,rmnet-ipa3" Optional: - qcom,rmnet-ipa-ssr: determine if modem SSR is supported - qcom,ipa-loaduC: indicate that ipa uC should be loaded - qcom,ipa-advertise-sg-support: determine how to respond to a query regarding scatter-gather capability - qcom,ipa-napi-enable: Boolean context flag to indicate whether to enable napi framework or not - qcom,wan-rx-desc-size: size of WAN rx desc fifo ring, default is 256 Example: qcom,rmnet-ipa3 { compatible = "qcom,rmnet-ipa3"; qcom,wan-rx-desc-size = <256>; }
drivers/platform/msm/Kconfig +84 −0 Original line number Diff line number Diff line Loading @@ -54,4 +54,88 @@ config USB_BAM USB BAM driver was added to supports SPS Peripheral-to-Peripheral transfers between the USB and other peripheral. config IPA tristate "IPA support" depends on SPS && NET help This driver supports the Internet Packet Accelerator (IPA) core. IPA is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. The driver support client connection and configuration for the IPA core. Kernel and user-space processes can call the IPA driver to configure IPA core. config RMNET_IPA tristate "IPA RMNET WWAN Network Device" depends on IPA && MSM_QMI_INTERFACE help This WWAN Network Driver implements network stack class device. It supports Embedded data transfer from A7 to Q6. Configures IPA HW for RmNet Data Driver and also exchange of QMI messages between A7 and Q6 IPA-driver. config GSI bool "GSI support" help This driver provides the transport needed to talk to the IPA core. It replaces the BAM transport used previously. The GSI connects to a peripheral component via uniform TLV interface, and allows it to interface with other peripherals and CPUs over various types of interfaces such as MHI, xDCI, xHCI, GPI, WDI, Ethernet, etc. config IPA3 tristate "IPA3 support" select GSI depends on NET help This driver supports the Internet Packet Accelerator (IPA3) core. IPA is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. The driver support client connection and configuration for the IPA core. Kernel and user-space processes can call the IPA driver to configure IPA core. config RMNET_IPA3 tristate "IPA3 RMNET WWAN Network Device" depends on IPA3 && MSM_QMI_INTERFACE help This WWAN Network Driver implements network stack class device. It supports Embedded data transfer from A7 to Q6. Configures IPA HW for RmNet Data Driver and also exchange of QMI messages between A7 and Q6 IPA-driver. config ECM_IPA tristate "STD ECM LAN Driver support" depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the STD ECM protocol. This Network interface is aimed to allow data path go through IPA core while using STD ECM protocol. config RNDIS_IPA tristate "RNDIS_IPA Network Interface Driver support" depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the RNDIS protocol. This Network interface is aimed to allow data path go through IPA core while using RNDIS protocol. config IPA_UT tristate "IPA Unit-Test Framework and Test Suites" depends on IPA3 && DEBUG_FS help This Module implements IPA in-kernel test framework. The framework supports defining and running tests, grouped into suites according to the sub-unit of the IPA being tested. The user interface to run and control the tests is debugfs file system. endmenu