Planning to add a PCIe(not in USB protocol) device

Bjørn Mork bjorn at mork.no
Tue Dec 11 12:41:05 UTC 2018


I believe we would be best off with a "fake" USB MBIM device, like the
Windows driver creates.  This would ensure immediate support in
ModemManager, as well as other Linux userspace implementations (oFono,
umbim etc).

There is already an NCM gadget in the kernel.  Creating a basic MBIM
gadget should not be too hard (maybe it already exists out of mainline
somewhere?).. And this would be reusable code for any PCIe or shared
memory or SPI or whatever modem.  The dummy_hcd driver will then let you
use this gadget on the local host without any USB device controller
hardware, creating a new USB bus with this MBIM device.

But a layered implemetation does makes most sense IMHO. So having a PCIe
driver exposing the modem data and control channels directly would be a
good start.  The MBIM gadget hook API into this driver should be as
generic as possible.

Lots of strong opinions and little code.  That's all I've got to offer,
I'm afraid :-)  As usual, the decision is in the hands of the
implementor. 



Bjørn

王道之 <lingzangwuhen at gmail.com> writes:

>      Yes, as Ben said the PCIe on L860 seems going backward. But on the
> laptop side, when the laptop use L850,  the latpop would use PCIe when the
> OS is Windows, but the laptop would use MBIM when the OS is Unix. In this
> reason, the laptop vendor want to use PCIe no matter the OS is.
>      And once the PCIe is supported, other labtop vendors basic on Intle
> platform would come to use it. You know the Intel FAE do not support the
> MBIM device problem. Personally, I think MBIM is better, but consider the
> users of Intel platform, the support for PCIe seems important too.
>      Any advice about the plan or develop are welcome.
>
> Cheers!
> Quincy Chen
>
> Ben Chan <benchan at chromium.org> 于2018年12月11日周二 下午1:16写道:
>
>> I wonder why MBIM-enumerated-over-PCIe (L860) is preferred over
>> MBIM-over-USB3 (L850). Perhaps the theoretical achievable data rate
>> over PCIe?
>>
>> Despite the MBIM enumeration, having a vendor specific host interface
>> does feel going backward as Bjørn said.  IMHO, the industry should
>> really move towards standard interface protocols like MBIM instead of
>> legacy protocols like AT, or worse, proprietary protocols.  On
>> Chromium OS, we don't even install the fibocom plugin but simply rely
>> on the generic plugin with MBIM to support L850 :)
>>
>> - Ben
>>
>> On Mon, Dec 10, 2018 at 6:25 PM 王道之 <lingzangwuhen at gmail.com> wrote:
>> >
>> > Hey Aleksander
>> >      The device is basic on the Intel 7560 chip, or L860 in fibocom that
>> difference the L850 with PCIe in MBIM protocol.
>> >      I am not sure there need a PCIe lib or yet, as now I can use lspci
>> found the device, and there is a net port with the drive offered by Intel.
>> And the drive would be open source later time.
>> >      You add the device L850 of Fibocom in the ModemManager early time,
>> and now the Fibocom want to add the L860 by itself, and I work for Fibocom.
>> So I am going to add a PCIe L860 in the ModemManager.
>> >     As I planned, I am going to add the L860 in the plugin, then init
>> the device ports(this may need a lib?), then init the modem with AT commd.
>> >      About the L860 there is a net port, divided in several ports by
>> VLAN id. Here is some description:
>> >      The host driver maps each channel exposed by the modem to an
>> interface for application to exercise communication over such channels. For
>> network devices, each IP session  (0  to 7) is mapped to INM network
>> interfaces (INM0 to INM7). Thus "/PCIE/IOSM/IPS/0" will be mapped to INM0,
>> "/PCIE/IOSM/IPS/1" will be mapped to "/PCIE/IOSM/IPS/1" and so on.
>> Similarly, "/PCIE/IOSM/CTRL/0" is mapped to RPC device,
>> "/PCIE/IOSM/TRACE/0" to trace, "/PCIE/IOSM/CTRL/0" and "/PCIE/IOSM/CTRL/2"
>> to IAT devices and so  on. These  are  internals to PCIe communication and
>> are transparent  to user-space application.
>> >
>> > The IOSM host driver exposes the interfaces as a VLAN devices (except
>> for  flashing  device). Following table lists the interfaces  exposed  by
>> the host driver. Please  note  that,  not every interface is supported by
>> the modem. The host driver allows opening of  an  interface only if it is
>> supported on the modem side.
>> >
>> >
>> > Cheers!
>> >
>> > Quincy Chen
>> >
>> >
>> > Aleksander Morgado <aleksander at aleksander.es> 于2018年12月10日周一 下午4:54写道:
>> >>
>> >> Hey,
>> >>
>> >> >     I am going to add a PCIe not in USB protocol modem device in the
>> Modemmanager. In order to better integrate into the current architecture of
>> Modemmanager, any development advice?
>> >> >     As I planned, I am going to add the new PCIe device in the
>> plugins folder,but I am not sure where to add the PCIe lib just like the
>> libqmi or the libmbim.
>> >> >     By the way, I found the comment  Nozomi, Card-Bus PCI (not USB)
>> at the device "Option GT 3G+ EMEA" in the supported devices list , Is  that
>> mean the device use the PCI protocol? If in that way, I can refer to when I
>> develop.
>> >> >
>> >>
>> >> Is this PCIe library a new one that you're writing?
>> >> What device is this?
>> >>
>> >> Cheers!
>> >>
>> >> --
>> >> Aleksander
>> >> https://aleksander.es
>> >
>> > _______________________________________________
>> > ModemManager-devel mailing list
>> > ModemManager-devel at lists.freedesktop.org
>> > https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
>>


More information about the ModemManager-devel mailing list