메인라인 커널의 바나나 PI M2M(allwinner A33/R16) WiFI 드라이버

메인라인 커널의 바나나 PI M2M(allwinner A33/R16) WiFI 드라이버

메인라인 커널을 사용하여 Banana PI M2M에서 WiFi를 작동시키려고 합니다.

바나나 파이 m2m의 장치 트리 정의는 매우 불완전합니다. sun8i-r16-bananapi-m2m.dtsSPI가 작동하도록 관리했지만 지금은 WiFi 드라이버를 작동시키느라 애쓰고 있습니다.

Banana Pie M2M은 AP6212 칩을 사용하며, 겉보기에는 BRCM4329 칩을 사용합니다.

WL_PMU_ENAP6212는 SDIO1, PL6 연결 , PL7 연결을 통해 Allwinner A33과 연결됩니다 WL-WAKE-AP. (https://drive.google.com/file/d/0B4PAo2nW2KfndHY1VF9UWXl2Rm8/view?usp=sharing)

다음과 같이 dts를 수정했습니다.

&mmc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pg_pins>;
        vmmc-supply = <&reg_aldo1>;
        mmc-pwrseq = <&wifi_pwrseq>;
        bus-width = <4>;
        non-removable;
        status = "okay";

        brcmf: wifi@1 {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&r_pio>;
                interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>;  /* PL7 */
                interrupt-names = "host-wake";
        };
};

커널 80211에서 bcrm-fmac 드라이버와 brcm-fmac-sdio를 활성화했습니다. buildroot에 wireless-regdb 패키지를 추가했습니다. 또한 /lib/firmware/brcm바나나파이 공식 이미지(커널 3.4)에서 얻은 펌웨어와 구성을 복사했습니다 .

이 시점에서 modprobe를 사용하여 드라이버를 로드할 수 있지만 시간 초과 문제가 발생하여 여기에서 어디를 봐야 할지 잘 모르겠습니다...

# modprobe brcmfmac
[   67.440758] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   67.513578] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   67.595615] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
# [   68.745996] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[   69.767856] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

내 추측은(실제로는 단지 추측일 뿐임) Wi-Fi 칩을 제대로 깨우기 위한 몇 가지 단계가 누락된 것입니다. 하지만 보드에서 측정해 보니 다양한 레일이 올바른 수준에 있는 것 같습니다.

바나나 파이 m2m에서 다른 드라이버와 함께 작동하는 최신 커널을 얻을 기회가 있는 사람이 있습니까?

답변이나 팁을 보내주셔서 감사합니다!

답변1

나는 동일한 마더보드를 가지고 있고 메인라인 Linux를 사용하고 싶습니다.

Banana pi m2m bsp의 3.4 커널 로그에서 다음 줄을 찾았습니다.

[   14.519605] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[   14.535387] dhd_conf_read_others: ccode = CN
[   14.535623] dhd_conf_read_others: regrev = 0
[   14.535763] Final fw_path=/lib/firmware/ap6212/fw_bcm43438a1.bin
[   14.535959] Final nv_path=/lib/firmware/ap6212/nvram.txt

/lib/firmware/ap6212/fw_bcm43438a1.bin따라서 복사 /lib/firmware/brcm/brcmfmac43430-sdio.bin 하고 복사 /lib/firmware/ap6212/nvram.txt하면 /lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bananapi-m2m.txt 트릭이 수행됩니다.

이제 Wi-Fi에 접속할 수 있게 되었습니다.

관련 정보