aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x
Commit message (Collapse)AuthorAgeFilesLines
* ipq806x: fix EA8500 switch configurationJo-Philipp Wich2017-05-031-1/+1
| | | | | | | | | Do not assign the CPU port twice, this confuses LuCI and possible other programs relying on topology information in board.json. Ref: https://github.com/openwrt/luci/issues/1086 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ipq8064: fix dwc3-of-simple module unloading for Netgear R7500Thomas Reifferscheid2017-04-242-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without patch unloading the dwc3-of-simple module went stuck after successfully removing hcd.1 during the hcd.0 removal: root@LEDE:/# rmmod dwc3-of-simple [ 21.391846] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 21.391931] usb usb4: USB disconnect, device number 1 [ 21.397038] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 21.401111] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 21.406685] usb usb3: USB disconnect, device number 1 [ 21.412848] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 21.417248] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 21.422521] usb usb2: USB disconnect, device number 1 followed by nothing. Sometimes a stall CPU was detected, or a kernel panic, or a reboot occurred after a couple of minutes. At the same time unloading the dwc3 module followed by dwc3-of-simple module was working repeatedly. root@LEDE:/# rmmod dwc3 [ 53.827328] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 53.827412] usb usb4: USB disconnect, device number 1 [ 53.832630] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 53.836452] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 53.842314] usb usb3: USB disconnect, device number 1 [ 53.848412] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 53.852542] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 53.857882] usb usb2: USB disconnect, device number 1 [ 53.863956] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 53.867875] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 53.873696] usb usb1: USB disconnect, device number 1 [ 53.879742] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered root@LEDE:/# rmmod dwc3-of-simple root@LEDE:/# For the non-working case, the code was stuck in a readl() in http://lxr.free-electrons.com/source/drivers/usb/host/xhci.c#L91 because http://lxr.free-electrons.com/source/drivers/usb/dwc3/dwc3-of-simple.c#L126 was disabling the wrong clocks when removing hcd.1 (it was disabling the clock of hcd.0). That's why the readl() went stuck when removing hcd.0 The patch however addresses the clock assignment from the Netgear R7500 dts file and backs off the previous attempt. Now unloading and repeated module loading is working just fine. root@LEDE:/# rmmod dwc3-of-simple [ 24.089679] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 24.089765] usb usb4: USB disconnect, device number 1 [ 24.094856] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 24.098963] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 24.104522] usb usb3: USB disconnect, device number 1 [ 24.111194] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 24.115086] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 24.120396] usb usb2: USB disconnect, device number 1 [ 24.126503] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 24.130347] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 24.135948] usb usb1: USB disconnect, device number 1 [ 24.142085] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered root@LEDE:/# Fixes: dwc3-of-simple module unloading for Netgear R7500 Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
* ipq8064: Fix dwc3 module unloadingThomas Reifferscheid2017-04-241-3/+11
| | | | | | | | | | The patch follows the qualcomm code comments setting SSUSB_CTRL_TEST_POWERDOWN to 0x1 and is testing and clearing the bit during USB superspeed PHY init. According to Andy Gross it needs to be BIT(26). Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org> Acked-by: Andy Gross <andy.gross@linaro.org>
* generic: mtd: backport mx25u25635f stateless 4b supportMathias Kresin2017-04-191-1/+1
| | | | | | | | | Use the stateless 4-byte op codes for this flash chip to fix reboot hangs on SoCs expecting the flash chip in 3-byte mode. Fixes: FS#179 Signed-off-by: Mathias Kresin <dev@kresin.me>
* firmware: rework fritz-tools packageMathias Kresin2017-04-081-1/+1
| | | | | | | | | | | | | | | | Split the fritz-tools into subpackages. fritz_tffs_read is usefull for all Fritz boards where fritz-cal_extract is only required for the Fritz 4040 at the moment. Rename the tffs related binary to the more catchy name fritz_tffs and move the whole package to utilities since the package doesn't really provide a firmware file. Make the fritz-tools available for all targets and build them shared. The tffs is used by avm on lantiq and ar71xx as well. Tested-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: update kernel 4.9 to 4.9.20Hauke Mehrtens2017-04-023-49/+26
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq8064: fix dwc3-of-simple module unloadingThomas Reifferscheid2017-03-281-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without patch unloading the dwc3-of-simple module went stuck after successfully removing hcd.1 during the hcd.0 removal: root@LEDE:/# rmmod dwc3-of-simple [ 21.391846] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 21.391931] usb usb4: USB disconnect, device number 1 [ 21.397038] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 21.401111] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 21.406685] usb usb3: USB disconnect, device number 1 [ 21.412848] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 21.417248] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 21.422521] usb usb2: USB disconnect, device number 1 followed by nothing. Sometimes a stall CPU was detected, or a kernel panic, or a reboot occurred after a couple of minutes. At the same time unloading the dwc3 module followed by dwc3-of-simple module was working repeatedly. root@LEDE:/# rmmod dwc3 [ 53.827328] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 53.827412] usb usb4: USB disconnect, device number 1 [ 53.832630] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 53.836452] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 53.842314] usb usb3: USB disconnect, device number 1 [ 53.848412] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 53.852542] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 53.857882] usb usb2: USB disconnect, device number 1 [ 53.863956] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 53.867875] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 53.873696] usb usb1: USB disconnect, device number 1 [ 53.879742] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered root@LEDE:/# rmmod dwc3-of-simple root@LEDE:/# For the non-working case, the code was stuck in a readl() in http://lxr.free-electrons.com/source/drivers/usb/host/xhci.c#L91 because http://lxr.free-electrons.com/source/drivers/usb/dwc3/dwc3-of-simple.c#L126 was disabling the wrong clocks when removing hcd.1 (it was disabling the clock of hcd.0). That's why the readl() went stuck when removing hcd.0 The patch however addresses the clock assignment from the .dtsi file. Most probably it went into openwrt here: https://dev.openwrt.org/browser/trunk/target/linux/ipq806x/patches-3.18/101-ARM-qcom-add-USB-nodes-to-ipq806x-ap148.patch?rev=45261 copied from Qualcomms attempt here: https://lkml.org/lkml/2015/11/20/116 Now unloading and repeated module loading is working just fine, no matter if you'd remove dwc3-of-simple or dwc3. root@LEDE:/# rmmod dwc3-of-simple [ 24.089679] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 24.089765] usb usb4: USB disconnect, device number 1 [ 24.094856] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 24.098963] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 24.104522] usb usb3: USB disconnect, device number 1 [ 24.111194] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 24.115086] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 24.120396] usb usb2: USB disconnect, device number 1 [ 24.126503] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 24.130347] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 24.135948] usb usb1: USB disconnect, device number 1 [ 24.142085] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered root@LEDE:/# Fixes: dwc3-of-simple module unloading Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
* ipq8064: Fix dwc3 module unloadingThomas Reifferscheid2017-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow module unloading by fixing a mistake. qcom_dwc3_phy_write_readback() is expecting (phy, offset, mask, value) while the mistake was calling it with (phy, offset, value, mask) The patch is swapping value and mask. Without the patch unloading the dwc3 module was showing a write to QSCRATCH failed and repeated module loading was failing: root@LEDE:/# rmmod dwc3 [ 19.167998] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 19.168084] usb usb4: USB disconnect, device number 1 [ 19.173371] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 19.177134] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 19.182960] usb usb3: USB disconnect, device number 1 [ 19.189023] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 19.192989] qcom-dwc3-usb-phy 110f8830.phy: write: 8000000 to QSCRATCH: 0 FAILED [ 19.199064] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 19.205912] usb usb2: USB disconnect, device number 1 [ 19.211611] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 19.215905] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 19.221751] usb usb1: USB disconnect, device number 1 [ 19.227307] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered [ 19.231795] qcom-dwc3-usb-phy 100f8830.phy: write: 8000000 to QSCRATCH: 0 FAILED root@LEDE:/# modprobe dwc3 [ 29.583343] phy phy-100f8830.phy.4: phy init failed --> -110 [ 29.583399] dwc3 10000000.dwc3: failed to initialize core [ 29.588169] dwc3: probe of 10000000.dwc3 failed with error -110 [ 29.652943] phy phy-110f8830.phy.2: phy init failed --> -110 [ 29.652988] dwc3 11000000.dwc3: failed to initialize core [ 29.657735] dwc3: probe of 11000000.dwc3 failed with error -110 root@LEDE:/# With patch repeated module unloading and loading is working good: root@LEDE:/# rmmod dwc3 [ 22.622214] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 22.622298] usb usb4: USB disconnect, device number 1 [ 22.627401] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered [ 22.631492] xhci-hcd xhci-hcd.1.auto: remove, state 1 [ 22.637054] usb usb3: USB disconnect, device number 1 [ 22.643721] xhci-hcd xhci-hcd.1.auto: USB bus 3 deregistered [ 22.647421] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 22.652910] usb usb2: USB disconnect, device number 1 [ 22.659219] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 22.662768] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 22.668604] usb usb1: USB disconnect, device number 1 [ 22.674803] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered root@LEDE:/# modprobe dwc3 [ 25.404592] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 25.404694] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 [ 25.409444] xhci-hcd xhci-hcd.0.auto: hcc params 0x0228f065 hci version 0x100 quirks 0x00010010 [ 25.416589] xhci-hcd xhci-hcd.0.auto: irq 168, io mem 0x10000000 [ 25.426509] hub 1-0:1.0: USB hub found [ 25.431626] hub 1-0:1.0: 1 port detected [ 25.435472] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 25.439206] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 [ 25.444573] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 25.452926] hub 2-0:1.0: USB hub found [ 25.460420] hub 2-0:1.0: 1 port detected [ 25.525037] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 25.525099] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3 [ 25.529750] xhci-hcd xhci-hcd.1.auto: hcc params 0x0228f065 hci version 0x100 quirks 0x00010010 [ 25.537002] xhci-hcd xhci-hcd.1.auto: irq 169, io mem 0x11000000 [ 25.546583] hub 3-0:1.0: USB hub found [ 25.551997] hub 3-0:1.0: 1 port detected [ 25.555734] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 25.559621] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4 [ 25.564942] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM. [ 25.573063] hub 4-0:1.0: USB hub found [ 25.580842] hub 4-0:1.0: 1 port detected root@LEDE:/# Fixes: dwc3 module unloading Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
* ipq8064: enable 2nd USB port on R7500Thomas Reifferscheid2017-03-272-4/+6
| | | | | | | | | Makes use of the syscon tcsr and enables both USB ports. Cleans up qcom-ipq8064.dtsi from previous attempts. Fixes FS#497 Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
* ipq806x: tsens: convert degrees to millicelsiusPavel Kubelun2017-03-272-79/+79
| | | | | | | | | | Current driver shows temp in full degrees while other apps await it to be in millidegrees. Initially the driver represents termal data in millidegrees but then it gets divided by TSENS_FACTOR. So lets just set it to '1'. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: add ipq806x specific tsens driverPavel Kubelun2017-03-275-106/+1445
| | | | | | | | | | | | | | | | | Current upstream driver doesnt fully support ipq806x devices ipq806x has 11 sensors, the upstream one doesn't allow to check sensors 0-4, only 5-10. A specific driver for ipq806x has been found in Qualcomm SDK repo. https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=release/endive_preview_cc&id=c089e464cd7ce652419a0dc44d7959ce4d24b8a5 https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=release/endive_preview_cc&id=c23d94b702c4182862e7f5051a2b7d00bb922a29 https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=release/endive_preview_cc&id=742f3684b62a6b9f082cb49404b1a92dc0b16bf5 https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=release/endive_preview_cc&id=c0a9b2e2a382c152fa128f5b864c800dd6dfb311 Merging it into LEDE with this commit. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* kernel: update kernel 4.9 to 4.9.17Hauke Mehrtens2017-03-263-4/+3
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* treewide: select ath10k firmware explicitMathias Kresin2017-03-241-1/+1
| | | | | | Do not rely on the default firmware selected by ath10k. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: fix Netgear X4 R7500 ath10k firmware selectionThomas Reifferscheid2017-03-241-1/+1
| | | | | | | Netgear X4 R7500 comes with a QCA988X. Select a firmware that matches the ath10k chipset Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
* Revert "ipq806x: make the dwc3 driver and required phy drivers built-in"John Crispin2017-03-232-6/+32
| | | | | | | | This reverts commit d5b10bb560c2c3c615babfcfb64519bfc65818d9. This caused boot errors on some ipq8 boards Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: remove v4.4 supportJohn Crispin2017-03-22128-22377/+0
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: set v4.9 as defaultJohn Crispin2017-03-221-1/+1
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: make the dwc3 driver and required phy drivers built-inJohn Crispin2017-03-222-32/+6
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: enable QCE hardware crypto inside the kernelJohn Crispin2017-03-221-2/+19
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: add ipq4019 fritz4040 supportChristian Lamparter2017-03-227-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for AVM FRITZ!Box 4040. hardware highlights: SOC: IPQ4018 / QCA Dakota CPU: Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7 DRAM: 256 MiB Nanya NT5CC128M16IP FLASH: 32 MiB MXIC MX25L25635FMI ETH: Qualcomm Atheros QCA8075 Gigabit Switch (4 x LAN, 1 x WAN) USB: 1 x 3.0 (via Synopsys DesignWare DWC3 controller in the SoC) 1 x 2.0 (via Synopsys DesignWare DWC3 controller in the SoC) WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11bgn 2:2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11a/n/ac 2:2x2 INPUT: one WLAN and one WPS button LEDS: Power, WAN/Internet, WIFI, INFO (red and amber) and LAN. Serial: WARNING: The serial port needs a TTL/RS-232 v3.3 level converter! The Serial setting is 115200-8-N-1. The SoC's serial port is right next to the MXIC FLASH chip. The board has a unpopulated 1x4 0.1" header for it. Use a multimeter to figure out the pinout! This board currently needs an additional u-boot image in order to boot properly. Booting with EVA isn't possible ATM. Install Procedure: 0. It's highly recommended to connect to the serial port. The serial settings are listed above. 1. install a u-boot image for AVM Fritz!Box 4040 (see <https://github.com/chunkeey/FritzBox-4040-UBOOT/releases> and <https://github.com/chunkeey/FritzBox-4040-UBOOT/blob/master/upload-to-f4040.sh>) 2. upload the initramfs.itb image via tftp (u-boot listens to 192.168.1.1 - use binary transfer mode!) 3. connect to the FB4040 and use sysupgrade sysupgrade.bin to install the image. Works: - Switch and Ethernet (99%) - Buttons (WLAN, WPS) - FLASH (1 x 32MiB NOR Chip) - WLAN2G and WLAN5G - CPUFREQ scaling - PRNG - serial - Crypto Accelerator - sysupgrade (Read the flash instructions to avoid bricking) - full LEDE Install (Read the flash instructions to avoid bricking) - LEDs (Power, WAN, Info (red and amber), LAN) The LEDs are connected to the QCA8075 LED ports. The AR40xx driver contains a gpio-controller to handle these special "GPIOs". - USB Both 3.0 and 2.0 ports - many packages from other ARMv7 boards (This does include the RaspberryPi Model 2!) - ... Not planned: - WAN<->LAN short-cut - Qualcomm Secure Execution Environment - ... Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: add ipq4019 supportChristian Lamparter2017-03-2229-327/+21249
| | | | | Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: support independent core clocks in cpufreq with kernel 4.9+Hannu Nyman2017-03-202-46/+57
| | | | | | | | | | | | | Add back support for the independent_clocks definition that has been removed between kernel 4.4 and 4.9 by upstream commits eb96924acddc709db58221c210ca05cd9effb1df and e86eee6bc2aaa6b3637f6497b26beee09a91bde9 * extend the new cpufreq_dt_platform_data definition in cpufreq-dt.h * revert the removal of its usage in cpufreq-dt.c * use new cpufreq-dt.h in qcom-cpufreq.c Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* ipq806x: route gpio interrupts to APPS processor through scm firmwarePavel Kubelun2017-03-201-0/+166
| | | | | | | | | For IPQ806x targets, TZ protects the registers that are used to configure the routing of interrupts to a target processor. To resolve this, this patch uses scm call to route GPIO interrupts to application processor. Also the scm call interface is changed. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: remove scm firmware clocksPavel Kubelun2017-03-202-4/+167
| | | | | | | | | | | | | | At the moment as a workaround definition for scm firmware in DT is used as if it is apq8064 board. This leads to incomplete scm firmware initialization and as a result cpuidle driver fails to configure. By design unlike other qcom boards ipq do not use clocks to connect to scm. Considering this we're removing from DT and scm driver clocks for ipq boards. As a result cpuidle does not produce errors about failed configuration anymore. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: fix ethernet DMA parameters with linux 4.9Felix Fietkau2017-03-131-0/+22
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: fix pcie with linux 4.9Felix Fietkau2017-03-132-3/+311
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: re-enable the RAM clock for gcc on 4.9Felix Fietkau2017-03-131-2/+2
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: fix crash on 4.9 if the rpm clock probe happens before cpuidle initFelix Fietkau2017-03-131-0/+16
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: fix NAND support for linux 4.9Felix Fietkau2017-03-137-343/+397
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: do not allocate coherent memory in dma engine hotpathFelix Fietkau2017-03-131-15/+29
| | | | | | | | | | | 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>
* ipq806x: clean up patches, port missing patches from 4.4John Crispin2017-03-1368-134/+4796
| | | | | Signed-off-by: John Crispin <john@phrozen.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: sync 4.9 kernel config with 4.4John Crispin2017-03-131-1/+21
| | | | | Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: clean up dts patching in 4.9Felix Fietkau2017-03-137-1159/+1298
| | | | | | | | | 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>
* ipq806x: enable cmdline mangle on 4.9 (like on 4.4)Felix Fietkau2017-03-131-2/+2
| | | | | Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: John Crispin <john@phrozen.org>
* kernel: update kernel 4.9 to 4.9.14Hauke Mehrtens2017-03-125-72/+78
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq806x: clean up dts patchFelix Fietkau2017-03-0812-4060/+3873
| | | | | | Move dts files to files/, remove useless patch chunks Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: re-apply 300-arch-arm-force-ZRELADDR-on-arch-qcom.patch on 4.9 (FS#549)Felix Fietkau2017-03-082-1/+62
| | | | | | | Fixes memory corruption issues. See commit bdcba36442a4 for more details. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: refresh patchesFelix Fietkau2017-03-087-84/+78
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: sanitize Dni image generationThomas Reifferscheid2017-02-261-4/+3
| | | | | | | | | 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>
* ipq806x: fix fakerootfs positionThomas Reifferscheid2017-02-211-2/+2
| | | | | | | | | | | | 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>
* ipq806x: add v4.9 supportJohn Crispin2017-02-1650-0/+11894
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ar71xx/ipq806x/mediatek/mvebu: fix network defaultsJo-Philipp Wich2017-02-071-1/+1
| | | | | | | | | | | 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>
* kernel: update kernel 4.4 to version 4.4.47Stijn Tintel2017-02-061-1/+1
| | | | | | | | | | 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>
* build: centralize fakeroot codeJoseph C. Lehner2017-02-041-8/+3
| | | | | | | | | | | | | 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>
* ipq806x: fix wireless macsHannu Nyman2017-02-031-1/+1
| | | | | | | | | | | | 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>
* ipq806x: fixup nbg6817 internal mmc and switch configuration in DTSAndré Valentin2017-02-022-4/+1
| | | | | | | | | | | | | 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>
* build: move append-file to image-commands.mkJoseph C. Lehner2017-01-271-4/+0
| | | | | | | 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>
* ipq806x: Fix wireless support for Netgear Nighthawk X4S D7800Zhang Jingye2017-01-182-11/+15
| | | | | | | | | | 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>
* ipq806x: refactor ipq8065 device treePavel Kubelun2017-01-151-1124/+2
| | | | | | | | | | | | | | | | 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>
* ipq806x: enable hw pseudo random number generatorPavel Kubelun2017-01-152-1/+17
| | | | | | Enables support for pseudo random number generator in device tree. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>