aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/filogic
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2023-06-09 13:39:52 +0200
committerDavid Bauer <mail@david-bauer.net>2023-08-05 18:49:34 +0200
commitc697057b7ca17b5c80bcfb266e7c00eb699c8608 (patch)
tree9145c6cc49b4e8778425640a1cd07e8890ab3fbc /target/linux/mediatek/filogic
parent7efec0acca80b231ab8e69729a4bdaf11ef84541 (diff)
downloadupstream-c697057b7ca17b5c80bcfb266e7c00eb699c8608.tar.gz
upstream-c697057b7ca17b5c80bcfb266e7c00eb699c8608.tar.bz2
upstream-c697057b7ca17b5c80bcfb266e7c00eb699c8608.zip
mediatek: add support for Acer Predator W6
Hardware -------- SOC: MediaTek MT7986A RAM: 1GB DDR4 FLASH: 4GB eMMC WiFi: 2x2 2.4 GHz 802.11 b/g/n/ax MT7916 DBDC 4x4 5 GHz 802.11 a/n/ac/ax MT7986 2x2 6 GHz 802.11ax MT7916 DBDC ETH: 4x LAN 1Gbit/s (MT7531) 1x WAN 2.5Gbit/s (GPY211) BTN: RESET, WPS LED: Antenna LEDs (GPIO) Mood-LED (Kinetic KTD2601) - unsupported UART: Header nest to USB port - 3V3 115200 8N1 [BUTTON] GND - RX - TX [USB] Installation ------------ 1. Connect to the device using serial console. 2. Interrupt the Autoboot process when promted by sending '0' twice. 3. Serve the OpenWrt initramfs image using TFTP at 192.168.1.66. Name the image "predator.bin" and conenct the TFTP server to the routers LAN port. 4. Configure U-Boot to allow loading unsigned images from MMC $ setenv bootcmd 'mmc read 0x40000000 0x00004400 0x0010000; fdt addr $(fdtcontroladdr); fdt rm /signature; bootm 0x40000000'; saveenv 5. Transfer the image from U-Boot $ setenv serverip 192.168.1.66; setenv ipaddr 192.168.1.1; tftpboot 0x46000000 predator.bin; fdt addr $(fdtcontroladdr); fdt rm /signature; bootm 6. Wait for OpenWrt to boot 7. Transfer the OpenWrt sysupgrade image to the router using scp. 8. Install OpenWrt using sysupgrade. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 7e7eb5312d7810084547bb54a4b6867c2da08182)
Diffstat (limited to 'target/linux/mediatek/filogic')
-rw-r--r--target/linux/mediatek/filogic/base-files/etc/board.d/02_network3
-rw-r--r--target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata14
-rw-r--r--target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac6
-rw-r--r--target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh25
-rw-r--r--target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh8
-rwxr-xr-xtarget/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh5
6 files changed, 61 insertions, 0 deletions
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 3b170ddc18..2ce5fb687b 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -8,6 +8,9 @@ mediatek_setup_interfaces()
local board="$1"
case $board in
+ acer,predator-w6)
+ ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 game" eth1
+ ;;
asus,tuf-ax4200)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" eth1
;;
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata
index 0fe4c69988..c3d7c09974 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata
@@ -7,6 +7,20 @@
board=$(board_name)
case "$FIRMWARE" in
+"mediatek/mt7916_eeprom.bin")
+ case "$board" in
+ acer,predator-w6)
+ caldata_extract_mmc "factory" 0xA0000 0x1000
+ ;;
+ esac
+ ;;
+"mediatek/mt7986_eeprom_mt7976.bin")
+ case "$board" in
+ acer,predator-w6)
+ caldata_extract_mmc "factory" 0x0 0x1000
+ ;;
+ esac
+ ;;
"mediatek/mt7986_eeprom_mt7976_dbdc.bin")
case "$board" in
asus,tuf-ax4200)
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index 3620e3a6fb..ebf76640c8 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -10,6 +10,12 @@ PHYNBR=${DEVPATH##*/phy}
board=$(board_name)
case "$board" in
+ acer,predator-w6)
+ key_path="/var/qcidata/data"
+ [ "$PHYNBR" = "0" ] && cat $key_path/2gMAC > /sys${DEVPATH}/macaddress
+ [ "$PHYNBR" = "1" ] && cat $key_path/6gMAC > /sys${DEVPATH}/macaddress
+ [ "$PHYNBR" = "2" ] && cat $key_path/5gMAC > /sys${DEVPATH}/macaddress
+ ;;
asus,tuf-ax4200)
CI_UBIPART="UBI_DEV"
addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh
new file mode 100644
index 0000000000..87287a7d1c
--- /dev/null
+++ b/target/linux/mediatek/filogic/base-files/lib/preinit/05_extract_factory_data.sh
@@ -0,0 +1,25 @@
+. /lib/functions/system.sh
+
+predator_w6_factory_extract() {
+ local mmc_part
+
+ mmc_part="$(find_mmc_part qcidata)"
+
+ mkdir -p /var/qcidata/data
+ mkdir -p /var/qcidata/mount
+
+ mount -r "$mmc_part" /var/qcidata/mount
+
+ cp /var/qcidata/mount/factory/*MAC "/var/qcidata/data/"
+ umount "/var/qcidata/mount"
+}
+
+preinit_extract_factory() {
+ case $(board_name) in
+ acer,predator-w6)
+ predator_w6_factory_extract
+ ;;
+ esac
+}
+
+boot_hook_add preinit_main preinit_extract_factory
diff --git a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
index cfddd9cedc..69d0ab6c60 100644
--- a/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/preinit/10_fix_eth_mac.sh
@@ -2,6 +2,14 @@
preinit_set_mac_address() {
case $(board_name) in
+ acer,predator-w6)
+ key_path="/var/qcidata/data"
+ ip link set dev lan1 address "$(cat $key_path/LANMAC)"
+ ip link set dev lan2 address "$(cat $key_path/LANMAC)"
+ ip link set dev lan3 address "$(cat $key_path/LANMAC)"
+ ip link set dev game address "$(cat $key_path/LANMAC)"
+ ip link set dev eth1 address "$(cat $key_path/WANMAC)"
+ ;;
asus,tuf-ax4200)
CI_UBIPART="UBI_DEV"
addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index 186abfa5a8..2b58cf2b43 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -42,6 +42,11 @@ platform_do_upgrade() {
local board=$(board_name)
case "$board" in
+ acer,predator-w6)
+ CI_KERNPART="kernel"
+ CI_ROOTPART="rootfs"
+ emmc_do_upgrade "$1"
+ ;;
asus,tuf-ax4200)
CI_UBIPART="UBI_DEV"
CI_KERNPART="linux"