mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 06:08:08 +00:00
e24635710c
Luma Home WRTQ-329ACN, also known as Luma WiFi System, is a dual-band
wireless access point.
Specification
SoC: Qualcomm Atheros IPQ4018
RAM: 256 MB DDR3
Flash: 2 MB SPI NOR
128 MB SPI NAND
WIFI: 2.4 GHz 2T2R integrated
5 GHz 2T2R integrated
Ethernet: 2x 10/100/1000 Mbps QCA8075
USB: 1x 2.0
Bluetooth: 1x 4.0 CSR8510 A10, connected to USB bus
LEDS: 16x multicolor LEDs ring, controlled by MSP430G2403 MCU
Buttons: 1x GPIO controlled
EEPROM: 16 Kbit, compatible with AT24C16
UART: row of 4 holes marked on PCB as J19, starting count from the side
of J19 marking on PCB
1. GND, 2. RX, 3. TX, 4. 3.3V
baud: 115200, parity: none, flow control: none
The device supports OTA or USB flash drive updates, unfotunately they
are signed. Until the signing key is known, the UART access is mandatory
for installation. The difficult part is disassembling the casing, there
are a lot of latches holding it together.
Teardown
Prepare three thin, but sturdy, prying tools. Place the device with back
of it facing upwards. Start with the wall having a small notch. Insert
first tool, until You'll feel resistance and keep it there. Repeat the
procedure for neighbouring walls. With applying a pressure, one edge of
the back cover should pop up. Now carefully slide one of the tools to
free the rest of the latches.
There's no need to solder pins to the UART holes, You can use hook clips,
but wiring them outside the casing, will ease debuging and recovery if
problems occur.
Installation
1. Prepare TFTP server with OpenWrt initramfs image.
2. Connect to UART port (don't connect the voltage pin).
3. Connect to LAN port.
4. Power on the device, carefully observe the console output and when
asked quickly enter the failsafe mode.
5. Invoke 'mount_root'.
6. After the overlayfs is mounted run:
fw_setenv bootdelay 3
This will allow to access U-Boot shell.
7. Reboot the device and when prompted to stop autoboot, hit any key.
8. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use
'setenv' to do that, then run following commands:
tftpboot 0x84000000 <openwrt_initramfs_image_name>
bootm 0x84000000
and wait till OpenWrt boots.
9. In OpenWrt command line run following commands:
fw_setenv openwrt "setenv mtdids nand1=spi_nand; setenv mtdparts mtdparts=spi_nand:-(ubi); ubi part ubi; ubi read 0x84000000 kernel; bootm 0x84000000"
fw_setenv bootcmd "run openwrt"
10. Transfer OpenWrt sysupgrade image to /tmp directory and flash it
with:
ubirmvol /dev/ubi0 -N ubi_rootfs
sysupgrade -v -n /tmp/<openwrt_sysupgrade_image_name>
11. After flashing, the access point will reboot to OpenWrt, then it's
ready for configuration.
Reverting to OEM firmware
1. Execute installation guide steps: 1, 2, 3, 7, 8.
2. In OpenWrt command line run following commands:
ubirmvol /dev/ubi0 -N rootfs_data
ubirmvol /dev/ubi0 -N rootfs
ubirmvol /dev/ubi0 -N kernel
ubirename /dev/ubi0 kernel1 kernel ubi_rootfs1 ubi_rootfs
ubimkvol /dev/ubi0 -S 34 -N kernel1
ubimkvol /dev/ubi0 -S 320 -N ubi_rootfs1
ubimkvol /dev/ubi0 -S 264 -N rootfs_data
fw_setenv bootcmd bootipq
3. Reboot.
Known issues
The LEDs ring doesn't have any dedicated driver or application to control
it, the only available option atm is to manipulate it with 'i2cset'
command. The default action after applying power to device is spinning
blue light. This light will stay active at all time. To disable it
install 'i2c-tools' with opkg and run:
i2cset -y 2 0x48 3 1 0 0 i
The light will stay off until next cold boot.
Additional information
After completing 5. step from installation guide, one can disable asking
for root password on OEM firmware by running:
sed -e 's/root❌/root::/' -i /etc/passwd
This is useful for investigating the OEM firmware. One can look
at the communication between the stock firmware and the vendor's
cloud servers or as a way of making a backup of both flash chips.
The root password seems to be constant across all sold devices.
This is output of 'led_ctl' from OEM firmware to illustrate
possibilities of LEDs ring:
Usage: led_ctl [status | upgrade | force_upgrade | version]
led_ctl solid COLOR <brightness>
led_ctl single COLOR INDEX <brightness 0 - 15>
led_ctl spinning COLOR <period 1 - 16 (lower = faster)>
led_ctl fill COLOR <period 1 - 16 (lower = faster)>
( default is 5 )
led_ctl flashing COLOR <on dur 1 - 128> <off dur 1 - 128>
(default is 34) ( default is 34 )
led_ctl pulsing COLOR
COLOR: red, green, blue, yellow, purple, cyan, white
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
[squash "ipq-wifi: add BDFs for Luma Home WRTQ-329ACN" into commit,
changed ubi volumes for easier integration, slightly reworded
commit message, changed ubi volume layout to use standard names all
around]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
743 lines
22 KiB
Makefile
743 lines
22 KiB
Makefile
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/image.mk
|
|
|
|
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
|
|
DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION
|
|
DEVICE_VARS += WRGG_DEVNAME WRGG_SIGNATURE
|
|
|
|
define Device/Default
|
|
PROFILES := Default
|
|
KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
|
|
KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
|
|
KERNEL_PREFIX := $$(IMAGE_PREFIX)
|
|
KERNEL_LOADADDR := 0x80208000
|
|
DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
|
|
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
|
|
IMAGE/sysupgrade.bin/squashfs :=
|
|
endef
|
|
|
|
define Device/FitImage
|
|
KERNEL_SUFFIX := -fit-uImage.itb
|
|
KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
|
KERNEL_NAME := Image
|
|
endef
|
|
|
|
define Device/FitImageLzma
|
|
KERNEL_SUFFIX := -fit-uImage.itb
|
|
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
|
KERNEL_NAME := Image
|
|
endef
|
|
|
|
define Device/FitzImage
|
|
KERNEL_SUFFIX := -fit-zImage.itb
|
|
KERNEL = kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
|
KERNEL_NAME := zImage
|
|
endef
|
|
|
|
define Device/UbiFit
|
|
KERNEL_IN_UBI := 1
|
|
IMAGES := nand-factory.ubi nand-sysupgrade.bin
|
|
IMAGE/nand-factory.ubi := append-ubi
|
|
IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
endef
|
|
|
|
define Device/DniImage
|
|
$(call Device/FitzImage)
|
|
NETGEAR_BOARD_ID :=
|
|
NETGEAR_HW_ID :=
|
|
IMAGES += factory.img
|
|
IMAGE/factory.img := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | append-rootfs | pad-rootfs | netgear-dni
|
|
IMAGE/sysupgrade.bin := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
|
|
append-rootfs | pad-rootfs | append-metadata | check-size
|
|
endef
|
|
|
|
define Build/append-rootfshdr
|
|
mkimage -A $(LINUX_KARCH) \
|
|
-O linux -T filesystem \
|
|
-C lzma -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
|
-n root.squashfs -d $(IMAGE_ROOTFS) $@.new
|
|
dd if=$@.new bs=64 count=1 >> $(IMAGE_KERNEL)
|
|
endef
|
|
|
|
define Build/mkmylofw_32m
|
|
$(eval device_id=$(word 1,$(1)))
|
|
$(eval revision=$(word 2,$(1)))
|
|
|
|
let \
|
|
size="$$(stat -c%s $@)" \
|
|
pad="$(subst k,* 1024,$(BLOCKSIZE))" \
|
|
pad="(pad - (size % pad)) % pad" \
|
|
newsize='size + pad'; \
|
|
$(STAGING_DIR_HOST)/bin/mkmylofw \
|
|
-B WPE72 -i 0x11f6:$(device_id):0x11f6:$(device_id) -r $(revision) \
|
|
-s 0x2000000 -p0x180000:$$newsize:al:0x80208000:"OpenWrt":$@ \
|
|
$@.new
|
|
@mv $@.new $@
|
|
endef
|
|
|
|
define Build/qsdk-ipq-factory-nand-askey
|
|
$(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh $@.its\
|
|
askey_kernel $(IMAGE_KERNEL) \
|
|
askey_fs $(IMAGE_ROOTFS) \
|
|
ubifs $@
|
|
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
|
@mv $@.new $@
|
|
endef
|
|
|
|
define Build/SenaoFW
|
|
-$(STAGING_DIR_HOST)/bin/mksenaofw \
|
|
-n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \
|
|
-c $(DATECODE) -w $(2) -x $(CW_VER) -t 0 \
|
|
-e $@ \
|
|
-o $@.new
|
|
@cp $@.new $@
|
|
endef
|
|
|
|
define Build/wrgg-image
|
|
mkwrggimg -i $@ \
|
|
-o $@.new \
|
|
-d "$(WRGG_DEVNAME)" \
|
|
-s "$(WRGG_SIGNATURE)" \
|
|
-v "" -m "" -B ""
|
|
mv $@.new $@
|
|
endef
|
|
|
|
define Device/8dev_habanero-dvk
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := 8devices
|
|
DEVICE_MODEL := Habanero DVK
|
|
IMAGE_SIZE := 30976k
|
|
SOC := qcom-ipq4019
|
|
DEVICE_PACKAGES := ipq-wifi-8dev_habanero-dvk
|
|
IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | append-rootfs | pad-rootfs | append-metadata | check-size
|
|
endef
|
|
TARGET_DEVICES += 8dev_habanero-dvk
|
|
|
|
define Device/8dev_jalapeno-common
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
SOC := qcom-ipq4018
|
|
endef
|
|
|
|
define Device/8dev_jalapeno
|
|
$(call Device/8dev_jalapeno-common)
|
|
DEVICE_VENDOR := 8devices
|
|
DEVICE_MODEL := Jalapeno
|
|
endef
|
|
TARGET_DEVICES += 8dev_jalapeno
|
|
|
|
define Device/alfa-network_ap120c-ac
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := ALFA Network
|
|
DEVICE_MODEL := AP120C-AC
|
|
SOC := qcom-ipq4018
|
|
DEVICE_PACKAGES := kmod-usb-acm \
|
|
kmod-tpm-i2c-atmel uboot-envtools
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
IMAGE_SIZE := 65536k
|
|
IMAGES := nand-factory.bin nand-sysupgrade.bin
|
|
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
|
endef
|
|
TARGET_DEVICES += alfa-network_ap120c-ac
|
|
|
|
define Device/aruba_glenmorangie
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := Aruba
|
|
SOC := qcom-ipq4029
|
|
DEVICE_PACKAGES := ipq-wifi-aruba_ap-303
|
|
endef
|
|
|
|
define Device/aruba_ap-303
|
|
$(call Device/aruba_glenmorangie)
|
|
DEVICE_MODEL := AP-303
|
|
endef
|
|
TARGET_DEVICES += aruba_ap-303
|
|
|
|
define Device/aruba_ap-303h
|
|
$(call Device/aruba_glenmorangie)
|
|
DEVICE_MODEL := AP-303H
|
|
endef
|
|
TARGET_DEVICES += aruba_ap-303h
|
|
|
|
define Device/aruba_ap-365
|
|
$(call Device/aruba_glenmorangie)
|
|
DEVICE_MODEL := AP-365
|
|
DEVICE_PACKAGES += kmod-hwmon-ad7418
|
|
endef
|
|
TARGET_DEVICES += aruba_ap-365
|
|
|
|
define Device/asus_map-ac2200
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := ASUS
|
|
DEVICE_MODEL := Lyra (MAP-AC2200)
|
|
SOC := qcom-ipq4019
|
|
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-ath3k
|
|
endef
|
|
TARGET_DEVICES += asus_map-ac2200
|
|
|
|
define Device/asus_rt-ac58u
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := ASUS
|
|
DEVICE_MODEL := RT-AC58U
|
|
SOC := qcom-ipq4018
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DTB_SIZE := 65536
|
|
IMAGE_SIZE := 20439364
|
|
FILESYSTEMS := squashfs
|
|
# Someone - in their infinite wisdom - decided to put the firmware
|
|
# version in front of the image name \03\00\00\04 => Version 3.0.0.4
|
|
# Since u-boot works with strings we either need another fixup step
|
|
# to add a version... or we are very careful not to add '\0' into that
|
|
# string and call it a day.... Yeah, we do the latter!
|
|
UIMAGE_NAME:=$(shell echo -e '\03\01\01\01RT-AC58U')
|
|
DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers \
|
|
kmod-usb-ledtrig-usbport
|
|
endef
|
|
TARGET_DEVICES += asus_rt-ac58u
|
|
|
|
define Device/avm_fritzbox-4040
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := AVM
|
|
DEVICE_MODEL := FRITZ!Box 4040
|
|
SOC := qcom-ipq4018
|
|
BOARD_NAME := fritz4040
|
|
IMAGE_SIZE := 29056k
|
|
UBOOT_PATH := $(STAGING_DIR_IMAGE)/uboot-fritz4040.bin
|
|
UBOOT_PARTITION_SIZE := 524288
|
|
IMAGES += eva.bin
|
|
IMAGE/eva.bin := append-uboot | pad-to $$$$(UBOOT_PARTITION_SIZE) | append-kernel | append-rootfs | pad-rootfs
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size
|
|
DEVICE_PACKAGES := fritz-tffs fritz-caldata
|
|
endef
|
|
TARGET_DEVICES += avm_fritzbox-4040
|
|
|
|
define Device/avm_fritzbox-7530
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := AVM
|
|
DEVICE_MODEL := FRITZ!Box 7530
|
|
SOC := qcom-ipq4019
|
|
DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand
|
|
endef
|
|
TARGET_DEVICES += avm_fritzbox-7530
|
|
|
|
define Device/avm_fritzrepeater-1200
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := AVM
|
|
DEVICE_MODEL := FRITZ!Repeater 1200
|
|
SOC := qcom-ipq4019
|
|
DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand ipq-wifi-avm_fritzrepeater-1200
|
|
endef
|
|
TARGET_DEVICES += avm_fritzrepeater-1200
|
|
|
|
define Device/avm_fritzrepeater-3000
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := AVM
|
|
DEVICE_MODEL := FRITZ!Repeater 3000
|
|
SOC := qcom-ipq4019
|
|
DEVICE_PACKAGES := ath10k-firmware-qca9984-ct fritz-caldata fritz-tffs-nand
|
|
endef
|
|
TARGET_DEVICES += avm_fritzrepeater-3000
|
|
|
|
define Device/buffalo_wtr-m2133hp
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := Buffalo
|
|
DEVICE_MODEL := WTR-M2133HP
|
|
SOC := qcom-ipq4019
|
|
DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9984-ct ipq-wifi-buffalo_wtr-m2133hp
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
endef
|
|
TARGET_DEVICES += buffalo_wtr-m2133hp
|
|
|
|
define Device/cellc_rtl30vw
|
|
KERNEL_SUFFIX := -fit-uImage.itb
|
|
KERNEL_INITRAMFS = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
|
KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb | uImage lzma | pad-to 2048
|
|
KERNEL_NAME := Image
|
|
KERNEL_IN_UBI :=
|
|
IMAGES := nand-factory.bin nand-sysupgrade.bin
|
|
IMAGE/nand-factory.bin := append-rootfshdr | append-ubi | qsdk-ipq-factory-nand-askey
|
|
IMAGE/nand-sysupgrade.bin := append-rootfshdr | sysupgrade-tar | append-metadata
|
|
DEVICE_VENDOR := Cell C
|
|
DEVICE_MODEL := RTL30VW
|
|
SOC := qcom-ipq4019
|
|
DEVICE_DTS_CONFIG := config@5
|
|
KERNEL_INSTALL := 1
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 57344k
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DEVICE_PACKAGES := kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi ipq-wifi-cellc_rtl30vw
|
|
endef
|
|
TARGET_DEVICES += cellc_rtl30vw
|
|
|
|
define Device/cilab_meshpoint-one
|
|
$(call Device/8dev_jalapeno-common)
|
|
DEVICE_VENDOR := Crisis Innovation Lab
|
|
DEVICE_MODEL := MeshPoint.One
|
|
DEVICE_PACKAGES := kmod-i2c-gpio kmod-iio-bmp280-i2c kmod-hwmon-ina2xx kmod-rtc-pcf2127
|
|
endef
|
|
TARGET_DEVICES += cilab_meshpoint-one
|
|
|
|
define Device/compex_wpj419
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := Compex
|
|
DEVICE_MODEL := WPJ419
|
|
SOC := qcom-ipq4019
|
|
DEVICE_DTS_CONFIG := config@12
|
|
KERNEL_INSTALL := 1
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
FILESYSTEMS := squashfs
|
|
endef
|
|
TARGET_DEVICES += compex_wpj419
|
|
|
|
define Device/compex_wpj428
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := Compex
|
|
DEVICE_MODEL := WPJ428
|
|
SOC := qcom-ipq4028
|
|
DEVICE_DTS_CONFIG := config@4
|
|
BLOCKSIZE := 64k
|
|
IMAGE_SIZE := 31232k
|
|
KERNEL_SIZE := 4096k
|
|
IMAGES += cpximg-6a04.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
IMAGE/cpximg-6a04.bin := append-kernel | append-rootfs | pad-rootfs | mkmylofw_32m 0x8A2 3
|
|
DEVICE_PACKAGES := kmod-gpio-beeper
|
|
endef
|
|
TARGET_DEVICES += compex_wpj428
|
|
|
|
define Device/dlink_dap-2610
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := D-Link
|
|
DEVICE_MODEL := DAP-2610
|
|
SOC := qcom-ipq4018
|
|
DEVICE_DTS_CONFIG := config@ap.dk01.1-c1
|
|
BLOCKSIZE := 64k
|
|
WRGG_DEVNAME := /dev/mtdblock/8
|
|
WRGG_SIGNATURE := wapac30_dkbs_dap2610
|
|
IMAGE_SIZE := 14080k
|
|
IMAGES += factory.bin
|
|
# Bootloader expects a special 160 byte header which is added by
|
|
# wrgg-image.
|
|
# Factory image size must be larger than 6MB, and size in wrgg header must
|
|
# match actual factory image size to be flashable from D-Link http server.
|
|
# Bootloader verifies checksum of wrgg image before booting, thus jffs2
|
|
# cannot be part of the wrgg image. This is solved in the factory image by
|
|
# having the rootfs at the end of the image (without pad-rootfs). And in
|
|
# the sysupgrade image only the kernel is included in the wrgg checksum,
|
|
# but this is not flashable from the D-link http server.
|
|
# append-rootfs must start on an erase block boundary.
|
|
IMAGE/factory.bin := append-kernel | pad-offset 6144k 160 | append-rootfs | wrgg-image | check-size
|
|
IMAGE/sysupgrade.bin := append-kernel | wrgg-image | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size | append-metadata
|
|
DEVICE_PACKAGES := ipq-wifi-dlink_dap2610
|
|
endef
|
|
TARGET_DEVICES += dlink_dap-2610
|
|
|
|
define Device/edgecore_ecw5211
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_TITLE := Edgecore ECW5211
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DEVICE_DTS_CONFIG := config@ap.dk01.1-c2
|
|
DEVICE_DTS := qcom-ipq4018-ecw5211
|
|
DEVICE_PACKAGES := ipq-wifi-edgecore_ecw5211 kmod-tpm-i2c-atmel kmod-usb-acm uboot-envtools
|
|
endef
|
|
TARGET_DEVICES += edgecore_ecw5211
|
|
|
|
define Device/edgecore_oap100
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_TITLE := Edgecore OAP100
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
IMAGES := nand-sysupgrade.bin
|
|
DEVICE_DTS_CONFIG := config@ap.dk07.1-c1
|
|
DEVICE_DTS := qcom-ipq4019-oap100
|
|
DEVICE_PACKAGES := ipq-wifi-edgecore_oap100 kmod-usb-acm kmod-usb-net kmod-usb-net-cdc-qmi uqmi
|
|
endef
|
|
TARGET_DEVICES += edgecore_oap100
|
|
|
|
define Device/engenius_eap1300
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := EnGenius
|
|
DEVICE_MODEL := EAP1300
|
|
DEVICE_DTS_CONFIG := config@4
|
|
BOARD_NAME := eap1300
|
|
SOC := qcom-ipq4018
|
|
KERNEL_SIZE := 5120k
|
|
IMAGE_SIZE := 25344k
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
endef
|
|
TARGET_DEVICES += engenius_eap1300
|
|
|
|
define Device/engenius_eap2200
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := EnGenius
|
|
DEVICE_MODEL := EAP2200
|
|
SOC := qcom-ipq4019
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-engenius_eap2200 -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers
|
|
endef
|
|
TARGET_DEVICES += engenius_eap2200
|
|
|
|
define Device/engenius_emd1
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := EnGenius
|
|
DEVICE_MODEL := EMD1
|
|
DEVICE_DTS_CONFIG := config@4
|
|
SOC := qcom-ipq4018
|
|
IMAGE_SIZE := 30720k
|
|
IMAGES += factory.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
IMAGE/factory.bin := qsdk-ipq-factory-nor | check-size
|
|
endef
|
|
TARGET_DEVICES += engenius_emd1
|
|
|
|
define Device/engenius_emr3500
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := EnGenius
|
|
DEVICE_MODEL := EMR3500
|
|
DEVICE_DTS_CONFIG := config@4
|
|
SOC := qcom-ipq4018
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 30720k
|
|
IMAGES += factory.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
IMAGE/factory.bin := qsdk-ipq-factory-nor | check-size
|
|
endef
|
|
TARGET_DEVICES += engenius_emr3500
|
|
|
|
define Device/engenius_ens620ext
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := EnGenius
|
|
DEVICE_MODEL := ENS620EXT
|
|
SOC := qcom-ipq4018
|
|
DEVICE_DTS_CONFIG := config@4
|
|
BLOCKSIZE := 64k
|
|
PAGESIZE := 256
|
|
BOARD_NAME := ENS620EXT
|
|
VENDOR_ID := 0x0101
|
|
PRODUCT_ID := 0x79
|
|
PRODUCT_ID_NEW := 0xA4
|
|
DATECODE := 190507
|
|
FW_VER := 3.1.2
|
|
FW_VER_NEW := 3.5.6
|
|
CW_VER := 1.8.99
|
|
IMAGE_SIZE := 21312k
|
|
KERNEL_SIZE := 5120k
|
|
FILESYSTEMS := squashfs
|
|
IMAGES += factory_30.bin factory_35.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | check-size | append-metadata
|
|
IMAGE/factory_30.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size | SenaoFW $$$$(PRODUCT_ID) $$$$(FW_VER)
|
|
IMAGE/factory_35.bin := qsdk-ipq-factory-nor | check-size | SenaoFW $$$$(PRODUCT_ID_NEW) $$$$(FW_VER_NEW)
|
|
endef
|
|
TARGET_DEVICES += engenius_ens620ext
|
|
|
|
define Device/ezviz_cs-w3-wd1200g-eup
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := EZVIZ
|
|
DEVICE_MODEL := CS-W3-WD1200G
|
|
DEVICE_VARIANT := EUP
|
|
DEVICE_DTS_CONFIG := config@4
|
|
IMAGE_SIZE := 14848k
|
|
SOC := qcom-ipq4018
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \
|
|
append-metadata
|
|
DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers \
|
|
ipq-wifi-ezviz_cs-w3-wd1200g-eup
|
|
endef
|
|
TARGET_DEVICES += ezviz_cs-w3-wd1200g-eup
|
|
|
|
define Device/glinet_gl-b1300
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := GL.iNet
|
|
DEVICE_MODEL := GL-B1300
|
|
BOARD_NAME := gl-b1300
|
|
SOC := qcom-ipq4029
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 26624k
|
|
IMAGE/sysupgrade.bin := append-kernel |append-rootfs | pad-rootfs | append-metadata
|
|
endef
|
|
TARGET_DEVICES += glinet_gl-b1300
|
|
|
|
define Device/glinet_gl-s1300
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := GL.iNet
|
|
DEVICE_MODEL := GL-S1300
|
|
SOC := qcom-ipq4029
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 26624k
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
DEVICE_PACKAGES := ipq-wifi-glinet_gl-s1300 kmod-fs-ext4 kmod-mmc kmod-spi-dev
|
|
endef
|
|
TARGET_DEVICES += glinet_gl-s1300
|
|
|
|
define Device/linksys_ea6350v3
|
|
# The Linksys EA6350v3 has a uboot bootloader that does not
|
|
# support either booting lzma kernel images nor booting UBI
|
|
# partitions. This uboot, however, supports raw kernel images and
|
|
# gzipped images.
|
|
#
|
|
# As for the time of writing this, the device will boot the kernel
|
|
# from a fixed address with a fixed length of 3MiB. Also, the
|
|
# device has a hard-coded kernel command line that requieres the
|
|
# rootfs and alt_rootfs to be in mtd11 and mtd13 respectively.
|
|
# Oh... and the kernel partition overlaps with the rootfs
|
|
# partition (the same for alt_kernel and alt_rootfs).
|
|
#
|
|
# If you are planing re-partitioning the device, you may want to
|
|
# keep those details in mind:
|
|
# 1. The kernel adresses you should honor are 0x00000000 and
|
|
# 0x02800000 respectively.
|
|
# 2. The kernel size (plus the dtb) cannot exceed 3.00MiB in size.
|
|
# 3. You can use 'zImage', but not a raw 'Image' packed with lzma.
|
|
# 4. The kernel command line from uboot is harcoded to boot with
|
|
# rootfs either in mtd11 or mtd13.
|
|
$(call Device/FitzImage)
|
|
DEVICE_VENDOR := Linksys
|
|
DEVICE_MODEL := EA6350
|
|
DEVICE_VARIANT := v3
|
|
SOC := qcom-ipq4018
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
KERNEL_SIZE := 3072k
|
|
IMAGE_SIZE := 37888k
|
|
UBINIZE_OPTS := -E 5
|
|
IMAGES += factory.bin
|
|
IMAGE/factory.bin := append-kernel | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=EA6350v3
|
|
DEVICE_PACKAGES := uboot-envtools
|
|
endef
|
|
TARGET_DEVICES += linksys_ea6350v3
|
|
|
|
define Device/linksys_ea8300
|
|
$(call Device/FitzImage)
|
|
DEVICE_VENDOR := Linksys
|
|
DEVICE_MODEL := EA8300
|
|
SOC := qcom-ipq4019
|
|
KERNEL_SIZE := 3072k
|
|
IMAGE_SIZE := 87040k
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
|
|
IMAGES += factory.bin
|
|
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=EA8300
|
|
DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9888-ct ipq-wifi-linksys_ea8300 kmod-usb-ledtrig-usbport
|
|
endef
|
|
TARGET_DEVICES += linksys_ea8300
|
|
|
|
define Device/luma_wrtq-329acn
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := Luma Home
|
|
DEVICE_MODEL := WRTQ-329ACN
|
|
SOC := qcom-ipq4018
|
|
DEVICE_PACKAGES := ipq-wifi-luma_wrtq-329acn kmod-ath3k kmod-eeprom-at24 kmod-i2c-gpio uboot-envtools
|
|
IMAGE_SIZE := 76632k
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
endef
|
|
TARGET_DEVICES += luma_wrtq-329acn
|
|
|
|
define Device/meraki_mr33
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := Cisco Meraki
|
|
DEVICE_MODEL := MR33
|
|
SOC := qcom-ipq4029
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct
|
|
endef
|
|
TARGET_DEVICES += meraki_mr33
|
|
|
|
define Device/mobipromo_cm520-79f
|
|
$(call Device/FitzImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := MobiPromo
|
|
DEVICE_MODEL := CM520-79F
|
|
SOC := qcom-ipq4019
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DEVICE_PACKAGES := ipq-wifi-mobipromo_cm520-79f kmod-usb-ledtrig-usbport
|
|
endef
|
|
TARGET_DEVICES += mobipromo_cm520-79f
|
|
|
|
define Device/netgear_ex61x0v2
|
|
$(call Device/DniImage)
|
|
DEVICE_DTS_CONFIG := config@4
|
|
NETGEAR_BOARD_ID := EX6150v2series
|
|
NETGEAR_HW_ID := 29765285+16+0+128+2x2
|
|
IMAGE_SIZE := 14400k
|
|
SOC := qcom-ipq4018
|
|
endef
|
|
|
|
define Device/netgear_ex6100v2
|
|
$(call Device/netgear_ex61x0v2)
|
|
DEVICE_VENDOR := Netgear
|
|
DEVICE_MODEL := EX6100
|
|
DEVICE_VARIANT := v2
|
|
endef
|
|
TARGET_DEVICES += netgear_ex6100v2
|
|
|
|
define Device/netgear_ex6150v2
|
|
$(call Device/netgear_ex61x0v2)
|
|
DEVICE_VENDOR := Netgear
|
|
DEVICE_MODEL := EX6150
|
|
DEVICE_VARIANT := v2
|
|
endef
|
|
TARGET_DEVICES += netgear_ex6150v2
|
|
|
|
define Device/openmesh_a42
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := OpenMesh
|
|
DEVICE_MODEL := A42
|
|
SOC := qcom-ipq4018
|
|
DEVICE_DTS_CONFIG := config@om.a42
|
|
BLOCKSIZE := 64k
|
|
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE)
|
|
IMAGE_SIZE := 15616k
|
|
IMAGES += factory.bin
|
|
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=A42
|
|
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
|
DEVICE_PACKAGES := uboot-envtools
|
|
endef
|
|
TARGET_DEVICES += openmesh_a42
|
|
|
|
define Device/openmesh_a62
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := OpenMesh
|
|
DEVICE_MODEL := A62
|
|
SOC := qcom-ipq4019
|
|
DEVICE_DTS_CONFIG := config@om.a62
|
|
BLOCKSIZE := 64k
|
|
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE)
|
|
IMAGE_SIZE := 15552k
|
|
IMAGES += factory.bin
|
|
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=A62
|
|
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
|
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct uboot-envtools
|
|
endef
|
|
|
|
TARGET_DEVICES += openmesh_a62
|
|
|
|
define Device/qcom_ap-dk01.1-c1
|
|
DEVICE_VENDOR := Qualcomm Atheros
|
|
DEVICE_MODEL := AP-DK01.1
|
|
DEVICE_VARIANT := C1
|
|
BOARD_NAME := ap-dk01.1-c1
|
|
SOC := qcom-ipq4019
|
|
DEVICE_DTS := qcom-ipq4019-ap.dk01.1-c1
|
|
KERNEL_INSTALL := 1
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 26624k
|
|
$(call Device/FitImage)
|
|
IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
|
|
endef
|
|
TARGET_DEVICES += qcom_ap-dk01.1-c1
|
|
|
|
define Device/qcom_ap-dk04.1-c1
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := Qualcomm Atheros
|
|
DEVICE_MODEL := AP-DK04.1
|
|
DEVICE_VARIANT := C1
|
|
SOC := qcom-ipq4019
|
|
DEVICE_DTS := qcom-ipq4019-ap.dk04.1-c1
|
|
KERNEL_INSTALL := 1
|
|
KERNEL_SIZE := 4048k
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
BOARD_NAME := ap-dk04.1-c1
|
|
endef
|
|
TARGET_DEVICES += qcom_ap-dk04.1-c1
|
|
|
|
define Device/qxwlan_e2600ac-c1
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := Qxwlan
|
|
DEVICE_MODEL := E2600AC
|
|
DEVICE_VARIANT := C1
|
|
BOARD_NAME := e2600ac-c1
|
|
SOC := qcom-ipq4019
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 31232k
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
DEVICE_PACKAGES := ipq-wifi-qxwlan_e2600ac
|
|
endef
|
|
TARGET_DEVICES += qxwlan_e2600ac-c1
|
|
|
|
define Device/qxwlan_e2600ac-c2
|
|
$(call Device/FitImage)
|
|
$(call Device/UbiFit)
|
|
DEVICE_VENDOR := Qxwlan
|
|
DEVICE_MODEL := E2600AC
|
|
DEVICE_VARIANT := C2
|
|
SOC := qcom-ipq4019
|
|
KERNEL_INSTALL := 1
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
DEVICE_PACKAGES := ipq-wifi-qxwlan_e2600ac
|
|
endef
|
|
TARGET_DEVICES += qxwlan_e2600ac-c2
|
|
|
|
define Device/unielec_u4019-32m
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := Unielec
|
|
DEVICE_MODEL := U4019
|
|
DEVICE_VARIANT := 32M
|
|
BOARD_NAME := u4019-32m
|
|
SOC := qcom-ipq4019
|
|
KERNEL_SIZE := 4096k
|
|
IMAGE_SIZE := 31232k
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
endef
|
|
TARGET_DEVICES += unielec_u4019-32m
|
|
|
|
define Device/zyxel_nbg6617
|
|
$(call Device/FitImageLzma)
|
|
DEVICE_VENDOR := ZyXEL
|
|
DEVICE_MODEL := NBG6617
|
|
SOC := qcom-ipq4018
|
|
KERNEL_SIZE := 4096k
|
|
ROOTFS_SIZE := 24960k
|
|
RAS_BOARD := NBG6617
|
|
RAS_ROOTFS_SIZE := 19840k
|
|
RAS_VERSION := "$(VERSION_DIST) $(REVISION)"
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
IMAGES += factory.bin
|
|
# The ZyXEL firmware allows flashing thru the web-gui only when the rootfs is
|
|
# at least as large as the one of the initial firmware image (not the current
|
|
# one on the device). This only applies to the Web-UI, the bootlaoder ignores
|
|
# this minimum-size. However, the larger image can be flashed both ways.
|
|
IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k | check-size $$$$(ROOTFS_SIZE) | zyxel-ras-image separate-kernel
|
|
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | check-size $$$$(ROOTFS_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
|
DEVICE_PACKAGES := uboot-envtools kmod-usb-ledtrig-usbport
|
|
endef
|
|
TARGET_DEVICES += zyxel_nbg6617
|
|
|
|
define Device/zyxel_wre6606
|
|
$(call Device/FitImage)
|
|
DEVICE_VENDOR := ZyXEL
|
|
DEVICE_MODEL := WRE6606
|
|
DEVICE_DTS_CONFIG := config@4
|
|
SOC := qcom-ipq4018
|
|
IMAGE_SIZE := 13184k
|
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size
|
|
DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers
|
|
endef
|
|
TARGET_DEVICES += zyxel_wre6606
|
|
|
|
$(eval $(call BuildImage))
|