小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

tiny210針對USI_WM-BN-BM-04的wifi的配置過程

 WUCANADA 2013-08-03

tiny210針對USI_WM-BN-BM-04的wifi的配置過程

分類: android WLAN 225人閱讀 評論(0) 收藏 舉報

2tiny210針對USI_WM-BN-BM-04wifi的配置過程

(參看TINY210_wifi調試過程.doc by joqian 2013-3-13

2.1 硬件配置

USI_WM-BN-BM-04涉及到的主要針腳為:

SDIO_D0, SDIO_D1, SDIO_D2, SDIO_D3,SDIO_VDD,SDIO_CMD,SDIO_CLK均為標準的SDIO接口對接;

SDIO_HOST_WAKE為向主機發(fā)起喚醒中斷針腳;

WL_REG_ON為主機對wifi模塊電源和reset控制針腳。

另外還有SPISDIO模式選擇針腳,接地為SDIO模式。

 

2.2內核配置

2.2.1源碼替換:

\linux-3.0.8\drivers\net\wireless\bcmdhd替換為usi提供的bcmdhd文件

       需要注意的是,該文件夾下的驅動之注冊了驅動,而沒有注冊設備,所以加一個源文件device_04_wlan.c用于注冊設備的。

 

2.2.2源碼修改:

需要針對SDIO_HOST_WAKEWL_REG_ON兩個針腳進行配置:

1) SDIO_HOST_WAKE:用于主機中斷,在cpu端為輸入,起中斷作用。

device_04_wlan.c源碼中有針已經做了配置

static struct resource brcm_wlan_resources[] = {

        [0] = {

                .name   = "bcmdhd_wlan_irq",

                .start  =  40,

                .end    = 40,

                .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,

        },

};

需要根據(jù)實際針腳重新配置。(40eint[8]

 

2WL_REG_ON為電源控制和reset腳:

需要在cpu端,配置為輸出,以控制usi模塊的wifi功能的reset

這個可以在bcmdhd文件加下(即drivers\net\wireless\bcmdhd):

Dhd_custom_gpio.c源碼中的dhd_customer_gpio_wlan_ctrl(int onoff)函數(shù)對WL_REG_ON針腳的電平高低控制。

 

#define RST_GPIO_PIN S5PV210_GPH0(5)

static int brcm_wlan_power_off_test()

{

    printk(KERN_INFO"%s Enter: power off\n", __func__);

    /* setup the outputs and init values */

       s3c_gpio_cfgpin(RST_GPIO_PIN, 0x1);

       gpio_direction_output(RST_GPIO_PIN, 0);

       gpio_set_value(RST_GPIO_PIN, 0);

       msleep(10);

      

       return 0;

}

 

static int brcm_wlan_power_on_test()

{

   printk(KERN_INFO"%s Enter: power on\n", __func__);

    /* setup the outputs and init values */

       s3c_gpio_cfgpin(RST_GPIO_PIN, 0x1);

       gpio_direction_output(RST_GPIO_PIN, 1);

       gpio_set_value(RST_GPIO_PIN, 1);

       msleep(10);

      

       return 0;

}

 

/* Customer function to control hw specific wlan gpios */

void

dhd_customer_gpio_wlan_ctrl(int onoff)

{

       switch (onoff) {

              case WLAN_RESET_OFF:

                     WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n",

                            __FUNCTION__));

#ifdef CUSTOMER_HW

                     bcm_wlan_power_off(2);

#endif /* CUSTOMER_HW */

#ifdef CUSTOMER_HW2

                     wifi_set_power(0, 0);

#endif

                     brcm_wlan_power_off_test();

                     WL_ERROR(("=========== WLAN placed in RESET ========\n"));

              break;

 

              case WLAN_RESET_ON:

                     WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n",

                            __FUNCTION__));

#ifdef CUSTOMER_HW

                     bcm_wlan_power_on(2);

#endif /* CUSTOMER_HW */

#ifdef CUSTOMER_HW2

                     wifi_set_power(1, 0);

#endif

                     brcm_wlan_power_on_test();

                     WL_ERROR(("=========== WLAN going back to live  ========\n"));

              break;

 

              case WLAN_POWER_OFF:

                     WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n",

                            __FUNCTION__));

#ifdef CUSTOMER_HW

                     bcm_wlan_power_off(1);

#endif /* CUSTOMER_HW */

              brcm_wlan_power_off_test();

              break;

 

              case WLAN_POWER_ON:

                     WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n",

                            __FUNCTION__));

#ifdef CUSTOMER_HW

                     bcm_wlan_power_on(1);

                     /* Lets customer power to get stable */

                     OSL_DELAY(200);

#endif /* CUSTOMER_HW */

              brcm_wlan_power_on_test();

              OSL_DELAY(200);

              break;

       }

}

2.2.3內核配置

make menuconfig

1Networking support --->

       Wireless --->

2Device Drivers --->

       Network device support --->

              Wireless LAN --->

3Device Drivers --->

       MMC/SD/SDIO card support --->

 

 

 

2.3系統(tǒng)配置

2.3.1固件的打包:

1)需要將usi給的兩個固件fw_bcmdhd.binbcmdhd.cal打包進系統(tǒng)中:

內核配置給定的路徑為:

/system/etc/firmware/fw_bcmdhd.bin

/system/etc/wifi/bcmdhd.cal

 但實際調試之后,路徑為如下:其中bcmdhd.cal需要改名為nvram.txt

system/vendor/firmware/bcm43xx/fw_bcmdhd.bin

system/vendor/firmware/bcm43xx/nvram.txt

 

2)因為友善紙對tiny210加了一些wifi庫文件,所以需要把它們去掉,路徑為:

./system/lib/modules/3.0.8-FriendlyARM

3.0.8-FriendlyARM重命名,或者刪除。

 

2.3.2NL80211的配置:

tiny210wpa_supplicant用的是wext,而usiwifi采用的是NL80211。所以需要修改系統(tǒng)的配置:

1init.mini210.rc中的

service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0

    class main

    socket wpa_wlan0 dgram 0660 wifi wifi

    disabled

    oneshot

改為:

service wpa_supplicant /system/bin/wpa_supplicant -Dnl80211-iwlan0

    class main

    socket wpa_wlan0 dgram 0660 wifi wifi

    disabled

oneshot

 

2)在android-4.0.3_r1\device\friendly-arm\mini210下的

BoardConfigCommon.mk中的

# Connectivity - Wi-Fi

WPA_SUPPLICANT_VERSION := VER_0_8_X

BOARD_WPA_SUPPLICANT_DRIVER := WEXT

BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_fawext

BOARD_WIFIHW_PRIVATE_LIB := lib_wifihw_fa

改成:

# Connectivity - Wi-Fi

WPA_SUPPLICANT_VERSION := VER_0_8_X

BOARD_WLAN_DEVICE := bcmdhd

#BOARD_HOSTAPD_DRIVER := NL80211

BOARD_WPA_SUPPLICANT_DRIVER := NL80211

BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd

#BOARD_WIFIHW_PRIVATE_LIB := lib_wifihw_fa

 

3)將\android-4.0.3_r1\vendor\friendly-arm\mini210\下的wifi文件夾刪掉。

并刪除相關庫文件(具體沒測試,因為我是直接make clean的,下班了,讓他在晚上編譯),重新編譯生成。

 

經過以上的配置整個系統(tǒng)應該就支持USI_WM-BN-BM-04wifi了。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多