ath79: add support for MikroTik RouterBOARD 922UAGS-5HPacD
This patch ports support for the MikroTik RouterBOARD 922UAGS-5HPacD with a built-in 802.11ac High-Power radio (31dBm), which was already available in the ar71xx target. See https://mikrotik.com/product/RB922UAGS-5HPacD for more info. Specifications: - SoC: Qualcomm Atheros QCA9558 (720 MHz) - RAM: 128 MB - Storage: 128 MB NAND - Wireless: external QCA9882 802.11a/ac 2x2:2 - Ethernet: 1x 1000/100/10 Mbps, integrated, via AR8031 PHY, passive PoE-in 24V - SFP: 1x host - USB: 1x 2.0 type A - PCIe: 1x Mini slot (also contains USB 2.0 for 3G/LTE modems) - SIM slot: 1x mini-SIM Working: - Board/system detection - SPI and NAND storage - PCIe - USB type A host - Wireless - Ethernet - LEDs (user, phy0) - Reset button - Sysupgrade to/from ar71xx Not supported: - RSSI LEDs - SFP cage Installation methods: - Sysupgrade from ar71xx (it is advisable to use the -n option to wipe any previous settings), or - Boot the initramfs image via TFTP and then flash the sysupgrade image using "sysupgrade -n" Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
This commit is contained in:
		 Roger Pueyo Centelles
					Roger Pueyo Centelles
				
			
				
					committed by
					
						 Koen Vandeputte
						Koen Vandeputte
					
				
			
			
				
	
			
			
			 Koen Vandeputte
						Koen Vandeputte
					
				
			
						parent
						
							c81b2e94c7
						
					
				
				
					commit
					8f93c05a59
				
			| @@ -0,0 +1,187 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  |  | ||||||
