Atheros QCA8337交换芯片驱动开发

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

QCA switch芯片配置说明
移植OpenWRT下的ART驱动程序
(20191011)QCA9563(同K2T)石像鬼openwrt 固件
有art相关移植到openwrt
atheros无线驱动之:系统初始化
Atheros开源驱动发展历史的介绍
高通atheros ar93xx AP软件体系结构
AR/QCA/MTK Breed,功能强大的多线程 Bootloader
Marvell 98DX51xx / 98DX81xx 系列交换芯片 内部初始化
Linux 4.0+内核对硬件交换模块的支持(HW Switch Offload)
芯片手册下载
了解与MDIO/MDC接口相关的22号、45号条款
QCA9886降低功耗指令
极具战略性的核武器—网件夜鹰X10 R9000评测
高通AP152_QCA9563+QCA9882+QCA8337N官方HDK开发资料(datasheet,bom,原理图,pcb等)
Marvell 交换芯片DSA(分布式交换架构)功能介绍

QCA8337

芯片结构图,
245
支持如下几种配置方式,有一个方式比较有意思,有一个独立的PHY,相当于一个AR8033,
246
247
Mode的切换通过下面3个pad寄存器来实现,

#define QCA8K_REG_PORT0_PAD_CTRL			0x004
#define QCA8K_REG_PORT5_PAD_CTRL			0x008
#define QCA8K_REG_PORT6_PAD_CTRL			0x00c

寄存器访问通过MDIO来实现,和普通的phy有区别,IEEE802.3 clause22对应的格式为,
244
qca8337的mdio时序如下图,PHYADR是5bit,在写高地址时,PHYADR是0x18即24,在读写数据的时候PHYADR是(0x10 | A[8:6]),
243
协议栈可利用atheros header控制包转发,The QCA8337N support proprietary Qualcomm Atheros header that can indicate the packet information and allow CPU to control the packet forwarding. The header can be 2 bytes or 4 bytes with additional 2 bytes identifier. For 2 bytes header, each packet sent out or received must include header. For 4 bytes header, header can exist only in the management frame and there is no header in the normal frame. The Atheros header also supports read/write register through the CPU port.

u-boot

先ping,初始化网卡寄存器,然后可以读写寄存器。

zynq-uboot> ping 192.168.6.6
Gem.e000b000: link UP, phyaddr: 1, speed: 100.
Using Gem.e000b000 device
host 192.168.6.6 is alive
zynq-uboot> qca8337read 0
0x0: 0x1302

linux驱动

我用的petalinux2015.2.1,内核版本3.19,没有qca8337的驱动,所以需要全新移植,

//*\net\dsa\dsa.c line869 添加对qca8337的支持
static const struct of_device_id dsa_of_match_table[] = {
	{ .compatible = "brcm,bcm7445-switch-v4.0" },
	{ .compatible = "marvell,dsa", },
	{ .compatible = "qca,qca8337" },
	{}
};
MODULE_DEVICE_TABLE(of, dsa_of_match_table);

设备树参考marvell的,其中reg字段标识了switch的mdio地址,这在QCA8337里不使用,参考上面所述,PHYADR在读写数据时是变化的,直接在QCA8337的驱动里写死了,但是如果访问的switch寄存器地址在0~31范围内,可以认为switch的mdio地址是16。QCA8337不能允许在一个mdio总线上挂多个芯片,但是marvell的是可以的。参考内核文档qca8k.txt,每一个port节点都需要指定phy-handle,因为QCA8K switches do not have a N:N mapping of port and PHY id,所以,无法使用slave MII bus created by DSA

