IPQ5018所使用的bootloader是qca/feed/bootloader/uboot-qca下所使用的u-boot-2016的版本。在MP03.3 參考設計中,表現出來的是S17(QCA8337)與NAPA(QCA8081)兩者二選一的使用方式,共用一個MII介面與IPQ5018座連接。
這樣的設計,並無法同時使用NAPA以及S17,而Maple在透過PCIe介面擴充WLAN的時候,使用起來就略顯侷限。WAN口使用NAPA的話,LAN口就只能使用1個GEPHY了。所以有了使用S17當作switch來擴充LAN口數的想法。
在u-boot中使用QCA8337 將IPQ5018內建的1GE PHY,拓展為4個1G port的方式,只要單純的將QCA8337設定成dummy switch就可以了。修改如下:
Index: u-boot-2016-g32bae3d-dirty/arch/arm/dts/ipq5018-mp03.3.dts
===================================================================
--- u-boot-2016-g32bae3d-dirty.orig/arch/arm/dts/ipq5018-mp03.3.dts
+++ u-boot-2016-g32bae3d-dirty/arch/arm/dts/ipq5018-mp03.3.dts
@@ -148,11 +148,8 @@
unit = <0>;
base = <0x39C00000>;
phy_address = <7>;
- phy_external_link = <0>;
- mac_pwr = <0xaa545>;
- s17c_switch_enable = <1>;
- switch_port_count = <4>;
- switch_phy_address = <0 1 2 3>;
+ phy_external_link = <1>;
+ switch_gpio = <39>;
};
gmac2_cfg {
unit = <1>;
結語:
QSDK中透過修改dts的方式,可以簡單完成硬體配置上的更改,在u-boot中如此,在linux kernel中也是一樣的。
想了解更多,請關注大大通。