aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* kernel: enable SRv6 support by enabling lwtunnelNick Hainke2021-01-112-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Enable the ability to use segment routing based on IPv6. It allows the packet to specify a path that the packet should take through the network. Lwtunnel allow an easy encapsulation of a package. You can just install ip-full package and use it: ip -6 route add 2003::/64 dev eth0 encap seg6 mode encap \ segs 2001::1,2002::2 An IPv6 package looks like this: [IPv6 HDR][IPv6 RH][IPv6 HDR][Data...] Netifd support: https://git.openwrt.org/?p=project/netifd.git; a=commit;h=458b1a7e9473c150a40cae5d8be174f4bb03bd39 Increases imagesize by 24.125 KiB. Therefore, only enable for devices with enough flash. Signed-off-by: Nick Hainke <vincent@systemli.org>
* tools/ccache: find libzstd using rpathThomas Nixon2021-01-101-1/+4
| | | | | | | Previously, ccache would end up using the system libzstd, which is not supposed to be a build requirement. Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
* rockchip: add missing Kconfig symbolsDavid Bauer2021-01-111-0/+5
| | | | | | | | When compiling with CONFIG_ALL_KMODS enabled, compilation might stall due to unset rockchip-specific config symbols. Disable these to avoid stalling this step. Signed-off-by: David Bauer <mail@david-bauer.net>
* qemu: remove obsolete packagePaul Spooren2021-01-1014-2387/+0
| | | | | | | Instead of using an ancient qemu version in-tree the building machine should just have qemu-utils installed. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build/image: warn if missing qemu-img for VDI/VMDKPaul Spooren2021-01-101-2/+6
| | | | | | | | | | | | | | | Currently `qemu-img` is used to convert raw x86 images to VDI and VMDK images, used for virtual machines. Having `qemu-img` in tree requires us to maintain an ancient version of `qemu-utils`, which recently required extra work to compile with newer compiler version. This commit prints a warning message in case `qemu-img` is missing. As a next step the in-tree version of `qemu-img` can be removed. Signed-off-by: Paul Spooren <mail@aparcar.org>
* mac80211: use hostapd PID returned from config_addDaniel Golle2021-01-102-3/+2
| | | | | | | Use PID returned from config_add instead of querying procd when adding configuration to hostapd. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* hostapd: return PID on config_add callDaniel Golle2021-01-104-4/+11
| | | | | | | | | To simplify the way netifd acquires the PIDs of wpa_supplicant and hostapd let the config_add method of both of them return the PID of the called process. Use the returned PID instead of querying procd when adding wpa_supplicant configuration. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* glibc: update to latest 2.32 commit (BZ #24973)Hans Dedecker2021-01-101-2/+2
| | | | | | 0d9793e82a Fix buffer overrun in EUC-KR conversion module (bz #24973) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* kernel-defaults: Manage the enabling/disabling of ZSTDFlorian Fainelli2021-01-091-0/+1
| | | | | | | | Linux 5.9 introduces support for ZSTD ramdisk and initrd compression, make sure we enable/disable the relevant options when building an initramfs enabled kernel. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* kernel-defaults: Delete external source tree user_headersFlorian Fainelli2021-01-091-0/+1
| | | | | | | | | | When we use an external kernel tree which may not have been fully cleaned, there may be user_headers left which do not match the target architecture, leading to build failures for packages that do an explicit inclusion of user_headers (such as iproute2 or iptables). Make sure we delete them while preparing the directory. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* iptables: update to 1.8.6Curtis Deptuck2021-01-097-39/+32
| | | | | | | | | | | | | Update iptables to 1.8.6 ChangeLog: https://netfilter.org/projects/iptables/files/changes-iptables-1.8.6.txt Refresh patch: 101-remove-check-already.patch Signed-off-by: Curtis Deptuck <curtdept@me.com> Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [refresh patches]
* kernel: bump 5.4 to 5.4.87John Audia2021-01-087-14/+14
| | | | | | | | | | | | | | | | | | All modification by update_kernel.sh. Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Compile-tested [*]: ath79/{generic,tiny}, ipq40xx, octeon, ramips/mt7621, realtek, x86/64. Run-tested [*]: ramips/mt7621 (DIR-878 A1, R6800, RT-AC57U), octeon (EdgeRouter Lite). Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Stijn Segers <foss@volatilesystems.org> [*]
* realtek: add support for ZyXEL GS1900-8HP v1 and v2Stijn Segers2021-01-084-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ZyXEL GS1900-8HP is an 8 port gigabit switch with PoE+ support. There are two versions on the market (v1 & v2) which share similar specs (same flash size and flash layout, same RAM size, same PoE+ power envelope) but have a different case and board layout that they each share with other GS1900 siblings. The v1 seems to share its PCB and case with non-PoE GS1900-8; as such, adding support for the GS1900-8 would probably be trivial. The v2 seems to share its casing and platform with its already supported bigger brother, the GS1900-10HP - its board looks the same, except for two holes where the GS1900-10 has its SFP ports. Like their 10 port sibling, both devices have a dual firmware layout. Both GS1900-8HP boards have the same 70W PoE+ power budget. In order to manipulate the PoE+, one needs the rtl83xx-poe package [1]. After careful consideration it was decided to go with separate images for each version. Specifications (v1) ------------------- * SoC: Realtek RTL8380M 500 MHz MIPS 4KEc * Flash: Macronix MX25L12835F 16 MiB * RAM: Nanya NT5TU128M8HE-AC 128 MiB DDR2 SDRAM * Ethernet: 8x 10/100/1000 Mbit * PoE+: Broadcom BCM59111KMLG (IEEE 802.3at-2009 compliant, 2x) * UART: 1 serial header with populated standard pin connector on the left side of the PCB, towards the bottom. Pins are labeled: + VCC (3.3V) + TX + RX + GND Specifications (v2) ------------------- * SoC: Realtek RTL8380M 500 MHz MIPS 4KEc * Flash: Macronix MX25L12835F 16 MiB * RAM: Samsung K4B1G0846G 128 MiB DDR3 SDRAM * Ethernet: 8x 10/100/1000 Mbit * PoE+: Broadcom BCM59121B0KMLG (IEEE 802.3at-2009 compliant) * UART: 1 angled serial header with populated standard pin connector accessible from outside through the ventilation slits on the side. Pins from top to bottom are clearly marked on the PCB: + VCC (3.3V) + TX + RX + GND Serial connection parameters for both devices: 115200 8N1. Installation ------------ Instructions are identical to those for the GS1900-10HP and apply both to the GS1900-8HP v1 and v2 as well. * Configure your client with a static 192.168.1.x IP (e.g. 192.168.1.10). * Set up a TFTP server on your client and make it serve the initramfs image. * Connect serial, power up the switch, interrupt U-boot by hitting the space bar, and enable the network: > rtk network on * Since the GS1900-10HP is a dual-partition device, you want to keep the OEM firmware on the backup partition for the time being. OpenWrt can only boot off the first partition anyway (hardcoded in the DTS). To make sure we are manipulating the first partition, issue the following commands: > setsys bootpartition 0 > savesys * Download the image onto the device and boot from it: > tftpboot 0x84f00000 192.168.1.10:openwrt-realtek-generic-zyxel_gs1900-8hp-v{1,2}-initramfs-kernel.bin > bootm * Once OpenWrt has booted, scp the sysupgrade image to /tmp and flash it: > sysupgrade /tmp//tmp/openwrt-realtek-generic-zyxel_gs1900-8hp-v{1,2}-squashfs-sysupgrade.bin Signed-off-by: Stijn Segers <foss@volatilesystems.org> [merge PoE case, keep device definitions separate, change all those hashes in the commit message to something else so they don't get removed when changing the commit ...] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* realtek: remove model prefix from LED label for ZyXEL GS1900Adrian Schmutzler2021-01-081-1/+1
| | | | | | This is used as fixed status LED, so no migration is needed. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* realtek: introduce shared DTSI for GS1900 seriesStijn Segers2021-01-082-208/+153
| | | | | | | | | | | The ZyXEL GS1900-8HP v1, v2 and GS1900-10HP are all built on a similar Realtek RTL8380M platform. Create a common DTSI in preparation for GS1900-8HP support, and switch to the macros defined in rtl838x.dtsi. Signed-off-by: Stijn Segers <foss@volatilesystems.org> [drop redundant includes, use &mdio directly, do not replace SFP ports] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: add hid-cp2112 driver supportPawel Dembicki2021-01-071-0/+17
| | | | | | | | This patch adds kernel module for Silicon Labs CP2112 HID USB to SMBus Master Bridge. This is a HID device driver which registers as an i2c adapter and gpiochip to expose these functions of the CP2112. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
* ramips: remove trailing whitespace in MakefilesLeon M. George2021-01-072-2/+2
| | | | | | | | Remove trailing whitespaces in two *.mk files. Signed-off-by: Leon M. George <leon@georgemail.eu> [fix title, add message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* realtek: ZyXEL: spell as done by manufacturerStijn Segers2021-01-072-2/+2
| | | | | | | ZyXEL spells its own name all uppercase with just the Y lowercase. Adapt the realtek target to follow this (other OpenWrt targets already do so). Signed-off-by: Stijn Segers <foss@volatilesystems.org>
* realtek: move memory node to device DTSStijn Segers2021-01-076-5/+25
| | | | | | | | | Move the memory out of the rtl838x.dtsi and into the device family DTSI or device DTS if applicable. This aligns with upstream practice. Signed-off-by: Stijn Segers <foss@volatilesystems.org> [add missing block for dgs-1210-10p, move block below chosen node] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* realtek: remove duplicate '/dts-v1/;' identifierAdrian Schmutzler2021-01-072-2/+0
| | | | | | | The identifier is already present in rtl838x.dtsi, and adding it twice is not only redundant but actually wrong. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* realtek: set PoE power budget for ZyXEL GS1900-10HPStijn Segers2021-01-071-0/+3
| | | | | | | As per the manufacturer's specifications, set the GS1900-10HP PoE power budget to 77W. Signed-off-by: Stijn Segers <foss@volatilesystems.org>
* base-files: read all 3 bytes in get_magic_vfat() at onceAdrian Schmutzler2021-01-072-2/+2
| | | | | | | While the speed improvement might be negligible, there is still no reason to read individual bytes. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: make Engenius fakeroot partitions read-onlyMichael Pratt2021-01-072-0/+2
| | | | | | | | | | | | | | | | | | For: - ENH202 v1 - ENS202EXT v1 These boards were committed before it was discovered that for all Engenius boards with a "failsafe" image, forcing the failsafe image to load next boot can be achieved by editing the u-boot environment like: `fw_setenv rootfs_checksum 0` So it's not necessary to delete a partition to boot to failsafe image. Signed-off-by: Michael Pratt <mcpratt@pm.me>
* ath79: move small-flash Engenius boards to tinyMichael Pratt2021-01-079-100/+104
| | | | | | | | | | | | | | | | | | | | | | | | | This moves some of the Engenius boards from generic to tiny: - EAP350 v1 - ECB350 v1 - ENH202 v1 For these, factory.bin builds are already failing on master branch because of the unique situation for these boards: - 8 MB flash - an extra "failsafe" image for recovery - TFTP does not work (barely possible with 600 MTU) - bootloader loads image from a longer flash offset - 1 eraseblock each needed for OKLI kernel loader and fake rootfs - using mtd-concat to make use of remaining space... The manual alternative would be removing the failsafe partition. However this comes with the risk of extremely difficult recovery if a flash ever fails because TFTP on the bootloader is bugged. Signed-off-by: Michael Pratt <mcpratt@pm.me> [improve commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* imx6: disable unrequired pcie host driverKoen Vandeputte2021-01-071-2/+0
| | | | | | | | | | | | | imx6 has it's own pcie host driver so we do not need the one from DW. This fixes following boot error: [ 0.156913] dw-pcie 1ffc000.pcie: IRQ index 1 not found Fixes: 6d5291ff7244 ("imx6: add support for kernel 5.4") Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* imx6: refresh kernel configKoen Vandeputte2021-01-071-73/+2
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* imx6: gw52xx: fix duplicate regulator namingKoen Vandeputte2021-01-071-0/+37
| | | | | | | | | | | 2 regulator descriptions carry identical naming. This leads to following boot warning: [ 0.173138] debugfs: Directory 'vdd1p8' with parent 'regulator' already present! Fix this by renaming the one used for audio. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* tools/cmake: always use non-ccache CC and CXX variablesSven Wegener2021-01-061-14/+2
| | | | | | | | | | | | | | | cmake is a dependency of ccache, which means it is build before ccache is available and hence must be build with non-ccache CC and CXX. It currently works, because the cmake build system splits the compiler variable and treats them as multiple compilers to check. For "ccache gcc" it first tests for "ccache", which always fails, because ccache is not a compiler by itself, even if it is available, and then ends up calling "gcc" alone, effectively never using ccache. Let's make this explicit by forcing the use of non-ccache CC and CXX. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
* lua: add -ldl for glibc buildsRosen Penev2021-01-061-2/+2
| | | | | | | | | | | | | For glibc, lua needs an explicit link to libdl as glibc has it separate Fixes the following error in at least collectd: ld: usr/lib/liblua.so: undefined reference to `dlopen' ld: usr/lib/liblua.so: undefined reference to `dlclose' ld: usr/lib/liblua.so: undefined reference to `dlerror' ld: usr/lib/liblua.so: undefined reference to `dlsym' Signed-off-by: Rosen Penev <rosenp@gmail.com>
* build: use ccache -C for cleaning the cacheSven Wegener2021-01-062-3/+3
| | | | | | | | | | This keeps the configuration, like the size of the cache, and the statistics intact. Move the removal of the cache directory to the distclean target, but only delete the .ccache directory inside of our build tree, as we should not mess with a user-configured external ccache directory this destructively. Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
* rpcd: update to git HEADDaniel Golle2021-01-071-4/+4
| | | | | | | | | | fd017ba iwinfo: add ht and vht operation info to wifi scan 4c66b31 iwinfo: export center channel for info ubus call e28d4a5 iwinfo: add support for 802.11ad and GCMP 5c15f57 iwinfo: return hwmode 'ad' on 802.11ad-only hardware ea7f471 iwinfo: include ht_operation data only if available Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* iwinfo: improve ABI version handling and bump to git HEADJo-Philipp Wich2021-01-071-7/+10
| | | | | | | | | | | | | | | | | | - Encode ABI version in compiled shared object file - Only ship versioned shared library a17f561 iwinfo: detect QCA IPQ4019 WiSoC from FDT ea28dfb iwinfo: export ht and vht operation in scan results 4e22953 iwinfo: export center_chan info for local wifi 74d13fb cli: account for additional digit for frequencies above 10GHz 8bfd8d8 iwinfo: add support for GCMP cipher 618c1e8 iwinfo: add hardware description for QCA MIPS WiSoCs 0702f32 iwinfo: improve center channel handling 51c1336 iwinfo: set center chan unsupported for not-nl80211 driver 23d2722 build: add ability to specify shared object version Signed-off-by: Jo-Philipp Wich <jo@mein.io> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* scripts/feed: no warn on toolchain/linux overwritePaul Spooren2021-01-061-1/+3
| | | | | | | | | | | The recent 7f285d "scripts/feeds: warn when skipping core package override" floods SDK output with warning of overwriting "linux" and "toolchain" core packages. This should be ignored as these are not regular packages added via feeds. While at it slightly improve the warning string. Signed-off-by: Paul Spooren <mail@aparcar.org>
* ipq806x: add space before SPDX identifier (again)Adrian Schmutzler2021-01-062-2/+2
| | | | | | | | | | | | | | Strictly, an SPDX identifier requires a space between the comment marker and the identifier itself. This has been addressed in b69c21738e29 ("treewide: add space before SPDX identifier"), but some new malformatted identifiers were merged recently. This could have been prevented by using checkpatch.pl earlier. Fixes: 1a775a4fd033 ("ipq806x: add support for TP-Link Talon AD7200") Fixes: 8ddaeaf6424e ("ipq806x: create DTSI for TP-Link AD7200 and C2600") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: improve model name and revision for TP-Link AD7200Adrian Schmutzler2021-01-061-3/+5
| | | | | | | | | | | | | | | | | The TP-Link AD7200 appears with and without the "Talon" model name prefix. Let's use both variants for 'make menuconfig' so everybody can locate the device. Concerning the revision, the TP-Link page lists v1 and v2 with the device currently marked as "End of Life". However, the v2 and latest v1 firmware are byte-identical. Thus, we only need one image for this device and do not need to include the revision in the image name. While at it, remove the useless BOARD_NAME variable which only makes sense in combination with upgrade from legacy stable versions or when custom upgrade scripts are involved. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: create DTSI for TP-Link AD7200 and C2600Adrian Schmutzler2021-01-063-619/+317
| | | | | | | | | | | Both devices share most of their setup except buttons and LEDs, so having a common DTSI removes a lot of duplicate code. In order to have a shared partitioning scheme, device-id and product-info from AD7200 have been merged into a single product-info partition like for C2600. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: clean up DTS file for TP-Link AD7200Adrian Schmutzler2021-01-061-8/+8
| | | | | | | | | | This does several cosmetic adjustments for AD7200's DTS: - Make node name, DT label and label property consistent - Drop wrong and unused spi4 label - Use generic flash@0 node name Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* Revert "iwinfo: update to git HEAD"Jo-Philipp Wich2021-01-061-4/+4
| | | | | | | | | | | | | This reverts commit f1620630e9f3407780ddc554361841f05c996c49. This update introduces potentially remote exploitable buffer overreads in IE parsing logic. It also breaks the ABI without introdcing SOVERSION library versioning. Furthermore, HT information is incorrectly added for non-HT BSSes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* Revert "rpcd: update to git HEAD"Jo-Philipp Wich2021-01-061-4/+4
| | | | | | | | | | | This reverts commit 190e7939639846b86ab487c50169963382720e2b. This update introduces a potential null-pointer deref with subsequent rpcd crash when querying wireless info for non-nl80211 wdevs. Additionally it wrongly includes ht frequency information for non-ht BSSes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ramips: limit 5GHz channels for UniFi 6 LiteDavid Bauer2021-01-061-0/+1
| | | | | | | | The MT7915 radio currently advertises 2.4GHz channels while the antenna path only supports 5 GHz. Limit the radio to 5GHz channels to prevent users from configuring non-supported channels. Signed-off-by: David Bauer <mail@david-bauer.net>
* rpcd: update to git HEADDaniel Golle2021-01-051-4/+4
| | | | | | | | | fd017ba iwinfo: add ht and vht operation info to wifi scan 4c66b31 iwinfo: export center channel for info ubus call e28d4a5 iwinfo: add support for 802.11ad and GCMP 5c15f57 iwinfo: return hwmode 'ad' on 802.11ad-only hardware Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* iwinfo: update to git HEADDaniel Golle2021-01-051-4/+4
| | | | | | | | | | a17f561 iwinfo: detect QCA IPQ4019 WiSoC from FDT ea28dfb iwinfo: export ht and vht operation in scan results 4e22953 iwinfo: export center_chan info for local wifi 74d13fb cli: account for additional digit for frequencies above 10GHz 8bfd8d8 iwinfo: add support for GCMP cipher Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* realtek: fix build issuesBirger Koblitz2021-01-052-4/+19
| | | | | | | This fixes the build problems for the REALTEK target by adding a proper configuration option for the phy module. Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
* tools/fakeroot: update to 1.25.3Syrone Wong2021-01-056-57/+27
| | | | | | | | use PKG_FIXUP:=autoreconf to generate configure 200-hide-dlsym-error.patch deleted due to fixed upstream in another way other patches refreshed to reflect latest changes Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
* ipq806x: fix LED names of TP-Link Talon AD2700Daniel Golle2021-01-051-2/+2
| | | | | | | | While the underscore in the name of the USB LEDs was removed from DTS, /etc/board.d/01_leds also has to reflect that change. Fixes: 28fd279e5d ("ipq806x: some corrections for TP-Link Talon AD7200") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ramips: add support for Ubiquiti UniFi 6 LiteDavid Bauer2021-01-059-76/+478
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- MediaTek MT7621AT 256M DDR3 32M SPI-NOR MediaTek MT7603 2T2R 802.11n 2.4GHz MediaTek MT7915 2T2R 802.11ax 5GHz Not Working ----------- - Bluetooth (connected to UART3) UART ---- UART is located in the lower left corner of the board. Pinout is 0 - 3V3 (don't connect) 1 - RX 2 - TX 3 - GND Console is 115200 8N1. Boot ---- 1. Connect to the serial console and connect power. 2. Double-press ESC when prompted 3. Set the fdt address $ fdt addr $(fdtcontroladdr) 4. Remove the signature node from the control FDT $ fdt rm /signature 5. Transfer and boot the OpenWrt initramfs image to the device. Make sure to name the file C0A80114.img and have it reachable at 192.168.1.1/24 $ tftpboot; bootm Installation ------------ 1. Connect to the booted device at 192.168.1.20 using username/password "ubnt". 2. Update the bootloader environment. $ fw_setenv devmode TRUE $ fw_setenv boot_openwrt "fdt addr \$(fdtcontroladdr); fdt rm /signature; bootubnt" $ fw_setenv bootcmd "run boot_openwrt" 3. Transfer the OpenWrt sysupgrade image to the device using SCP. 4. Check the mtd partition number for bs / kernel0 / kernel1 $ cat /proc/mtd 5. Set the bootselect flag to boot from kernel0 $ dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock4 6. Write the OpenWrt sysupgrade image to both kernel0 as well as kernel1 $ dd if=openwrt.bin of=/dev/mtdblock6 $ dd if=openwrt.bin of=/dev/mtdblock7 7. Reboot the device. It should boot into OpenWrt. Below are the original installation instructions prior to the discovery of "devmode=TRUE". They are not required for installation and are documentation only. The bootloader employs signature verification on the FIT image configurations. This way, booting unauthorized image without patching the bootloader is not possible. Manually configuring the bootcmd in the U-Boot envronment won't work, as this is restored to the default value if modified. The bootloader is made up of three different parts. 1. The SPL performing early board initialization and providing a XModem recovery in case the PBL is missing 2. The PBL being the primary U-Boot application and containing the control FDT. It is LZMA packed with a uImage header. 3. A Ubiquiti standalone U-Boot application providing the main boot routine as well as their recovery mechanism. In a perfect world, we would only replace the PBL, as the SPL does not perform checks on the PBLs integrity. However, as the PBL is in the same eraseblock as the SPL, we need to at least rewrite both. The bootloader will only verify integrity in case it has a "signature" node in it's control device-tree. Renaming the signature node to something else will prevent this from happening. Warning: These instructions are based on the firmware intially shipped with the device and potentially brick your device in a way it can only be recovered using a SPI flasher. Only (!) proceed if you understand this! 1. Extract the bootloader from the U-Boot partition using the OpenWrt initramfs image. 2. Split the bootloader into it's 3 components: $ dd if=bootloader.bin of=spl.bin bs=1 skip=0 count=45056 $ dd if=bootloader.bin of=pbl.uimage bs=1 skip=45056 count=143360 $ dd if=bootloader.bin of=ubnt.uimage bs=1 skip=188416 3. Strip the uImage header from the PBL $ dd if=pbl.uimage of=pbl.lzma bs=64 skip=1 4. Decompress the PBL $ lzma -d pbl.lzma --single-stream The decompressed PBL sha256sum should be d8b406c65240d260cf15be5f97f40c1d6d1b6e61ec3abed37bb841c90fcc1235 5. Open the decompressed PBL using your favorite hexeditor. Locate the control FDT at offset 0x4CED0 (0xD00DFEED). At offset 0x4D5BC, the label for the signature node is located. Rename the "signature" string at this offset to "signaturr". The patched PBL sha256sum should be d028e374cdb40ba44b6e3cef2e4e8a8c16a3b85eb15d9544d24fdd10eed64c97 6. Compress the patched PBL $ lzma -z pbl --lzma1=dict=67108864 The resulting pbl.lzma file should have the sha256sum 7ae6118928fa0d0b3fe4ff81abd80ecfd9ba2944cb0f0a462b6ae65913088b42 7. Create the PBL uimage $ SOURCE_DATE_EPOCH=1607909492 mkimage -A mips -O u-boot -C lzma -n "U-Boot 2018.03 [UniFi,v1.1.40.71]" -a 84000000 -e 84000000 -T firmware -d pbl.lzma patched_pbl.uimage The resulting patched_pbl.uimage should have the sha256sum b90d7fa2dcc6814180d3943530d8d6b0d6a03636113c94e99af34f196d3cf2ce 8. Reassemble the complete bootloader $ dd if=patched_pbl.uimage of=aligned_pbl.uimage bs=143360 count=1 conv=sync $ cat spl.bin > patched_uboot.bin $ cat aligned_pbl.uimage >> patched_uboot.bin $ cat ubnt.uimage >> patched_uboot.bin The resulting patched_uboot.bin should have the sha256sum 3e1186f33b88a525687285c2a8b22e8786787b31d4648b8eee66c672222aa76b 9. Transfer your patched bootloader to the device. Also install the kmod-mtd-rw package using opkg and load it. $ insmod mtd-rw.ko i_want_a_brick=1 Write the patched bootloader to mtd0 $ mtd write patched_uboot.bin u-boot 10. Erase the kernel1 partition, as the bootloader might otherwise decide to boot from there. $ mtd erase kernel1 11. Transfer the OpenWrt sysupgrade image to the device and install using sysupgrade. FIT configurations ------------------ In the future, the MT7621 UniFi6 family can be supported by a single OpenWrt image. config@1: U6 Lite config@2: U6 IW config@3: U6 Mesh config@4: U6 Extender config@5: U6 LR-EA (Early Access - GA is MT7622) Signed-off-by: David Bauer <mail@david-bauer.net>
* ipq806x: some corrections for TP-Link Talon AD7200Daniel Golle2021-01-052-48/+45
| | | | | | | | | | Address most comments made by Adrian Schmutzler on the mailing list. The device name is kept as 'TP-Link Talon AD7200' as that seems to be the marketing name TP-Link chose for that device, it also matches the naming scheme for other TP-Link devices (e.g. 'TP-Link Archer C7'). Fixes: 1a775a4fd0 ("ipq806x: add support for TP-Link Talon AD7200") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* build: drop clang wrapperKevin Darbyshire-Bryant2021-01-052-21/+1
| | | | | | | clang's gcc emulation does the right thing with -print-file-name now, drop the wrapper Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
* ipq806x: add support for TP-Link Talon AD7200Gary Cooper2021-01-057-0/+512
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device hardware: https://deviwiki.com/wiki/TP-LINK_AD7200_(Talon) The Talon AD7200 is basically an Archer C2600 with a third PCIe lane and an 802.11ad radio. It looks like the Archers C2600/5400 but the housing is slightly larger. Specifications -------------- - IPQ8064 dual-core 1400MHz - QCA9988 2.4GHz WiFi - QCA9990 5GHz WiFi - QCA9500 60GHz WiFi - 32MB SPI Flash - 512MiB RAM - 5 GBit Ports (QCA8337) Installation ------------ Installation is possible from the OEM web interface. Sysupgrade is possible. TFTP recovery is possible. - Image: AD7200_1.0_tp_recovery.bin Notes - This will be the first 802.11ad device supported by mainline. Signed-off-by: Gary Cooper <gaco@bitmessage.de>
* mac80211: Add wil6210 driverRobert Marko2021-01-051-3/+15
| | | | | | | | | | This patch adds wil6210 driver for Wilocity/QCA based 802.11ad PCI cards. Driver uses cfg80211 and nl80211 but not mac80211. Integration for UCI and LuCI will come in other patches. Signed-off-by: Robert Marko <robimarko@gmail.com>