在openwrt下对华为WA633无线AP的千兆网卡驱动进行支持
来源:互联网 发布:windows 10 mobile安卓 编辑:程序博客网 时间:2024/05/22 06:14
1.下面是这款AP的全裸图,AP的无线网卡采用了AR9223,PHY采用了博通的BCM5461,主控CPU位octeon+ 500,射频功放采用的是RF5602方案。由于这款CPU并不常见,我至今未在网上找到它的datasheet,导致我们在玩这款AP的过程中遇到了很多困难。
2.Openwrt源码采用的最新的,B...b,内核是Linux-3.10.49
3.在内核里我们可以看到有支持BCM5461的驱动,但是我们选上了之后并不能直接用,因为这块板子上的PHY与CPU间通过MIDO和RGMI两种总线方式(可能描述有误,记不清了)进行数据交互。但是主控芯片上有多个同意的接口供外设使用,但是这块板子上只用了一个,我们必须去确定用的是那个口,然后在内核加载过程中做相应处理。
4.修改内核源码,创建一个新的patch,将所有的改动保存在patch中。
Index: linux-3.10.49/arch/mips/cavium-octeon/executive/cvmx-helper-board.c===================================================================--- linux-3.10.49.orig/arch/mips/cavium-octeon/executive/cvmx-helper-board.c2015-11-18 01:28:11.483050038 +0800+++ linux-3.10.49/arch/mips/cavium-octeon/executive/cvmx-helper-board.c2015-11-18 01:28:11.559050042 +0800@@ -93,13 +93,8 @@ case CVMX_BOARD_TYPE_CN3010_EVB_HS5: case CVMX_BOARD_TYPE_CN3005_EVB_HS5: case CVMX_BOARD_TYPE_CN3020_EVB_HS5:-/*- * Port 0 is WAN connected to a PHY, Port 1 is GMII- * connected to a switch- */+/* Port 0 is WAN connected to a PHY:BCM5461(For WA633) */ if (ipd_port == 0)-return 4;-else if (ipd_port == 1) return 9; else return -1;@@ -244,11 +239,8 @@ case CVMX_BOARD_TYPE_CN3005_EVB_HS5: case CVMX_BOARD_TYPE_CN3020_EVB_HS5: /* Port 1 on these boards is always Gigabit */-if (ipd_port == 1) {-result.s.link_up = 1;-result.s.full_duplex = 1;-result.s.speed = 1000;-return result;+if (ipd_port == 0) {+is_broadcom_phy = 1; } /* Fall through to the generic code below */ break;Index: linux-3.10.49/arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.c===================================================================--- linux-3.10.49.orig/arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.c2014-07-18 06:58:15.000000000 +0800+++ linux-3.10.49/arch/mips/cavium-octeon/executive/cvmx-helper-rgmii.c2015-11-18 01:28:11.559050042 +0800@@ -72,7 +72,7 @@ * On these chips "type" says we're in * GMII/MII mode. This limits us to 2 ports */-num_ports = 2;+num_ports = 1; } else { cvmx_dprintf("ERROR: Unsupported Octeon model in %s\n", __func__);@@ -84,7 +84,7 @@ } else if (OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN30XX) || OCTEON_IS_MODEL(OCTEON_CN50XX)) {-num_ports = 3;+num_ports = 1; } else { cvmx_dprintf("ERROR: Unsupported Octeon model in %s\n", __func__);Index: linux-3.10.49/arch/mips/pci/pci-octeon.c===================================================================--- linux-3.10.49.orig/arch/mips/pci/pci-octeon.c2014-07-18 06:58:15.000000000 +0800+++ linux-3.10.49/arch/mips/pci/pci-octeon.c2015-11-20 11:24:27.655865439 +0800@@ -211,7 +211,7 @@ case CVMX_BOARD_TYPE_EBH3100: case CVMX_BOARD_TYPE_CN3010_EVB_HS5: case CVMX_BOARD_TYPE_CN3005_EVB_HS5:-return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA";+return "AAAAAAAAAAAAAABAAAAAAAAAAAAAAABA"; case CVMX_BOARD_TYPE_BBGW_REF: return "AABCD"; case CVMX_BOARD_TYPE_THUNDER:
5.需要改的几个地方,改天贴图,还有内核里必选的几个配置项。
1 0
- 在openwrt下对华为WA633无线AP的千兆网卡驱动进行支持
- OpenWrt下TL-WN722N无线网卡驱动安装
- 如何在Linux下写无线网卡的驱动
- 如何在Linux下写无线网卡的驱动
- 命令驱动无线网卡链接AP上网
- windows下使用无线网卡做AP
- WIN7下开启无线网卡软AP
- Linux下使用无线网卡搭建AP
- 【转】在Debian 5.0 Lenny下为无线网卡添加WPA-PSK支持
- linux下无线网卡驱动的解决
- Linux下无线网卡驱动的解决
- linux下无线网卡驱动的解决
- 为OpenWrt安装TL-WN722N无线网卡
- linux 下千兆网卡驱动开发 网络设备驱动的层次结构 (三)
- 利用无线网卡在XP系统上设置手机可用的无线AP热点的方法
- CentOS6.4下为TP-WN725N USB无线网卡驱动
- 无线网卡的AP和STA模式
- IMX6添加PCI接口的AR9580无线网卡驱动支持
- javaday22-IO序列流
- 用RxJava写的一个Android的小Demo
- windows 系统下CMD命令大全
- 数据结构 — 归并排序
- 零碎知识总结——学渣修行路
- 在openwrt下对华为WA633无线AP的千兆网卡驱动进行支持
- UVa-10129 单词
- 文章标题
- 柔性数组成员
- 文本框空白按钮不可按
- Arduino - 串口操作函数与示例代码大全
- IO(输入流)
- 欢迎使用CSDN-markdown编辑器
- linux基础命令