EP-N8530S USB WIFI 驱动移植 - zengjf

时间:2024-02-25 09:00:29

EP-N8530S USB WIFI 驱动移植

/***********************************************************************
 *                  EP-N8530S USB WIFI 驱动移植
 * 说明:
 *     测试一下之前给树莓派买的WIFI模块移植在其他的ARM系统上情况怎么样。
 *
 *                                 2017-7-13 深圳 龙华樟坑村 曾剑锋
 **********************************************************************/


一、驱动下载:
    http://www.edup.cn/support/xiazaizhongxin/ep-n8530sjinse-qudong-2/

二、驱动编译:
    1. 阅读README:README_STA_usb文档;
    2. 修改Makefile:
        ...
        PLATFORM = NXP_TV550
        ...
        ifeq ($(PLATFORM),NXP_TV550) 
        # LINUX_SRC = /data/tv550/kernel/linux-2.6.28.9
        # LINUX_SRC_MODULE = /data/tv550/kernel/linux-2.6.28.9/drivers/net/wireless
        # CROSS_COMPILE = /opt/embeddedalley/nxp_tv550/bin/mipsel-linux-
        
        LINUX_SRC = /home/Qt/kernel/linuxQt_kernel
        CROSS_COMPILE = arm-fsl-linux-gnueabi-
        endif
        ...
    3. 编译输出信息:
        Qt@zengjf:~/tools/linux$ make
        make -C tools
        make[1]: Entering directory `/home/Qt/tools/linux/tools\'
        gcc -g bin2h.c -o bin2h
        make[1]: Leaving directory `/home/Qt/tools/linux/tools\'
        /home/Qt/tools/linux/tools/bin2h
        cp -f os/linux/Makefile.6 /home/Qt/tools/linux/os/linux/Makefile
        make -C /home/Qt/kernel/linuxQt_kernel SUBDIRS=/home/Qt/tools/linux/os/linux modules
        make[1]: Entering directory `/home/Qt/kernel/linuxQt_kernel\'
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/rt_profile.o
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_profile.c: In function \'announce_802_3_packet\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_profile.c:331:16: warning: unused variable \'pAd\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/assoc.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/auth.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/auth_rsp.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/sync.o
        /home/Qt/tools/linux/os/linux/../../sta/sync.c: In function \'PeerBeacon\':
        /home/Qt/tools/linux/os/linux/../../sta/sync.c:2181:12: warning: passing argument 8 of \'StaAddMacTableEntry\' from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/include/rtmp.h:7892:9: note: expected \'struct IE_LISTS *\' but argument is of type \'struct BCN_IE_LIST *\'
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/sanity.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/rtmp_data.o
        /home/Qt/tools/linux/os/linux/../../sta/rtmp_data.c: In function \'STAHandleRxDataFrame\':
        /home/Qt/tools/linux/os/linux/../../sta/rtmp_data.c:523:4: warning: passing argument 2 of \'MacTableLookup\' from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/include/rtmp.h:8429:18: note: expected \'UCHAR *\' but argument is of type \'UCHAR (*)[6]\'
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/connect.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/wpa.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.o
        /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.c: In function \'RTMPIoctlRF\':
        /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.c:5306:7: warning: format \'%X\' expects argument of type \'unsigned int\', but argument 5 has type \'LONG\' [-Wformat]
        /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.c:5359:3: warning: passing argument 2 of \'RtmpDrvAllRFPrint\' from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/include/rt_os_util.h:668:6: note: expected \'UINT32 *\' but argument is of type \'PSTRING\'
        /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.c:5209:22: warning: unused variable \'rf_bank\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.c: In function \'RtmpIoctl_rt_ioctl_siwgenie\':
        /home/Qt/tools/linux/os/linux/../../sta/sta_cfg.c:7610:13: warning: assignment from incompatible pointer type [enabled by default]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/crypt_md5.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/crypt_sha2.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/crypt_hmac.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/crypt_aes.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/crypt_arc4.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/mlme.o
        /home/Qt/tools/linux/os/linux/../../common/mlme.c: In function \'AsicRxAntEvalTimeout\':
        /home/Qt/tools/linux/os/linux/../../common/mlme.c:5201:45: warning: unused variable \'rssi_diff\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_wep.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/action.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_data.o
        /home/Qt/tools/linux/os/linux/../../common/cmm_data.c: In function \'CmdRspEventCallbackHandle\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_data.c:2509:8: warning: unused variable \'Ret\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/cmm_data.c: In function \'StopDmaTx\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_data.c:2684:8: warning: unused variable \'IdleNums\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/cmm_data.c:2682:20: warning: unused variable \'UsbCfg\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtmp_init.o
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c: In function \'NICInitAsicFromEEPROM\':
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c:981:9: warning: unused variable \'i\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c: In function \'NICInitializeAdapter\':
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c:1292:22: warning: unused variable \'GloCfg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c: In function \'NICInitializeAsic\':
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c:1367:11: warning: unused variable \'KeyIdx\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/rtmp_init.c:1656:1: warning: the frame size of 1040 bytes is larger than 1024 bytes [-Wframe-larger-than=]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtmp_init_inf.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_tkip.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_aes.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_sync.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/eeprom.o
        /home/Qt/tools/linux/os/linux/../../common/eeprom.c: In function \'RtmpChipOpsEepromHook\':
        /home/Qt/tools/linux/os/linux/../../common/eeprom.c:34:9: warning: unused variable \'e2p_csr\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_sanity.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_info.o
        /home/Qt/tools/linux/os/linux/../../common/cmm_info.c: In function \'Set_DebugFunc_Proc\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_info.c:1084:2: warning: format \'%x\' expects argument of type \'unsigned int\', but argument 2 has type \'const char *\' [-Wformat]
        /home/Qt/tools/linux/os/linux/../../common/cmm_info.c:1084:2: warning: too many arguments for format [-Wformat-extra-args]
        /home/Qt/tools/linux/os/linux/../../common/cmm_info.c: In function \'set_rf\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_info.c:5730:3: warning: format \'%x\' expects argument of type \'unsigned int *\', but argument 5 has type \'UCHAR *\' [-Wformat]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_cfg.o
        /home/Qt/tools/linux/os/linux/../../common/cmm_cfg.c: In function \'wmode_valid_and_correct\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_cfg.c:279:8: warning: unused variable \'mode\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/cmm_cfg.c: At top level:
        /home/Qt/tools/linux/os/linux/../../common/cmm_cfg.c:264:16: warning: \'wmode_valid\' defined but not used [-Wunused-function]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_wpa.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_radar.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/spectrum.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtmp_timer.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rt_channel.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_profile.o
        /home/Qt/tools/linux/os/linux/../../common/cmm_profile.c: In function \'rtmp_read_multest_from_file\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_profile.c:2671:23: warning: unused variable \'pWdsEntry\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_asic.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/scan.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_cmd.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/uapsd.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/ps.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../rate_ctrl/ra_ctrl.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../rate_ctrl/alg_legacy.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../rate_ctrl/alg_ags.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../chips/rtmp_chip.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/txpower.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../mac/rtmp_mac.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../mgmt/mgmt_hw.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../mgmt/mgmt_entrytb.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../phy/rtmp_phy.o
        /home/Qt/tools/linux/os/linux/../../phy/rtmp_phy.c: In function \'NICInitBBP\':
        /home/Qt/tools/linux/os/linux/../../phy/rtmp_phy.c:61:8: warning: unused variable \'R0\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../phy/rlt_phy.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../phy/rlt_rf.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/ba_action.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../mgmt/mgmt_ht.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rt_os_util.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/sta_ioctl.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.o
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c: In function \'RtmpOsUsDelay\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c:179:8: warning: unused variable \'i\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c: In function \'RtmpDrvAllRFPrint\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c:2052:4: warning: passing argument 2 of \'file_w->f_op->write\' from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c:2052:4: note: expected \'const char *\' but argument is of type \'UINT32 *\'
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c:2037:22: warning: unused variable \'macValue\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c:2037:9: warning: unused variable \'macAddr\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c: In function \'RtmpOSIRQRelease\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_linux.c:2173:21: warning: unused variable \'net_dev\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/rt_main_dev.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.o
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c: In function \'RTMPAllocTxRxRingMemory\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c:562:31: warning: initialization from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c: In function \'RT28XXDMAEnable\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c:1371:20: warning: unused variable \'UsbCfg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c:1370:22: warning: unused variable \'GloCfg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c: In function \'RT28xxUsbAsicRadioOn\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_mac_usb.c:1931:22: warning: unused variable \'GloCfg\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/cmm_data_usb.o
        /home/Qt/tools/linux/os/linux/../../common/cmm_data_usb.c: In function \'ComposeNullFrame\':
        /home/Qt/tools/linux/os/linux/../../common/cmm_data_usb.c:279:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
        /home/Qt/tools/linux/os/linux/../../common/cmm_data_usb.c: At top level:
        /home/Qt/tools/linux/os/linux/../../common/cmm_data_usb.c:222:13: warning: \'rlt_usb_update_txinfo\' defined but not used [-Wunused-function]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtusb_io.o
        /home/Qt/tools/linux/os/linux/../../common/rtusb_io.c: In function \'RTUSBWriteEEPROM\':
        /home/Qt/tools/linux/os/linux/../../common/rtusb_io.c:682:9: warning: unused variable \'Value\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtusb_data.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtusb_bulk.o
        /home/Qt/tools/linux/os/linux/../../common/rtusb_bulk.c: In function \'RTUSBCancelPendingBulkOutIRP\':
        /home/Qt/tools/linux/os/linux/../../common/rtusb_bulk.c:1678:15: warning: assignment from incompatible pointer type [enabled by default]
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb.o
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb.c: In function \'cmd_rsp_event_tasklet\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb.c:537:22: warning: assignment from incompatible pointer type [enabled by default]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/ee_prom.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/ee_efuse.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.o
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c: In function \'USBLoadIVB\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:68:9: warning: unused variable \'Temp\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:67:9: warning: unused variable \'Index\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:66:9: warning: unused variable \'Value\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:65:9: warning: unused variable \'i\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c: In function \'USBLoadFirmwareToAndes\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:105:19: warning: unused variable \'MCtrl\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:104:20: warning: unused variable \'UsbCfg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c: In function \'MCUCtrlExit\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:591:8: warning: unused variable \'Ret\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c: In function \'GetCmdRspNum\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:634:16: warning: unused variable \'IrqFlags\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c: In function \'AndesLedOP\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_and.c:2071:9: warning: unused variable \'Value\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.o
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c: In function \'MCUBurstWrite\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c:32:2: warning: passing argument 3 of \'RTUSBMultiWrite_nBytes\' from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/include/rtmp.h:7553:10: note: expected \'PUCHAR\' but argument is of type \'UINT32 *\'
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c: In function \'ChipOpsMCUHook\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c:64:25: warning: assignment from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c:71:25: warning: assignment from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c:72:27: warning: assignment from incompatible pointer type [enabled by default]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c: In function \'MCURandomWrite\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c:41:1: warning: control reaches end of non-void function [-Wreturn-type]
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c: In function \'MCUBurstWrite\':
        /home/Qt/tools/linux/os/linux/../../mcu/rtmp_mcu.c:33:1: warning: control reaches end of non-void function [-Wreturn-type]
          CC [M]  /home/Qt/tools/linux/os/linux/../../mcu/rtmp_M51.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rt_rf.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../chips/mt7601.o
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_INIT_CAL\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:888:8: warning: unused variable \'Temperature\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'NICInitMT7601RFRegisters\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1006:9: warning: unused variable \'IdReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'NICInitMT7601MacRegisters\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1044:9: warning: unused variable \'IdReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'NICInitMT7601BbpRegisters\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1086:6: warning: unused variable \'IdReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_ChipSwitchChannel\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1442:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1272:6: warning: unused variable \'IdReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601DisableTxRx\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1497:3: warning: \'return\' with no value, in function returning non-void [-Wreturn-type]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601UsbAsicRadioOff\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1725:9: warning: unused variable \'Value\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601UsbAsicRadioOn\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1790:16: warning: unused variable \'pChipOps\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1789:22: warning: unused variable \'GloCfg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_ReadChannelPwr\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:1905:10: warning: unused variable \'bUseDefault\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601AsicTemperatureCompensation\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2282:6: warning: unused variable \'IdReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_EnableTSSI\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2478:9: warning: unused variable \'ret\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2477:15: warning: unused variable \'BBPReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2477:8: warning: unused variable \'RFReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_InitDesiredTSSITable\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2611:16: warning: unused variable \'offset\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2611:9: warning: unused variable \'index\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_GetTssiCompensationParam\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2682:9: warning: unused variable \'ret\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2681:7: warning: unused variable \'count\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2675:8: warning: unused variable \'RFReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_AsicTxAlcGetAutoAgcOffset\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:2949:8: warning: unused variable \'BBPReg\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c: In function \'MT7601_Init\':
        /home/Qt/tools/linux/os/linux/../../chips/mt7601.c:3399:24: warning: assignment from incompatible pointer type [enabled by default]
          CC [M]  /home/Qt/tools/linux/os/linux/../../mac/ral_omac.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb_util.o
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb_util.c: In function \'rausb_autopm_put_interface\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb_util.c:120:7: warning: unused variable \'pm_usage_cnt\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb_util.c: In function \'rausb_autopm_get_interface\':
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb_util.c:151:7: warning: unused variable \'pm_usage_cnt\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../os/linux/rt_usb_util.c:157:1: warning: control reaches end of non-void function [-Wreturn-type]
          CC [M]  /home/Qt/tools/linux/os/linux/../../os/linux/usb_main_dev.o
        /home/Qt/tools/linux/os/linux/../../os/linux/usb_main_dev.c: In function \'rt2870_suspend\':
        /home/Qt/tools/linux/os/linux/../../os/linux/usb_main_dev.c:394:21: warning: unused variable \'net_dev\' [-Wunused-variable]
        /home/Qt/tools/linux/os/linux/../../os/linux/usb_main_dev.c: In function \'rt2870_resume\':
        /home/Qt/tools/linux/os/linux/../../os/linux/usb_main_dev.c:450:21: warning: unused variable \'net_dev\' [-Wunused-variable]
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/rtusb_dev_id.o
          CC [M]  /home/Qt/tools/linux/os/linux/../../common/frq_cal.o
        /home/Qt/tools/linux/os/linux/../../common/frq_cal.c: In function \'InitFrequencyCalibration\':
        /home/Qt/tools/linux/os/linux/../../common/frq_cal.c:88:3: warning: format \'%x\' expects argument of type \'unsigned int\', but argument 4 has type \'ULONG\' [-Wformat]
        /home/Qt/tools/linux/os/linux/../../common/frq_cal.c: In function \'FrequencyCalibrationMode\':
        /home/Qt/tools/linux/os/linux/../../common/frq_cal.c:130:9: warning: unused variable \'PreRFValue\' [-Wunused-variable]
          LD [M]  /home/Qt/tools/linux/os/linux/mt7601Usta.o
          Building modules, stage 2.
          MODPOST 1 modules
          CC      /home/Qt/tools/linux/os/linux/mt7601Usta.mod.o
          LD [M]  /home/Qt/tools/linux/os/linux/mt7601Usta.ko
        make[1]: Leaving directory `/home/Qt/kernel/linuxQt_kernel\'
        cp -f /home/Qt/tools/linux/os/linux/mt7601Usta.ko /tftpboot 2>/dev/null || :

