Commit graph

862 commits

Author SHA1 Message Date
Felix Fietkau
254ccf9f4c lantiq: fix an ethernet stability issue triggered by receving packets during boot
Disabling ethernet during reboot (only to enable it again when the
ethernet driver attaches) can put the chip into a faulty state where it
corrupts the header of all incoming packets.

This happens if packets arrive during the time window where the core is
disabled, and it can be easily reproduced by rebooting while sending a
flood ping to the broadcast address.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-19 14:25:44 +01:00
Felix Fietkau
24c06e2481 lantiq: fix spurious irq storm
Since the MIPS IRQ stack patches, lantiq devices were emitting a storm
of messages like this:

[  567.872172] Spurious IRQ: CAUSE=0x1100c300

Fix this by reworking the IRQ dispatch code

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-19 12:33:15 +01:00
Felix Fietkau
1708644f19 kernel: backport MIPS changes introducing a separate IRQ stack
Prevents crashes when IRQs arrive when the current kernel stack context
already contains deeply nested function calls, e.g. when stacking lots
of network devices on top of each other

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-15 18:25:54 +01:00
Hauke Mehrtens
5b089e45a6 kernel: update 4.4 kernel to 4.4.42
Refresh patches on all 4.4 supported platforms.
Compile & run tested: lantiq/xrx200

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-01-13 23:05:36 +01:00
Hauke Mehrtens
f036956e1f lantiq: update USB controller initialization
This adds USB initialization fixes for Danube, Amazon SE and xrx300 and
should fix the clock on at least Danube which hopefully closes FS#351.

The xrx200 usb driver now uses more memory for the dwc2 fifos, this was
increased in the chip compared to ar9.

This is based in part on the vendor documentation and the vendor code
base as a reference.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-01-09 23:25:34 +01:00
Hauke Mehrtens
2dac67464d lantiq: fix dma locking problems with SMP
The DMA controller used only local locks, which will not lock the
section against other CPUs, fix this by using spin locks.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-01-09 20:23:28 +01:00
Felix Fietkau
018d80007e kernel: remove ubifs xz decompression support
It has been unused, and less useful than squashfs for cases where flash
space usage matters.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-09 14:07:06 +01:00
Hauke Mehrtens
8f0dc92afd lantiq: fix console print for additional boards
I missed 3 boards in this commit:
commit d8dde8c517
Author: Hauke Mehrtens <hauke@hauke-m.de>
Date:   Wed Jan 4 21:53:22 2017 +0100

    lantiq: fix console print

Add bootargs parameters for ARV4525PW, ARV7506PW11 and ARV8539PW22
again.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-01-06 23:00:02 +01:00
Hauke Mehrtens
d8dde8c517 lantiq: fix console print
The boot loader of many boards provides a kernel boot argument with a
broken console parameter to the kernel. This will be taken before the
stdout-path defined in device tree and the serial will not work on this
board. Multiple boards are affected by this problem, so revert this
patch for all boards. Later we can remove the boot arguments from the
device tree again, after the individual board was checked to work.

This partly reverts this commit:
commit 4995c64857
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sun Dec 11 21:55:00 2016 +0100

    lantiq: specify console using stdout-path instead of cmdline argument

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-01-05 23:10:44 +01:00
John Crispin
9998bc5ef7 lantiq: fix falcon build
The following commit changed the build templates name but forgot to
update the TARGET_DEVICES variable properly.

commit f9226158be (lantiq: rename EASY98000 to EASY98000NOR)

Signed-off-by: John Crispin <john@phrozen.org>
2016-12-25 09:52:11 +01:00
Hauke Mehrtens
f9226158be lantiq: rename EASY98000 to EASY98000NOR
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2016-12-24 14:55:45 +01:00
Mathias Kresin
ea9b71e5b1 lantiq: drop the FRITZ7360SL led-dsl alias
The power LED can not be used for indicating the xDSL line state and
the in system (boot) state at the same time in LEDE.  As soon as the
xDSL Line goes down, the power LED is switched off.

During xDSL handshake the power led would blink with the same or a
similar pattern as during boot.

Both might confuse users.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-12-24 10:03:38 +01:00
Mathias Kresin
7dd42d610d lantiq: add FRITZ7360SL phy reset gpios
Due to a hardware bug of Atheros 8030 phys, the driver need to reset
the phys on link state change.

