openwrt/target/linux
David Bauer 3f8c5d5476 ath79: add support for Fritz!Box 4020
This commit adds support for the AVM Fritz!Box 4020 WiFi-router.

SoC:   Qualcomm Atheros QCA9561 (Dragonfly) 750MHz
RAM:   Winbond W971GG6KB-25
FLASH: Macronix MX25L12835F
WiFi:  QCA9561 b/g/n 3x3 450Mbit/s
USB:   1x USB 2.0
IN:    WPS button, WiFi button
OUT:   Power LED green, Internet LED green, WLAN LED green,
       LAN LED green, INFO LED green, INFO LED red
UART:  Header Next to Black metal shield
       Pinout is 3.3V - RX - TX - GND (Square Pad is 3.3V)
       The Serial setting is 115200-8-N-1.

Tested and working:
 - Ethernet (LAN + WAN)
 - WiFi (correct MAC)
 - Installation via EVA bootloader
 - OpenWRT sysupgrade
 - Buttons
 - LEDs

The USB port doesn't work. Both Root Hubs are detected as having 0 Ports:

[    3.670807] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.723267] usbcore: registered new interface driver usbfs
[    3.729058] usbcore: registered new interface driver hub
[    3.734616] usbcore: registered new device driver usb
[    3.744181] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.758357] SCSI subsystem initialized
[    3.766026] ehci-platform: EHCI generic platform driver
[    3.771548] ehci-platform ehci-platform.0: EHCI Host Controller
[    3.777708] ehci-platform ehci-platform.0: new USB bus registered, assigned bus number 1
[    3.788169] ehci-platform ehci-platform.0: irq 48, io mem 0x1b000000
[    3.816647] ehci-platform ehci-platform.0: USB 2.0 started, EHCI 0.00
[    3.824001] hub 1-0:1.0: USB hub found
[    3.828219] hub 1-0:1.0: config failed, hub doesn't have any ports! (err -19)
[    3.835825] ehci-platform ehci-platform.1: EHCI Host Controller
[    3.842009] ehci-platform ehci-platform.1: new USB bus registered, assigned bus number 2
[    3.852481] ehci-platform ehci-platform.1: irq 49, io mem 0x1b400000
[    3.886631] ehci-platform ehci-platform.1: USB 2.0 started, EHCI 0.00
[    3.894011] hub 2-0:1.0: USB hub found
[    3.898190] hub 2-0:1.0: config failed, hub doesn't have any ports! (err -19)
[    3.908928] usbcore: registered new interface driver usb-storage
[    3.915634] kmodloader: done loading kernel modules from /etc/modules-boot.d/*

A few words about the shift-register:

AVM used a trick to control the shift-register for the LEDs with only 2
pins, SERCLK and MOSI. Q7S, normally used for daisy-chaining multiple
shift-registers, pulls the latch, moving the shift register-state to
the storage register. It also pulls down MR (normally pulled up) to
clear the storage register, so the latch gets released and will not be
pulled by the remaining bits in the shift-register. Shift register is
all-zero after this.

For that we need to make sure output 7 is set to high on driver probe.
We accomplish this by using gpio-hogging.

Installation via EVA:
In the first seconds after Power is connected, the bootloader will
listen for FTP connections on 169.254.157.1 (Might also be 192.168.178.1).
Firmware can be uploaded like following:

  ftp> quote USER adam2
  ftp> quote PASS adam2
  ftp> binary
  ftp> debug
  ftp> passive
  ftp> quote MEDIA FLSH
  ftp> put openwrt-sysupgrade.bin mtd1

Note that this procedure might take up to two minutes. After transfer is
complete you need to powercycle the device to boot OpenWRT.

Signed-off-by: David Bauer <mail@david-bauer.net>
2018-08-19 18:52:22 +02:00
..
adm5120 kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
adm8668 kernel: mark all v3.18 and v4.4 kernels are source-only 2018-05-24 08:55:52 +02:00
apm821xx treewide: fix upgrade led handling 2018-08-16 21:20:57 +02:00
ar7 ar7: remove linux 3.18 support 2018-08-13 17:10:39 +02:00
ar71xx kernel: bump 4.9 to 4.9.119 2018-08-10 18:43:23 +02:00
arc770 arc: Update variables substitutions in u-boot env files 2018-07-12 10:24:31 +02:00
archs38 arc: Update variables substitutions in u-boot env files 2018-07-12 10:24:31 +02:00
armvirt kernel: add missing ARM64_SSBD symbol 2018-07-31 12:22:11 +03:00
at91 at91: do not build image for at91-q5xr5 2018-08-12 11:34:50 +02:00
ath25 ath25: drop 4.9 kernel support 2018-05-22 07:20:13 +02:00
ath79 ath79: add support for Fritz!Box 4020 2018-08-19 18:52:22 +02:00
au1000 kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
bcm53xx kernel: bump 4.14 to 4.14.59 2018-07-31 05:11:07 +03:00
brcm47xx brcm47xx: cosmetic fix in model detection 2018-08-13 08:37:19 +02:00
brcm63xx brcm63xx: switch to 4.14 2018-08-02 08:49:18 +02:00
brcm2708 kernel: bump 4.9 to 4.9.117 2018-08-03 16:10:38 +02:00
cns3xxx cns3xxx: fix mtu setting with kernel 4.14 2018-08-16 21:20:57 +02:00
gemini kernel: remove DEVMEM and DEVKMEM from target's config 2018-07-07 18:19:39 +02:00
generic kernel: bump kernel 4.9 to version 4.9.120 2018-08-15 22:32:07 +02:00
imx6 kernel: enable THIN_ARCHIVES by default 2018-05-22 07:55:20 +02:00
ipq40xx treewide: drop unused get_status_led functions 2018-08-16 21:20:57 +02:00
ipq806x treewide: fix upgrade led handling 2018-08-16 21:20:57 +02:00
ixp4xx kernel: bump 4.9 to 4.9.116 2018-08-01 09:46:59 +02:00
kirkwood kernel: bump 4.9 to 4.9.116 2018-08-01 09:46:59 +02:00
lantiq lantiq: add support for upgrade led 2018-08-16 21:20:57 +02:00
layerscape kernel: bump 4.9 to 4.9.119 2018-08-10 18:43:23 +02:00
malta malta: bump tp v4.14 2018-01-09 10:26:16 +01:00
mcs814x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
mediatek kernel: bump kernel 4.14 to version 4.14.63 2018-08-15 22:31:56 +02:00
mpc85xx WDR4900v1 remove dt node for absent hw crypto. 2018-07-07 18:19:39 +02:00
mvebu kernel: bump 4.14 to 4.14.60 2018-08-03 16:10:38 +02:00
mxs kernel: enable THIN_ARCHIVES by default 2018-05-22 07:55:20 +02:00
octeon octeon: Add and set CPU type Octeon+ as default 2018-06-20 15:36:02 +02:00
octeontx kernel: add missing ARM64_SSBD symbol 2018-07-31 12:22:11 +03:00
omap omap: disable ubifs 2018-07-30 11:03:02 +02:00
omap24xx omap24xx: remove referece to not existing kmod-usb-musb-tusb6010 2018-01-15 13:13:34 +01:00
orion orion: remove linux 4.4 support 2018-04-19 14:38:57 +02:00
oxnas kernel: bump 4.14 to 4.14.59 2018-07-31 05:11:07 +03:00
pistachio treewide: consolidate upgrade state set 2018-08-16 21:20:57 +02:00
ppc40x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
ppc44x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
ramips treewide: consolidate upgrade state set 2018-08-16 21:20:57 +02:00
rb532 kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
samsung samsung/s5pv210: New target 2018-07-30 14:10:00 +02:00
sunxi kernel: bump 4.14 to 4.14.62 2018-08-10 18:43:23 +02:00
uml kernel: bump 4.9 to 4.9.100 2018-05-18 09:10:21 +02:00
x86 x86: add support to set GRUB menu entry title 2018-07-30 15:55:21 +02:00
xburst kernel: mark all v3.18 and v4.4 kernels are source-only 2018-05-24 08:55:52 +02:00
zynq zynq: remove config options handled by generic 2018-07-02 07:12:48 +02:00
Makefile