三、测试驱动:
    1. 拷贝驱动配置:cp RT2870STA.dat  /etc/Wireless/RT2870STA/RT2870STA.dat
    2. 查看当前网卡信息并插入驱动:
        root@freescale ~$ ifconfig -a
        eth0      Link encap:Ethernet  HWaddr 1E:ED:19:27:1A:B3
                  inet addr:192.168.12.10  Bcast:192.168.12.255  Mask:255.255.255.0
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
        
        lo        Link encap:Local Loopback
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:101 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:101 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0
                  RX bytes:388039 (378.9 KiB)  TX bytes:388039 (378.9 KiB)
        
        root@freescale ~$ insmod mt7601Usta.ko
        rtusb init rt2870 --->
        usbcore: registered new interface driver rt2870
    
    3. 插入USB模块输出信息:
        root@freescale ~$ usb 2-1.3: new high speed USB device number 3 using fsl-ehci
        usb 2-1.3: New USB device found, idVendor=148f, idProduct=7601
        usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
        ===>rt2870_probe()!
        --> RTMPAllocAdapterBlock
        
        
        === pAd = c0b3c000, size = 843016 ===
        
        --> RTMPAllocTxRxRingMemory
        <-- RTMPAllocTxRxRingMemory, Status=0
        <-- RTMPAllocAdapterBlock, Status=0
        NumEndpoints=8
        BULK IN MaxPacketSize = 512
        EP address = 0x84
        BULK IN MaxPacketSize = 512
        EP address = 0x85
        BULK OUT MaxPacketSize = 512
        EP address = 0x 8
        BULK OUT MaxPacketSize = 512
        EP address = 0x 4
        BULK OUT MaxPacketSize = 512
        EP address = 0x 5
        BULK OUT MaxPacketSize = 512
        EP address = 0x 6
        BULK OUT MaxPacketSize = 512
        EP address = 0x 7
        BULK OUT MaxPacketSize = 512
        EP address = 0x 9
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x8
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x4
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x5
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x6
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x7
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x9
        STA Driver version-3.0.0.3
        -->MT7601_Init():
        Chip specific bbpRegTbSize=0!
        Chip VCO calibration mode = 0!
        NVM is EFUSE
        Efuse Size=0x1d [Range:1e0-1fc]
        Endpoint(8) is for In-band Command
        Endpoint(4) is for WMM0 AC0
        Endpoint(5) is for WMM0 AC1
        Endpoint(6) is for WMM0 AC2
        Endpoint(7) is for WMM0 AC3
        Endpoint(9) is for WMM1 AC0
        Endpoint(84) is for Data-In
        Endpoint(85) is for Command Rsp
        Allocate a net device with private data size=0!
        Allocate net device ops success!
        The name of the new ra interface is ra0...
        RtmpOSNetDevAttach()--->
        <---RtmpOSNetDevAttach(), ret=0
        <===rt2870_probe()!
    
    4. 查看所生成的网卡节点:
        root@freescale ~$ ifconfig -a
        eth0      Link encap:Ethernet  HWaddr 1E:ED:19:27:1A:B3
                  inet addr:192.168.12.10  Bcast:192.168.12.255  Mask:255.255.255.0
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
        
        lo        Link encap:Local Loopback
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:119 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:119 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0
                  RX bytes:388975 (379.8 KiB)  TX bytes:388975 (379.8 KiB)
        
        ra0       Link encap:Ethernet  HWaddr 00:00:00:00:00:00
                  BROADCAST MULTICAST  MTU:1500  Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
        
        root@freescale ~$
    5. 配置测试:
        [zengjf@root ~]#  ls
        RT2870STA.dat      mt7601Usta.ko      rt_ioctl_giwrange
        [zengjf@root ~]#  insmod mt7601Usta.ko
        rtusb init rt2870 --->
        ===>rt2870_probe()!
        --> RTMPAllocAdapterBlock
        
        
        === pAd = c0b44000, size = 843016 ===
        
        --> RTMPAllocTxRxRingMemory
        <-- RTMPAllocTxRxRingMemory, Status=0
        <-- RTMPAllocAdapterBlock, Status=0
        NumEndpoints=8
        BULK IN MaxPacketSize = 512
        EP address = 0x84
        BULK IN MaxPacketSize = 512
        EP address = 0x85
        BULK OUT MaxPacketSize = 512
        EP address = 0x 8
        BULK OUT MaxPacketSize = 512
        EP address = 0x 4
        BULK OUT MaxPacketSize = 512
        EP address = 0x 5
        BULK OUT MaxPacketSize = 512
        EP address = 0x 6
        BULK OUT MaxPacketSize = 512
        EP address = 0x 7
        BULK OUT MaxPacketSize = 512
        EP address = 0x 9
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x8
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x4
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x5
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x6
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x7
        RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x9
        STA Driver version-3.0.0.3
        -->MT7601_Init():
        Chip specific bbpRegTbSize=0!
        Chip VCO calibration mode = 0!
        NVM is EFUSE
        Efuse Size=0x1d [Range:1e0-1fc]
        Endpoint(8) is for In-band Command
        Endpoint(4) is for WMM0 AC0
        Endpoint(5) is for WMM0 AC1
        Endpoint(6) is for WMM0 AC2
        Endpoint(7) is for WMM0 AC3
        Endpoint(9) is for WMM1 AC0
        Endpoint(84) is for Data-In
        Endpoint(85) is for Command Rsp
        Allocate a net device with private data size=0!
        Allocate net device ops success!
        The name of the new ra interface is ra0...
        RtmpOSNetDevAttach()--->
        <---RtmpOSNetDevAttach(), ret=0
        <===rt2870_probe()!
        usbcore: registered new interface driver rt2870
        [zengjf@root ~]#  ifconfig -a  
        eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 192.168.1.202  netmask 255.255.255.0  broadcast 192.168.1.255
                ether 70:b3:d5:10:6f:91  txqueuelen 1000  (Ethernet)
                RX packets 0  bytes 0 (0.0 B)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 0  bytes 0 (0.0 B)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
                inet 127.0.0.1  netmask 255.0.0.0
                loop  txqueuelen 0  (Local Loopback)
                RX packets 46  bytes 3677 (3.5 KiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 46  bytes 3677 (3.5 KiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        ra0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
                ether 00:00:00:00:00:00  txqueuelen 1000  (Ethernet)
                RX packets 0  bytes 0 (0.0 B)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 0  bytes 0 (0.0 B)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        [zengjf@root ~]#  ifconfig ra0 up
        WlanFunCtrl.word = 0xff200003
        MACVersion = 0x76010500
        Allocate 8192 memory for BA reordering
        MAC[Ver:Rev=0x76010500]
        USBLoadFirmwareToAndes
        --> NICInitRecv
        <-- NICInitRecv()
        --> NICInitTransmit
        MGMT Ring: total 32 entry allocated
        <-- NICInitTransmit(Status=0)
        --> MLME Initialize
        RTMP_TimerListAdd: add timer obj c0bc1b64!
        RTMPInitTimer: c0bc1b64
        RTMP_TimerListAdd: add timer obj c0bc1b94!
        RTMPInitTimer: c0bc1b94
        RTMP_TimerListAdd: add timer obj c0bc1bc4!
        RTMPInitTimer: c0bc1bc4
        RTMP_TimerListAdd: add timer obj c0bc1b34!
        RTMPInitTimer: c0bc1b34
        RTMP_TimerListAdd: add timer obj c0bc1aa4!
        RTMPInitTimer: c0bc1aa4
        RTMP_TimerListAdd: add timer obj c0bc1ad4!
        RTMPInitTimer: c0bc1ad4
        RTMP_TimerListAdd: add timer obj c0b56cdc!
        RTMPInitTimer: c0b56cdc
        RTMP_TimerListAdd: add timer obj c0b461a0!
        RTMPInitTimer: c0b461a0
        RTMP_TimerListAdd: add timer obj c0b461d4!
        RTMPInitTimer: c0b461d4
        RTMP_TimerListAdd: add timer obj c0b56d7c!
        RTMPInitTimer: c0b56d7c
        RTMP_TimerListAdd: add timer obj c0b56c7c!
        RTMPInitTimer: c0b56c7c
        RTMP_TimerListAdd: add timer obj c0b56d4c!
        RTMPInitTimer: c0b56d4c
        <-- MLME Initialize
        --> UserCfgInit
        --> UserCfgInit. BACapability = 0x3024040
        <-- UserCfgInit
        --> NICInitializeAdapter
        ==>  DMAIdle, GloCfg=0x40000050
        --> NICInitializeAsic
        NICInitializeAsic():MACVersion[Ver:Rev=0x76010500]
        < Beacon Information: >
                FlgIsSupSpecBcnBuf = FALSE
                BcnMaxHwNum = 16
                BcnMaxNum = 16
                BcnMaxHwSize = 0x2000
                WcidHwRsvNum = 127
                        BcnBase[0] = 0xc000, pAd->BeaconOffset[0]=0xc000
                        BcnBase[1] = 0xc200, pAd->BeaconOffset[1]=0xc200
                        BcnBase[2] = 0xc400, pAd->BeaconOffset[2]=0xc400
                        BcnBase[3] = 0xc600, pAd->BeaconOffset[3]=0xc600
                        BcnBase[4] = 0xc800, pAd->BeaconOffset[4]=0xc800
                        BcnBase[5] = 0xca00, pAd->BeaconOffset[5]=0xca00
                        BcnBase[6] = 0xcc00, pAd->BeaconOffset[6]=0xcc00
                        BcnBase[7] = 0xce00, pAd->BeaconOffset[7]=0xce00
                        BcnBase[8] = 0xd000, pAd->BeaconOffset[8]=0xd000
                        BcnBase[9] = 0xd200, pAd->BeaconOffset[9]=0xd200
                        BcnBase[10] = 0xd400, pAd->BeaconOffset[10]=0xd400
                        BcnBase[11] = 0xd600, pAd->BeaconOffset[11]=0xd600
                        BcnBase[12] = 0xd800, pAd->BeaconOffset[12]=0xd800
                        BcnBase[13] = 0xda00, pAd->BeaconOffset[13]=0xda00
                        BcnBase[14] = 0xdc00, pAd->BeaconOffset[14]=0xdc00
                        BcnBase[15] = 0xde00, pAd->BeaconOffset[15]=0xde00
        NICInitMT7601MacRegisters
        BBP version = 69
        NICInitMT7601BbpRegisters
        --->Disable TSF synchronization
        <-- NICInitializeAsic
        <-- NICInitializeAdapter
        CountryRegion=5
        CountryRegionABand=7
        CountryCode=
        RTMPSetProfileParameters::(SSID=11n-AP)
        RTMPSetProfileParameters::(NetworkType=1)
        Channel=0
        cfg_mode=9
        Old WirelessMode:B/G(0x6), New WirelessMode:B/G/gN(0xe)!
        wmode_band_equal(): Band Equal!
        RT_CfgSetWirelessMode(): Set WMODE=B/G/gN(0xe)
        PhyMode=14
        BeaconPeriod=100
        TxPower=100
        BGProtection=0
        TxPreamble=0
        RTSThreshold=2347
        FragThreshold=2346
        TxBurst=1
        PktAggregate=0
        WmmCapable=1
        AckPolicy[0]=0
        AckPolicy[1]=0
        AckPolicy[2]=0
        AckPolicy[3]=0
        IEEE80211H=0
        WirelessEvent=0
        RTMPSetProfileParameters::(AuthMode=0)
        RTMPSetProfileParameters::(EncrypType=1)
        DefaultKeyID(0~3)=0
        Key1Str is Invalid key length(0) or Type(0)
        Key2Str is Invalid key length(0) or Type(0)
        Key3Str is Invalid key length(0) or Type(0)
        Key4Str is Invalid key length(0) or Type(0)
        HT: MIMOPS Mode  = 3
        HT: BA Decline  = Disable
        HT: Auto BA  = Enable
        HT: RDG = Enable(+HTC)
        HT: Tx A-MSDU = Disable
        HT: MPDU Density = 4
        HT: BA Windw Size = 64
        HT: Guard Interval = 400
        HT: Operate Mode = Mixed Mode
        HT: Channel Width = 40 MHz
        HT: Ext Channel = BELOW
        HT: MCS = AUTO
        HT: STBC = 0
        HT: Disallow TKIP mode = ON
        PSMode=0
        MlmeSetPsmBit = 0
        AutoRoaming=0
        RoamThreshold=-70  dBm
        TGnWifiTest=0
        BeaconLostTime=400
        1. Phy Mode = 14
        2. Phy Mode = 14
        --> NICReadEEPROMParameters
        NVM is Efuse and its size =1d[1e0-1fc]
        eFuseGetFreeBlockCount, FirstFreeBlock= 0x1e0
        eFuseGetFreeBlockCount, LastFreeBlock= 0x1f2
        eFuseGetFreeBlockCount is 19
        NVM is Efuse and force to use EEPROM Buffer Mode=0
        Initialize MAC Address from E2PROM
        E2PROM MAC: =e8:4e:06:22:34:2f
        Use the MAC address what is assigned from EEPROM.
        Current MAC: =e8:4e:06:22:34:2f
        E2PROM: Version = 8, FAE release #0
        MT7601_ReadChannelPwr()--->
        MT7601_ReadChannelPwr: EEPROM 0xD0 = 0x24
        MT7601_ReadChannelPwr: TxPower[0].Power = 0x24, TxPower[1].Power = 0x24
        MT7601_ReadChannelPwr: TxPower[2].Power = 0x24, TxPower[3].Power = 0x24
        MT7601_ReadChannelPwr: TxPower[4].Power = 0x24, TxPower[5].Power = 0x24
        MT7601_ReadChannelPwr: TxPower[6].Power = 0x24, TxPower[7].Power = 0x24
        MT7601_ReadChannelPwr: TxPower[8].Power = 0x24, TxPower[9].Power = 0x24
        MT7601_ReadChannelPwr: TxPower[10].Power = 0x24, TxPower[11].Power = 0x24
        MT7601_ReadChannelPwr: TxPower[12].Power = 0x24, TxPower[13].Power = 0x24
        MT7601_AsicAntennaDefaultReset
        NICReadEEPROMParameters: RxPath = 1, TxPath = 1
        E2PROM: RF FreqOffset=0x55
        Txpower per Rate
        Gpwrdelta = 0, Apwrdelta = 0 .
        20MHz BW, 2.4G band-3f3f0404,  Adata = 3f3f0404,  Gdata = 3f3f0404
        20MHz BW, 2.4G band-3f3f0000,  Adata = 3f3f0000,  Gdata = 3f3f0000
        20MHz BW, 2.4G band-3f3f0000,  Adata = 3f3f0000,  Gdata = 3f3f0000
        20MHz BW, 2.4G band-3f3f0000,  Adata = 3f3f0000,  Gdata = 3f3f0000
        20MHz BW, 2.4G band-ffff0000,  Adata = ffff0000,  Gdata = ffff0000
        TXALC> bInternalTxALC = 1
        NICReadEEPROMParameters: pAd->Antenna.field.BoardType = 0, IS_MINI_CARD(pAd) = 1
        <-- NICReadEEPROMParameters
        3. Phy Mode = 14
        --> NICInitAsicFromEEPROM
        AntCfgInit: primary/secondary ant 0/1
        pAd->TemperatureRef25C = 0xfffffff6
        NICInitMT7601RFRegisters
        ==>MT7601_INIT_CAL
        Boot up temperature = 0x1
        tssi0_db_hvga = 5c5
        tssi0_db = 43f
        TssiDC0 = -1 (0xffffffff)
        TssiDC0_HVGA = -4 (0xffffffff)
        TSSI_DBOFFSET_HVGA = 186
        MT7601AsicTemperatureCompensation::Change to TEMPERATURE_MODE_HIGH
        <==MT7601_INIT_CAL
        NICInitAsicFromEEPROM: pAd->TxPowerCtrl.bInternalTxALC = 1
        Use Hw Radio Control Pin=0; if used Pin=0;
        NICInitAsicFromEEPROM: pAd->FreqCalibrationCtrl.bEnableFrequencyCalibration = 1
        TxPath = 1, RxPath = 1, RFIC=15
        <-- NICInitAsicFromEEPROM
        TSSI slope = 0x80, offset[0] = 0x0, offset[1] = 0x0, offset[2] = 0x0, TSSI_USE_H
        TSSI T0 Delta offset = 0
        Init MAC 13b4: 0xc9540029
        PAModeCCK[0] = -5734
        PAModeCCK[1] = -5734
        PAModeCCK[2] = -5734
        PAModeCCK[3] = -5734
        PAModeOFDM[0] = 8847
        PAModeOFDM[1] = 8847
        PAModeOFDM[2] = 8847
        PAModeOFDM[3] = 8847
        PAModeOFDM[4] = 0
        PAModeOFDM[5] = 0
        PAModeOFDM[6] = 0
        PAModeOFDM[7] = 0
        PAModeHT[0] = 8847
        PAModeHT[1] = 8847
        PAModeHT[2] = 8847
        PAModeHT[3] = 8847
        PAModeHT[4] = 0
        PAModeHT[5] = 0
        PAModeHT[6] = 0
        PAModeHT[7] = 0
        PAModeHT[8] = 8847
        PAModeHT[9] = 8847
        PAModeHT[10] = 8847
        PAModeHT[11] = 8847
        PAModeHT[12] = 0
        PAModeHT[13] = 0
        PAModeHT[14] = 0
        PAModeHT[15] = 0
        ---> InitFrequencyCalibration
        InitFrequencyCalibrationMode:Unknow mode = 3
        ---> StopFrequencyCalibration
        StopFrequencyCalibration: pAd->FreqCalibrationCtrl.AdaptiveFreqOffset = 0x55
        <--- StopFrequencyCalibration
        InitFrequencyCalibration: frequency offset in the EEPROM = 85(0x55)
        <--- InitFrequencyCalibration
        RTMPSetPhyMode : PhyMode=14, channel=0
        country code=5/7, RFIC=15, PHY mode=14, support 14 channels
        BuildChannel # 1 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 2 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 3 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 4 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 5 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 6 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 7 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 8 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 9 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 10 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 11 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 12 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 13 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         BuildChannel # 14 :: Pwr0 = 36, Pwr1 =0, Flags = 0
         RTMPSetPhyMode: channel is out of range, use first channel=1
        RTMPSetHT : HT_mode(0), ExtOffset(3), MCS(33), BW(1), STBC(0), SHORTGI(1)
        RTMPSetHT : RxBAWinLimit = 64
        RTMPSetHT : AMsduSize = 0, MimoPs = 3, MpduDensity = 4, MaxRAmpduFactor = 2
        EDCA [#0]: AIFSN CWmin CWmax  TXOP(us)  ACM
             AC_BE       3      4      6         0     0
             AC_BK       7      4     10         0     0
             AC_VI       1      3      4      3008     0
             AC_VO       1      2      3      1504     0
        RTMPSetIndividualHT : Desired MCS = 33
        MlmeUpdateHtTxRates()===>
         MlmeUpdateHtTxRates():<---.AMsduSize = 0
        TX: MCS[0] = ff (choose 7), BW = 1, ShortGI = 1, MODE = 2,
        MlmeUpdateHtTxRates():<===
        MCS Set = ff 00 00 00 01
        [zengjf@root ~]#  NDIS_STATUS_MEDIA_DISCONNECT Event B!
        RTUSBBulkReceive!
        <==== rt28xx_init, Status=0
        ==> RTMPEnableRxTx
        ==>  DMAIdle, GloCfg=0x40000050
        <== RTMPEnableRxTx
        0x1300 = 00064300
        RTMPDrvOpen(1):Check if PDMA is idle!
        ==>  DMAIdle, GloCfg=0x40000050
        Driver auto reconnect to last OID_802_11_SSID setting - 11n-AP, len - 6
        RTMPDrvOpen(2):Check if PDMA is idle!
        ==>  DMAIdle, GloCfg=0x40000050
        CntlOidSsidProc():CNTL - 0 BSS of 0 BSS match the desire (6)SSID - 11n-AP
        CNTL - All roaming failed, restore to channel 1, Total BSS[00]
        
        [zengjf@root ~]#  ifconfig -a
        eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 192.168.1.202  netmask 255.255.255.0  broadcast 192.168.1.255
                ether 70:b3:d5:10:6f:91  txqueuelen 1000  (Ethernet)
                RX packets 0  bytes 0 (0.0 B)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 0  bytes 0 (0.0 B)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
                inet 127.0.0.1  netmask 255.0.0.0
                loop  txqueuelen 0  (Local Loopback)
                RX packets 69  bytes 5510 (5.3 KiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 69  bytes 5510 (5.3 KiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        ra0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                ether e8:4e:06:22:34:2f  txqueuelen 1000  (Ethernet)
                RX packets 4218  bytes 856078 (836.0 KiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 0  bytes 0 (0.0 B)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        [zengjf@root ~]#  iwlist ra0 scan
        ===>rt_ioctl_giwrange
        SCANNING, suspend MSDU transmission ...
        SYNC - BBP R4 to 20MHz.l
        MT7601_ChipSwitchChannel: SwitchChannel#1(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#2(RF=15, 1T)
        ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 751
        ra0       Scan completed :
                  Cell 01 - Address: F4:83:CD:FF:46:01
                            Protocol:11b/g/n BW40
                            ESSID:"zengjf-AP"
                            Mode:Managed
                            Frequency:2.412 GHz (Channel 1)
                            Quality=100/100  Signal level=-44 dBm  Noise level=-92 dBm
                            Encryption key:on
                            Bit Rates:300 Mb/s
                            IE: WPA Version 1
                                Group Cipher : TKIP
                                Pairwise Ciphers (2) : TKIP CCMP
                                Authentication Suites (1) : PSK
        MT7601_ChipSwitchChannel: SwitchChannel#3(RF=15, 1T)
                            IE: IEEE 802.11i/WPA2 Version 1
                                Group Cipher : TKIP
                                Pairwise Ciphers (2) : TKIP CCMP
                                Authentication Suites (1) : PSK
                  Cell 02 - Address: 5A:C2:DD:BC:98:FD
                            Protocol:11b/g/n BW40
                            ESSID:"360WIFI"
                            Mode:Managed
                            Frequency:2.412 GHz (Channel 1)
                            Quality=24/100  Signal level=-80 dBm  Noise level=-86 dBm
                            Encryption key:on
                            Bit Rates:150 Mb/s
                            IE: IEEE 802.11i/WPA2 Version 1
                                Group Cipher : CCMP
                                Pairwise Ciphers (1) : CCMP
                                Authentication Suites (1) : PSK
                  Cell 03 - Address: 00:36:76:04:AC:24
                            Protocol:11b/g/n BW40
                            ESSID:"360\xE5\x85\x8D\xE8\xB4\xB9WiFi-24"
                            Mode:Managed
                            Frequency:2.412 GHz (Channel 1)
                            Quality=20/100  Signal level=-82 dBm  Noise level=-89 dBm
                            Encryption key:on
                            Bit Rates:150 Mb/s
                            IE: WPA Version 1
                                Group Cipher : CCMP
                                Pairwise Ciphers (1) : CCMP
                                Authentication Suites (1) : PSK
                            IE: IEEE 802.11i/WPA2 Version 1
                                Group Cipher : CCMP
                                Pairwise Ciphers (1) : CCMP
                                Authentication Suites (1) : PSK
                  Cell 04 - Address: E8:4E:06:2B:7A:DD
                            PMT7601_ChipSwitchChannel: SwitchChannel#4(RF=15, 1T)
        rotocol:11g/n BW40
                            ESSID:"N8508GS"
                            Mode:Managed
                            Frequency:2.412 GHz (Channel 1)
                            Quality=39/100  Signal level=-74 dBm  Noise level=-69 dBm
                            Encryption key:on
                            Bit Rates:150 Mb/s
                            IE: IEEE 802.11i/WPA2 Version 1
                                Group Cipher : CCMP
                                Pairwise Ciphers (1) : CCMP
                                Authentication Suites (1) : PSK
                  Cell 05 - Address: 00:B0:C6:0F:24:B0
                            Protocol:11b/g/n BW40
                            ESSID:"zengjf-AP3"
                            Mode:Managed
                            Frequency:2.412 GHz (Channel 1)
                            Quality=60/100  Signal level=-66 dBm  Noise level=-92 dBm
                            Encryption key:on
                            Bit Rates:300 Mb/s
                            IE: IEEE 802.11i/WPA2 Version 1
                                Group Cipher : CCMP
                                Pairwise Ciphers (1) : CCMP
                                Authentication Suites (1) : PSK
        
        [zengjf@root ~]#  MT7601_ChipSwitchChannel: SwitchChannel#5(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#6(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#7(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#8(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#9(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#10(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#11(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#12(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#13(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#14(RF=15, 1T)
        MT7601_ChipSwitchChannel: SwitchChannel#1(RF=15, 1T)
        SYNC - End of SCAN, restore to 20MHz channel 1, Total BSS[15]
        SCAN done, resume MSDU transmission ...
        CNTL - All roaming failed, restore to channel 1, Total BSS[15]
        TSSI = 0x57
        temperature = 0x2
        PacketType = 0xBD
        tx_11g_rate: b
        Channel PWR + MCS PWR = 23000
        TargetPower: 0x2528f(152207)
        tssi_m_dc: 88
        TssiLinear0: 87
        TssiDC0: -1
        tssi_offset: 0
        tssi_offset<<9: 0
        TssiSlope: 128
        tssi_db: 1245
        CurrentPower: 159360
        PowerDiff: -7153
        final PowerDiff: -2(0xfffffffe)
        MAC 13b4: 0xc9540027
        
        [zengjf@root ~]#