dsa@0 {
    compatible = "marvell,dsa";
    #address-cells = <2>;
    #size-cells = <0>;
    interrupts = <10>;
    dsa,ethernet = <&ethernet0>;
    dsa,mii-bus = <&mii_bus0>;
    switch@0 { 
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
        port@0 { 
            reg = <0>;
            label = "lan1";
            phy-handle = <&phy0>; 
        };
        port@1 { 
            reg = <1>;
            label = "lan2"; 
        };
        port@5 { 
            reg = <5>;
            label = "cpu"; 
        };
        switch0uplink: port@6 { 
            reg = <6>;
            label = "dsa";
            link = <&switch1uplink>; 
        }; 
    };
    switch@1 { 
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <17 1>;	/* MDIO address 17, switch 1 in tree */
        switch1uplink: port@0 { 
            reg = <0>;
            label = "dsa";
            link = <&switch0uplink>; 
        }; 
    }; 
}; 
QCA8337N是一个高度集成的七端口千兆位以太网交换机,具有非阻塞交换机结构,一个具有2048个MAC地址的高性能查找单元,以及四个流量等级的QualityofS。服务(QoS)引擎QCA8337N交换机具有支持各种网络应用程序的灵活性。QCA8337N是为高端网关和xpon中的成本敏感的交换机应用而设计的。 QCA8337N集成了高速交换系统的所有功能,包括数据包缓冲区、PHY收发器、媒体访问控制器、地址管理和非阻塞交换结构。一个55 nm的CMOS器件。它符合10 BASE-Te和1000 BASE-T规范,包括mac控制、暂停帧和自动协商子部分,提供了与所有行业标准以太网、快速et兼容的功能。 QCA8337N器件包含5个全双工10BASE-Te/100BASE-Tx/1000BASE-T收发信机,10BASE-Te/100BASE-Tx可以在半双工运行,每一个都执行所有物理层Interfa。它们在第5类无屏蔽双绞线(UTP)电缆上执行10BASE-Te以太网的所有物理层接口功能,在第5类UTP电缆上执行快速/千兆以太网的所有物理层接口功能。 其余两个端口具有标准的GMII/RGMII/MII/SerDes接口,允许在PON/xDSL/电缆/Wi-Fi/光纤路由器中连接到主机CPU。在QCA8337N上的媒体访问控制器也是。upport巨帧,通常用于与服务器的高性能连接,因为它们为更高的效率提供了较小的链路开销百分比。 spi或EEProm接口提供片内802.1pQoS和/或DiffServ/TOS的轻松编程。这允许将交换机流量指定为不同级别的优先级或服务-例如,语音IP电话应用程序的通信量,多媒体应用程序的视频通信量,或电子邮件应用程序的数据流量。 可以通过SPI端口设置多达4K的虚拟局域网(VLAN),以分离网络上的不同用户或组。ACL特性可以减少基于第一层到第四层信息的VLAN/QoS/DSCP/正向映射和重映射的CPU工作量。PPPoE头加/移除可以提高视频质量和卸载CPU负载。绿色节电技术可以提高无链路或空闲状态下的能效 Qualcomm XSPantM QCA9563是一个高度集成和功能丰富的IEEE 802.11n 3x3 2.4 GHz系统芯片(SoC),适用于先进的WLAN平台。 它包括一个MIPS 74Kc处理器,一个SGMII接口和一个外部存储器接口,用于串行Flash,DDR 1或DDR 2,UART,PCIe,两个USB 2.0主机控制器,内置的MAC/PHY和GPO可用于LED控件或其他通用接口配置。 QCA9563支持高达216 Mbps的20 MHz和450 Mbps的40 MHz的802.11n操作和802.11b/g的数据速率。其他特性包括最大似然(ML)译码、低密度奇偶。 QCA9563支持从NOR闪存启动 Qualcomm Atheros QCA9882 是一种用于5GHz 802.11ac或2.4/5 GHz 802.11n WLAN应用的高度集成的无线局域网(WLAN)片上系统(SoC)。QCA9882集成了板载CPU,用于WLAN物理层(PHY)和RF的低级设置,以便将主机处理器卸载到其他任务。支持两种空间的高性能2x2MIMO无线应用的流要求最高的健壮链路质量和最大的吞吐量和范围。QCA9882集成了多协议mac、phy、模拟数字/数字模拟转换器(ADC/DAC)、2x2mimo无线电收发器和pci Express接口,用于低功耗的cmos器件。 QCA9882实现了半双工OFDM、CCK和DSSS PHY,支持802.11ac 80MHz信道操作的867Mbps.它支持20MHz的802.11n和40MHz的300Mbps的802.11n,以及IEEE 802.11a/b/g数据速率。其他特性包括最大似然(ML)译码、低密度奇偶校验(Ldpc)、最大比合并(Mrc)、空时分组码(Stbc)。),以及片上一次可编程(OTP)存储器,以消除外部闪存的需要,并进一步降低外部组件计数和BOM成本。QCA 9882支持802.11无线MA。C协议、802.11i安全、Rx/TX过滤、错误恢复和802.11e服务质量(QoS) QCA 9882支持多达两个同时的业务流,将两个TX和两个Rx链集成在一起,以实现高吞吐量和扩展覆盖。Tx链结合PHY同相(I)和正交(Q)sigNAL,将它们转换到所需的频率,并将RF信号驱动到多个天线。RX链使用集成的体系结构。该频率合成器支持1MHz步骤,以匹配IEEE 802.11a/b/g/n规范定义的频率。QCA9882支持使用PCIe接口与主机之间的帧数据传输。提供中断生成和报告、电源保存和状态报告。其他外部接口包括EEPROM和GPIO。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值