am335x system upgrade kernel ec20 simcom7600ce

该文档详细介绍了4G硬件设计,支持Quectel EC20 4G模块和Simcom 7600 CE 4G模块。主要内容包括功能需求(如EC20 QMI驱动和Simcom 7600 CE NDIS驱动)、硬件概述、功能描述(涉及USB-CDC的QMI和NDIS介绍)以及内核移植步骤。针对EC20,提供了内核中qmi_wwan.c文件的修改示例。
摘要由CSDN通过智能技术生成

1      Scope of Document

This document describes 4G hardware design, support quectel ec20 4G module/ Simcom 7600 CE 4G module

2      Requiremen

2.1     Function Requirement

support ec20 qmi driver/ simcom 7600 ce ndis driver

2.2     Performance Requirement

NA

3      Hardware Overview

 

                  Figure 1 4g interface block diagram

4      Functional Description

4.1     Functional Block Diagram

PCIE-USB connect to 4G module. Port4 connect usb hub, usb hub connect to CPU usb port0

                    

4.2      USB-CDC

4.2.1 Overview QMI

              Qualcomm MSM Interface(QMI) is a messaging format used to communicate

       between software components in the modem and other peripheral subsystems.

       This document proposes an architecture to introduce the QMI messaging

       into the kernel. This document proposes introducing a QMI encode/decode

       library to enable QMI message marshaling and an interface library to enable

       sending and receiving QMI messages through MSM IPC Router.

 

https://android.googlesource.com/kernel/msm/+/android-7.1.0_r0.2/Documentation/arm/msm/msm_qmi.txt

4.2.2 Overview NDIS

 

It was jointly developed by Microsoft and 3Com Corporation and is mostly used in Microsoft Windows. However, the open-source NDISwrapper and Project Evil driver wrapper projects allow many NDIS-compliant NICs to be used with Linux, FreeBSD and NetBSD. magnussoft ZETA, a derivative of BeOS, supports a number of NDIS drivers.

 

The NDIS forms the logical link control (LLC) sublayer, which is the upper sublayer of the OSI data link layer (layer 2). Therefore, the NDIS acts as the interface between the media access control (MAC) sublayer, which is the lower sublayer of the data link layer, and the network layer (layer 3).

 

The NDIS is a library of functions often referred to as a "wrapper" that hides the underlying complexity of the NIC hardware and serves as a standard interface for level 3 network protocol drivers and hardware level MAC drivers. Another common LLC is the Open Data-Link Interface (ODI).

 

The NDIS versions supported by various Windows versions are as follows:

 

NDIS 2.0: MS-DOS, Windows for Workgroups 3.1, OS/2

NDIS 3.0: Windows for Workgroups 3.11

NDIS 3.1: Windows 95

NDIS 4.0: Windows 95 OSR2, NT 4.0, Windows CE 3.0

NDIS 5.0: Windows 98, 98 SE, Me, 2000

NDIS 5.1: Windows XP, Server 2003, Windows CE 4.x, 5.0, 6.0[1]

NDIS 5.2: Windows Server 2003 SP2

NDIS 6.0: Windows Vista

NDIS 6.1: Windows Vista SP1, Server 2008, Windows Embedded Compact 7,[2] Windows Embedded Compact 2013

NDIS 6.20: Windows 7, Server 2008 R2

NDIS 6.30: Windows 8, Windows Server 2012

NDIS 6.40: Windows 8.1, Windows Server 2012 R2

NDIS 6.50: Windows 10, version 1507[3]

NDIS 6.60: Windows Server 2016 and Windows 10, version 1607[3]

NDIS 6.70: Windows 10, version 1703[3]

NDIS 6.80: Windows 10, version 1709[3]

NDIS 6.81: Windows 10, version 1803[3]

NDIS 6.82: Windows 10, version 1809[3]

The traffic accepted by the NIC is controlled by an NDIS miniport Driver while various protocols, such as TCP/IP, are implemented by NDIS Protocol Drivers. A single miniport may be associated with one or more protocols. This means that traffic coming into the miniport may be received in parallel by several protocol drivers. For example, Winpcap adds a second protocol driver on the selected miniport in order to capture incoming packets. Furthermore, it is possible to simulate several virtual NICs by implementing virtual miniport drivers that send and receive traffic from a single physical NIC. One example of virtual miniport driver usage is to add virtual NICs, each with a different Virtual LAN. Because implementations cannot assume that other drivers received the same buffers, one must treat the incoming buffers as read only and a driver that changes the packet content must allocate its own buffers.

 

A miniport is a type of hardware driver, part of the Windows Driver Model. These are USB, Audio, SCSI and network card adapters. They should usually be source and binary compatible between Windows 98 and Windows 2000 and are hardware specific but control access to the hardware through a specific bus class driver. [4]

 

Another driver type is NDIS Intermediate Driver. Intermediate drivers sit in-between the MAC and IP layers and can control all traffic being accepted by the NIC. In practice, intermediate drivers implement both miniport and protocol interfaces. The miniport driver and protocol driver actually communicate with the corresponding miniport and protocol interfaces that reside in the intermediate driver. This design enables adding several chained intermediate drivers between the miniport and protocol drivers. Therefore, driver vendors cannot assume that the interface that they send traffic to is implemented by the last driver in the chain. In order to write applications using NDIS one can use samples that accompany Microsoft's Windows Driver Kit (WDK). The "PassThru" sample is a good starting point for intermediate drivers as it implements all the necessary details required in this driver type, but just passes the traffic through to the next driver in the chain.

 

https://en.wikipedia.org/wiki/Network_Driver_Interface_Specification

5      Porting

5.1     Uboot porting

NA

5.2     Kernel porting

 for ec20

Index: trunk/linux-4.14.40/drivers/net/usb/qmi_wwan.c
================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式实操

希望博文有助于您,您不必加班。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值