From 9b0eb4d260cf5abf3e1ecb600db23356bb4e1d06 Mon Sep 17 00:00:00 2001 From: Steve Glennon Date: Tue, 23 Apr 2019 14:46:37 -0600 Subject: [PATCH] ipq40xx: Fix reboot on EnGenius ENS620EXT 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: 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 Signed-off-by: Christian Lamparter [added valuable findings from github discussion] --- .../arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts | 9 +++++++++ .../arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts index f676ff61cb2d..34ca133728fe 100644 --- a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts @@ -63,6 +63,15 @@ edma@c080000 { status = "okay"; }; + + /* + * Disable the broken restart as a workaround for the buggy + * 3.0.0/3.0.1 U-boots that ship with the device. + * Note: The watchdog is now used to restart this device. + */ + restart@4ab000 { + status = "disabled"; + }; }; buttons { diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts index dd3ec229fe3a..8636b18b2e84 100644 --- a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts +++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts @@ -67,6 +67,15 @@ edma@c080000 { status = "okay"; }; + + /* + * Disable the broken restart as a workaround for the buggy + * 3.0.0/3.0.1 U-boots that ship with the device. + * Note: The watchdog is now used to restart this device. + */ + restart@4ab000 { + status = "disabled"; + }; }; buttons { -- 2.30.2