Commit Graph

243 Commits

Author SHA1 Message Date
Felix Fietkau
6006227cb7 ipq806x: do not allocate coherent memory in dma engine hotpath
The available amount of coherent DMA memory is very limited. On Linux
4.4 this issue was worked around by increasing the pool size.

It turns out that using coherent memory here is completely unnecessary.
This change reworks the driver code to use kzalloc+dma_map_single
instead.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-03-13 13:40:56 +01:00
John Crispin
1adf51702e ipq806x: clean up patches, port missing patches from 4.4
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-03-13 13:40:55 +01:00
John Crispin
99b6aefd63 ipq806x: sync 4.9 kernel config with 4.4
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: John Crispin <john@phrozen.org>
2017-03-13 13:40:46 +01:00
Felix Fietkau
a531d37fab ipq806x: clean up dts patching in 4.9
Do not patch upstream files, overwrite them entirely. The upstream files
are buggy for a number of devices and this significantly simplifies the
patch structure

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: John Crispin <john@phrozen.org>
2017-03-13 13:33:51 +01:00
Felix Fietkau
ddf577b0b2 ipq806x: enable cmdline mangle on 4.9 (like on 4.4)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: John Crispin <john@phrozen.org>
2017-03-13 13:33:50 +01:00
Hauke Mehrtens
9a065fcfec kernel: update kernel 4.9 to 4.9.14
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-03-12 15:45:50 +01:00
Felix Fietkau
92b5b360fe ipq806x: clean up dts patch
Move dts files to files/, remove useless patch chunks

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-03-08 14:38:22 +01:00
Felix Fietkau
2a3952bcd5 kernel: re-apply 300-arch-arm-force-ZRELADDR-on-arch-qcom.patch on 4.9 (FS#549)
Fixes memory corruption issues. See commit bdcba36442 for more
details.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-03-08 14:38:22 +01:00
Felix Fietkau
9f09bd6606 ipq806x: refresh patches
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-03-08 14:38:22 +01:00
Thomas Reifferscheid
eb09d79c16 ipq806x: sanitize Dni image generation
The more straight forward approach for generating the pure and unpadded
kernel file which then can be used for initramfs straight.
Build options for factory.img and sysupgrade.tar are handeled
seperately.

Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
2017-02-26 13:32:26 +01:00
Thomas Reifferscheid
e01b034cdc ipq806x: fix fakerootfs position
The fakeroot header is expected by the netgear bootloader in the last
64 bytes of the last block used by the uImage. With the current
linux-4.9 uImage being more than 128k smaller than the linux-4.4 uImage
the bootloader was unable to locate the rootfs ih_magic and was
refusing to load and start the kernel.

Fixes: FS#542

Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
2017-02-21 21:18:33 +01:00
John Crispin
bb255f7429 ipq806x: add v4.9 support
Signed-off-by: John Crispin <john@phrozen.org>
2017-02-16 20:25:32 +01:00
Jo-Philipp Wich
ea269c37b8 ar71xx/ipq806x/mediatek/mvebu: fix network defaults
After "73d923e base-files: emit tagged switch configuration by default"
some default network configurations are broken because the lan and wan
ifnames are forcibly set to untagged netdevs.

Adjust the offending set_interfaces_lan_wan() calls to use the proper
tagged device names.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-02-07 09:32:28 +01:00
Stijn Tintel
d2c4041f02 kernel: update kernel 4.4 to version 4.4.47
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, except arc770 and arch38 due to broken toolchain.

Runtime-tested on ar71xx, octeon, ramips and x86/64.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2017-02-06 03:23:06 +01:00
Joseph C. Lehner
7d00cfe9bb build: centralize fakeroot code
This patch moves the fakeroot code required by some devices to
`image-commands.mk`.

Create the fakeroot on the fly by using the undocumented -s (skip copy)
parameter of mkimage.

Signed-off-by: Joseph C. Lehner <joseph.c.lehner@gmail.com>
[remove unused NETGEAR_KERNEL_MAGIC, remove workarounds to have a dummy
rootfs for mkimage]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-02-04 13:46:48 +01:00
Hannu Nyman
c980147527 ipq806x: fix wireless macs
Commit 71a39b8 ("ipq806x: Fix wireless support for Netgear Nighthawk X4S
D7800") added a trailing TAB char after the backslash which prevents
the assignment of the correct MACs for wifi devices.

Fixes: FS#451

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
[reworded commit message]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-02-03 19:31:45 +01:00
André Valentin
8725d1cffa ipq806x: fixup nbg6817 internal mmc and switch configuration in DTS
The setting mmc-ddr-1_8v in the platform dts leads to read errors. The
device is unusable and system reboots in a loop. Because NBG6817 is the
only mmc device, I removed it in base dts.

The second change removes settings now present in base dts.

The third change references was a wrong conversion of constants in the switch settings.
Switch now initializes again.

Signed-off-by: André Valentin <avalentin@marcant.net>
2017-02-02 22:48:33 +01:00
Joseph C. Lehner
aeba0fe466 build: move append-file to image-commands.mk
Move it append-file to image-commands.mk so that it can used by other
targets as well.

Signed-off-by: Joseph C. Lehner <joseph.c.lehner@gmail.com>
2017-01-27 11:10:10 +01:00
Zhang Jingye
71a39b8690 ipq806x: Fix wireless support for Netgear Nighthawk X4S D7800
D7800 has a simular hardware to R7800 and uses dual QCA9980 for both 2.4GHz and 5GHz band.
However there is no proper initialization for them, which causes a kernel panic due to failed firmware loading.

This patch adds d7800 to ath10k caldata extraction list.
I can get two functional wireless bands after making change to it.

Signed-off-by: Zhang Jingye <934526987@qq.com>
2017-01-18 12:05:18 +01:00
Pavel Kubelun
8004aa313a ipq806x: refactor ipq8065 device tree
At the moment we have 2 seperate device tree sources: 1 for ipq8064 soc located
in kernel source and 1 custom in LEDE for ipq8065.
ipq8064 and ipq8065 SoCs are completely identical except ipq8065 has higher cpu
frequencies and adjusted corresponding power supply.

This commit makes ipq8065 DTS to contain only specific for ipq8065 DT entries while
pulling all the basic SoC stuff from ipq8064 DTS.

It makes easier to manage ipq806x device trees and instead of committing changes into
2 seperate equal DTS we are ending up with only 1.
It also enables ipq8065 devices to automatically receive changes made in upstream kernel.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2017-01-15 20:56:30 +01:00
Pavel Kubelun
ca25b4d729 ipq806x: enable hw pseudo random number generator
Enables support for pseudo random number generator in device tree.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2017-01-15 20:56:30 +01:00
Pavel Kubelun
44b44595dc ipq806x: update eMMC and SDCC3 nodes in device tree
Enable bam dma support for eMMC and SDCC3 in device tree and update nodes
to reflect Qualcomm SDK.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2017-01-15 20:56:30 +01:00
Pavel Kubelun
45bf3d4f24 ipq806x: disable usb3 phy suspend and add usb tcsr control
According to Qualcomm SDK usb3 phy suspend should be disabled for
ipq806x.
This may solve issue on some ipq806x devices that breaks usb3
storage peripherals during system boot.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2017-01-15 20:56:30 +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
Felix Fietkau
c2fc52ae22 kernel: remove DEVMEM/DEVKMEM platform overrides
Those options are handled via top-level menuconfig instead

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-10 13:48:53 +01:00
Pavel Kubelun
6ebb46a40a ipq806x: fix pvs1_bin voltage in ipq8065 DT
Fixing pvs1 bin voltage as found in GPL tarball and Qualcomm SDK.

Also adjusting smb208_s2a/b minimum voltage to reflect lowest value in pvs table.

Current ipq8065 devices in LEDE choose (based on eFuse data) pvs bin n4, that has
correct values in DT, but in future a new device may choose n1 or n6.

Without this change n1 is semi-correct and n6 is not available, because OPP driver
disregards bins with voltage values that regulator cannot supply.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2017-01-10 08:11:14 +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
Adrian Panella
d700c120bf ipq806x: EA8500 fix sysupgrade over stock firmware
When running sysupgrade for the first time over the second partition
(that still had stock firmware) the rootfs wasn't flashed as there
wasn't enough space.
This happend because stock also uses UBI, but the volume name wasn't
recognised and wasn't deleted before flashing.

Signed-off-by: Adrian Panella <ianchi74@outlook.com>
2016-12-20 09:35:37 +01:00
dissent1
fef6a96d9e ipq806x: add thermal sensor driver
Allows to check cpu temperature.

Huge thanks to @hnyman for valuable assistance!

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-12-01 15:47:43 +01:00
Pavel Kubelun
2b71f958b1 ipq806x: increase coherent dma pool size
Cherry-picked and rebased from
https://source.codeaurora.org/quic/qsdk/system/openwrt/tree/?h=korg/linux-3.4.y/release/arugula_bb_cs

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-12-01 15:47:43 +01:00
Pavel Kubelun
8fca99266e ipq806x: add enable reg and masks for PRNG
Cherry-picked from https://source.codeaurora.org/quic/qsdk/system/openwrt/tree/?h=korg/linux-3.4.y/release/arugula_bb_cs

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-12-01 15:47:43 +01:00
Pavel Kubelun
550f71ec8d ipq806x: refactor rpm clock controller patches
RPM clock controller driver had made its way upstream and previous
approach of directly redoing a driver to support ipq806x is a no go anymore.

Thus reverting mentioned patches to upstream state and renaming
in correct patch numbering accordance.

To make the driver work on ipq806x boards we introduce a custom patch.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-12-01 15:47:43 +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
3228c2a682 ipq806x: more dts cleanup
Remove the wifi5g LED from the the d7800, r7500 and r7800. Albeit this
GPIO is mentioned in the GPL tarball, it doesn't do anything. The
2.4/5 GHz LEDs are connected to the wifi chips and not be controlled
from the the userspace.

Use the LEDs names/colours as they are used in the board manuals. Merge
redundant LED configurations. Use the phy[0|1]tpt trigger for the
wireless LEDs. Remove the workarounds for the not controllable wireless
LEDs.

Fix spi compatible strings and remove superfluous spi-max-frequency
parameters.

If there are two power leds, use one for indicating normal operation and
one for failsafe/upgrade. Keep the on/off state of the main power led
during boot.

Use the usb pinmux settings from the nbg6817 gpl sources.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-27 15:33:54 +01:00
Henryk Heisig
e3caadc69d ipq806x: clean up dts files
Set the pinmux to the values found in the GPL tarballs of the boards.
Remove pinmux which are is not used (like nand pinmux for spi
flash boards).

This allows to use the wan orange led of the C2600 which had a wrong
pinmux before. Might fix buttons or leds of other boards as well.

Fix the LED color and the ledswitch key code of the C2600. Rename the
ledgnr to ledswitch.

Add support for indication the boot state using LEDs to the D7800,
NBG6817, R7500 and R7500v2.

Change GPIO active to readable values in D7800, EA8500, R7500,
R7500v2 and R7800.

Change gpioexport to gpio pinmux.

Add proper "drive strenght" to i2c4_pins and use it for RPM on
C2600, D7800, EA8500, R7500, R7500v2.

Remove pcie pinmux from D7800.

Move pinctrl to correct place in NBG6817 and R7800.

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2016-11-27 15:24:59 +01:00
Sebastian Quilitz
ae79c41286 ipq806x: add support for TP-Link Archer VR2600v
This router is similar to the C2600. Ethernet on WAN + LAN, switch,
sysupgrade, LEDs, buttons and WiFi on 2G + 5G do work. The xDSL modem
and the POTS/DECT interface are not supported yet.

It is not possible to flash LEDE via the TP-Link webinterface. The
image need to be signed. The first 0x200 bytes of the image is the
TP-Link header including the signature. The signature is not validated
by the bootloader. The LEDE image is zeroed in this area.

To install LEDE it is necessary to solder a four pin header to JP2.
Connect a serial interface to this header and interrupt the autostart
of kernel. Transfer the sysupgrade image via TFTP and write it to the
serial flash at 0x320000.

Signed-off-by: Sebastian Quilitz <zeraphim@x-pantion.de>
2016-11-24 22:37:40 +01:00
Henryk Heisig
c380772c19 ipq806x: c2600: change wan and lan led trigger to swconfig port
Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2016-11-21 10:04:55 +01:00
Henryk Heisig
8b1731964b ipq806x: enable swconfig LED support
Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2016-11-21 10:04:55 +01:00
Pavel Kubelun
70434c3f94 ipq806x: switch to upstream usb driver and backport fixes
Also removing fifo-resize property drom DT as it has been removed from the driver.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-21 09:58:42 +01:00
Felix Fietkau
b5ee86c4e5 ipq806x: remove device specific sysupgrade image checks
Replaced by image metadata

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-20 20:08:39 +01:00
Pavel Kubelun
27c355f8a4 ipq806x: fix build errors
Add missing patches that broke LEDE builder while updating WDT driver

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-19 17:57:09 +01:00
Felix Fietkau
9d6d7d9a0e ipq806x: append metadata to images
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-11-19 11:24:10 +01:00
Hannu Nyman
8459d85fa3 ipq806x: refresh patches
This patch refreshes the ipq806x kernel patches.

There was a large PR for ipq806x in the queue when the kernel patches
were refreshed for 4.4.32, so currently there is quite much fuzz for
ipq806x.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2016-11-17 14:23:01 +01:00
Pavel Kubelun
5aace5a5fb ipq806x: fixes for R7800 and C2600
Updating spi pins configuration in R7800 and C2600 DTs
Adding more usb power pin export and gsbi6 in R7800 DT
Updating and fixing leds

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00
Pavel Kubelun
3ac5eb9141 ipq806x: fix Netgear R7500v2 memory
Netgear R7500v2 has 512MB of RAM with 2MB reserved block in the end of memory region.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00
Pavel Kubelun
bb8f5162fd ipq806x: fix pci pins
Fix pci pins drive-strength according to oem sources.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00
Pavel Kubelun
84781cb6dc ipq806x: add vlans during switch init into R7800 DT
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00
Pavel Kubelun
77b6bfc2f5 ipq806x: add support for RPM message RAM
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00
dissent1
07d0c1b947 ipq806x: add support for RPM clock controller
The patch #179 for RPM has initially been made for apq806x board. It has been modified to support ipq806x instead of apq8064.

Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00
Pavel Kubelun
506dc815b9 ipq806x: add CPU idle states
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
2016-11-16 10:59:30 +01:00