aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq40xx
Commit message (Collapse)AuthorAgeFilesLines
* ipq40xx: add label MAC address for Netgear EX6100v2/EX6150v2Adrian Schmutzler2019-10-271-0/+1
| | | | | | | | | | | | | | | | | | This is based on the EX6150v2, which should be identical to the EX6100v2: The device bears two MAC addresses ("MAC 1" and "MAC 2") that correspond to phy0 and phy1. The ethernet MAC address (gmac0) is the same as phy0. As this one is accessible via local-mac-address in gmac0, the latter is used for label-mac-device. (Although this is a one-port, gmac1 also has a local-mac-address assigned. This has the same vendor part as the other addresses, but completely different data for the device part.) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq40xx: use DEVICE_VARIANT for Unielec U4019 flash sizeAdrian Schmutzler2019-10-271-1/+2
| | | | | | | If flash size is used as part of a device's title, it should be specified as DEVICE_VARIANT like for the other devices so far. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: mtd: spinand: Backport chip definitionsJeff Kletsky2019-10-241-31/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | generic: Add/rename patches for upstream consistency ipq40xx: generic-level patch replaces same-source patches-4.19/ 082-v4.20-mtd-spinand-winbond-Add-support-for-W25N01GV.patch The SPI-NAND framework from Linux uses common driver code that is then "tuned" by a tiny struct of chip-specific data that describes available commands, timing, and layout (data and OOB data). Several manufacturers and chips have been added since 4.19, several of which are used in devices already supported by OpenWrt (typically with no or "legacy" access to their NAND memory). This commit catches up the supported-chip definitions through Linux 5.2-rc6 and linux/next. The driver is only compiled for platforms with CONFIG_MTD_SPI_NAND=y. This presently includes ipq40xx and pistachio, with the addition of ath79-nand in these commits (and not ath79-generic or ath79-tiny). Upstream patches refreshed against 4.19.75 Build-tested-on: ipq40xx Run-tested-on: ath79-nand Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* ipq40xx: add support for AVM FRITZ!Repeater 1200David Bauer2019-10-238-6/+551
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- SoC: Qualcomm IPQ4019 RAM: 256M DDR3 FLASH: 128M NAND WiFi: 2T2R IPQ4019 bgn 2T2R IPQ4019 a/n/ac ETH: Atheros AR8033 RGMII PHY BTN: 1x Connect (WPS) LED: Power (green/red/yellow) Installation ------------ 1. Grab the uboot for the Device from the 'u-boot-fritz1200' subdirectory. Place it in the same directory as the 'eva_ramboot.py' script. It is located in the 'scripts/flashing' subdirectory of the OpenWRT tree. 2. Assign yourself the IP address 192.168.178.10/24. Connect your Computer to one of the boxes LAN ports. 3. Connect Power to the Box. As soon as the LAN port of your computer shows link, load the U-Boot to the box using following command. > ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz1200.bin 4. The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWRT initramfs (!) image to a TFTP server root directory and rename it to 'FRITZ1200.bin'. 5. The Box will now boot OpenWRT from RAM. This can take up to two minutes. 6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using scp. SSH into the Box and first write the Bootloader to both previous kernel partitions. > mtd write /path/to/uboot-fritz1200.bin uboot0 > mtd write /path/to/uboot-fritz1200.bin uboot1 7. Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. > ubirmvol /dev/ubi0 --name=avm_filesys_0 > ubirmvol /dev/ubi0 --name=avm_filesys_1 8. Flash OpenWRT peristently using sysupgrade. > sysupgrade -n /path/to/openwrt-sysupgrade.bin Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq40xx: add missing backslash in 11-ath10k-caldataDavid Bauer2019-10-231-1/+1
| | | | | | | This adds a missing backslash in the caldata-extraction script. Without this fix, caldata extraction fails for every device. Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq40xx: fix ethernet probe abort on missing phy-resetDavid Bauer2019-10-231-1/+1
| | | | | | | This commit completely fixes the abortion of the ipq40xx ethernet driver probe in case no phy-reset is defined. Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq40xx: fix optional gpio-resetJohn Crispin2019-10-221-1/+1
| | | | | | If a gpio reset pin was not defined we should not bog out. Signed-off-by: John Crispin <john@phrozen.org>
* ipq40xx: Add support for Unielec U4019Kristian Evensen2019-10-217-11/+410
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the 32MB storage/512MB RAM version of the U4019 IPQ4019-based board from Unielec. The board has the following specifications: * Qualcomm IPQ4019 (running at 717MHz) * 512MB DDR3 RAM (optional 256MB/1GB) * 32MB SPI NOR (optional 8/16MB or NAND) * Five gigabit ports (Qualcomm QCA8075) * 1x 2.4 GHz wifi (QCA4019 hw1.0) * 1x 5 Ghz wifi (QCA4019 hw1.0) * 1x mini-PCIe slot (only USB-pins connected) * 1x SIM slot (mini-SIM) * 1x USB2.0 port * 1x button * 1x controllable LED * 1x micro SD-card reader Working: * Ethernet * Wifi * USB-port * mini-PCIe slot + SIM slot * Button * Sysupgrade Not working: * SD card slot (no upstream support) Installation instructions: In order to install OpenWRT on the U4019, you need to go via the initramfs-image. The installation steps are as follows: * Connect to board via serial (header exposed and clearly marked). * Interrupt bootloader by pressing a button. * Copy the initramfs-image to your tftp folder, call the file C0A80079.img. * Give the network interface connected to the U4019 the address 192.168.0.156/24. * Start your tftp-server and run tftpboot on the board. * Run bootm when the file has been transferred, to boot OpenWRT. * Once OpenWRT has booted, copy the sysupgrade-image to the device and run sysupgrade to install OpenWRT on the U4019. Notes: - Since IPQ4019 has been moved to 4.19, I have not added support for kernel 4.14. - There is a bug with hardware encryption on IPQ4019, causing poor performance with TCP and ipsec (see for example FS#2355). In order to improve performance, I have disabled hardware encryption in the DTS. We can enable hw. enc. once/if bug is fixed. - In order for Ethernet to work, the phy has to be reset by setting gpio 47 low/high. Adding support for phy reset via gpio required patching the mdio-driver, and the code added comes from the vendor driver. I do not know if patching the driver is an acceptable approach or not. v1->v2: * Do not use wildcard as identifier in the board.d-scripts (thanks Adrian Schmutzler). Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
* ipq40xx: essedma: Fix dead lockMasafumi UTSUGI2019-10-202-4/+4
| | | | | | | | | | | | | | | | | edma_read_append_stats() gets called from two places in the driver. The first place is the kernel timer that periodically updates the statistics, so nothing gets lost due to overflows. The second one it's part of the userspace ethtool ioctl handler to provide up-to-date values. For this configuration, the use of spin_lock() is not sufficient and as per: <https://mirrors.edge.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c214.html> the locking has to be upgraded to spin_lock_bh(). Signed-off-by: Masafumi UTSUGI <mutsugi@allied-telesis.co.jp> [folded patch into 710-, rewrote message] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* treewide: use a single ath10k MAC patching function with checksumAdrian Schmutzler2019-10-151-12/+12
| | | | | | | | | | | | | | | | While all ath10k eeproms have a checksum field, so far two functions for patching ath10k MAC address have been present (and been used). This merges code to provide a single function ath10k_patch_mac in caldata.sh, having its name in accordance with ath9k functions. By doing so, correct MAC patching for current and future ath10k devices should be ensured. This patch adds checksum adjustments for several targets on ath79 and lantiq. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq40xx: add label MAC address for FritzBox 4040Adrian Schmutzler2019-10-151-0/+1
| | | | | | | | | | The CWMP-Account on the device's label contains the eth0 MAC address. This only changes 4.19 files as label-mac-device is introduced after 19.07 branch, so there won't be a 4.14 release anymore. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: move MAC address patch functions to common libraryAdrian Schmutzler2019-10-141-25/+0
| | | | | | | | | This unifies MAC address patch functions and moves them to a common script. While those were implemented differently for different targets, they all seem to do the same. The number of different variants is significantly reduced by this patch. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: move calibration data extraction function to libraryAdrian Schmutzler2019-10-131-74/+27
| | | | | | | | | | | | | | | | | This moves the almost identical calibration data extraction functions present multiple times in several targets to a single library file /lib/functions/caldata.sh. Functions are renamed with more generic names to merge different variants that only differ in their names. Most of the targets used find_mtd_chardev, while some used find_mtd_part inside the extraction code. To merge them, the more abundant version with find_mtd_chardev is used in the common code. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> [rebase on latest master; add mpc85xx] Signed-off-by: David Bauer <mail@david-bauer.net>
* base-files: move xor() from caldata extraction to functions.shAdrian Schmutzler2019-10-131-16/+1
| | | | | | | | The xor() function is defined in each of the caldata extraction scripts for several targets. Move it to functions.sh to reduce duplicate code. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq40xx: abort ar40xx probe on missing PHYsDavid Bauer2019-09-252-0/+46
| | | | | | | | | | | | The ar40xx driver currently panics in case no QCA807x PHY has been successfully probed. This happens when the external PHY is still in reset when probing the ar40xx switch driver. Note that this patch does not fix the root cause, ar40xx_probe now simply fails instead of causing a kernel panic due to a nullpointer dereference. Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq40xx: fix hw-crypto detection of qce driverEneas U de Queiroz2019-09-212-0/+62
| | | | | | | | | | This adds the CRYPTO_ALG_KERN_DRIVER_ONLY flag to Qualcomm crypto engine driver algorithms, so that openssl devcrypto can recognize them as hardware-accelerated. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com> [refresh, move to ipq40xx as its the only target right now] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: bump 4.19 to 4.19.73Koen Vandeputte2019-09-203-99/+0
| | | | | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 840-media-i2c-tda1997x-select-V4L2_FWNODE.patch - 079-v4.20-ARM-dts-qcom-ipq4019-fix-PCI-range.patch - 083-ARM-dts-qcom-ipq4019-enlarge-PCIe-BAR-range.patch - 084-ARM-dts-qcom-ipq4019-Fix-MSI-IRQ-type.patch Fixes: - CVE-2019-15030 Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* treewide: sysupgrade: use $UPGRADE_BACKUP to check for backupRafał Miłecki2019-09-112-2/+2
| | | | | | | Now that $UPGRADE_BACKUP is set conditionally there is no need to check the $UPGRADE_OPT_SAVE_CONFIG anymore. All conditions can be simplified. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: use new procd sysupgrade $UPGRADE_BACKUP variableRafał Miłecki2019-09-052-2/+2
| | | | | | | | | | It's a variable set by procd that should replace hardcoded /tmp/sysupgrade.tgz. This change requires the most recent procd with the commit 0f3c136 ("sysupgrade: set UPGRADE_BACKUP env variable"). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: replace remaining (not working now) $SAVE_CONFIG usesRafał Miłecki2019-09-052-2/+2
| | | | | | | This var has been replaced by the $UPGRADE_OPT_UPGRADE_OPT_SAVE_CONFIG Fixes: b534ba961100 ("base-files: pass "save_config" option to the "sysupgrade" method") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: bump 4.19 to 4.19.68Koen Vandeputte2019-08-281-7/+7
| | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 950-0307-Revert-pwm-Set-class-for-exported-channels-in-sysfs.patch Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ipq40xx: drop unreachable ipq-wifi package for the AP120C-ACChristian Lamparter2019-08-241-1/+1
| | | | | | | | | | | | | Harri Hursti reported that ALFA Network AP120C-AC does not work anymore due to: "Unknown package 'ipq-wifi-alfa-network_ap120c-ac'." This patch fixes the issue by removing the stale package from the device's dependencies as the calibration data is now provided by the upstream board-2.bin. Reported-by: Harri Hursti <harri@nordicinnovationlabs.com> Fixes: 8f757d427cce ("ipq-wifi: drop upstreamed custom board-2.bin") Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipqx0xx: add Generic subtargetPaul Spooren2019-08-222-0/+2
| | | | | | | | | | | | | | | | | | Both targets miss a subtarget causing an image naming style which is different from other all othe targets, even tho it already uses `x/generic/` as subfolder as if the subtarget would exist. This commit adds the Generic subtarget resulting in consistent naming. ~/src/openwrt/openwrt/bin/targets/ipq806x/generic$ ls openwrt-ipq806x-generic-netgear_d7800-initramfs-uImage openwrt-ipq806x-generic-netgear-d7800.manifest openwrt-ipq806x-generic-netgear_d7800-squashfs-factory.img openwrt-ipq806x-generic-netgear_d7800-squashfs-sysupgrade.bin CC: John Crispin <john@phrozen.org> Signed-off-by: Paul Spooren <mail@aparcar.org>
* ipq-wifi: drop upstreamed custom board-2.binChristian Lamparter2019-08-181-6/+4
| | | | | | | | | | | | | | | | | | | | | | The BDFs for the: ALFA Network AP120C-AC ASUS Lyra AVM FRITZ!Box 7530 AVM FRITZ!Repeater 3000 EnGenius EAP1300 EnGenius ENS620EXT Netgear Orbi Pro SRK60 boards were upstreamed to the ath10k-firmware repository and linux-firmware.git. Furthermore the BDFs for the: OpenMesh A42 specific BDFs OpenMesh A62 specific BDFs Linksys EA6350v3 have been updated. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* treewide: sync bootcount scripts across targetsChuanhong Guo2019-08-171-3/+1
| | | | | | | | | | | | | | | This commit made the following changes to sync all bootcount scripts: 1. use boot() instead of start() This script only needs to be executed once when boot is complete. use boot() to make this explicit. 2. drop sourcing of /lib/functions.sh This is aready done in /etc/rc.common. 3. ramips: replace board name checking with a case Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ipq40xx: fix AVM NAND caldata extractionDavid Bauer2019-08-151-3/+15
| | | | | | | | | | | | | The AVM Fritz!Box 7530 (and probably other AVM IPQ4019 NAND devices) has it's caldata not stored consistently, but instead at currently 3 known possible offsets. As we get a non-zero exit code from fritz_cal_extract, simply try all three possible offsets on both bootloader partitions, until a matching caldata for each radio is found. Reported-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: David Bauer <mail@david-bauer.net>
* treewide: convert WiFi caldata size and offset to hexadecimalAdrian Schmutzler2019-08-141-29/+29
| | | | | | | | | | | | | | This changes size and offset set for WiFi caldata extraction and MAC address adjustment to hexadecimal notation. This will be much clearer for the reader when numbers are big, and will also match the style used for mtd-cal-data in DTS files. Since dd cannot deal with hexadecimal notation, one has to convert back to decimal by simple $(($hexnum)). Acked-by: Alexander Couzens <lynxis@fe80.eu> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: convert MAC address location offsets to hexadecimalAdrian Schmutzler2019-08-143-9/+9
| | | | | | | | | | | | | This changes the offsets for the MAC address location in mtd_get_mac_binary* and mtd_get_mac_text to hexadecimal notation. This will be much clearer for the reader when numbers are big, and will also match the style used for mtd-mac-address in DTS files. (e.g. 0x1006 and 0x5006 are much more useful than 4102 and 20486) Acked-by: Alexander Couzens <lynxis@fe80.eu> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 4.14 to 4.14.136Koen Vandeputte2019-08-061-44/+0
| | | | | | | | | | | | | | | | | | | | | Refreshed all patches. Altered patches: - 306-v4.16-netfilter-remove-saveroute-indirection-in-struct-nf_.patch Remove upstreamed: - 100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch - 088-0002-i2c-qup-fixed-releasing-dma-without-flush-operation.patch - 500-arm64-dts-marvell-Fix-A37xx-UART0-register-size.patch Fixes: - CVE-2019-13648 - CVE-2019-10207 Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ipq40xx: remove redundant PHY_POLL set codeChristian Lamparter2019-08-022-12/+2
| | | | | | | | The [devm_]mdiobus_alloc[_size()] functions are creating the array of interrupt numbers as well as initializing them to POLLING. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq40xx: decouple mdio-ipq40xx and ar40xxChristian Lamparter2019-08-022-235/+234
| | | | | | | This makes it possible to delete the ar40xx driver in the future by just removing the file. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq40xx: extend DT mdio node to be more accessibleChristian Lamparter2019-08-021-6/+6
| | | | | | | | The MDIO node will become more important in the future. Hence, this patch adds DT labels to make the properties inside the various subnodes more accessible. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: bump 4.19 to 4.19.62Koen Vandeputte2019-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 023-0013-crypto-crypto4xx-fix-AES-CTR-blocksize-value.patch - 023-0014-crypto-crypto4xx-fix-blocksize-for-cfb-and-ofb.patch - 023-0015-crypto-crypto4xx-block-ciphers-should-only-accept-co.patch - 950-0252-staging-bcm2835_camera-Ensure-all-buffers-are-return.patch - 950-0253-staging-bcm2835-camera-Remove-check-of-the-number-of.patch - 950-0254-staging-bcm2835-camera-Handle-empty-EOS-buffers-whil.patch - 950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch - 0021-ARM-dts-gemini-Fix-up-DNS-313-compatible-string.patch - 049-v4.20-mips-remove-superfluous-check-for-linux.patch - 100-MIPS-fix-build-on-non-linux-hosts.patch - 303-MIPS-Fix-bounds-check-virt_addr_valid.patch - 0002-usb-dwc2-use-a-longer-AHB-idle-timeout-in-dwc2_core_.patch Altered patches: - 950-0267-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch - 700-net-add-qualcomm-mdio-and-phy.patch Fixes: - CVE-2019-3846 New symbol: - AX88796B_PHY Compile-tested on: cns3xxx, imx6 Runtime-tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* treewide: sysupgrade: get rid of platform_nand_pre_upgrade()Rafał Miłecki2019-07-221-23/+11
| | | | | | | | | | | 1) nand_do_upgrade() is always called by a target code 2) nand_do_upgrade() starts with calling platform_nand_pre_upgrade() It means there is no need for the platform_nand_pre_upgrade() callback at all. All code that was present there could bo moved & simplly called by a target right before the nand_do_upgrade(). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: sysupgrade: don't use $ARGV in platform_do_upgrade()Rafał Miłecki2019-07-171-4/+4
| | | | | | | stage2 passes image path to platform_do_upgrade() as an argument so it can be simply accessed using $1 Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ipq40xx: convert to multi-variable device titleLuis Araneda2019-07-101-24/+55
| | | | | | Additionally, fix some vendor and board names Signed-off-by: Luis Araneda <luaraneda@gmail.com>
* ipq40xx: spi-gpio: convert deprecated bindingChristian Lamparter2019-06-241-2/+2
| | | | | | | The old gpio-{sck,miso and mosi} binding is deprecated in favour of {sck,miso and mosi}-gpios. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq40xx: Linksys: sysupgrade: Ensure OEM volumes are removedJeff Kletsky2019-06-201-20/+22
| | | | | | | | | | | | | | | | | | When OEM volumes are present in the [alt_]firmware partition, sysupgrade will write a new kernel, but will fail to write the root file system. The next boot will hang indefinitely Waiting for root device /dev/ubiblock0_0... Modified ipq40xx/base-files/lib/upgrade/linksys.sh to remove both `squashfs` and `ubifs` if found on the target firmware partition's UBI device. Run-tested-on: Linksys EA8300 Signed-off-by: Jeff Kletsky <git-commits@allycomm.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [applied some shellcheck suggestions as well]
* treewide: kernel: bump some targets to 4.19Petr Štetiar2019-06-181-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lets bump kernel to 4.19 on targets which were run tested or got ACKed so we've enough time to make it ready for next release: armvirt/32 (runtested in qemu) armvirt/64 (runtested in qemu) ath79/generic (runtested on Carambola2) gemini/generic (runtested on DIR-685, DNS-313, SQ201, SL93512R) imx6/generic (runtested on Apalis) ipq40xx/generic (runtested on nbg6617) malta/be64 (runtested in qemu) malta/be (runtested in qemu) malta/le (runtested in qemu) malta/le64 (runtested in qemu) mpc85xx/generic (runtested on TL-WDR4900) mpc85xx/p2020 (runtested on P2020RDB) mvebu/cortexa53 mvebu/cortexa72 mvebu/cortexa10 octeon/generic (runtested on EdgeRouter Lite) sunxi/cortexa53 (build tested only) sunxi/cortexa7 (runtested on Lime2-K) sunxi/cortexa8 (build tested only) tegra/generic x86/64 (runtested in qemu) Acked-by: Zoltan HERPAI <wigyori@uid0.hu> [sunxi] Tested-by: Linus Walleij <linus.walleij@linaro.org> [gemini] Tested-by: Tomasz Maciej Nowak <tomek_n@o2.pl> [mvebu, tegra] Tested-by: Daniel Engberg <daniel.engberg.lists@pyret.net> [octeon] Tested-by: Pawel Dembicki <paweldembicki@gmail.com> [mpc85xx/generic mpc85xx/p2020] Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ipq40xx: fix high resolution timerPavel Kubelun2019-06-158-6/+64
| | | | | | | | | | | | | | | | Cherry-picked from CAF QSDK repo. see 090-ipq40xx-fix-high-resolution-timer.patch Original commit message: The kernel is failing in switching the timer for high resolution mode and clock source operates in 10ms resolution. The always-on property needs to be given for timer device tree node to make clock source working in 1ns resolution. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [changed authorship of main patch to pavel and cherry-picked patch to Abhishek Sahu]
* ipq40xx: directly define voltage per oppPavel Kubelun2019-06-1522-34/+42
| | | | | | | This should align opp table with what it was before converting to OPP v2. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq40xx: Add support for Linksys EA8300 (Dallas)Jeff Kletsky2019-05-1811-11/+847
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Linksys EA8300 is based on QCA4019 and QCA9888 and provides three, independent radios. NAND provides two, alternate kernel/firmware images with fail-over provided by the OEM U-Boot. Installation: "Factory" images may be installed directly through the OEM GUI. Hardware Highlights: * IPQ4019 at 717 MHz (4 CPUs) * 256 MB NAND (Winbond W29N02GV, 8-bit parallel) * 256 MB RAM * Three, fully-functional radios; `iw phy` reports (FCC/US, -CT): * 2.4 GHz radio at 30 dBm * 5 GHz radio on ch. 36-64 at 23 dBm * 5 GHz radio on ch. 100-144 at 23 dBm (DFS), 149-165 at 30 dBm #{ managed } <= 16, #{ AP, mesh point } <= 16, #{ IBSS } <= 1 * All two-stream, MCS 0-9 * 4x GigE LAN, 1x GigE Internet Ethernet jacks with port lights * USB3, single port on rear with LED * WPS and reset buttons * Four status lights on top * Serial pads internal (unpopulated) "Linksys Dallas WiFi AP router based on Qualcomm AP DK07.1-c1" Implementation Notes: The OEM flash layout is preserved at this time with 3 MB kernel and ~69 MB UBIFS for each firmware version. The sysdiag (1 MB) and syscfg (56 MB) partitions are untouched, available as read-only. Serial Connectivity: Serial connectivity is *not* required to flash. Serial may be accessed by opening the device and connecting a 3.3-V adapter using 115200, 8n1. U-Boot access is good, including the ability to load images over TFTP and either run or flash them. Looking at the top of the board, from the front of the unit, J3 can be found on the right edge of the board, near the rear | J3 | |-| | |O| | (3.3V seen, open-circuit) |O| | TXD |O| | RXD |O| | |O| | GND |-| | | Unimplemented: * serial1 "ttyQHS0" (serial0 works as console) * Bluetooth; Qualcomm CSR8811 (potentially conected to serial1) Other Notes: https://wikidevi.com/wiki/Linksys_EA8300 states FCC docs also cover the Linksys EA8250. According to the RF Test Report BT BR+EDR, "All models are identical except for the EA8300 supports 256QAM and the EA8250 disable 256QAM." Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* mtd: base-files: Unify dual-firmware devices (Linksys)Jeff Kletsky2019-05-183-52/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consistently handle boot-count reset and upgrade across ipq40xx, ipq806x, kirkwood, mvebu Dual-firmware devices often utilize a specific MTD partition to record the number of times the boot loader has initiated boot. Most of these devices are NAND, typically with a 2k erase size. When this code was ported to the ipq40xx platform, the device in hand used NOR for this partition, with a 16-byte "record" size. As the implementation of `mtd resetbc` is by-platform, the hard-coded nature of this change prevented proper operation of a NAND-based device. * Unified the "NOR" variant with the rest of the Linksys variants * Added logging to indicate success and failure * Provided a meaningful return value for scripting * "Protected" the use of `mtd resetbc` in start-up scripts so that failure does not end the boot sequence * Moved Linksys-specific actions into common `/etc/init.d/bootcount` For upgrade, these devices need to determine which partition to flash, as well as set certain U-Boot envirnment variables to change the next boot to the newly flashed version. * Moved upgrade-related environment changes out of bootcount * Combined multiple flashes of environment into single one * Current-partition detection now handles absence of `boot_part` Runtime-tested: Linksys EA8300 Signed-off-by: Jeff Kletsky <git-commits@allycomm.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [checkpatch.pl fixes, traded split strings for 80+ chars per line]
* kernel: Move some DSA config options to generic configHauke Mehrtens2019-05-141-3/+0
| | | | | | | This moves some new configuration options to the generic kernel configuration instead of configuring them for each target on our own. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq40xx: add factory image for EnGenius ENS620EXTSteve Glennon2019-05-111-11/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extended mksenaofw to support new "capwap" header structure. This supports flashing from factory 3.0.0, 3.0.1, 3.1.0 and 3.5.5 firmware. Note that the factory image format changes for 3.1 and later firmware, and that the 3.1.0 and 3.5.5 Engenius firmware will refuse the factory_30.bin file. Similarly, the 3.0.0 and 3.0.1 Engenius firmware will refuse the factory_35.bin file. Flashing from the Engenius 3.1.0 firmware with the factory_35.bin firmware has not been tested, as 3.1.0 firmware (Engenius "middleFW") is only intended as part of the upgrade path to 3.5.5 firmware. Modified ipq40xx image Makefile to appropriately invoke mksenaofw with new parameters to configure the capwap header. Note that there is currently no method to return to factory firmware, so this is a one-way street. Path from factory 3.0.0 and 3.0.1 (EnGenius) software to OpenWrt is to navigate to 192.168.1.1 on the stock firmware and navigate to the firmware menu. Then copy the URL you have for that page, something like http://192.168.1.1/cgi-bin/luci/;stok=12345abcdef/admin/system/flashops and replace the trailing /admin/system/flashops with just /easyflashops You should then be presented with a simple "Firmware Upgrade" page. On that page, BE SURE TO CLEAR the "Keep Settings:" checkbox. Choose the openwrt-ipq40xx-engenius_ens620ext-squashfs-factory_30.bin, click "Upgrade" and on the following page select "Proceed". Path from factory 3.5.5 (EnGenius) software to OpenWrt is simply to use the stock firmware update menu. Choose the openwrt-ipq40xx-engenius_ens620ext-squashfs-factory_35.bin and click "Upload" and "Proceed". The device should then flash the OpenWrt firmware and reboot. Note that this resets the device to a default configuration with Wi-Fi disabled, LAN1/PoE acting as a WAN port (running DHCP client) and LAN2 acting as a LAN port with a DHCP server on 192.168.1.x (AP is at 192.168.1.1) Signed-off-by: Steve Glennon <s.glennon@cablelabs.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [sorry, for unfixing the 80-lines eyesores.]
* ipq40xx: Fix reboot on EnGenius ENS620EXTSteve Glennon2019-05-112-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch works around an issue where reboot would cause the AP to power down and not reboot. The ipq4019 restart controller reboot causes the system to power down and not recover. Fix is to disable the restart controller in the device tree and the device reverts to using the watchdog to perform the reset. The real problem is due to the buggy bootloader that ships with the device. Steve Glennon reported in the PR for this patch: <https://github.com/openwrt/openwrt/pull/2009> that: "the problem was due to a bad u-boot that ships with the device. Using the u-boot that comes with 3.5.5.3 EnGenius factory software now allows the old code (using the do_msm_reboot) to reboot successfully. On to the bad news: Well 3.5.5.3 is a bad path. Finally managed to recover. You CANNOT use prior EnGenius firmware to downgrade. Findings: * They now password protect the serial console with a new, unkown password. * They changed the protection on their walled-garden. I have to use the ssh admin@ip /bin/sh --login to get out of their walled-garden. * Attempts to flash the original 3.0.0 or 3.0.1 EnGenius firmware fail through the UI and sysupgrade. Their firmware update GUI now seem to detect regular openwrt images, but they fail to flash Attempts to flash a normal OpenWrt image with sysupgrade fail. [..] Attempts to sysupgrade with EnGenius firmware fail with the same "mandatory section(s) missing" error, so you cannot downgrade to 3.0.0 or 3.0.1." Signed-off-by: Steve Glennon <s.glennon@cablelabs.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [added valuable findings from github discussion]
* build: add a config option for enabling a testing version of the target kernelFelix Fietkau2019-05-111-0/+1
| | | | | | | If the target supports a newer kernel version that is not used by default yet, it can be enabled with this option Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq40xx: essedma: Add fix for memory allocation issuesChristian Lamparter2019-03-242-0/+394
| | | | | | | | | | | | | This patch adds a ChromiumOS 3.18 patch [0] that fixes memory allocation issues under memory pressure by keeping track of missed allocs and rectify the omission at a later date. It also adds ethtool counters for memory allocation failures accounting so this can be verified. [0] <https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d4e1e4ce6801f9eddce056c58f5a288864955265> Reported-by: Chen Minqiang <ptpt52@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq40xx: add support for EnGenius ENS620EXTSteve Glennon2019-03-218-3/+548
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- CPU: Qualcomm IPQ4018 RAM: 256M FLASH: 32M SPI NOR W25Q256 ETH: QCA8075 WiFi2: IPQ4018 2T2R 2SS b/g/n WiFi5: IPQ4018 2T2R 2SS n/ac LED: - Power amber - LAN1(PoE) green - LAN2 green - Wi-Fi 2.4GHz green - Wi-Fi 5GHz green BTN: - WPS UART: 115200n8 3.3V J1 VCC(1) - GND(2) - TX(3) - RX(4) Added basic support to get the device up and running for a sysupgrade image only. There is currently no way back to factory firmware, so this is a one-way street to OpenWRT. Install from factory condition is convoluted, and may brick your device: 1) Enable SSH and disable the CLI on the factory device from the web user interface (Management->Advanced) 2) Reboot the device 3) Override the default, limited SSH shell: a) Get into the ssh shell: ssh admin@192.168.1.1 /bin/sh --login b) Change the dropbear script to disable the limited shell. At the empty command prompt type: sed -i '/login_ssh/s/^/#/g’ dropbear /etc/init.d/dropbear restart exit 4) ssh in to a (now-) normal OpenWRT SSH session 5) Flash your built image a) scp openwrt-ipq40xx-engenius_ens620ext-squashfs-sysupgrade.bin admin@192.168.1.1:/tmp/ b) ssh admin@192.168.1.1 c) sysupgrade -n /tmp/openwrt-ipq40xx-engenius_ens620ext-squashfs-sysupgrade.bin 6) After flash completes (it may say "Upgrade failed" followed by "Upgrade completed") and device reboots, log in to newly flashed system. Note you will now need to ssh as root rather than admin. Signed-off-by: Steve Glennon <s.glennon@cablelabs.com> [whitespace fixes, reordered partitions, removed rng node from 4.14, fixed 901-arm-boot-add-dts-files.patch] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ipq40xx: limit frequencies for Asus LyraMarius Genheimer2019-03-132-0/+4
| | | | | | | The Asus Lyra has filters in the antenna paths which limits the usable frequencies on both 5GHz radios. Signed-off-by: Marius Genheimer <mail@f0wl.cc>