1. how did you setup the board initially after you got it? SD install image, fastboot?
I always use fastboot to program the board. I make a boot image with 'skales' and flash it to the 'boot' partition.
2. did you install/flash the bootloaders?
Yes, I flashed a new gpt to replace the android partitions with a 'rootfs'. The bootloader that I flashed came from eInfochips, who also manufacture a snapdragon 410 board.
3. which kernel commit/tag are you building, and which kernel config are you using?
I started off the 'integration-linux-qcomlt' branch from https://git.linaro.org/landing-teams/working/qualcomm/kernel.git, and I merged it with the 'v4.3' tag from Linus' tree. I realized then that the wifi wasn't working and I made a small modification to the device tree from a partial patch from Fengwei Yin:
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -400,8 +400,7 @@
qcom,smd-edge = <6>;
qcom,remote-pid = <4>;
-#if 0
- bt {
+ bt {
compatible = "qcom,hci-smd";
qcom,smd-channels = "APPS_RIVA_BT_CMD", "APPS_RIVA_BT_ACL";
qcom,smd-channel-names = "event", "data";
@@ -413,7 +412,7 @@
};
wifi {
- compatible = "qcom,wcn3680";
+ compatible = "qcom,wlan-ctrl";
qcom,smd-channels = "WLAN_CTRL";
interrupts = <0 145 0>, <0 146 0>;
@@ -421,8 +420,8 @@
qcom,wcnss_mmio = <0xfb000000 0x21b000>;
- qcom,tx-enable-gpios = <&apps_smsm 10 0>;
- qcom,tx-rings-empty-gpios = <&apps_smsm 9 0>;
+ // qcom,tx-enable-gpios = <&apps_smsm 10 0>;
+ // qcom,tx-rings-empty-gpios = <&apps_smsm 9 0>;
};
wcnss_ctrl {
@@ -431,7 +430,6 @@
qcom,wcnss_mmio = <0xfb21b000 0x3000>;
};
-#endif
};
};
@@ -937,7 +935,7 @@
};
};
- pronto_rproc {
+ pronto_rproc: pronto_rproc {
compatible = "qcom,tz-pil";
interrupts-extended = <&intc 0 149 1>,
@@ -970,6 +968,61 @@
memory-region = <&peripheral_mem>;
};
+
+ qcom,wcn36xx@0a000000 {
+ compatible = "qcom,wcn3620";
+ reg = <0x0a000000 0x280000>,
+ <0xb011008 0x04>,
+ <0x0a21b000 0x3000>,
+ <0x03204000 0x00000100>,
+ <0x03200800 0x00000200>,
+ <0x0A100400 0x00000200>,
+ <0x0A205050 0x00000200>,
+ <0x0A219000 0x00000020>,
+ <0x0A080488 0x00000008>,
+ <0x0A080fb0 0x00000008>,
+ <0x0A08040c 0x00000008>,
+ <0x0A0120a8 0x00000008>,
+ <0x0A012448 0x00000008>,
+ <0x0A080c00 0x00000001>;
+
+ reg-names = "wcnss_mmio", "wcnss_fiq",
+ "pronto_phy_base", "riva_phy_base",
+ "riva_ccu_base", "pronto_a2xb_base",
+ "pronto_ccpu_base", "pronto_saw2_base",
+ "wlan_tx_phy_aborts","wlan_brdg_err_source",
+ "wlan_tx_status", "alarms_txctl",
+ "alarms_tactl", "pronto_mcu_base";
+
+ interrupts = <0 145 0 0 146 0>;
+ interrupt-names = "wcnss_wlantx_irq", "wcnss_wlanrx_irq";
+
+ // qcom,pronto-vddmx-supply = <&pm8916_l3>;
+ // qcom,pronto-vddcx-supply = <&pm8916_s1_corner>;
+ // qcom,pronto-vddpx-supply = <&pm8916_l7>;
+ // qcom,iris-vddxo-supply = <&pm8916_l7>;
+ // qcom,iris-vddrfa-supply = <&pm8916_s3>;
+ // qcom,iris-vddpa-supply = <&pm8916_l9>;
+ // qcom,iris-vdddig-supply = <&pm8916_l5>;
+
+ pinctrl-names = "wcnss_default";
+ // pinctrl-names = "wcnss_default", "wcnss_sleep",
+ // "wcnss_gpio_default";
+ pinctrl-0 = <&wcnss_default>;
+ // pinctrl-1 = <&wcnss_sleep>;
+ // pinctrl-2 = <&wcnss_gpio_default>;
+
+ // clocks = <&rpmcc RPM_XO_CLK_SRC>,
+ // <&rpmcc RPM_RF_CLK2>;
+ //clock-names = "xo", "rf_clk";
+
+ rproc = <&pronto_rproc>;
+ qcom,has-autodetect-xo;
+ qcom,wlan-rx-buff-count = <512>;
+ qcom,is-pronto-vt;
+ qcom,has-pronto-hw;
+ // qcom,wcnss-adc_tm = <&pm8916_adc_tm>;
+ };
};
};
--
I used the arm64 defconfig, and I removed some graphical drivers since my setup is headless.
4. have you tried the same with the released boot image, instead of your own built kernel?
I don’t remember where I got it from, but I have a working 4.2 boot image, with both wifi and USB working properly, so yes, there seems to be something wrong with my setup, I just would like to know what, since I would prefer to be able to build custom kernels.
Thanks for the help!
Paul