From cc54c8654fe485c0c37ab97e73de324f333081cf Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Mon, 14 Mar 2022 15:47:05 +0100 Subject: [PATCH] ipq807x: Add support for Plasma Cloud PAX1800 v2 Device specifications: ====================== * Qualcomm IPQ6000 * 512 MB of RAM * 64 MB of SPI NOR flash - 2x 28 MB available; but one of the 28 MB regions is the recovery image * 2T2R 2.4 GHz Wi-Fi (11ax) * 2T2R 5 GHz Wi-Fi (11ax) * multi-color LED (controlled via red/green/blue GPIOs) * 1x GPIO-button (reset) * external h/w watchdog (enabled by default)) * TTL pins are on board * 2x ethernet - eth0 + 1000 Mbps Ethernet + used as LAN interface - eth1 + 1000 Mbps Ethernet + 802.3at POE + used as WAN interface * 12 2A DC * internal antennas Flashing instructions: ====================== Various methods can be used to install the actual image on the flash. Two easy ones are: ap51-flash ---------- The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the image to the u-boot when the device boots up. initramfs from TFTP ------------------- The serial console must be used to access the u-boot shell during bootup. It can then be used to first boot up the initramfs image from a TFTP server (here with the IP 192.168.1.21): setenv serverip 192.168.1.21 setenv ipaddr 192.168.1.1 setenv bootargs 'console=ttyMSM0,115200n8 rootfstype=squashfs,jffs2 board=PAX1800v2 root=31:10 mtdparts=spi32766.0:768k(0:SBL1),64k(0:MIBIB),1664k(0:QSEE),64k(0:DEVCFG),128k(0:RPM),64k(0:CDT),64k(0:APPSBLENV),640k(0:APPSBL),256k(0:ART),28672k(inactive),28672k(inactive2),64k(custom),64k(0:KEYS),2304k(0:WIFIFW)' tftpboot .bin && bootm The actual sysupgrade image can then be transferred (on the LAN port) to the device via scp .bin root@192.168.1.1:/tmp/ On the device, the sysupgrade must then be started using sysupgrade -n /tmp/.bin Signed-off-by: Sven Eckelmann --- .../ipq807x/base-files/etc/board.d/02_network | 3 +- .../etc/hotplug.d/firmware/10-ath11k-caldata | 15 +- .../lib/upgrade/dualboot_datachk.sh | 103 ++++++ .../base-files/lib/upgrade/platform.sh | 8 +- .../arm/boot/dts/qcom-ipq6018-pax1800-v2.dts | 18 + .../boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts | 318 ++++++++++++++++++ feeds/ipq807x/ipq807x/image/ipq60xx.mk | 23 ++ feeds/wifi-ax/ath11k-wifi/Makefile | 11 + .../board-plasmacloud-pax1800.bin.IPQ6018 | Bin 0 -> 197592 bytes ...gen-Add-support-for-Plasma-Cloud-PAX.patch | 23 ++ profiles/plasmacloud_pax1800-v2.yml | 13 + 11 files changed, 532 insertions(+), 3 deletions(-) create mode 100644 feeds/ipq807x/ipq807x/base-files/lib/upgrade/dualboot_datachk.sh create mode 100644 feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-pax1800-v2.dts create mode 100644 feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts create mode 100644 feeds/wifi-ax/ath11k-wifi/board-plasmacloud-pax1800.bin.IPQ6018 create mode 100644 patches/ipq807x/0005-om-fwupgradecfg-gen-Add-support-for-Plasma-Cloud-PAX.patch create mode 100644 profiles/plasmacloud_pax1800-v2.yml diff --git a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network index bba99e87c..6a3f42fbf 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network @@ -34,7 +34,8 @@ qcom_setup_interfaces() qcom,ipq5018-mp03.3|\ yuncore,ax840|\ motorola,q14|\ - sercomm,wallaby) + sercomm,wallaby|\ + plasmacloud,pax1800-v2) ucidef_set_interface_lan "eth0" ucidef_set_interface_wan "eth1" ;; diff --git a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata index 81abfc945..4b9cf53b1 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata +++ b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata @@ -49,6 +49,15 @@ ath11k_generate_macs_ion4x() { echo -ne \\x${wifimac2//:/\\x} >> /lib/firmware/ath11k-macs } +ath11k_generate_macs_pax1800() { + touch /lib/firmware/ath11k-macs + eth=$(cat /sys/class/net/eth0/address) + mac1=$(macaddr_add $eth 10) + mac2=$(macaddr_add $eth 2) + echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs +} + caldata_die() { echo "caldata: " "$*" exit 1 @@ -98,7 +107,8 @@ case "$FIRMWARE" in wallys,dr6018-v4|\ qcom,ipq6018-cp01|\ xiaomi,ax1800|\ - glinet,ax1800) + glinet,ax1800|\ + plasmacloud,pax1800-v2) caldata_extract "0:ART" 0x1000 0x20000 ;; esac @@ -165,6 +175,9 @@ ath11k-macs) cig,wf194c) ath11k_generate_macs_wf194 ;; + plasmacloud,pax1800-v2) + ath11k_generate_macs_pax1800 + ;; esac ;; *) diff --git a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/dualboot_datachk.sh b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/dualboot_datachk.sh new file mode 100644 index 000000000..f1c82e9a4 --- /dev/null +++ b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/dualboot_datachk.sh @@ -0,0 +1,103 @@ +# The U-Boot loader with the datachk patchset for dualbooting requires image +# sizes and checksums to be provided in the U-Boot environment. +# The devices come with 2 main partitions - while one is active +# sysupgrade will flash the other. The boot order is changed to boot the +# newly flashed partition. If the new partition can't be booted due to +# upgrade failures the previously used partition is loaded. + +platform_do_upgrade_dualboot_datachk() { + local tar_file="$1" + local restore_backup + local primary_kernel_mtd + + local setenv_script="/tmp/fw_env_upgrade" + + local kernel_mtd="$(find_mtd_index $PART_NAME)" + local kernel_offset="$(cat /sys/class/mtd/mtd${kernel_mtd}/offset)" + local total_size="$(cat /sys/class/mtd/mtd${kernel_mtd}/size)" + + # detect to which flash region the new image is written to. + # + # 1. check what is the mtd index for the first flash region on this + # device + # 2. check if the target partition ("inactive") has the mtd index of + # the first flash region + # + # - when it is: the new bootseq will be 1,2 and the first region is + # modified + # - when it isnt: bootseq will be 2,1 and the second region is + # modified + # + # The detection has to be done via the hardcoded mtd partition because + # the current boot might be done with the fallback region. Let us + # assume that the current bootseq is 1,2. The bootloader detected that + # the image in flash region 1 is corrupt and thus switches to flash + # region 2. The bootseq in the u-boot-env is now still the same and + # the sysupgrade code can now only rely on the actual mtd indexes and + # not the bootseq variable to detect the currently booted flash + # region/image. + # + # In the above example, an implementation which uses bootseq ("1,2") to + # detect the currently booted image would assume that region 1 is booted + # and then overwrite the variables for the wrong flash region (aka the + # one which isn't modified). This could result in a device which doesn't + # boot anymore to Linux until it was reflashed with ap51-flash. + local next_boot_part="1" + case "$(board_name)" in + plasmacloud,pax1800-v2) + primary_kernel_mtd=9 + ;; + *) + echo "failed to detect primary kernel mtd partition for board" + return 1 + ;; + esac + [ "$kernel_mtd" = "$primary_kernel_mtd" ] || next_boot_part="2" + + local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') + board_dir=${board_dir%/} + + local kernel_length=$(tar xf $tar_file ${board_dir}/kernel -O | wc -c) + local rootfs_length=$(tar xf $tar_file ${board_dir}/root -O | wc -c) + # rootfs without EOF marker + rootfs_length=$((rootfs_length-4)) + + local kernel_md5=$(tar xf $tar_file ${board_dir}/kernel -O | md5sum); kernel_md5="${kernel_md5%% *}" + # md5 checksum of rootfs with EOF marker + local rootfs_md5=$(tar xf $tar_file ${board_dir}/root -O | dd bs=1 count=$rootfs_length | md5sum); rootfs_md5="${rootfs_md5%% *}" + + # + # add tar support to get_image() to use default_do_upgrade() instead? + # + + # take care of restoring a saved config + [ -n "$UPGRADE_BACKUP" ] && restore_backup="${MTD_CONFIG_ARGS} -j ${UPGRADE_BACKUP}" + + mtd -q erase inactive + tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME + tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME + + # prepare new u-boot env + if [ "$next_boot_part" = "1" ]; then + echo "bootseq 1,2" > $setenv_script + else + echo "bootseq 2,1" > $setenv_script + fi + + printf "kernel_size_%i 0x%08x\n" $next_boot_part $kernel_length >> $setenv_script + printf "vmlinux_start_addr 0x%08x\n" ${kernel_offset} >> $setenv_script + printf "vmlinux_size 0x%08x\n" ${kernel_length} >> $setenv_script + printf "vmlinux_checksum %s\n" ${kernel_md5} >> $setenv_script + + printf "rootfs_size_%i 0x%08x\n" $next_boot_part $((total_size-kernel_length)) >> $setenv_script + printf "rootfs_start_addr 0x%08x\n" $((kernel_offset+kernel_length)) >> $setenv_script + printf "rootfs_size 0x%08x\n" ${rootfs_length} >> $setenv_script + printf "rootfs_checksum %s\n" ${rootfs_md5} >> $setenv_script + + # store u-boot env changes + mkdir -p /var/lock + fw_setenv -s $setenv_script || { + echo "failed to update U-Boot environment" + return 1 + } +} diff --git a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh index fc5c9dfac..d8d931816 100755 --- a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh +++ b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh @@ -1,6 +1,7 @@ . /lib/functions/system.sh -RAMFS_COPY_BIN='fw_printenv fw_setenv' + +RAMFS_COPY_BIN='fw_setenv' RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' qca_do_upgrade() { @@ -83,6 +84,7 @@ platform_check_image() { edgecore,eap106|\ hfcl,ion4xi|\ hfcl,ion4xe|\ + plasmacloud,pax1800-v2|\ tplink,ex227|\ tplink,ex447|\ yuncore,ax840|\ @@ -160,5 +162,9 @@ platform_do_upgrade() { fi nand_upgrade_tar "$1" ;; + plasmacloud,pax1800-v2) + PART_NAME="inactive" + platform_do_upgrade_dualboot_datachk "$1" + ;; esac } diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-pax1800-v2.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-pax1800-v2.dts new file mode 100644 index 000000000..6a69d10bc --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-pax1800-v2.dts @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts new file mode 100644 index 000000000..b9570b7af --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts @@ -0,0 +1,318 @@ +/dts-v1/; +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "qcom-ipq6018.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" +#include + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Plasma Cloud PAX1800 v2"; + compatible = "plasmacloud,pax1800-v2", "qcom,ipq6018-cp03", "qcom,ipq6018"; + + interrupt-parent = <&intc>; + qcom,msm-id = <0x1A5 0x0>; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + }; + + aliases { + serial0 = &blsp1_uart3; + /* + * Aliases as required by u-boot + * to patch MAC addresses + */ + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + + led-boot = &led_status_green; + led-failsafe = &led_status_green; + led-running = &led_status_green; + led-upgrade = &led_status_green; + led-uplink = &led_status_blue; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 24 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + status_red { + label = "red:status"; + gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "default-off"; + }; + + led_status_green: status_green { + label = "green:status"; + gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; + }; + + led_status_blue: status_blue { + label = "blue:status"; + gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "default-off"; + }; + }; + + watchdog { + compatible = "linux,wdt-gpio"; + pinctrl-0 = <&watchdog_pins>; + pinctrl-names = "default"; + gpios = <&tlmm 67 GPIO_ACTIVE_LOW>; + hw_algo = "toggle"; + hw_margin_ms = <2000>; + always-running; + }; + + /* + * +=========+==============+========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | | | | + * | | | | + * | | | | + * | Linux | 0x41000000 | 139MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | TZ App | 0x49B00000 | 6MB | + * +--------+--------------+-------------------------+ + * + * From the available 145 MB for Linux in the first 256 MB, + * we are reserving 6 MB for TZAPP. + * + * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi + * for memory layout. + */ + +/* TZAPP is enabled only in default memory profile */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) + reserved-memory { + tzapp:tzapp@49B00000 { /* TZAPPS */ + no-map; + reg = <0x0 0x49B00000 0x0 0x00600000>; + }; + }; +#endif +}; + +&tlmm { + uart_pins: uart_pins { + mux { + pins = "gpio44", "gpio45"; + function = "blsp2_uart"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + spi_0_pins: spi_0_pins { + mux { + pins = "gpio38", "gpio39", "gpio40", "gpio41"; + function = "blsp0_spi"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + button_pins: button_pins { + reset_button { + pins = "gpio24"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + mux_2 { + pins = "gpio75"; + function = "gpio"; + bias-pull-up; + }; + }; + + leds_pins: led_pinmux { + led_power_green { + pins = "gpio25"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_power_blue { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_power_red { + pins = "gpio37"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + watchdog_pins: watchdog_pinmux { + mux { + pins = "gpio67"; + function = "gpio"; + bias-none; + output-low; + }; + }; +}; + +&soc { + mdio@90000 { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 75 0>; + status = "ok"; + phy0: ethernet-phy@0 { + reg = <3>; + }; + phy1: ethernet-phy@1 { + reg = <4>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x08>; /* lan port bitmap */ + switch_wan_bmp = <0x10>; /* wan port bitmap */ + switch_inner_bmp = <0xc0>; /*inner port bitmap*/ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + qcom,port_phyinfo { + port@3 { + port_id = <3>; + phy_address = <4>; + }; + port@4 { + port_id = <4>; + phy_address = <3>; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <3>; + reg = <0x3a001400 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <4>; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <4>; + reg = <0x3a001600 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <3>; + phy-mode = "sgmii"; + }; +}; + +&blsp1_uart3 { + pinctrl-0 = <&uart_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&spi_0 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; +}; + +&qpic_bam { + status = "ok"; +}; + +&nss_crypto { + status = "ok"; +}; + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +&qseecom { + mem-start = <0x49B00000>; + mem-size = <0x600000>; + status = "ok"; +}; +#endif + +&wifi0 { + status = "okay"; + qcom,ath11k-calibration-variant = "PlasmaCloud-PAX1800"; +}; diff --git a/feeds/ipq807x/ipq807x/image/ipq60xx.mk b/feeds/ipq807x/ipq807x/image/ipq60xx.mk index 23057a99e..6ea87cb4e 100644 --- a/feeds/ipq807x/ipq807x/image/ipq60xx.mk +++ b/feeds/ipq807x/ipq807x/image/ipq60xx.mk @@ -1,5 +1,7 @@ KERNEL_LOADADDR := 0x41008000 +DEVICE_VARS += CE_TYPE + define Device/cig_wf188n DEVICE_TITLE := Cigtech WF-188n DEVICE_DTS := qcom-ipq6018-cig-wf188n @@ -88,3 +90,24 @@ define Device/yuncore_ax840 DEVICE_PACKAGES := ath11k-wifi-yuncore-ax840 uboot-env endef TARGET_DEVICES += yuncore_ax840 + +define Device/plasmacloud_common_64k + DEVICE_PACKAGES := uboot-envtools + CE_TYPE := + BLOCKSIZE := 64k + IMAGES := sysupgrade.tar factory.bin + IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=$$$$(CE_TYPE) + IMAGE/sysupgrade.tar := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata + KERNEL += | pad-to $$(BLOCKSIZE) +endef + +define Device/plasmacloud_pax1800-v2 + $(Device/plasmacloud_common_64k) + DEVICE_TITLE := Plasma Cloud PAX1800 v2 + DEVICE_DTS := qcom-ipq6018-pax1800-v2 + SUPPORTED_DEVICES := plasmacloud,pax1800-v2 + DEVICE_DTS_CONFIG := config@plasmacloud.pax1800v2 + CE_TYPE := PAX1800v2 + DEVICE_PACKAGES += ath11k-wifi-plasmacloud-pax1800 +endef +TARGET_DEVICES += plasmacloud_pax1800-v2 diff --git a/feeds/wifi-ax/ath11k-wifi/Makefile b/feeds/wifi-ax/ath11k-wifi/Makefile index a99ed5dc0..dfbe57053 100644 --- a/feeds/wifi-ax/ath11k-wifi/Makefile +++ b/feeds/wifi-ax/ath11k-wifi/Makefile @@ -36,6 +36,7 @@ ALLWIFIBOARDS:= \ sercomm-wallaby \ edgecore-eap102 \ edgecore-eap104 \ + plasmacloud-pax1800 \ wallys-dr6018 \ wallys-dr6018-v4 \ tplink-ex227 \ @@ -97,6 +98,11 @@ $(call Package/ath11k-wifi-default) TITLE:=motorola q14 bdf endef +define Package/ath11k-wifi-plasmacloud-pax1800 +$(call Package/ath11k-wifi-default) + TITLE:=plasmacloud-pax1800(-v2) bdf +endef + define ath11k-wifi-install-one-to $(INSTALL_DIR) $(2)/lib/firmware/$(3)/ $(INSTALL_DATA) $(1) $(2)/lib/firmware/$(3)/board.bin @@ -196,6 +202,11 @@ define Package/ath11k-wifi-motorola-q14/install $(INSTALL_DATA) ./board-2-motorol-q14.bin.QCN6122 $(1)/lib/firmware/ath11k/qcn6122/hw1.0/board-2.bin endef +define Package/ath11k-wifi-plasmacloud-pax1800/install + $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/ + $(INSTALL_DATA) ./board-plasmacloud-pax1800.bin.IPQ6018 $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin +endef + $(eval $(call generate-ath11k-wifi-package,cig-wf188,Cigtech WF188)) $(eval $(call generate-ath11k-wifi-package,cig-wf188n,Cigtech WF188n)) $(eval $(call generate-ath11k-wifi-package,cig-wf194c,Cigtech WF194c)) diff --git a/feeds/wifi-ax/ath11k-wifi/board-plasmacloud-pax1800.bin.IPQ6018 b/feeds/wifi-ax/ath11k-wifi/board-plasmacloud-pax1800.bin.IPQ6018 new file mode 100644 index 0000000000000000000000000000000000000000..fa392b08200cab7136b6070114e80c9b6a772699 GIT binary patch literal 197592 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 literal 0 HcmV?d00001 diff --git a/patches/ipq807x/0005-om-fwupgradecfg-gen-Add-support-for-Plasma-Cloud-PAX.patch b/patches/ipq807x/0005-om-fwupgradecfg-gen-Add-support-for-Plasma-Cloud-PAX.patch new file mode 100644 index 000000000..e0d197242 --- /dev/null +++ b/patches/ipq807x/0005-om-fwupgradecfg-gen-Add-support-for-Plasma-Cloud-PAX.patch @@ -0,0 +1,23 @@ +From: Sven Eckelmann +Date: Mon, 14 Mar 2022 15:23:40 +0100 +Subject: om-fwupgradecfg-gen: Add support for Plasma Cloud PAX1800 v2 + +Signed-off-by: Sven Eckelmann + +diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh +index bf7c047c5ba8e78ad4e43fa7edff2bb4bb3f4388..61617a0b772e1661a46f559380ffaf0b021c524d 100755 +--- a/scripts/om-fwupgradecfg-gen.sh ++++ b/scripts/om-fwupgradecfg-gen.sh +@@ -45,6 +45,12 @@ case $CE_TYPE in + SIZE_FACTOR=1024 + SIZE_FORMAT="0x%08x" + ;; ++ PAX1800v2) ++ MAX_PART_SIZE=28672 ++ KERNEL_FLASH_ADDR=0x3a0000 ++ SIZE_FACTOR=1024 ++ SIZE_FORMAT="0x%08x" ++ ;; + *) + echo "Error - unsupported ce type: $CE_TYPE" + exit 1 diff --git a/profiles/plasmacloud_pax1800-v2.yml b/profiles/plasmacloud_pax1800-v2.yml new file mode 100644 index 000000000..9e9eff638 --- /dev/null +++ b/profiles/plasmacloud_pax1800-v2.yml @@ -0,0 +1,13 @@ +profile: plasmacloud_pax1800-v2 +target: ipq807x +subtarget: ipq60xx +description: Build image for the Plasma Cloud PAX1800 v2 +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-plasmacloud_pax1800-v2-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap-light +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512