Use the correct compatible string for the at903x phys connected to
switch port 0 and 1.

Fix the pinmux of the gpio lines connected to the reset pin of the phys
and define the reset-pins to let the driver do the fixups.

Fixes FS#343

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-12-24 10:03:38 +01:00
Mathias Kresin
9aa420b00e lantiq: fix DGN1000B boot status leds
The alias node should not be a child of the chosen node.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-12-24 10:03:38 +01:00
Martin Blumenstingl
6b94234a65 lantiq: remove "init" kernel command line parameter from bootargs
/etc/preinit has been the default init-script for a very long time (at
least since Linux 2.6.30 in OpenWrt). Remove the kernel command line
"init" parameter to get rid of duplicate and inconsistent definitions
of this parameter (some boards, like FRITZ3370 for example did not use
it at all, while it's just copy and paste on others).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-12-12 09:57:40 +01:00
Martin Blumenstingl
4995c64857 lantiq: specify console using stdout-path instead of cmdline argument
Use devicetree's /chosen/stdout-path instead of the kernel command line
(embedded in the .dts-files) to specify the serial console. Using the
chosen node is recommended on devicetree based platforms.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-12-12 09:57:40 +01:00
Hauke Mehrtens
7c47f43fe6 lantiq: falcon: remove bootargs-append
This attribute is not evaluated any more and the boot loader on these
reference boards does not provide a broken root= or console= parameter.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2016-12-10 16:08:06 +01:00
Mathias Kresin
ee5a6c1041 lantiq: simplify ath9k eeprom extraction script
Add an extra function to patch the mac and fixup the checksum
afterwards. Calculate the checksum position automatically. The offset
to the mac address is the same for all checksum protected EEPROMs.

No EEPROM requires a byte swapped mac address. The mac byte swap code
was required due to an bug in the script that is now fixed.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-12-08 19:36:53 +01:00
Martin Blumenstingl
afa3709266 lantiq: fix ath9k EEPROM data swapping for some devices
The EEPROM data in the flash of the ARV7518PW, ARV8539PW22,
BTHOMEHUBV2B and BTHOMEHUBV3A is stored byte-swapped (swab16), meaning
that for example the ath9k base_eep_header fields "version" (high and
low byte), "opCapFlags" and "eepMisc" are swapped (the latter ones are
just 1 byte wide, thus their position is swapped).

The old "ath,eep-endian" property enabled the corresponding swapping
logic in the ath9k driver (swab16 in ath9k_hw_nvram_swap_data, which is
based on the magic bytes in the EEPROM data which have nothing to do
with the calibration data - thus this logic should not be used
anymore).
Since we have switched to the upstream ath9k devicetree bindings there
is no binding anymore which enables swab16 in ath9k (as this logic is
not recommended anymore as explained above), leading to ath9k
initialization errors:
ath: phy0: Bad EEPROM VER 0x0001 or REV 0x00e0
(this shows that the version field is swapped, expected values are VER
0x000E and REV 0x0001)

Swapping the ath9k calibration data when extracting it from the flash
fixes the devices listed above (all other devices do not require
additional swapping, since the position of the fields is already as
expected by ath9k). This allows ath9k to read the version correctly
again, as well as the more important "eepmisc" field (which is used for
determining whether the data inside the EEPROM is Big or Little Endian
which is required to parse the EEPROM contents correctly).

Fixes: a20616863d ("lantiq: use ath9k device tree bindings
binding/owl-loader")

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-12-08 19:36:22 +01:00
Álvaro Fernández Rojas
758ef7aa99 kernel: bump to 4.4.36
Refresh patches on all 4.4 supported platforms.
Compile & run tested: brcm2708/bcm2710 - Raspberry Pi 3

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-12-04 12:31:30 +01:00
Mathias Kresin
d9d838bc97 lantiq: fix image validation errors
The boards did not have the name set that is expected during metadata
validation on sysupgrade.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-12-04 07:03:17 +01:00
Kevin Darbyshire-Bryant
102cb4742c kernel: bump to 4.4.35
Refresh patches on all 4.4 supported platforms.

077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch
removed as now upstream.

Compile & run tested: ar71xx - Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
2016-11-29 21:12:08 +01:00
Mathias Kresin
c0e66478b5 lantiq: drop obsolete patch
ifxhcd never had roothub support but since kernel 3.x it was expected
that a roothub always exists.

The patched fixed a null pointer deref in the usb subsystem because of
the missing roothub.

Since ifxhcd is gone, this whole patch isn't required any longer.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-29 21:40:16 +01:00
Mathias Kresin
0e34459e6b lantiq: use BT HomeHub 5 Type A OEM partition layout
This way the on nand bad block table is preserved and used. Add support
for nand OOB ECC checksums as well. It should fix all reported ubi
errors, which were all related to bad nand blocks and a purged on nand
bad block table.

The existing ubi partition will be reused, which eliminates the need
to touch the caldata during initial install. The BT u-boot has support
for loading a kernel from an ubi volume. It isn't necessary any longer
to replace the BT u-boot with a custom compiled one to use LEDE.

It is required to restore the BT Firmware and install LEDE from scratch
to switch to the new partition layout.

An image for restoring the BT firmware and installing LEDE is provided
at https://github.com/mkresin/lede/releases.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-29 21:40:16 +01:00
Mathias Kresin
860210c373 lantiq: backport kernel patch to pass of node to nand_dt_init
Backport upstream commit a61ae81a1907af1987ad4c77300508327bc48b23.

The actually purpose of the patch was to do some cleanup. As a side
effect of this cleanup, the device node is now passed to nand_dt_init.

This allows to use the common nand device tree properties

 - nand-bus-width
 - nand-on-flash-bbt
 - nand-ecc-mode
 - nand-ecc-step-size
 - nand-ecc-strength

for the plat_nand driver.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-29 21:40:16 +01:00
Mathias Kresin
62a347b1d9 lantiq: drop ath9k device tree binding & ath9k pci fixup
Due to the addition of the bindings to the ath9k driver, this code
isn't used any longer. The fixup is now done by the owloader.

Rename the ath_eep.c file to ath5k_eep.c to indicate that this files
includes ath5k related code only.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-29 21:40:16 +01:00
Martin Blumenstingl
a20616863d lantiq: use ath9k device tree bindings binding/owl-loader
This moves the extraction of the eeprom/calibration data to a hotplug
firmware script. Additionally it modifies all .dts to configure ath9k
directly from within the .dts.

The owl-loader approach enables support on devices with exotic eeprom
data locations (such as unaligned positions on the flash or data
inside an UBI volume).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
[add ath9k caldata mac address patcher]
[fixes DGN3500 wifi mac]
[fixes BTHOMEHUBV3A wifi mac]
[set invalid mac for BTHOMEHUB2B, FRITZ3370, FRITZ7320 & FRITZ7360SL to restore previous random mac behavior]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-29 21:40:16 +01:00
Hauke Mehrtens
9371542783 lantiq: add Falcon support
This adds support for the Intel Falcon SoC for GPON.

Support for the Falcon SoC was removed in commit c821836395 svn rev:
40392 from OpenWrt, this commit adds it again.

This patch adds a new subtarget for the Falcon SoC, but it still misses
all the drivers needed to control the GPON part.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2016-11-27 17:40:20 +01:00
Mathias Kresin
5cdbc86329 lantiq: add swconfig to the default packages
The DEVICE_PACKAGES are not included in the initramfs image in case
TARGET_PER_DEVICE_ROOTFS is set. This might produces initramfs images
with a not working network configuration because of a missing swconfig.

Workaround the issues by adding the essential swconfig package to the
default packages selection and deselect swconfig for boards not having
swconfig included before via device packages.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-27 15:34:23 +01:00
Mathias Kresin
18c64f41c7 treewide: fix button keys codes used in dts
Use keycodes that matches the intended use case based on the label.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-27 15:34:23 +01:00
Martin Blumenstingl
d76ee5bfac lantiq: specify the PCIe controller's interrupt, size and address cells
This allows adding devices to the PCIe controller in the .dts files.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-11-26 22:39:27 +01:00
Martin Blumenstingl
79741dc379 lantiq: Register the device tree node with the PCIe controller
This allows specifying PCI devices as children of the PCIe controller
node to pass configuration data to them.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-11-26 22:39:26 +01:00
Eddi De Pieri
d596c21ebd lantiq: write protect vgv7519 u-boot and u-boot-env partitions
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-23 10:18:19 +01:00
Felix Fietkau
c2582f58dc lantiq: add missing metadata for tp-link images
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-21 16:13:55 +01:00
Ben Mulvihill
ffd7c15500 lantiq: use dwc2 by default on danube
Use dwc2 by default on all danube boards.

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>
2016-11-21 11:04:17 +01:00
Ben Mulvihill
6f60926bab lantiq: dwc2 parameters for danube
Parameters for dwc2 on lantiq.

A separate dwc2_core_params structure is defined for danube because danube
fifo sizes are large enough to be autodetected. This is not the case on
arx and vrx.

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>
2016-11-21 11:04:12 +01:00
Ben Mulvihill
5c06a31e23 lantiq: device tree bindings for dwc2 on danube
Device tree binding for dwc2 usb driver on danube.
Leave old ifxhcd-danube driver as an alternative.

Also adds dr_mode = "host" to eliminate warning on boot.

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>
2016-11-21 11:04:05 +01:00
Ben Mulvihill
c82d5b30e1 lantiq: initialise dwc2 on danube
Initialise dwc2 usb driver on danube boards as well as ar9 and vr9.

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>
2016-11-21 11:03:59 +01:00
Felix Fietkau
16adf49620 lantiq: remove device specific sysupgrade image checks
Replaced by image metadata

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-20 20:08:48 +01:00
Felix Fietkau
7738227321 lantiq: run append-metadata before check-size to fix build errors
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-19 14:19:27 +01:00
Felix Fietkau
be296745f8 lantiq: append metadata to images
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-19 11:24:10 +01:00
Stijn Tintel
8e47655d4e kernel: update kernel 4.4 to version 4.4.32
Refresh patches for all targets that support kernel 4.4.
Compile-tested on all targets that use kernel 4.4 and aren't marked broken.
Runtime-tested on ar71xx, octeon.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2016-11-16 17:31:29 +01:00
dpeddi
8565630e14 lantiq: add tapi/vmmc to VGV7519 defaults
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-16 10:57:48 +01:00
dpeddi
0ce929228a lantiq: enable VMMC for VGV7519
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-16 10:57:48 +01:00
Eddi De Pieri
904a6751b6 lantiq: add tapi/vmmc to VGV7510KW22 defaults
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-16 10:57:14 +01:00
Eddi De Pieri
fe9a757984 lantiq: enable VMMC for VGV7510KW22
Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-16 10:57:14 +01:00
Felix Fietkau
ecab500232 lantiq: fix port indexing for WBMR-300
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-14 20:03:02 +01:00
Mathias Kresin
2b55c83e68 treewide: dts: use keycode defines from input dt-binding
All compiled device tree files not mentioned are binary identical to the
former ones.

Fix the obvious decimal/hex confusion for the power key of ramips/M2M.dts.

Due to the include of the input binding header, the BTN_* node names in:

  - ramips/GL-MT300A.dts
  - ramips/GL-MT300N.dts
  - ramips/GL-MT750.dts
  - ramips/Timecloud.dts

will be changed by the compiler to the numerical equivalent.

Move the binding include of lantiq boards to the file where they are
used the first time to hint the user where the values do come from.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-13 07:07:58 +01:00
Eddi De Pieri
07bc0d6089 lantiq: fix pci issue if mem kernel parameter is used
As specified by e0229a16b0 if the VR9
based router provides FXS ports and they should enabled then the
following must added to the kernel command line:

  mem=[TOTALMEMSIZE-2M] vpe1_load_addr=ADDRESS vpe1_mem=2M

By adding mem= parameter a pci device stop working correctly. The
pci-lantiq.c module use get_num_physpages() to compute dynamically the
memory amount of the board.

The mem= make the module to compute in the wrong way the BAR11MASK, so
in this situation the mask is misaligned with the dma area that the
hardware expects.

This patch is a port of what legacy ifxmips_pci.c does.

Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-12 21:04:15 +01:00
Mathias Kresin
21d8de78dc lantiq: drop ralink eeprom handling function
The eeprom handling function from the rt2x00 driver is used and this
code is obsolete.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-09 20:02:18 +01:00