From 1cb406d019dc84497a8405c470f0b0394d5ff64a Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Tue, 14 Mar 2017 17:04:28 +0100 Subject: ipq806x: add ipq4019 fritz4040 support This patch adds support for AVM FRITZ!Box 4040. hardware highlights: SOC: IPQ4018 / QCA Dakota CPU: Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7 DRAM: 256 MiB Nanya NT5CC128M16IP FLASH: 32 MiB MXIC MX25L25635FMI ETH: Qualcomm Atheros QCA8075 Gigabit Switch (4 x LAN, 1 x WAN) USB: 1 x 3.0 (via Synopsys DesignWare DWC3 controller in the SoC) 1 x 2.0 (via Synopsys DesignWare DWC3 controller in the SoC) WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11bgn 2:2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11a/n/ac 2:2x2 INPUT: one WLAN and one WPS button LEDS: Power, WAN/Internet, WIFI, INFO (red and amber) and LAN. Serial: WARNING: The serial port needs a TTL/RS-232 v3.3 level converter! The Serial setting is 115200-8-N-1. The SoC's serial port is right next to the MXIC FLASH chip. The board has a unpopulated 1x4 0.1" header for it. Use a multimeter to figure out the pinout! This board currently needs an additional u-boot image in order to boot properly. Booting with EVA isn't possible ATM. Install Procedure: 0. It's highly recommended to connect to the serial port. The serial settings are listed above. 1. install a u-boot image for AVM Fritz!Box 4040 (see and ) 2. upload the initramfs.itb image via tftp (u-boot listens to 192.168.1.1 - use binary transfer mode!) 3. connect to the FB4040 and use sysupgrade sysupgrade.bin to install the image. Works: - Switch and Ethernet (99%) - Buttons (WLAN, WPS) - FLASH (1 x 32MiB NOR Chip) - WLAN2G and WLAN5G - CPUFREQ scaling - PRNG - serial - Crypto Accelerator - sysupgrade (Read the flash instructions to avoid bricking) - full LEDE Install (Read the flash instructions to avoid bricking) - LEDs (Power, WAN, Info (red and amber), LAN) The LEDs are connected to the QCA8075 LED ports. The AR40xx driver contains a gpio-controller to handle these special "GPIOs". - USB Both 3.0 and 2.0 ports - many packages from other ARMv7 boards (This does include the RaspberryPi Model 2!) - ... Not planned: - WAN<->LAN short-cut - Qualcomm Secure Execution Environment - ... Signed-off-by: Christian Lamparter Signed-off-by: John Crispin --- target/linux/ipq806x/image/Makefile | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'target/linux/ipq806x/image/Makefile') diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile index 70c8056d90..8091d9951a 100644 --- a/target/linux/ipq806x/image/Makefile +++ b/target/linux/ipq806x/image/Makefile @@ -5,8 +5,6 @@ include $(INCLUDE_DIR)/image.mk UBIFS_OPTS = -m 2048 -e 124KiB -c 4096 -U -F -KERNEL_LOADADDR := 0x42208000 - define Image/Prepare $(CP) $(LINUX_DIR)/vmlinux $(KDIR)/$(IMG_PREFIX)-vmlinux.elf endef @@ -30,6 +28,7 @@ define Device/Default KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs KERNEL_PREFIX := $$(IMAGE_PREFIX) + KERNEL_LOADADDR = 0x42208000 SUPPORTED_DEVICES = $$(BOARD_NAME) IMAGE/sysupgrade.tar = sysupgrade-tar | append-metadata endef @@ -46,6 +45,12 @@ define Device/FitImage 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/UbiFit KERNEL_IN_UBI := 1 IMAGES := nand-factory.ubi nand-sysupgrade.tar @@ -165,6 +170,20 @@ define Device/EA8500 DEVICE_PACKAGES := ath10k-firmware-qca99x0 endef +define Device/FRITZ4040 + $(call Device/FitImageLzma) + DEVICE_DTS := qcom-ipq4019-fritz4040 + KERNEL_LOADADDR := 0x80208000 + BLOCKSIZE := 4k + PAGESIZE := 256 + BOARD_NAME := fritz4040 + DEVICE_TITLE := AVM Fritz!Box 4040 + IMAGE_SIZE := 29753344 + IMAGES = sysupgrade.bin + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata + DEVICE_PACKAGES := kmod-usb-phy-qcom-ipq4019 ipq-wifi-fritz4040 fritz-tools u-boot-fritz4040 +endef + define Device/R7500 $(call Device/DniImage) DEVICE_DTS := qcom-ipq8064-r7500 @@ -231,6 +250,7 @@ define Device/VR2600v IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$${KERNEL_SIZE} | append-rootfs | pad-rootfs | append-metadata endef -TARGET_DEVICES += AP148 AP148-legacy C2600 D7800 DB149 EA8500 R7500 R7500v2 R7800 NBG6817 VR2600v +TARGET_DEVICES += AP148 AP148-legacy C2600 D7800 DB149 EA8500 FRITZ4040 R7500 \ + R7500v2 R7800 NBG6817 VR2600v $(eval $(call BuildImage)) -- cgit v1.2.3