2022-02-05 22:40:51 +00:00
|
|
|
define Device/FitImage
|
|
|
|
KERNEL_SUFFIX := -uImage.itb
|
|
|
|
KERNEL = kernel-bin | libdeflate-gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
|
|
KERNEL_NAME := Image
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/FitImageLzma
|
|
|
|
KERNEL_SUFFIX := -uImage.itb
|
|
|
|
KERNEL = kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(DEVICE_DTS).dtb
|
|
|
|
KERNEL_NAME := Image
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/UbiFit
|
|
|
|
KERNEL_IN_UBI := 1
|
|
|
|
IMAGES := factory.ubi sysupgrade.bin
|
|
|
|
IMAGE/factory.ubi := append-ubi
|
|
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
|
|
endef
|
2021-05-19 19:04:43 +00:00
|
|
|
|
ipq807x: add Dynalink DL-WRX36
Dynalink DL-WRX36 is a AX WIFI router with 4 1G and 1 2.5G ports.
Specifications:
• CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz
• RAM: 1024MB of DDR3
• Storage: 256MB Nand
• Ethernet: 4x 1G RJ45 ports (QCA8075) + 1 2.5G Port (QCA8081)
• WLAN:
2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 1174 Mbps PHY rate
5GHz: Qualcomm QCN5054 4x4 802.11a/b/g/n/ac/ax 2402 PHY rate
• 1x USB 3.0
• 1 gpio-controlled dual color led (blue/red)
• Buttons: 1x soft reset / 1x WPS
• Power: 12V DC jack
A poulated serial header is onboard (J1004)
the connector size is a 4-pin 2.0 mm JST PH.
RX/TX is working, u-boot bootwait is active, secure boot is enabled.
Notes:
- Serial is completely deactivated in the stock firmware image.
- This commit adds only single partition support, that means
sysupgrade is upgrading the current rootfs partition.
- Installation can be done by serial connection or
SSH access on OEM firmware
Installation Instructions:
Most part of the installation is performed from an initramfs image
running OpenWrt, and there are two options to boot it.
Boot initramfs option 1: Using serial connection (3.3V)
1. Stop auto boot to get to U-boot shell
2. Transfer initramfs image to device
(openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb)
Tested using TFTP and a FAT-formatted USB flash drive.
3. Boot the initramfs image
# bootm
Boot initramfs option 2: From SSH access on OEM firmware
1. Copy the initramfs image to a FAT-formatted flash drive
(tested on single-partition drive) and connect it to device USB port.
2. Change boot command so it loads the initramfs image on next boot
Fallback to OEM firmware is provided.
# fw_setenv bootcmd 'usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000; bootipq'
3. Reboot the device to boot the initramfs
# reboot
Install OpenWrt from initramfs image:
1. Use SCP (or other way) to transfer OpenWrt factory image
2. Connect to device using SSH (on a LAN port)
3. Check MTD partition table.
rootfs and rootfs_1 should be mtd18 and mtd20
depending on current OEM slot.
# cat /proc/mtd
4. Do a ubiformat to both rootfs partitions:
# ubiformat /dev/mtd18 -y -f /path_to/factory_image
# ubiformat /dev/mtd20 -y -f /path_to/factory_image
5. Set U-boot env variable: mtdids
# fw_setenv mtdids 'nand0=nand0'
6. Get offset of mtd18 to determine current OEM slot
- If current OEM slot is 1, offset is 16777216 (0x1000000)
- If current OEM slot is 2, offset is 127926272 (0x7a00000)
# cat /sys/class/mtd/mtd18/offset
7. Set U-boot env variable: mtdparts
If current OEM slot is 1, run:
# fw_setenv mtdparts 'mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1)'
If current OEM slot is 2, run:
# fw_setenv mtdparts 'mtdparts=nand0:0x6100000@0x7a00000(fs),0x6100000@0x1000000(fs_1)'
8. Set U-boot env variable: bootcmd
# fw_setenv bootcmd 'setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0'
9. Reboot the device
# reboot
Note: this PR adds only single partition support, that means sysupgrade is
upgrading the current rootfs partition
Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-08-05 09:38:37 +00:00
|
|
|
define Device/dynalink_dl-wrx36
|
|
|
|
$(call Device/FitImage)
|
|
|
|
$(call Device/UbiFit)
|
|
|
|
DEVICE_VENDOR := Dynalink
|
|
|
|
DEVICE_MODEL := DL-WRX36
|
|
|
|
BLOCKSIZE := 128k
|
|
|
|
PAGESIZE := 2048
|
|
|
|
DEVICE_DTS_CONFIG := config@rt5010w-d350-rev0
|
|
|
|
SOC := ipq8072
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-dynalink_dl-wrx36
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += dynalink_dl-wrx36
|
|
|
|
|
2022-01-29 00:03:11 +00:00
|
|
|
define Device/edgecore_eap102
|
|
|
|
$(call Device/FitImage)
|
|
|
|
$(call Device/UbiFit)
|
|
|
|
DEVICE_VENDOR := Edgecore
|
|
|
|
DEVICE_MODEL := EAP102
|
|
|
|
BLOCKSIZE := 128k
|
|
|
|
PAGESIZE := 2048
|
|
|
|
DEVICE_DTS_CONFIG := config@ac02
|
|
|
|
SOC := ipq8071
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-edgecore_eap102
|
|
|
|
IMAGE/factory.ubi := append-ubi | qsdk-ipq-factory-nand
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += edgecore_eap102
|
|
|
|
|
2022-01-01 22:17:51 +00:00
|
|
|
define Device/edimax_cax1800
|
|
|
|
$(call Device/FitImage)
|
|
|
|
$(call Device/UbiFit)
|
|
|
|
DEVICE_VENDOR := Edimax
|
|
|
|
DEVICE_MODEL := CAX1800
|
|
|
|
BLOCKSIZE := 128k
|
|
|
|
PAGESIZE := 2048
|
|
|
|
DEVICE_DTS_CONFIG := config@ac03
|
|
|
|
SOC := ipq8070
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-edimax_cax1800
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += edimax_cax1800
|
|
|
|
|
ipq807x: add QNAP 301w
QNAP 301w is a AX WIFI router with 4 1G and 2 10G ports.
Specifications:
• CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz
• RAM: 1024MB of DDR3
• Storage: 4GB eMMC (contains kernel and rootfs) / 8MB NOR
(contains art and u-boot-env)
• Ethernet: 4x 1G RJ45 ports + 2 10G ports (Aquantia AQR113C)
• WLAN:
2.4GHz: Qualcomm QCN5024 4x4 (40 MHz) 802.11b/g/n/ax 1174 Mbps PHY rate
5GHz: Qualcomm QCN5054 4x4 (80 MHz) or 2x2 (160 MHz) 802.11a/b/g/n/ac/ax 2402 PHY rate
• LEDs:
7 x GPIO-controlled dual color LEDs + 2 GPIO-controlled single color LEDs
• Buttons: 1x soft reset / 1x WPS
• Power: 12V DC jack
A poulated serial header is onboard.
RX/TX is working, bootwait is active, secure boot is not enabled.
SSH can be activated in the stock firmware, hold WPS button til the second beep
(yes the router has a buzzer)
SSH is available on port 22200, login with user admin and
password "mac address of the router".
Installation Instructions:
• obtain serial access (https://openwrt.org/inbox/toh/qnap/301w#serial)
• stop auto boot
• setenv serverip 192.168.10.1
• setenv ipaddr 192.168.10.10
• tftpboot the initramfs image
(openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb)
• bootm
• make sure that current_entry is set to "0":
"fw_printenv -n current_entry" should be print "0". If not,
do "fw_setenv current_entry 0"
• copy openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin
to the device to /tmp folder
• sysupgrade -n /tmp/openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin
this flashes openwrt to the first kernel and rootfs partition (mmcblk0p1 / mmcblk0p4)
• reboot
Note: this leaves the second kernel / rootfs parition untouched. So if you want
to go back to stock, stop u-boot autoboot, "setenv current_entry 1" ,
"saveenv", "bootipq".
Stock firmware should start from the second partition.
Then do a firmwareupgrade in the stock gui, that should overwrite the openwrt
in the first partitions
Make 10G Aquantia phy's work:
The aquantia phy's need a firmware to work. This can either be loaded
in linux with a userspace tool or in u-boot.
I was not successfull to load the firmware in linux (aq-fw-download) but luckily there is
aq_load_fw available in u-boot. But first the right firmware needs to write
to the 0:ETHPHYFW mtd partition (it is empty on my device)
Grab the ethphy firmware image from:
https://github.com/kirdesde/nbg7815_gpl/blob/master/target/linux/ipq/ipq807x_64/prebuilt_images/AQR_ethphyfw.mbn
and scp that to openwrt.
Check the 0:ETHPHYFW partition number:
cat /proc/mtd|grep "0:ETHPHYFW", should be mtd10.
Backup the 0:ETHPHYFW partition:
dd if=/dev/mtd10 of=/tmp/ethphyfw.backup, scp ethphyfw.backup to a save place.
Write the new firmware image to the 0:ETHPHYFW partition:
"mtd erase /dev/mtd10", "mtd -n write AQR_ethphyfw.mbn /dev/mtd10".
Reboot to u-boot.
Check if aq_load_fw is working:
"aq_load_fw 0", that checks the firmware and if successfull,
loads iram and dram to one of the aquantia phy's.
If that worked, add the aq_load_fw to the bootcmd:
setenv bootcmd "aq_load_fw 0 && aq_load_fw 8 && bootipq"
"saveenv"
"reset"
Board reboots and the firmware load to both phy's should start and
then openwrt boots.
Check if the 10G ports work.
Note: lan port labeled "10G-2" is configured as WAN port as per default.
All other port are in the br-lan. This can be changed in the network config.
Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-01-01 22:20:19 +00:00
|
|
|
define Device/qnap_301w
|
|
|
|
$(call Device/FitImage)
|
|
|
|
DEVICE_VENDOR := QNAP
|
|
|
|
DEVICE_MODEL := 301w
|
|
|
|
DEVICE_DTS_CONFIG := config@hk01
|
|
|
|
KERNEL_SIZE := 16384k
|
|
|
|
BLOCKSIZE := 512k
|
|
|
|
SOC := ipq8072
|
|
|
|
IMAGES += factory.bin sysupgrade.bin
|
|
|
|
IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k
|
|
|
|
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-qnap_301w e2fsprogs kmod-fs-ext4 losetup
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += qnap_301w
|
|
|
|
|
2022-01-01 22:12:51 +00:00
|
|
|
define Device/redmi_ax6
|
|
|
|
$(call Device/xiaomi_ax3600)
|
|
|
|
DEVICE_VENDOR := Redmi
|
|
|
|
DEVICE_MODEL := AX6
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-redmi_ax6
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += redmi_ax6
|
|
|
|
|
2021-05-19 19:04:43 +00:00
|
|
|
define Device/xiaomi_ax3600
|
|
|
|
$(call Device/FitImage)
|
|
|
|
$(call Device/UbiFit)
|
|
|
|
DEVICE_VENDOR := Xiaomi
|
|
|
|
DEVICE_MODEL := AX3600
|
|
|
|
BLOCKSIZE := 128k
|
|
|
|
PAGESIZE := 2048
|
|
|
|
DEVICE_DTS_CONFIG := config@ac04
|
|
|
|
SOC := ipq8071
|
|
|
|
KERNEL_SIZE := 36608k
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-xiaomi_ax3600 kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct
|
|
|
|
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
|
|
|
|
ARTIFACTS := initramfs-factory.ubi
|
|
|
|
ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-uImage.itb | ubinize-kernel
|
|
|
|
endif
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += xiaomi_ax3600
|
2022-01-10 23:50:37 +00:00
|
|
|
|
|
|
|
define Device/xiaomi_ax9000
|
|
|
|
$(call Device/FitImage)
|
|
|
|
$(call Device/UbiFit)
|
|
|
|
DEVICE_VENDOR := Xiaomi
|
|
|
|
DEVICE_MODEL := AX9000
|
|
|
|
BLOCKSIZE := 128k
|
|
|
|
PAGESIZE := 2048
|
|
|
|
DEVICE_DTS_CONFIG := config@hk14
|
|
|
|
SOC := ipq8072
|
|
|
|
KERNEL_SIZE := 57344k
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-xiaomi_ax9000 kmod-ath11k-pci ath11k-firmware-qcn9074 \
|
|
|
|
kmod-ath10k-ct ath10k-firmware-qca9887-ct
|
|
|
|
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
|
|
|
|
ARTIFACTS := initramfs-factory.ubi
|
|
|
|
ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-uImage.itb | ubinize-kernel
|
|
|
|
endif
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += xiaomi_ax9000
|
2023-01-03 18:23:41 +00:00
|
|
|
|
|
|
|
define Device/zyxel_nbg7815
|
|
|
|
$(call Device/FitImage)
|
|
|
|
DEVICE_VENDOR := ZYXEL
|
|
|
|
DEVICE_MODEL := NBG7815
|
|
|
|
DEVICE_DTS_CONFIG := config@nbg7815
|
|
|
|
BLOCKSIZE := 128k
|
|
|
|
PAGESIZE := 2048
|
|
|
|
SOC := ipq8074
|
|
|
|
IMAGES += factory.bin sysupgrade.bin
|
|
|
|
IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k
|
|
|
|
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
|
|
|
DEVICE_PACKAGES := ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci e2fsprogs kmod-fs-ext4 losetup kmod-hwmon-tmp103
|
|
|
|
endef
|
|
|
|
TARGET_DEVICES += zyxel_nbg7815
|