aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
Commit message (Collapse)AuthorAgeFilesLines
* mtd: base-files: Unify dual-firmware devices (Linksys)Jeff Kletsky2019-05-1812-161/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]
* zynq: make title consistent for all devicesLuis Araneda2019-05-171-4/+4
| | | | | | | | | | | | Modify the title to match the following format, as it's enough to uniquely identify a device: <manufacturer> <model> This matches what's done for other targets and has the added benefit of creating a sorted-by-manufacturer list of devices on menuconfig Signed-off-by: Luis Araneda <luaraneda@gmail.com>
* ramips: Add support for ZBT WE826-EKristian Evensen2019-05-175-1/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ZBT WE826-E is a dual-SIM version of the ZBT WE826. The router has the following specifications: - MT7620A (580 MHz) - 128MB RAM - 32MB of flash (SPI NOR) - 5x 10/100Mbps Ethernet (MT7620A built-in switch) - 1x microSD slot - 1x miniPCIe slot (only USB2.0 bus) - 2x SIM card slots (standard size) - 1x USB2.0 port - 1x 2.4GHz wifi (rt2800) - 10x LEDs (4 GPIO-controlled) - 1x reset button The following have been tested and working: - Ethernet switch - wifi - miniPCIe slot - USB port - microSD slot - sysupgrade - reset button Installation and recovery: In order to install OpenWRT the first time or recover the router, you can use the web-based recovery system. Keep the reset button pressed during boot and access 192.168.1.1 in your browser when your machine obtains an IP address. Upload the firmware to start the recovery process. How to swap SIMs: You control which SIM slot to use by writing 0/1 to /sys/class/gpio/gpio13/value. In order for the change to take effect, you can either use AT-commands (AT+CFUN) or power-cycle the modem (write 0/1 to /sys/class/gpio/gpio14/value). Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
* ramips: Add support for Head Weblink HDRM200Kristian Evensen2019-05-176-1/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Head Weblink HDRM200 is a dual-sim router based on MT7620A. The detailed specifications are: - MT7620A (580MHz) - 64MB RAM - 16MB of flash (SPI NOR) - 6x 10/100Mbps Ethernet (MT7620A built-in switch) - 1x microSD slot - 1x miniPCIe slot (only USB2.0 bus). Device is shipped with a SIMCOM SIM7100E LTE modem. - 2x SIM slots (standard size) - 1x USB2.0 port - 1x 2.4GHz wifi (rt2800) - 1x 5GHz wifi (mt7612) - 1x reset button - 1x WPS button - 3x GPIO-controllable LEDs - 1x 10 pin terminal block (RS232, RS485, 4 x GPIO) Tested: - Ethernet switch - Wifi - USB slot - SD card slot - miniPCIe-slot - sysupgrade - reset button Installation instructions: Installing OpenWRT for the first time requires a bit of work, as the board does not ship with OpenWRT. In addition, the bootloader automatically reboots when installing an image over tftp. In order to install OpenWRT on the HDRM200, you need to do the following: * Copy the initramfs-image to your tftp-root (default filename is test.bin) and configure networking accordingly (default server IP is 10.10.10.3, client 10.10.10.123). Start your tftp server. * Open the board and connect to UART. The pins are exposed and clearly marked. * Boot the board and press 1. * Either use the default filename and client/server IP-addresses, or specify your own. The image should now be loaded to memory and board boot. If the router reboots while the image is loading, you need to try again. Once the board has booted, copy the sysupgrade-image to the router and run sysupgrade in order to install OpenWRT to the flash. Notes: - You control which SIM slot to use by writing 0/1 to /sys/class/gpio/gpio0/value. In order for the change to take effect, you can either use AT-commands (AT+CFUN) or power-cycle the modem (write 0/1 to /sys/class/gpio/gpio21/value). - RS485 is available on /dev/ttyS0. - RS232 is available on /dev/ttyS1. - The name of the ioX-gpios map to the labels on the casing. Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com> [fixed whitespace issue and merge conflict in target.mk] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ath79: drop unused/incomplete dtsChuanhong Guo2019-05-173-230/+0
| | | | | | | | These dts itself are incomplete (e.g. missing mtd partitions) and its deivce support is never added to ath79 target. Drop these unused dts for now. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: ar9330: fix switch_led_disable_pins reg valuePetr Štetiar2019-05-171-1/+1
| | | | | | | | | | | | | | In commit e9652e1696d9 ("ath79: fix pinmux for ar933x devices") I've wrongly changed desired register value to 0xf8 although it should've been set to 0x0. 0xf8 value sets bits 3-7 (ETH_SWITCH_LEDx_EN) to 1 which actually enables ethernet switch LEDs, so 0x0 is correct value in order to use the pins as GPIO. Fixes: e9652e1696d9 ("ath79: fix pinmux for ar933x devices") Reported-by: Chuanhong Guo <gch981213@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ath79: archer-x7-v5: sync ar8327 initial reg values with ar71xxPetr Štetiar2019-05-171-2/+5
| | | | | | | | | Simply dumped content of this regs in ar71xx and wrote them to DTS, as a result port 6 on the switch will appear disconnected as on Archer C7v4. [AS: testing and PORT6_STATUS fix] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ath79: Add missing reset button for TP-Link CPE210 v2 and v3Adrian Schmutzler2019-05-151-0/+10
| | | | | | | | Reset button support seems to be missing in ath79. Run-tested on CPE210 v2. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: fix pinmux for ar933x devicesPaul Wassi2019-05-155-3/+9
| | | | | | | | | | | | | Properly disable the SoC's internal Switch LEDs on the pinmux. Devices that previously called ath79_gpio_function_disable for the switch LEDs, just need to reference switch_led_pins in the pinctrl-0 property of the gpio-leds node. Signed-off-by: Paul Wassi <p.wassi@gmx.at> [changed desired pinctrl register value from 0x1f to proper 0xf8] Signed-off-by: Chuanhong Guo <gch981213@gmail.com> [renamed pinmux name to switch_led_disable_pins to make purpose more clear] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ath79: archer-x7-v5: remove confusing ar8327 initvals for LEDsPetr Štetiar2019-05-151-4/+0
| | | | | | | | This devices have LEDs connected to the SoC's GPIOs, so it makes no sense to fiddle with ar8327 LED regs. Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ar71xx: Fix network setup for TP-Link Archer C25 v1Adrian Schmutzler2019-05-151-10/+10
| | | | | | | | | Network for the Archer C25 v1 is set up without switch for no obvious reason. The LED setup is even done switch-based. This patch changes network setup so a switch is created. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* tegra: add vendor string to device nameTomasz Maciej Nowak2019-05-151-3/+3
| | | | | | | for better identification. Also create SUPPORTED_DEVICES string from it which corresponds to dts compatible string. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: add kmod-i2c-mux-pca954x for Turris OmniaJosef Schlehofer2019-05-151-1/+1
| | | | | | | | The driver is for the I2C mux. Schematic available at https://doc.turris.cz/doc/_media/rtrom01-schema.pdf Signed-off-by: Josef Schlehofer <josef.schlehofer@nic.cz> Tested-by: Rosen Penev <rosenp@gmail.com>
* lantiq/xrx200: enable initramfs imagesStijn Segers2019-05-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Commit eae6cac6a3 ("lantiq: add support for AVM FRITZ!Box 7362 SL"), but one needs an initramfs image to flash OpenWrt from stock firmware (as described in the commit log). This patch has the initramfs image built by default. Thanks to blogic (for pointing to the FEATURES declaration in the target Makefiles) and Musashino on the forum for suggesting config/Config-images.in needed editing too. While at it, reorder the TARGET_INITRAMFS_COMPRESSION_LZMA declarations alphabetically. This patch will result in initramfs images for all lantiq subtargets that have the ramdisk flag set. I tested on the falcon and ase subtargets, which lack that flag, to confirm they don't produce any initramfs images with this patch - which they do not. Given the limited scope of the lantiq (sub)target(s), blogic indicated this should be OK. Signed-off-by: Stijn Segers <foss@volatilesystems.org> Signed-off-by: Petr Štetiar <ynezz@true.cz> [fixed the wrong reference to eae6cac6a3 commit]
* malta: Deactivate MIPS O32 and N32 supportHauke Mehrtens2019-05-142-12/+6
| | | | | | | | | OpenWrt is completely compiled from sources using a 64 bit compiler, we do not need support for the old 32 bit MIPS interface on 64 Bit CPUs, deactivate it. Fixes: 46af22de16b2 ("kernel: Remove CONFIG_COMPAT") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* octeon: Deactivate MIPS O32 and N32 supportHauke Mehrtens2019-05-142-12/+4
| | | | | | | | | OpenWrt is completely compiled from sources using a 64 bit compiler, we do not need support for the old 32 bit MIPS interface on 64 Bit CPUs, deactivate it. Fixes: 46af22de16b2 ("kernel: Remove CONFIG_COMPAT") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* octeon: Refresh kernel configurationHauke Mehrtens2019-05-142-2/+11
| | | | | | This refreshes the kernel configuration with "make kernel_oldconfig" Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Move some DSA config options to generic configHauke Mehrtens2019-05-144-10/+4
| | | | | | | 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>
* brcm63xx: fixup broken patch after kernel bumpJonas Gorski2019-05-141-1/+1
| | | | | | | | | | | | | | | | | | Fixes the following compilation issue that was introduced with the bump to 4.14.118: CC drivers/gpio/gpiolib-of.o drivers/gpio/gpiolib-of.c: In function 'of_gpiochip_add': drivers/gpio/gpiolib-of.c:510:12: error: too few arguments to function 'of_gpiochip_scan_gpios' status = of_gpiochip_scan_gpios(chip); ^~~~~~~~~~~~~~~~~~~~~~ drivers/gpio/gpiolib-of.c:247:5: note: declared here int of_gpiochip_scan_gpios(struct gpio_chip *chip, unsigned int start, ^~~~~~~~~~~~~~~~~~~~~~ scripts/Makefile.build:326: recipe for target 'drivers/gpio/gpiolib-of.o' failed Fixes: 09050b6fe228 ("kernel: bump 4.14 to 4.14.118") Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* kernel: bump 4.19 to 4.19.42Koen Vandeputte2019-05-139-181/+18
| | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch - 400-v5.2-leds-trigger-netdev-fix-refcnt-leak-on-interface-ren.patch Compile-tested on: cns3xxx, imx6 Runtime-tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.14 to 4.14.118Koen Vandeputte2019-05-1312-114/+27
| | | | | | | | | | | | | | | Refreshed all patches. Remove upstreamed: - 060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch Altered: - 143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch Compile-tested on: ar71xx, cns3xxx, imx6, x86_64 Runtime-tested on: ar71xx, cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: bump 4.9 to 4.9.175Koen Vandeputte2019-05-132-5/+5
| | | | | | | | | Refreshed all patches. Compile-tested on: ar7 Runtime-tested on: none Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* brcm63xx: remove kernel 4.9 supportKoen Vandeputte2019-05-13204-23816/+0
| | | | | | | | | This target got bumped to 4.14 a long time ago in commit: 2308b87204206d84b6bf3dbc3d72591611cc6b78 Remove all leftover 4.9 files. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: Fix build of omap targetHauke Mehrtens2019-05-122-0/+2
| | | | | | | | CONFIG_HW_RANDOM_OMAP is not set to any value after kmod-random-omap was removed, add the configuration option to the generic configuration. Fixes: cd3b29853380 ("omap24xx: Remove unmaintained target") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mvebu: add images for additional ESPRESSObin boardsTomasz Maciej Nowak2019-05-118-1/+239
| | | | | | | | | | | | | | | | | | | | | This commit adds support for different iterations of ESPRESSObin. The added variants are: ESPRESSObin with soldered eMMC, ESPRESSObin V7, compared to V5 some passive elements changed and ethernet ports labels positions have been reversed, ESPRESSObin V7 with soldered eMMC. Please refer to: 584d7c5 ("mvebu: new subtarget cortex A53") for instruction how to boot OpenWrt image placed on SD card. It is advised for owners of V5 and previous with bootloader based on U-Boot 2015.01, to upgrade the latest version available at: http://espressobin.net/tech-spec. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: use device-tree board detectionTomasz Maciej Nowak2019-05-1117-179/+86
| | | | | | | | Convert whole target to Device Tree based board detection instead of identifying devices by dts file name. With this we can drop mvebu.sh translation script and rely on common method for model detection. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: align device names to vendor_device formatTomasz Maciej Nowak2019-05-114-46/+51
| | | | | | | | | | Add vendors in device names and also rename few device names, for easier identyfying potential firmware to flash. The vendor and device string is mainly derived from model/compatipble string in dts from particular device, but since not all devices are well described, some of the renames follow marketing names. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: image: don't create unnecessarily shell variablesTomasz Maciej Nowak2019-05-112-14/+8
| | | | | | | Use make syntax to pass the U-Boot image location and boot with root partitions size, instead of relying on shell functions and variables. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: image: improve readability of device recipesTomasz Maciej Nowak2019-05-112-41/+19
| | | | | | | | Drop overly complex amount of defines wich are referenced in the same devices pool and move image recipes to common define, since devices not using them overwrite it. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: image: introduce BOOT_SCRIPT variableTomasz Maciej Nowak2019-05-117-57/+12
| | | | | | | | | | | | All of U-Boot scripts repeat the same pattern with only Device Tree blob name changing for respective device. Therefore create generic scripts which will be altered on demad by image build process, and create BOOT_SCRIPT variable which can be added to device recipe and will allow referencing the same script by many device recipes. This will allow to slim down the ammount of files in buildroot tree and avoid needlessly incrementing amount of boot scripts if new devices will be added. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: image: stack repeated variablesTomasz Maciej Nowak2019-05-113-25/+15
| | | | | | | All of arm64 devices have part of variables repeatedly defined. Stack them to common define, and reference it in each device recipe. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: remove unnecessary code building dtbsTomasz Maciej Nowak2019-05-112-17/+3
| | | | | | | | | Even if dts is not included in upstream Makefile, it is built anyway by recipe specified in include/image.mk. Also remove Build/dtb, it's not used since 3f72f3a ("mvebu: clearfog: include DTB for all variants in image"). Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* generic-4.19: Backport spi-nand support for GigaDevice A/EJeff Kletsky2019-05-112-0/+325
| | | | | | | | | | | | | | | | | | This patch backports verbatim the commits from Linux 5.0 and 5.1 that implemented support for GigaDevice SPI NAND A and E variants. Supported only in Linux 4.19 and later as based on the upstream drivers/mtd/nand/spi/ framework. mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch commit c93c613214ac (5.0) mtd-spinand-Add-support-for-GigaDevice-GD5F1GQ4UExxG.patch commit c40c7a990a46 (5.1) Run-tested-on: GL.iNet AR750S Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
* kernel: Reorder generic configurationHauke Mehrtens2019-05-112-10/+10
| | | | | | | | This was done like this: ./scripts/kconfig.pl '+' target/linux/generic/config-4.14 /dev/null > target/linux/generic/config-4.14-new mv target/linux/generic/config-4.14-new target/linux/generic/config-4.14 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* gemini: Make kernel text and rodata read-onlyHauke Mehrtens2019-05-112-4/+0
| | | | | | | This is activate for all other targets except gemini, also activate it there. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* cns3xxx: Activate CONFIG_CPU_SW_DOMAIN_PANHauke Mehrtens2019-05-112-2/+0
| | | | | | This is already activated for all other ARM targets Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* x86: Activate CONFIG_X86_SMAPHauke Mehrtens2019-05-112-2/+2
| | | | | | | | This activates "Supervisor Mode Access Prevention". modern CPUs will prevent the kernel code from accessing any data from the userspace without the usage of copy_to_user() or copy_from_user() Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Deactivate CONFIG_BINFMT_MISCHauke Mehrtens2019-05-118-8/+0
| | | | | | | | | | CONFIG_BINFMT_MISC allows it to add support for new executable formats to the kernel from user space, the kernel will then detect for example a java binary and call the java execution program automatically. I am not aware that this feature is used in OpenWrt and this could be used to exploit something. Deactivate it for all targets for now. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Do not set CONFIG_DEVMEM or CONFIG_DEVKMEMHauke Mehrtens2019-05-114-6/+0
| | | | | | | This is deactivated by default and should be manually activated in the OpenWrt kernel configuration Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Activate CONFIG_SYN_COOKIES for all targetsHauke Mehrtens2019-05-117-7/+0
| | | | | | | | | | Some targets deactivated CONFIG_SYN_COOKIES, for unknown reasons, use the default setting from the generic configuration which activates CONFIG_SYN_COOKIES. This should prevent SYN flooding. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Remove CONFIG_COMPATHauke Mehrtens2019-05-1116-75/+3
| | | | | | | | | | | | | This removes support for executing old 32 bit applications on 64 bit ARM and MIPS kernels. On OpenWrt we normally compile all the user space applications on our own and do not support third party binary only modules especial not 32 bit applications on 64 bit CPUs. This reduces the attack surface on such systems and should also save some memory. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Remove CONFIG_DEBUG_RODATA and CONFIG_DEBUG_SET_MODULE_RONXHauke Mehrtens2019-05-112-4/+0
| | | | | | | These were renamed to CONFIG_STRICT_KERNEL_RWX and CONFIG_STRICT_MODULE_RWX and are activated in kernel 4.14 and later by default. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Activate CONFIG_ARM64_SW_TTBR0_PANHauke Mehrtens2019-05-1111-9/+2
| | | | | | | | | | This activates "Emulate Privileged Access Never using TTBR0_EL1 switching" on ARM64. This should prevent the kernel from reading code from user space in kernel context. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* Kernel: Activate CONFIG_HARDENED_USERCOPYHauke Mehrtens2019-05-113-3/+7
| | | | | | | | | | | This adds additional checks to the copy_from_user() and copy_to_user() functions. The details are described in this article: https://lwn.net/Articles/695991/ This should only have a very small performance impact on system calls and should not affect routing performance. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ath79: Add missing read-only propertiesAdrian Schmutzler2019-05-118-2/+14
| | | | | | | | | Add some read-only properties to protect partitions from accidental changes. Also fixed two whitespaces error on the way. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ramips: fix R6120 factory imageDavid Bauer2019-05-111-1/+1
| | | | | | | | | | | The factory firmware omits the JFFS2 end-marker while flashing via web-interface. Add a 64k padding after the marker fixes this problem. When the end-marker is not present, OpenWRT won't save the overlayfs after initial flash. Reported-by: Andreas Ziegler <dev@andreas-ziegler.de> Signed-off-by: David Bauer <mail@david-bauer.net>
* mvebu: fix board_name condition in 79_move_configKlaus Kudielka2019-05-111-1/+1
| | | | | | | The correct board_name for the Turris Omnia is armada-385-turris-omnia. Fixes: 4e8345ff68 ("mvebu: base-files: autodetect upgrade device") Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
* base-files: improve lib/upgrade/common.shKlaus Kudielka2019-05-116-26/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently, upgrade device autodetection has been added to the mvebu target. This exposes some shortcomings of the generic export_bootdevice function, e.g. on the Turris Omnia: export_bootdevice silently reports the root partition to be the boot device. This makes the sysupgrade process fail at several places. Fix this by clearly distinguishing between /proc/cmdline arguments which specify the boot disk, and those which specify the root partition. Only in the latter case, strip off the partition, and do it consistently. root=PARTUUID=<pseudo PARTUUID for MBR> (any partition) and root=/dev/* (any partition) are accepted. The root of the problem is that the *existing* export_bootdevice in /lib/upgrade/common.sh behaves differently, if the kernel is booted with root=/dev/..., or if it is booted with root=PARTUUID=... In the former case, it reports back major/minor of the root partition, in the latter case it reports back major/minor of the complete boot disk. Targets, which boot with root=/dev/... *and* use export_bootdevice / export_partdevice, have added workarounds to this behaviour, by specifying *negative* increments to the export_partdevice function. Consequently, those targets have to be adapted to use positive increments, otherwise they are broken by the change to export_bootdevice. Fixes: 4e8345ff68 ("mvebu: base-files: autodetect upgrade device") Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com> Tested-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* 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]