|  | #include "qca9557.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "mikrotik,routerboard-922uags-5hpacd", "qca,qca9558"; | ||||||
|  | 	model = "MikroTik RouterBOARD 922UAGS-5HPacD"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		label-mac-device = ð0; | ||||||
|  | 		led-boot = &led_user; | ||||||
|  | 		led-failsafe = &led_user; | ||||||
|  | 		led-upgrade = &led_user; | ||||||
|  | 		serial0 = &uart; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		bootargs = "console=ttyS0,115200n8"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_user: user { | ||||||
|  | 			label = "mikrotik:green:user"; | ||||||
|  | 			gpios = <&gpio 12 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	ath10k-leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		wlan5g { | ||||||
|  | 			label = "mikrotik:green:wlan5g"; | ||||||
|  | 			gpios = <&ath10k 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,default-trigger = "phy0tpt"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 			gpios = <&gpio 20 GPIO_ACTIVE_LOW>; | ||||||
|  | 			debounce-interval = <60>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio-export { | ||||||
|  | 		compatible = "gpio-export"; | ||||||
|  |  | ||||||
|  | 		gpio_usb_power { | ||||||
|  | 			gpio-export,name = "mikrotik:power:usb"; | ||||||
|  | 			gpio-export,output = <0>; | ||||||
|  | 			gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		gpio_nand_power { | ||||||
|  | 			gpio-export,name = "mikrotik:power:nand"; | ||||||
|  | 			gpio-export,output = <0>; | ||||||
|  | 			gpios = <&gpio 23 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	phy4: ethernet-phy@4 { | ||||||
|  | 		reg = <4>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	mtd-mac-address = <&art 0x10>; | ||||||
|  | 	phy-handle = <&phy4>; | ||||||
|  | 	pll-data = <0x8f000000 0xa0000101 0xa0001313>; | ||||||
|  |  | ||||||
|  | 	gmac-config { | ||||||
|  | 		device = <&gmac>; | ||||||
|  | 		rgmii-enabled = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <25000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "routerboot"; | ||||||
|  | 				reg = <0x0000000 0x000c000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			art: partition@c000 { | ||||||
|  | 				label = "art"; | ||||||
|  | 				reg = <0x000c000 0x0001000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@d000 { | ||||||
|  | 				label = "bios"; | ||||||
|  | 				reg = <0x000d000 0x0001000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@e000 { | ||||||
|  | 				label = "soft_config"; | ||||||
|  | 				reg = <0x000e000 0x0001000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &nand { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	nand-ecc-mode = "soft"; | ||||||
|  | 	qca,nand-swap-dma; | ||||||
|  | 	qca,nand-scan-fixup; | ||||||
|  |  | ||||||
|  | 	partitions { | ||||||
|  | 		compatible = "fixed-partitions"; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 		partition@0 { | ||||||
|  | 			label = "booter"; | ||||||
|  | 			reg = <0x0000000 0x0040000>; | ||||||
|  | 			read-only; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		partition@40000 { | ||||||
|  | 			label = "kernel"; | ||||||
|  | 			reg = <0x0040000 0x03c0000>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		partition@400000 { | ||||||
|  | 			label = "ubi"; | ||||||
|  | 			reg = <0x0400000 0x7c00000>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	ath10k: wifi@0,0 { | ||||||
|  | 		compatible = "qcom,ath10k"; | ||||||
|  | 		reg = <0 0 0 0 0>; | ||||||
|  | 		#gpio-cells = <2>; | ||||||
|  | 		gpio-controller; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb_phy0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | include ./common-mikrotik.mk | ||||||
| include ./common-netgear.mk	# for netgear-uImage | include ./common-netgear.mk	# for netgear-uImage | ||||||
|  |  | ||||||
| # attention: only zlib compression is allowed for the boot fs | # attention: only zlib compression is allowed for the boot fs | ||||||
| @@ -110,6 +111,19 @@ define Device/glinet_gl-ar750s-nor | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += glinet_gl-ar750s-nor | TARGET_DEVICES += glinet_gl-ar750s-nor | ||||||
|  |  | ||||||
|  | define Device/mikrotik_routerboard-922uags-5hpacd | ||||||
|  |   $(Device/mikrotik) | ||||||
|  |   SOC := qca9558 | ||||||
|  |   DEVICE_MODEL := RouterBOARD 922UAGS-5HPacD | ||||||
|  |   BOARD_NAME := routerboard | ||||||
|  |   IMAGE/sysupgrade.bin = append-kernel | kernel2minor -s 2048 -e -c | \ | ||||||
|  | 	sysupgrade-tar kernel=$$$$@ | append-metadata | ||||||
|  |   DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct \ | ||||||
|  | 	kmod-usb2 nand-utils | ||||||
|  |   SUPPORTED_DEVICES += rb-922uags-5hpacd | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd | ||||||
|  |  | ||||||
| # fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff) | # fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff) | ||||||
| define Device/netgear_ath79_nand | define Device/netgear_ath79_nand | ||||||
|   DEVICE_VENDOR := NETGEAR |   DEVICE_VENDOR := NETGEAR | ||||||
|   | |||||||
| @@ -8,7 +8,8 @@ ath79_setup_interfaces() | |||||||
| 	local board="$1" | 	local board="$1" | ||||||
|  |  | ||||||
| 	case "$board" in | 	case "$board" in | ||||||
| 	aerohive,hiveap-121) | 	aerohive,hiveap-121|\ | ||||||
|  | 	mikrotik,routerboard-922uags-5hpacd) | ||||||
| 		ucidef_set_interface_lan "eth0" | 		ucidef_set_interface_lan "eth0" | ||||||
| 		;; | 		;; | ||||||
| 	glinet,gl-ar750s-nor|\ | 	glinet,gl-ar750s-nor|\ | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ | |||||||
| [ -e /lib/firmware/$FIRMWARE ] && exit 0 | [ -e /lib/firmware/$FIRMWARE ] && exit 0 | ||||||
|  |  | ||||||
| . /lib/functions/caldata.sh | . /lib/functions/caldata.sh | ||||||
|  | . /lib/functions/mikrotik-caldata.sh | ||||||
|  |  | ||||||
| board=$(board_name) | board=$(board_name) | ||||||
|  |  | ||||||
| @@ -20,6 +21,13 @@ case "$FIRMWARE" in | |||||||
| 		;; | 		;; | ||||||
| 	esac | 	esac | ||||||
| 	;; | 	;; | ||||||
|  | "ath10k/cal-pci-0000:01:00.0.bin") | ||||||
|  | 	case $board in | ||||||
|  | 	mikrotik,routerboard-922uags-5hpacd) | ||||||
|  | 		mikrotik_caldata_extract "art" 0x5000 0x844 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
| *) | *) | ||||||
| 	exit 1 | 	exit 1 | ||||||
| 	;; | 	;; | ||||||
|   | |||||||
| @@ -0,0 +1,17 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . /lib/functions.sh | ||||||
|  | . /lib/functions/migrations.sh | ||||||
|  |  | ||||||
|  | board=$(board_name) | ||||||
|  | boardonly="${board##*,}" | ||||||
|  |  | ||||||
|  | case "$board" in | ||||||
|  | mikrotik,*) | ||||||
|  | 	migrate_leds "^rb:=mikrotik:" | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
|  |  | ||||||
|  | migrations_apply system | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
| @@ -7,13 +7,27 @@ platform_check_image() { | |||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
|  |  | ||||||
| RAMFS_COPY_BIN='fw_printenv fw_setenv' | RAMFS_COPY_BIN='fw_printenv fw_setenv nandwrite' | ||||||
| RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' | RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' | ||||||
|  |  | ||||||
|  | platform_do_upgrade_mikrotik_nand() { | ||||||
|  | 	CI_KERNPART=none | ||||||
|  | 	local fw_mtd=$(find_mtd_part kernel) | ||||||
|  | 	fw_mtd="${fw_mtd/block/}" | ||||||
|  | 	[ -n "$fw_mtd" ] || return | ||||||
|  | 	mtd erase kernel | ||||||
|  | 	tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" - | ||||||
|  |  | ||||||
|  | 	nand_do_upgrade "$1" | ||||||
|  | } | ||||||
|  |  | ||||||
| platform_do_upgrade() { | platform_do_upgrade() { | ||||||
| 	local board=$(board_name) | 	local board=$(board_name) | ||||||
|  |  | ||||||
| 	case "$board" in | 	case "$board" in | ||||||
|  | 	mikrotik,routerboard-922uags-5hpacd) | ||||||
|  | 		platform_do_upgrade_mikrotik_nand "$1" | ||||||
|  | 		;; | ||||||
| 	glinet,gl-ar300m-nand|\ | 	glinet,gl-ar300m-nand|\ | ||||||
| 	glinet,gl-ar300m-nor) | 	glinet,gl-ar300m-nor) | ||||||
| 		glinet_nand_nor_do_upgrade "$1" | 		glinet_nand_nor_do_upgrade "$1" | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ CONFIG_MTD_NAND_AR934X=y | |||||||
| CONFIG_MTD_NAND_CORE=y | CONFIG_MTD_NAND_CORE=y | ||||||
| CONFIG_MTD_NAND_ECC=y | CONFIG_MTD_NAND_ECC=y | ||||||
| CONFIG_MTD_SPI_NAND=y | CONFIG_MTD_SPI_NAND=y | ||||||
|  | CONFIG_MTD_SPLIT_MINOR_FW=y | ||||||
| CONFIG_MTD_UBI=y | CONFIG_MTD_UBI=y | ||||||
| CONFIG_MTD_UBI_BLOCK=y | CONFIG_MTD_UBI_BLOCK=y | ||||||
| CONFIG_MTD_UBI_WL_THRESHOLD=4096 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| BOARDNAME := Generic devices with NAND flash | BOARDNAME := Generic devices with NAND flash | ||||||
|  |  | ||||||
| FEATURES += squashfs nand | FEATURES += squashfs nand minor | ||||||
|  |  | ||||||
| DEFAULT_PACKAGES += wpad-basic | DEFAULT_PACKAGES += wpad-basic | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user