openwrt-mirror/target/linux
André Valentin 99835e0999 ath79: add support for ZyXEL NBG6716
Attention: Kernel partition size has been enlarged to 4MB.
To switch, you must update to latest ar71xx-nand snapshort and flash the
sysupgrade-4M-Kernel.bin:

zcat openwrt-ath79-nand-zyxel_nbg6716-squashfs-sysupgrade-4M-Kernel.bin | mtd -r -e ubi write - firmware; reboot -f
You will end up with a fresh config if you do not inject config into the image.

The NBG6716 may come with 128MB or 256MB NAND. ar71xx was able to use all, but
ath79 can only use the first 128MB. Therefore the complete NAND needs to be
overwritten. If not, the old UBI may make problems and lead to reboot loop.

Access the real u-boot shell:
ZyXEL uses a proprietary loader/shell on top of u-boot: "ZyXEL zloader v2.02"
When the device is starting up, the user can enter the the loader shell
by simply pressing a key within the 3 seconds once the following string
appears on the serial console:

|   Hit any key to stop autoboot:  3

The user is then dropped to a locked shell.

|NBG6716> HELP
|ATEN    x[,y]     set BootExtension Debug Flag (y=password)
|ATSE    x         show the seed of password generator
|ATSH              dump manufacturer related data in ROM
|ATRT    [x,y,z,u] RAM read/write test (x=level, y=start addr, z=end addr, u=iterations)
|ATGO              boot up whole system
|ATUR    x         upgrade RAS image (filename)
|NBG6716>

In order to escape/unlock a password challenge has to be passed.
Note: the value is dynamic! you have to calculate your own!

First use ATSE $MODELNAME (MODELNAME is the hostname in u-boot env)
to get the challange value/seed.

|NBG6716> ATSE NBG6716
|012345678901

This seed/value can be converted to the password with the help of this
bash script (Thanks to http://www.adslayuda.com/Zyxel650-9.html authors):

- tool.sh -
ror32() {
  echo $(( ($1 >> $2) | (($1 << (32 - $2) & (2**32-1)) ) ))
}
v="0x$1"
a="0x${v:2:6}"
b=$(( $a + 0x10F0A563))
c=$(( 0x${v:12:14} & 7 ))
p=$(( $(ror32 $b $c) ^ $a ))
printf "ATEN 1,%X\n" $p
- end of tool.sh -

|# bash ./tool.sh 012345678901
|
|ATEN 1,879C711

copy and paste the result into the shell to unlock zloader.

|NBG6716> ATEN 1,0046B0017430

If the entered code was correct the shell will change to
use the ATGU command to enter the real u-boot shell.

|NBG6716> ATGU
|NBG6716#

Signed-off-by: André Valentin <avalentin@marcant.net>
2019-10-27 13:38:49 +01:00
..
apm821xx treewide: move MAC address patch functions to common library 2019-10-14 12:36:02 +02:00
ar7 kernel: bump 4.9 to 4.9.194 2019-09-24 12:52:05 +02:00
ar71xx ar71xx: fix bug in NBG6716 kernelpacking, add firmware partition 2019-10-27 13:38:25 +01:00
arc770 treewide: remove kmod-usb-core from DEVICE_PACKAGES 2019-10-06 21:28:49 +02:00
archs38 treewide: remove kmod-usb-core from DEVICE_PACKAGES 2019-10-06 21:28:49 +02:00
armvirt armvirt: fix overlay support by updating to f2fs/ext4 based overlays 2019-06-25 14:12:22 +00:00
at91 at91: split up remaining DEVICE_TITLE definitions 2019-10-19 13:16:57 +02:00
ath25 ath25: split up DEVICE_TITLE 2019-10-19 13:16:57 +02:00
ath79 ath79: add support for ZyXEL NBG6716 2019-10-27 13:38:49 +01:00
bcm53xx bcm53xx: sysupgrade: support Luxul NAND devices 2019-10-15 20:23:04 +02:00
brcm47xx brcm47xx: fix switch port labels for Asus WL500GP V2 2019-10-15 20:22:42 +02:00
brcm63xx brcm63xx: split up DEVICE_TITLE 2019-10-22 22:05:21 +02:00
brcm2708 kernel: bump 4.19 to 4.19.79 2019-10-15 16:11:28 +02:00
cns3xxx treewide: sysupgrade: don't use $ARGV in platform_do_upgrade() 2019-07-17 08:05:38 +02:00
gemini treewide: remove kmod-usb-core from DEVICE_PACKAGES 2019-10-06 21:28:49 +02:00
generic kernel: mtd: spinand: Backport chip definitions 2019-10-24 23:07:47 +02:00
imx6 imx6: install-dtb as separate IMAGE 2019-09-15 15:00:17 +00:00
ipq40xx kernel: mtd: spinand: Backport chip definitions 2019-10-24 23:07:47 +02:00
ipq806x ipq806x: WPQ864: fix partition unit-address 2019-10-18 21:05:34 +02:00
ixp4xx treewide: remove kmod-usb-core from DEVICE_PACKAGES 2019-10-06 21:28:49 +02:00
kirkwood kirkwood: Fix FS#505 - Can't install LEDE on Linksys EA3500 2019-10-12 23:42:59 +02:00
lantiq lantiq: modify ath9k caldata extraction to reuse caldata.sh 2019-10-21 13:28:58 +02:00
layerscape kernel: layerscape: fix compilation error 2019-10-19 13:16:57 +02:00
malta malta: fix overlay support by updating to f2fs/ext4 based overlays 2019-06-25 14:12:22 +00:00
mediatek mediatek: split up DEVICE_TITLE 2019-10-19 13:16:57 +02:00
mpc85xx mpc85xx: correct TP-LINK TL-WDR4900 MAC addresses 2019-10-15 18:13:54 +02:00
mvebu mvebu: split up DEVICE_TITLE 2019-10-19 13:16:57 +02:00
mxs treewide: replace backticks by $(...) in gen_*_img.sh scripts 2019-09-29 00:46:13 +02:00
octeon octeon: split up remaining DEVICE_TITLE 2019-10-19 13:16:57 +02:00
octeontx octeontx: fix thunderx BGX underflow irq name 2019-10-27 12:13:59 +01:00
omap omap: split up DEVICE_TITLE 2019-10-12 01:22:46 +02:00
orion orion: replace backticks by $(...) 2019-09-29 00:46:13 +02:00
oxnas oxnas: convert DEVICE_TITLE to new variables 2019-07-10 16:56:16 +02:00
pistachio pistachio: split up DEVICE_TITLE 2019-10-12 23:37:00 +02:00
ramips ramips: add support for Xiaomi Mi Wi-Fi Router 3G v2 2019-10-27 12:25:56 +01:00
rb532 rb532: split up DEVICE_TITLE 2019-10-19 13:16:57 +02:00
samsung samsung: split up DEVICE_TITLE 2019-09-11 15:17:09 +02:00
sunxi sunxi: update kernel config 2019-10-06 21:28:49 +02:00
tegra treewide: use new procd sysupgrade $UPGRADE_BACKUP variable 2019-09-05 23:33:19 +02:00
uml kernel: Deactivate CONFIG_BINFMT_MISC 2019-05-11 17:15:41 +02:00
x86 treewide: use new procd sysupgrade $UPGRADE_BACKUP variable 2019-09-05 23:33:19 +02:00
zynq kernel: bump 4.19 to 4.19.77 2019-10-08 12:44:35 +02:00
Makefile