mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	Device specifications:
* QCA IPQ4019
* 256 MB of RAM
* 32 MB of SPI NOR flash (w25q256)
  - 2x 15 MB available; but one of the 15 MB regions is the recovery image
* 2T2R 2.4 GHz
  - QCA4019 hw1.0 (SoC)
  - requires special BDF in QCA4019/hw1.0/board-2.bin with
    bus=ahb,bmi-chip-id=0,bmi-board-id=20,variant=PlasmaCloud-PA2200
* 2T2R 5 GHz (channel 36-64)
  - QCA9888 hw2.0 (PCI)
  - requires special BDF in QCA9888/hw2.0/board-2.bin
    bus=pci,bmi-chip-id=0,bmi-board-id=16,variant=PlasmaCloud-PA2200
* 2T2R 5 GHz (channel 100-165)
  - QCA4019 hw1.0 (SoC)
  - requires special BDF in QCA4019/hw1.0/board-2.bin with
    bus=ahb,bmi-chip-id=0,bmi-board-id=21,variant=PlasmaCloud-PA2200
* GPIO-LEDs for 2.4GHz, 5GHz-SoC and 5GHz-PCIE
* GPIO-LEDs for power (orange) and status (blue)
* 1x GPIO-button (reset)
* TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX)
* 2x gigabit ethernet
  - phy@mdio3:
    + Label: Ethernet 1
    + gmac0 (ethaddr) in original firmware
    + used as LAN interface
  - phy@mdio4:
    + Label: Ethernet 2
    + gmac1 (eth1addr) in original firmware
    + 802.3at POE+
    + used as WAN interface
* 12V 2A DC
Flashing instructions:
The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be
used to transfer the factory image to the u-boot when the device boots up.
Signed-off-by: Marek Lindner <marek.lindner@kaiwoo.ai>
[sven@narfation.org: prepare commit message, rebase, use all LEDs, switch
to dualboot_datachk upgrade script, use eth1 as designated WAN interface]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
		
	
			
		
			
				
	
	
		
			128 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
PART_NAME=firmware
 | 
						|
REQUIRE_IMAGE_METADATA=1
 | 
						|
 | 
						|
RAMFS_COPY_BIN='fw_printenv fw_setenv'
 | 
						|
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
 | 
						|
 | 
						|
platform_check_image() {
 | 
						|
	case "$(board_name)" in
 | 
						|
	asus,rt-ac58u)
 | 
						|
		CI_UBIPART="UBI_DEV"
 | 
						|
		local ubidev=$(nand_find_ubi $CI_UBIPART)
 | 
						|
		local asus_root=$(nand_find_volume $ubidev jffs2)
 | 
						|
 | 
						|
		[ -n "$asus_root" ] || return 0
 | 
						|
 | 
						|
		cat << EOF
 | 
						|
jffs2 partition is still present.
 | 
						|
There's probably no space left
 | 
						|
to install the filesystem.
 | 
						|
 | 
						|
You need to delete the jffs2 partition first:
 | 
						|
# ubirmvol /dev/ubi0 --name=jffs2
 | 
						|
 | 
						|
Once this is done. Retry.
 | 
						|
EOF
 | 
						|
		return 1
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 | 
						|
askey_do_upgrade() {
 | 
						|
	local tar_file="$1"
 | 
						|
 | 
						|
	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
 | 
						|
	board_dir=${board_dir%/}
 | 
						|
 | 
						|
	tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
 | 
						|
 | 
						|
	nand_do_upgrade "$1"
 | 
						|
}
 | 
						|
 | 
						|
zyxel_do_upgrade() {
 | 
						|
	local tar_file="$1"
 | 
						|
 | 
						|
	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
 | 
						|
	board_dir=${board_dir%/}
 | 
						|
 | 
						|
	tar Oxf $tar_file ${board_dir}/kernel | mtd write - kernel
 | 
						|
 | 
						|
	if [ -n "$UPGRADE_BACKUP" ]; then
 | 
						|
		tar Oxf $tar_file ${board_dir}/root | mtd -j "$UPGRADE_BACKUP" write - rootfs
 | 
						|
	else
 | 
						|
		tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
platform_do_upgrade() {
 | 
						|
	case "$(board_name)" in
 | 
						|
	8dev,jalapeno |\
 | 
						|
	aruba,ap-303 |\
 | 
						|
	aruba,ap-303h |\
 | 
						|
	aruba,ap-365 |\
 | 
						|
	avm,fritzbox-7530 |\
 | 
						|
	avm,fritzrepeater-1200 |\
 | 
						|
	avm,fritzrepeater-3000 |\
 | 
						|
	buffalo,wtr-m2133hp |\
 | 
						|
	cilab,meshpoint-one |\
 | 
						|
	edgecore,ecw5211 |\
 | 
						|
	edgecore,oap100 |\
 | 
						|
	engenius,eap2200 |\
 | 
						|
	luma,wrtq-329acn |\
 | 
						|
	mobipromo,cm520-79f |\
 | 
						|
	qxwlan,e2600ac-c2)
 | 
						|
		nand_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	alfa-network,ap120c-ac)
 | 
						|
		part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
 | 
						|
		if [ "$part" = "rootfs1" ]; then
 | 
						|
			fw_setenv active 2 || exit 1
 | 
						|
			CI_UBIPART="rootfs2"
 | 
						|
		else
 | 
						|
			fw_setenv active 1 || exit 1
 | 
						|
			CI_UBIPART="rootfs1"
 | 
						|
		fi
 | 
						|
		nand_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	asus,map-ac2200)
 | 
						|
		CI_KERNPART="linux"
 | 
						|
		nand_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	asus,rt-ac58u)
 | 
						|
		CI_UBIPART="UBI_DEV"
 | 
						|
		CI_KERNPART="linux"
 | 
						|
		nand_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	cellc,rtl30vw)
 | 
						|
		CI_UBIPART="ubifs"
 | 
						|
		askey_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	compex,wpj419)
 | 
						|
		nand_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	linksys,ea6350v3 |\
 | 
						|
	linksys,ea8300 |\
 | 
						|
	linksys,mr8300)
 | 
						|
		platform_do_upgrade_linksys "$1"
 | 
						|
		;;
 | 
						|
	meraki,mr33)
 | 
						|
		CI_KERNPART="part.safe"
 | 
						|
		nand_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	openmesh,a42 |\
 | 
						|
	openmesh,a62 |\
 | 
						|
	plasmacloud,pa1200 |\
 | 
						|
	plasmacloud,pa2200)
 | 
						|
		PART_NAME="inactive"
 | 
						|
		platform_do_upgrade_dualboot_datachk "$1"
 | 
						|
		;;
 | 
						|
	zyxel,nbg6617)
 | 
						|
		zyxel_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	*)
 | 
						|
		default_do_upgrade "$1"
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
}
 |