ipq40xx: Fix reboot on EnGenius ENS620EXT
authorSteve Glennon <s.glennon@cablelabs.com>
Tue, 23 Apr 2019 20:46:37 +0000 (14:46 -0600)
committerChristian Lamparter <chunkeey@gmail.com>
Sat, 11 May 2019 14:37:11 +0000 (16:37 +0200)
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]

target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts
target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4018-ens620ext.dts

index f676ff61cb2de74e10c477cecb41193a0254d710..34ca133728fefe060e74248bd8a8924d54e0dac0 100644 (file)
                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 {
index dd3ec229fe3ab08a1769ec9912e03742c87eadfb..8636b18b2e84329f77b60f6d846d1faeeb338ce7 100644 (file)
                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 {