openwrt/staging/luka.git
7 years agofunctions.sh: fix default_postinst function
Marko Ratkaj [Tue, 7 Nov 2017 05:48:09 +0000 (06:48 +0100)]
functions.sh: fix default_postinst function

When we run "opkg install" on a package that installs an uci-defaults
script, functions.sh will fail to evaluate that script in its
default_postinst function.

This happens because there is no "./" present and it searches for the
file in paths specified by the PATH variable. This would work on bash,
but it will not work on ash and some other shells like sh, zsh. This
applys to the ". filename" directive used in this case.

This patch will make the path relative to the /etc/uci-defaults
directory.

Fixes: FS#1021
Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
7 years agogeneric: make mtdsplit-tplink.c honor rootfs offset
Thibaut VARÈNE [Sat, 28 Oct 2017 12:48:08 +0000 (14:48 +0200)]
generic: make mtdsplit-tplink.c honor rootfs offset

The splitter ignored the rootfs offset from the header, probably
because until c1e6e61 it was invalid.

This patch fixes the splitter to use the now correct header data.

Regarding target/linux/ar71xx/files/drivers/mtd/tplinkpart.c,
this particular splitter "falls back" to the correct rootfs offset
reading and as such it doesn't need to be updated, although it will
report a kernel partition length that can be larger than the actual
length as it assumes that partition fills the entire segment up to
the rootfs partition.

Tested-by: Mathias Kresin <dev@kresin.me>
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Tested-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
Tested-by: Henryk Heisig <hyniu@o2.pl>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
7 years agotools/firmware-utils: mktplinkfw* fix rootfs offset
Thibaut VARÈNE [Fri, 27 Oct 2017 18:12:15 +0000 (20:12 +0200)]
tools/firmware-utils: mktplinkfw* fix rootfs offset

With '-a' specified on the command line, the current code:
- computes an aligned _kernel length_ instead of an aligned _rootfs
  offset_.
- does not update the rootfs offset after computing the new kernel
  length, and instead retains the layout default.

When the kernel length exceeds the available space left with this
fixed offset, the resulting image header contains invalid data, with
the recorded rootfs offset overlapping the kernel area.

This patch ensures that rootfs offset is correctly computed and
reflected in the final image.

Furthermore, the build_fw() function special cases the rootfs_align
option because of the above invalid logic. This is also fixed and
the computed (or command-line provided, or layout-provided) rootfs_ofs
value is used in all cases.

There seems to be no valid reason to extend the kernel length beyond
the actual length of the kernel itself (OFW images don't do it) so this
part of the existing behavior is dropped.

Example image before the patch:
Kernel data offset     : 0x00000200 /      512 bytes
Kernel data length     : 0x00158438 /  1410104 bytes
Kernel load address    : 0x00000080
Kernel entry point     : 0x00000080
Rootfs data offset     : 0x00140000 /  1310720 bytes
Rootfs data length     : 0x001e4f7e /  1986430 bytes

Example image after the patch:
Kernel data offset     : 0x00000200 /      512 bytes
Kernel data length     : 0x001583fe /  1410046 bytes
Kernel load address    : 0x00000080
Kernel entry point     : 0x00000080
Rootfs data offset     : 0x00158600 /  1410560 bytes
Rootfs data length     : 0x001e4e22 /  1986082 bytes

Tested-by: Mathias Kresin <dev@kresin.me>
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Tested-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
Tested-by: Henryk Heisig <hyniu@o2.pl>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
7 years agoltq-ptm: add missing depency to ltq-?dsl-*-mei
Jonas Gorski [Sat, 4 Nov 2017 11:25:53 +0000 (12:25 +0100)]
ltq-ptm: add missing depency to ltq-?dsl-*-mei

Add the required dependency to the mei driver as cought by the depenceny
checker.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoltq-atm: fix dependency for xrx200
Jonas Gorski [Sat, 4 Nov 2017 11:23:50 +0000 (12:23 +0100)]
ltq-atm: fix dependency for xrx200

Ad the missing dependency for the xrx200 variant, which depends on the
vdsl mei driver.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoltq-adsl-mei: use the same file name for all variant
Jonas Gorski [Sat, 4 Nov 2017 11:19:14 +0000 (12:19 +0100)]
ltq-adsl-mei: use the same file name for all variant

Due to limitations in the symvers treatment and the mei drivers
exporting the same funtions, modpost might use the wrong mei driver
to link against.

Work around this by renaming them all to the same name, making it
always the "right" module name even if the wrong file was used.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agopartially revert "mwlwifi: switch to AutoProbe"
Jonas Gorski [Fri, 3 Nov 2017 10:11:21 +0000 (11:11 +0100)]
partially revert "mwlwifi: switch to AutoProbe"

Apearently we need to ensure mwlwifi loads before mwifiex on
the WRT3200ACM, else mwifiex will claim the wifi.

Fix this by reverting to AutoLoad, but keep the removal of
mac80211 line.

This partially reverts commit 471d5dc6e3c16a2bef9bde2b788b563a00357292.

Fixes: 471d5dc6e3c1 ("mwlwifi: switch to AutoProbe")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agobuild: fix module symbol collection if build_dir is a symlink
Jonas Gorski [Fri, 3 Nov 2017 09:59:00 +0000 (10:59 +0100)]
build: fix module symbol collection if build_dir is a symlink

If PKG_BUILD_DIR contains symlinks, the generated Module.symvers will
contain the resolved paths, not the virtual path with the symlink name.

This breaks the filter for the module's own symbols, so to fix this
ensure we also grep for the resolved path.

Reported-by: Roman Yeryomin <roman@advem.lv>
Tested-by: Roman Yeryomin <roman@advem.lv>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agofirewall: update to latest git HEAD
Hans Dedecker [Tue, 7 Nov 2017 21:30:47 +0000 (22:30 +0100)]
firewall: update to latest git HEAD

c430937 ubus: parse the firewall data within the service itself

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agoinclude: kernel.mk: simplify module autoloading
Jo-Philipp Wich [Wed, 23 Aug 2017 20:27:32 +0000 (22:27 +0200)]
include: kernel.mk: simplify module autoloading

Let the generic postinstall script invoke "kmodloader" when the just
installed package contains any /etc/module.d/ entries.

This allows us to skip the explicit "insert_module()" calls in the
package postinstall.

Due to the removed insert_module calls we do not need to assemble a
complete list of modules per package anymore, which allows for vast
simplification of the package generation code.

While we're at it, also support specifying default parameters for
modules using either the MODPARAM or MODPARAM.modulename variables
in KernelPackage.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agouhttpd: fix query string handling
Jo-Philipp Wich [Mon, 6 Nov 2017 11:04:25 +0000 (12:04 +0100)]
uhttpd: fix query string handling

Update to latest Git in order to fix potential memory corruption and invalid
memory access when handling query strings in conjunction with active basic
authentication.

a235636 2017-11-04 file: fix query string handling

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agonetifd: fix PKG_MIRROR_HASH
Daniel Golle [Mon, 6 Nov 2017 23:17:39 +0000 (00:17 +0100)]
netifd: fix PKG_MIRROR_HASH

commit fbde9ac7184 set an incorrect sha256sum which doesn't match the
file http://sources.lede-project.org/netifd-2017-10-31-0f96606b.tar.xz
or a locally packaged checkout (which resulted in a file identical with
the one referenced by the URL above).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
7 years agohostapd: remove default r1_key_holder generation
Yury Shvedov [Thu, 19 Oct 2017 14:29:28 +0000 (17:29 +0300)]
hostapd: remove default r1_key_holder generation

By default, hostapd assumes r1_key_holder equal to bssid. If LEDE
configures the same static r1 key holder ID on two different APs (BSSes) the
RRB exchanges fails behind them.

Signed-off-by: Yury Shvedov <yshvedov@wimarksystems.com>
7 years agonetfilter, iptables: add optional CHECKSUM module
Denis Osvald [Sun, 22 Oct 2017 20:21:23 +0000 (22:21 +0200)]
netfilter, iptables: add optional CHECKSUM module

Signed-off-by: Denis Osvald <denis.osvald@sartura.hr>
7 years agosunxi: add Orange Pi 2 support
Zoltan HERPAI [Mon, 23 Oct 2017 20:33:00 +0000 (22:33 +0200)]
sunxi: add Orange Pi 2 support

- H3 @ 1.3 GHz
- 1GiB DDR3
- 10/100Mbps Ethernet
- Realtek RTL8189ETV wifi
- 4 USB 2.0

Difference to the "Orange Pi Plus" is the lack of Gbit ethernet
and lack of onboard flash.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
7 years agoag71xx: Switch from driver to kernel macro for NAPI_WEIGHT.
Rosen Penev [Tue, 17 Oct 2017 16:25:56 +0000 (09:25 -0700)]
ag71xx: Switch from driver to kernel macro for NAPI_WEIGHT.

NAPI_POLL_WEIGHT was introduced in the kernel for exactly this purpose 5 years ago.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
7 years agoixp4xx: drop the jumbo frame support
Sergey Ryazanov [Sun, 15 Oct 2017 23:31:19 +0000 (02:31 +0300)]
ixp4xx: drop the jumbo frame support

Current jumbo frame support code allocates rxbuffers of the maximum size
supported by the hardware (~14KB). This happens at the device open time
even if the configured MTU is lower (e.g. if it configured to standard
1500 bytes). Such behavior effectivly prevents interface start on boards
with a low ammount of RAM (e.g. WRT300N v2), since the kernel simly can
not allocates of ~0.8MB (14KB x 64).

So remove jumbo frame support for now.

Reported-by: Nerijus Baliunas <nerijus@users.sourceforge.net>
Tested-by: Nerijus Baliunas <nerijus@users.sourceforge.net>
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
7 years agoixp4xx: fix non-standard phy support
Sergey Ryazanov [Sun, 15 Oct 2017 23:31:18 +0000 (02:31 +0300)]
ixp4xx: fix non-standard phy support

The patch, which adds multiphy support, adds new path for non-standard
PHYs (e.g. MV88E6060 switch IC) to avoid using kernel phy framework. All
work well except the link status traking (Duplex and Speed), which is
reseted as soon as PHY connection procedure is done. This leads to lost
of the link status of non-standard PHY, which is configured exactly in
the ixp4xx_phy_connect() function.

Move the generic reset of a link state to the ixp4xx_phy_connect()
function to the code path, which is intended for handling of a normal
PHY.

Reported-by: Nerijus Baliunas <nerijus@users.sourceforge.net>
Tested-by: Nerijus Baliunas <nerijus@users.sourceforge.net>
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
7 years agopackage: kernel: dtc: Add DTO support
Marek Vasut [Sun, 22 Oct 2017 20:21:21 +0000 (22:21 +0200)]
package: kernel: dtc: Add DTO support

Add patch with the DT overlay support into the DTC package.

Signed-off-by: Marek Vasut <marex@denx.de>
7 years agoopenssl: fix cryptodev config dependency
Ralph Sennhauser [Sun, 22 Oct 2017 20:21:22 +0000 (22:21 +0200)]
openssl: fix cryptodev config dependency

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
7 years agosunxi: Added profile for HAOYU Electronics Marsboard A10
Kayo Phoenix [Sun, 22 Oct 2017 20:21:25 +0000 (22:21 +0200)]
sunxi: Added profile for HAOYU Electronics Marsboard A10

The MarsBoard was a short-lived credit-card sized, extendable board with an Allwinner A10 SoC.
http://linux-sunxi.org/MarsBoard_A10

Signed-off-by: Kayo Phoenix <kayo@illumium.org>
[Forward-ported to new target layout:]
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
7 years agoiwinfo: add "PKG_MIRROR_HASH" to the Makefile
Arjun AK [Mon, 23 Oct 2017 14:03:34 +0000 (19:33 +0530)]
iwinfo: add "PKG_MIRROR_HASH" to the Makefile

Defining it will let the build tool download the tarball file from
a buildbot server, avoiding a clone of the source repo.

Signed-off-by: Arjun AK <lede@arjunak.com>
7 years agoar71xx: only use SPI NOR 4K sectors on smaller flash chips for mikrotik devices
Felix Fietkau [Sat, 4 Nov 2017 06:51:34 +0000 (07:51 +0100)]
ar71xx: only use SPI NOR 4K sectors on smaller flash chips for mikrotik devices

On NOR based Mikrotik devices, 4K sectors significantly slow down
firmware flashing and jffs2 usage. On NAND based devices they may be
necessary to run rbcfg (the boot loader config is often on SPI NOR).

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agokernel: add support for limiting 4K erase sector support based on flash chip size
Felix Fietkau [Fri, 3 Nov 2017 08:53:54 +0000 (09:53 +0100)]
kernel: add support for limiting 4K erase sector support based on flash chip size

Some targets need 4K sectors for small flash chips (e.g. some
routerboards, where the entire chip is just one "erase block"), whereas
on other devices 4K sectors lead to horrible flash erase/write
performance.

Set the default limit in the generic kernel configuration to 4 MiB to
ensure that all new platforms don't use 4K sectors for bigger flash
chips. On all existing targets use 16 MiB for now to avoid regressions.
They will be changed individually in follow-up commits.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoubox: update to the latest version, fixes syslog issues
Felix Fietkau [Mon, 6 Nov 2017 10:56:37 +0000 (11:56 +0100)]
ubox: update to the latest version, fixes syslog issues

7a49632 logd: use uloop instead of ustream_fd for syslog
69d6542 logd: only create pipe in stream mode
df30c8c logread: terminate after EOF
bdcacad logd: implement oneshot mode for stream log read
4a10d4e logread: use oneshot mode without -f, wait for logd to close
ea3d7fa logd: enforce line length limit for ubus based log messages as well
960a29d logread: remove leftover debug code
a081904 logread: fix line buffer size
2c0d9cf logd: move stripping of newlines to log_add()

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoiperf3: update to 3.3 and refresh patches
Philip Prindeville [Tue, 31 Oct 2017 20:19:51 +0000 (14:19 -0600)]
iperf3: update to 3.3 and refresh patches

Taking the same patchset I've submitted upstream for inclusion.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
7 years agobubox: update to latest git HEAD
John Crispin [Mon, 6 Nov 2017 09:06:35 +0000 (10:06 +0100)]
bubox: update to latest git HEAD

729f47f jshn: read and write 64-bit integers

Signed-off-by: John Crispin <john@phrozen.org>
7 years agoip806x: nbg6817: sysupgrade support both targets for kernel/ rootfs partitions
Stefan Lippers-Hollmann [Sun, 29 Oct 2017 02:11:51 +0000 (03:11 +0100)]
ip806x: nbg6817: sysupgrade support both targets for kernel/ rootfs partitions

With this commit and the previous "nbg6817: don't hardcode the rootfs location
by using append-rootblock instead" applied, it is possible to boot- and
sysupgrade from both dual-boot sets (the primary mmcblk0p4+mmcblk0p5 or the
alternative mmcblk0p7+mmcblk0p8). However the sysupgrade support does not
toggle between both dual-boot sets between firmware upgrades so far.

The partition map of the eMMC used in the nbg6817 is:

Found valid GPT with protective MBR; using GPT.
Disk /dev/mmcblk0: 7471104 sectors, 3.6 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): XXX
Partition table holds up to 12 entries
First usable sector is 34, last usable sector is 7471070
Partitions will be aligned on 2-sector boundaries
Total free space is 1 sectors (512 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34            8225   4.0 MiB     FFFF  rootfs_data
   2            8226           16417   4.0 MiB     FFFF  romd
   3           16418           18465   1024.0 KiB  FFFF  header
   4           18466           26657   4.0 MiB     FFFF  kernel
   5           26658          157729   64.0 MiB    FFFF  rootfs
   6          157730          159777   1024.0 KiB  FFFF  header_1
   7          159778          167969   4.0 MiB     FFFF  kernel_1
   8          167970          299041   64.0 MiB    FFFF  rootfs_1
   9          299042          823329   256.0 MiB   FFFF  bu1
  10          823330         7471069   3.2 GiB     FFFF  bu2

rootfs_data is the ext4 formatted overlay of the OEM firmware, LEDE
ignores it due to its (too) small size.

romd/ bu1 are initialized with zeroes (0x00) and unused.

bu2 is formatted with ext4 and used for streamboost and other optional
functionality by the OEM firmware, it is reformatted during factory
resets of the OEM firmware.

header/ header_1 contains version information for the corresponding
vendor firmwares installed to kernel/rootfs or kernel_1/ rootfs_1, the
format hasn't been completely reverse engineered so far and remains
left untouched by LEDE:

V1.00(ABCS.2)C0:
 00000000  00 00 a7 74 01 32 f0 00  56 31 2e 30 30 28 41 42  |...t.2..V1.00(AB|
 00000010  43 53 2e 32 29 43 30 00  ff ff ff ff ff ff ff ff  |CS.2)C0.........|
 00000020  ff ff ff ff ff ff ff ff  00 00 d5 dc 4e 42 47 36  |............NBG6|
 00000030  38 31 37 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |817.............|
 00000040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
 *
 00000060  ff ff ff ff ff ff ff ff  ff ff ff ff 00 00 22 a3  |..............".|
 00000070  00 1c 70 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |..p.............|
 00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
 *
 00000800  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 *
 00100000

V1.00(ABCS.5)C0:
 00000000  00 00 bf 94 01 46 d8 00  56 31 2e 30 30 28 41 42  |.....F..V1.00(AB|
 00000010  43 53 2e 35 29 43 30 00  ff ff ff ff ff ff ff ff  |CS.5)C0.........|
 00000020  ff ff ff ff ff ff ff ff  00 00 d6 5a 4e 42 47 36  |...........ZNBG6|
 00000030  38 31 37 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |817.............|
 00000040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
 *
 00000060  ff ff ff ff ff ff ff ff  ff ff ff ff 00 00 c0 2c  |...............,|
 00000070  00 1c 58 00 ff ff ff ff  ff ff ff ff ff ff ff ff  |..X.............|
 00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
 *
 00010000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 *
 00100000

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
7 years agoip806x: nbg6817: don't hardcode the rootfs location by using append-rootblock instead
Stefan Lippers-Hollmann [Sun, 29 Oct 2017 01:55:27 +0000 (02:55 +0100)]
ip806x: nbg6817: don't hardcode the rootfs location by using append-rootblock instead

This changes the cmdline from:

Kernel command line: root=/dev/mmcblk0p5 rootfstype=squashfs,ext4 rootwait noinitrd
Bootloader command line (ignored): board=NBG6817 root=/dev/mmcblk0p5 rootwait zld_ver=2.04 console=ttyHSL1,115200n8 mtdparts=m25p80:0xC0000(SBL)ro,0x40000(TZ)ro,0x40000(RPM)ro,0x80000(u-boot)ro,0x10000(env)ro,0x10000(ART)ro,0x10000(dualflag),0x210000(reserved)

to

Kernel command line: rootfstype=squashfs,ext4 rootwait noinitrd root=/dev/mmcblk0p5
Bootloader command line (ignored): board=NBG6817 root=/dev/mmcblk0p5 rootwait zld_ver=2.04 console=ttyHSL1,115200n8 mtdparts=m25p80:0xC0000(SBL)ro,0x40000(TZ)ro,0x40000(RPM)ro,0x80000(u-boot)ro,0x10000(env)ro,0x10000(ART)ro,0x10000(dualflag),0x210000(reserved)

As a consequence booting from the alternative dual-boot partition set
(root=/dev/mmcblk0p8) becomes possible.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
7 years agouqmi: replace legacy command invoke with newer type
Koen Vandeputte [Tue, 24 Oct 2017 14:20:22 +0000 (16:20 +0200)]
uqmi: replace legacy command invoke with newer type

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
7 years agouqmi: also try newer pin verification
Koen Vandeputte [Tue, 24 Oct 2017 14:20:21 +0000 (16:20 +0200)]
uqmi: also try newer pin verification

Newer devices tend to only support the newer version of the pin
verification command, so also try that one.

Fixes PIN issues with modems like the Sierra Wireless MC7455

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
7 years agoubox: update to latest git HEAD
John Crispin [Mon, 6 Nov 2017 08:07:39 +0000 (09:07 +0100)]
ubox: update to latest git HEAD

da5b8b4 log/syslog: Add missing static to two structs.
dd61c9f ubox: Replace { 0 } with {}.

Signed-off-by: John Crispin <john@phrozen.org>
7 years agoprocd: update to latest git HEAD
John Crispin [Mon, 6 Nov 2017 07:50:18 +0000 (08:50 +0100)]
procd: update to latest git HEAD

53e92d4 procd: lower the logging threshold
b39c362 service: Start services normally when seccomp is disabled
3ba6b45 procd: add missing new lines inside debug code
56a02e3 service: fix service_handle_event array
d4a183f service: fix SERVICE_ATTR_NAME usage in service_handle_set

Signed-off-by: John Crispin <john@phrozen.org>
7 years agoprocd: Always tell cmake whether to include seccomp support or not
Michal Sojka [Fri, 3 Nov 2017 21:31:42 +0000 (22:31 +0100)]
procd: Always tell cmake whether to include seccomp support or not

Without this change, when a user disables seccomp support in .config,
procd does not get recompiled unless the package is cleaned manually.
It is because when -D option is missing from cmake command line, cmake
uses cached value from the previous run where seccomp was enabled.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
7 years agoubus: update to latest git HEAD
John Crispin [Mon, 6 Nov 2017 07:31:38 +0000 (08:31 +0100)]
ubus: update to latest git HEAD

24ffe9b libubus-req: add data_cb callback handling for ubus notifications

Signed-off-by: John Crispin <john@phrozen.org>
7 years agoipq806x: ipq4019: add ap-dk01.1-c1 board support
Roman Yeryomin [Sun, 29 Oct 2017 23:24:26 +0000 (01:24 +0200)]
ipq806x: ipq4019: add ap-dk01.1-c1 board support

AP-DK01.1-C1 is QCA dev board with:
- ipq4018 quad core ARM @716.8MHz, 2x2 dual (11n+11ac) radio
- 256MB RAM
- 32MB SPI flash
- QCA8075 multiport ethernet phy (WAN port, 4x LAN ports)

First installation via u-boot:
sf probe
sf erase 0x180000 0x1a00000
tftpboot 0x84000000 lede-ipq806x-AP-DK01.1-C1-squashfs-sysupgrade.bin
sf write 0x84000000 0x180000 $filesize

Further upgrades via sysupgrade.

Changes:
- add partitions
- set memory size to 256MB
- add reserved memory mapping
- add correct compatible string
- add image generation
- extract pre-cal data from ART partition

Compile and run tested.
Wirespeed NAT can be achieved with spreading rx interrupts over different
cores. Wifi speed is ~550Mbps @5GHz in open air.

Note:
AP-DK01.1-C1 is fully compatible with AP-DK01.2-C1, which has
ipq4028 instead of ipq4018 on board.

Changes since v2:
- based on dts(i) rework/cleanup submitted:
  http://lists.infradead.org/pipermail/lede-dev/2017-October/009596.html
- precise reserved memory mapping
- more precise description
- compatible string

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: fix maximum cpu speed
Roman Yeryomin [Sun, 29 Oct 2017 23:19:32 +0000 (01:19 +0200)]
ipq806x: ipq4019: dts: fix maximum cpu speed

Supported frequencies of all ipq40xx chips are 48, 200, 500 and 716.8 MHz.
Previous 666MHz setting was most likely related to instability of early
chips/boards made before mass production.

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: remove spi chip node from ap-dk01 dtsi
Roman Yeryomin [Sun, 29 Oct 2017 23:19:19 +0000 (01:19 +0200)]
ipq806x: ipq4019: dts: remove spi chip node from ap-dk01 dtsi

All ap-dk01 boards have different spi chips, thus no point in keeping it in dtsi.

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: move ap-dk01 networking entries to dtsi
Roman Yeryomin [Sun, 29 Oct 2017 23:19:02 +0000 (01:19 +0200)]
ipq806x: ipq4019: dts: move ap-dk01 networking entries to dtsi

That is mdio/ethernet and wifi are present on all ap-dk01 boards.

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: remove counter entry from ap-dk01 boards
Roman Yeryomin [Sun, 29 Oct 2017 23:18:51 +0000 (01:18 +0200)]
ipq806x: ipq4019: dts: remove counter entry from ap-dk01 boards

There is no code implementing "qcom,qca-gcnt", so no point in keeping it.

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: move ap-dk01 tcsr nodes to dtsi
Roman Yeryomin [Sun, 29 Oct 2017 23:18:38 +0000 (01:18 +0200)]
ipq806x: ipq4019: dts: move ap-dk01 tcsr nodes to dtsi

tcsr configuration is the same for all ap-dk01 boards

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: remove crypto nodes from board dts
Roman Yeryomin [Sun, 29 Oct 2017 23:18:24 +0000 (01:18 +0200)]
ipq806x: ipq4019: dts: remove crypto nodes from board dts

crypto and cryptobam are already present in dtsi used by these boards:
- fritz4040
- nbg6617
- rt-ac58u

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: move xo and timer nodes to SoC dtsi
Roman Yeryomin [Sun, 29 Oct 2017 23:18:11 +0000 (01:18 +0200)]
ipq806x: ipq4019: dts: move xo and timer nodes to SoC dtsi

xo and timer are common thing and it makes more sense to keep them in SoC dtsi

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agoipq806x: ipq4019: dts: fix pinctrl node name
Roman Yeryomin [Sun, 29 Oct 2017 23:17:58 +0000 (01:17 +0200)]
ipq806x: ipq4019: dts: fix pinctrl node name

Signed-off-by: Roman Yeryomin <roman@advem.lv>
7 years agolibunwind: disable building with ssp
Yousong Zhou [Mon, 6 Nov 2017 02:43:25 +0000 (10:43 +0800)]
libunwind: disable building with ssp

If we enable -fstack-protector while building libunwind, function
__stack_chk_fail_local will be referred to for i386 and powerpc32
arches.  This will cause link failure because the default gcc build
specs says no link_ssp if -nostdlib is given.

The error message:

    OpenWrt-libtool: link: ccache_cc -shared  -fPIC -DPIC  .libs/os-linux.o mi/.libs/init.o mi/.libs/flush_cache.o mi/.libs/mempool.o mi/.libs/strerror.o x86/.libs/is_fpreg.o x86/.libs/regname.o x86/.libs/Los-linux.o mi/.libs/backtrace.o mi/.libs/dyn-cancel.o mi/.libs/dyn-info-list.o mi/.libs/dyn-register.o mi/.libs/Ldyn-extract.o mi/.libs/Lfind_dynamic_proc_info.o mi/.libs/Lget_accessors.o mi/.libs/Lget_proc_info_by_ip.o mi/.libs/Lget_proc_name.o mi/.libs/Lput_dynamic_unwind_info.o mi/.libs/Ldestroy_addr_space.o mi/.libs/Lget_reg.o mi/.libs/Lset_reg.o mi/.libs/Lget_fpreg.o mi/.libs/Lset_fpreg.o mi/.libs/Lset_caching_policy.o x86/.libs/Lcreate_addr_space.o x86/.libs/Lget_save_loc.o x86/.libs/Lglobal.o x86/.libs/Linit.o x86/.libs/Linit_local.o x86/.libs/Linit_remote.o x86/.libs/Lget_proc_info.o x86/.libs/Lregs.o x86/.libs/Lresume.o x86/.libs/Lstep.o x86/.libs/getcontext-linux.o  -Wl,--whole-archive ./.libs/libunwind-dwarf-local.a ./.libs/libunwind-elf32.a -Wl,--no-whole-archive  -L/var/lib/bbmnt/buildbot/slaves/dave-builder/i386_i486/build/sdk/staging_dir/target-i386_i486_musl-1.1.16/usr/lib -L/var/lib/bbmnt/buildbot/slaves/dave-builder/i386_i486/build/sdk/staging_dir/target-i386_i486_musl-1.1.16/lib -L/var/lib/bbmnt/buildbot/slaves/dave-builder/i386_i486/build/sdk/staging_dir/toolchain-i386_i486_gcc-5.4.0_musl-1.1.16/usr/lib -L/var/lib/bbmnt/buildbot/slaves/dave-builder/i386_i486/build/sdk/staging_dir/toolchain-i386_i486_gcc-5.4.0_musl-1.1.16/lib -lc -lgcc  -Os -march=i486 -fstack-protector -Wl,-z -Wl,now -Wl,-z -Wl,relro -nostartfiles -nostdlib   -Wl,-soname -Wl,libunwind.so.8 -o .libs/libunwind.so.8.0.1
    .libs/os-linux.o: In function `_Ux86_get_elf_image':
    os-linux.c:(.text+0x588): undefined reference to `__stack_chk_fail_local'
    x86/.libs/Lregs.o: In function `_ULx86_access_fpreg':
    Lregs.c:(.text+0x25b): undefined reference to `__stack_chk_fail_local'
    x86/.libs/Lresume.o: In function `_ULx86_resume':
    Lresume.c:(.text+0xdc): undefined reference to `__stack_chk_fail_local'
    collect2: error: ld returned 1 exit status
    Makefile:2249: recipe for target 'libunwind.la' failed

The snippet from gcc -dumpspecs

    %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
7 years agomt7620: image.mk: make elecom-header reproducible
Alexander Couzens [Fri, 3 Nov 2017 01:45:45 +0000 (02:45 +0100)]
mt7620: image.mk: make elecom-header reproducible

elecom-header adds a timestamp dependency. Replace
the timestamps with SOURCE_DATE_EPOCH [0] variable.

[0] https://reproducible-builds.org/specs/source-date-epoch/

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
7 years agoar71xx: fix section mismatch in TP-Link Archer C7 v4 support
Felix Fietkau [Sun, 5 Nov 2017 17:36:53 +0000 (18:36 +0100)]
ar71xx: fix section mismatch in TP-Link Archer C7 v4 support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoar71xx: fix flash fast read on devices using multiple flash chips
Felix Fietkau [Sun, 5 Nov 2017 17:34:01 +0000 (18:34 +0100)]
ar71xx: fix flash fast read on devices using multiple flash chips

Add a callback to allow the SPI driver to indicate which devices fast
flash read works on.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agowireguard: version bump to 0.0.20171101
Kevin Darbyshire-Bryant [Fri, 3 Nov 2017 17:01:32 +0000 (17:01 +0000)]
wireguard: version bump to 0.0.20171101

Update wireguard to latest snapshot:

9fc5daf version: bump snapshot
748ca6b compat: unbreak unloading on kernels 4.6 through 4.9
7be9894 timers: switch to kees' new timer_list functions
6be9a66 wg-quick: save all hooks on save
752e7af version: bump snapshot
2cd9642 wg-quick: fsync the temporary file before renaming
b139499 wg-quick: allow for saving existing interface
582c201 contrib: add reresolve-dns
8e04be1 tools: correct type for CTRL_ATTR_FAMILY_ID
c138276 wg-quick: allow for the hatchet, but not by default
d03f2a0 global: use fewer BUG_ONs
6d681ce timers: guard entire setting in block
4bf32ca curve25519: only enable int128 if compiler support is sound
86e06a3 device: expand scope of destruct lock
e3661ab global: get rid of useless forward declarations
bedc77a device: only take reference if netns is different
7c07e22 wg-quick: remember to rewind DNS settings on failure
2352ec0 wg-quick: allow specifiying multiple hooks
573cb19 qemu: test using four cores
e09ec4d global: style nits
4d3deae qemu: work around ccache bugs
7491cd4 global: infuriating kernel iterator style
78e079c peer: store total number of peers instead of iterating
d4e2752 peer: get rid of peer_for_each magic
6cf12d1 compat: be sure to include header before testing
3ea08d8 qemu: allow for cross compilation
d467551 crypto/avx: make sure we can actually use ymm registers
c786c46 blake2: include headers for macros
328e386 global: accept decent check_patch.pl suggestions
a473592 compat: fix up stat calculation for udp tunnel
9d930f5 stats: more robust accounting
311ca62 selftest: initialize mutex in routingtable selftest
8a9a6d3 netns: use time-based test instead of quantity-based
e480068 netns: use read built-in instead of ncat hack for dmesg

Compile-tested-for: ar71xx
Run-tested-on: ar71xx Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
7 years agoath9k: unset the default LED pin if used by platform buttons
Mathias Kresin [Fri, 3 Nov 2017 06:25:21 +0000 (07:25 +0100)]
ath9k: unset the default LED pin if used by platform buttons

Unset the default LED gpio pin if the same gpio pin is used by a button
defined via platform button. It prevents the change of the GPIO value
on wireless up/down or wireless traffic.

Fixes: FS#1129
Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agoar71xx: fix LED config for DIR-869 A1
Florian Beier [Wed, 25 Oct 2017 18:12:24 +0000 (20:12 +0200)]
ar71xx: fix LED config for DIR-869 A1

This fixes the LED configuration for the D-Link DIR-869 A1. In order to
support the device I probed around using an initramfs image for the
UniFi AC. Pulling GPIO 15 to low enabled the LEDs while high disabled them.
GPIO 16 set to low meant that the color was white while pulling it to high
made the color change to orange. The past code was written based upon these
findings.
However, running a flashed image I now discovered that GPIO 15 controls the
orange LEDs while GPIO 16 controls the white ones and that both are active
when low. This means that the GPIOs were inverted and one active_low was set
wrong which this patch fixes.

Behavior of the LED front after this patch is applied:

cat /sys/devices/platform/leds-gpio/leds/d-link:white:status/brightness
0   -> white LEDs are OFF
255 -> white LEDs are ON

cat /sys/devices/platform/leds-gpio/leds/d-link:orange:status/brightness
0   -> orange LEDs are OFF
255 -> orange LEDs are ON

If the brightness of both is set to 255 the LED front will be white.
If the brightness of both is set to 0 the LED front will be off.

Signed-off-by: Florian Beier <beier.florian@gmail.com>
7 years agobase-files: add interval option to netdev LED trigger configuration
Edmunt Pienkowsky [Fri, 27 Oct 2017 08:17:34 +0000 (10:17 +0200)]
base-files: add interval option to netdev LED trigger configuration

Add an uci option to set the interval parameter of the netdev trigger.

Signed-off-by: Edmunt Pienkowsky <roed@onet.eu>
7 years agoar71xx: wzr-hp-ag300h: drop unused wmac led_pin settings
Mathias Kresin [Thu, 2 Nov 2017 20:08:50 +0000 (21:08 +0100)]
ar71xx: wzr-hp-ag300h: drop unused wmac led_pin settings

The GPIOs are used for defined LEDs and therefore are ignored/unset in
the ath9k driver since 192f0a3db859. The wireless led led trigger is
added in userspace since e20965811db6, which makes the
ap9x_pci_setup_wmac_led_pin() superfluous.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agouboot-kirkwood: update to 2017.09
Paul Wassi [Wed, 11 Oct 2017 17:19:06 +0000 (19:19 +0200)]
uboot-kirkwood: update to 2017.09

Upgrade uboot-kirkwood to upstream release 2017.09
Catch up with upstream and move configuration options from
simple defines to Kconfig, as otherwise dependencies would
not be resolved and code would not compile.

Tested-by: Alberto Bursi <alberto.bursi@outlook.it>
Signed-off-by: Paul Wassi <p.wassi@gmx.at>
7 years agoar71xx: mach-rbspi: fix 74x164 support
Thibaut VARENE [Wed, 1 Nov 2017 11:06:20 +0000 (12:06 +0100)]
ar71xx: mach-rbspi: fix 74x164 support

The platform data was missing the num_registers element which is now
mandatory in linux 4.9

Without this patch, the gpio probing would fail with:
gpio gpiochip1: (74x164): tried to insert a GPIO chip with zero lines

Fixes: #1106
Tested-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoipq806x: nbg6817: sync MAC addresses to the upstream values
Stefan Lippers-Hollmann [Mon, 30 Oct 2017 03:28:34 +0000 (04:28 +0100)]
ipq806x: nbg6817: sync MAC addresses to the upstream values

The ZyXEL NBG6817 calculates all MAC addresses based on the ethaddr
value stored in the U-Boot environment (0:APPSBLENV). No MAC addresses
are stored in the ART partition and the generated MAC addresses for the
wlan interfaces alternate randomly between 12:34:56:78:90:12 and
00:03:7f:12:34:56.

interface   new/ OEM MAC old MAC

wlan-2.4g (phy1): ethaddr undefined
wlan-5g   (phy0): ethaddr + 1 undefined
lan             : ethaddr + 2 ethaddr
wan             : ethaddr + 3 ethaddr + 1

This patch defines stable MAC addresses for the wlan interfaces for
the first time instead of generating them at random. The previously
defined values for lan/ wan are changed to follow the settings of the
OEM firmware.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
7 years agoipq806x: nbg6817: add kmod-fs-ext4 to device packages
Stefan Lippers-Hollmann [Thu, 19 Oct 2017 19:40:26 +0000 (21:40 +0200)]
ipq806x: nbg6817: add kmod-fs-ext4 to device packages

The ZyXEL NBG6817 uses an eMMC flash for the rootfs, which is split
into the readonly squashfs and ext4 for the overlay. This adds the
required package to the device packages to allow mounting the overlay
by default.

/dev/root on /rom type squashfs (ro,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
/dev/loop0 on /overlay type ext4 (rw,noatime,data=ordered)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,noatime)
mountd(pid1040) on /tmp/run/blockd type autofs (rw,relatime,fd=7,pgrp=1,timeout=30,minproto=5,maxproto=5,indirect)

Before this commit, the ext4 based overlayfs could not be mounted,
which left only the tmpfs based/ volatile  emergency overlay in place.

Fixes: https://forum.lede-project.org/t/zyxel-nbg6817-flashing-from-oem/768
Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
7 years agoltq-atm: add missing dependency to kmod-ltq-adsl-*-mei
Mathias Kresin [Thu, 2 Nov 2017 07:54:37 +0000 (08:54 +0100)]
ltq-atm: add missing dependency to kmod-ltq-adsl-*-mei

Commit 2e496876c60 fixed the generation of the depends line for external
kernel modules which makes it possible for the build system to
automatically detect this missing dependency.

This fixes the packaging of kmod-ltq-atm for the ar9, xway and
xway-legacy subtarget.

Fixes: FS#1124
Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agobuild: fix another regression in append-dtb fix
Felix Fietkau [Fri, 3 Nov 2017 15:08:12 +0000 (16:08 +0100)]
build: fix another regression in append-dtb fix

Filter out duplicate generated code for the same dts files

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agobuild: fix regression in append-dtb fix
Felix Fietkau [Fri, 3 Nov 2017 09:46:24 +0000 (10:46 +0100)]
build: fix regression in append-dtb fix

Strip whitespace from DTS directory
Put the dependency earlier in the chain to avoid make errors

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agouclient: update to the latest version, fixes fetch of multiple files
Felix Fietkau [Thu, 2 Nov 2017 21:53:12 +0000 (22:53 +0100)]
uclient: update to the latest version, fixes fetch of multiple files

4b87d83 uclient-fetch: fix overloading of output_file variable

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agonetifd: fix dns and domain variables pollution in dhcp.script
Tero Jänkä [Thu, 27 Apr 2017 17:34:43 +0000 (20:34 +0300)]
netifd: fix dns and domain variables pollution in dhcp.script

Unmodified dns and domain variables could be needed in user script (/etc/udhcpc.user).

Signed-off-by: Tero Jänkä <tero.janka@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> (cleanup)
7 years agobuild: allow calling append-dtb from image build commands
Felix Fietkau [Thu, 2 Nov 2017 12:28:26 +0000 (13:28 +0100)]
build: allow calling append-dtb from image build commands

mpc85xx uses this for firmware image files, since the dtb data is not
directly part of the kernel image. This causes build failures in the
image builder.

Fix this by adding a separate build step that runs this call earlier,
reusing the generated file for any calls from kernel or image build
commands.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agogcc: remove support for libgcj/java
Felix Fietkau [Thu, 2 Nov 2017 13:16:20 +0000 (14:16 +0100)]
gcc: remove support for libgcj/java

It has been removed in gcc 7

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoinclude/toplevel.mk: Add xconfig target
Alif M. Ahmad [Sun, 23 Jul 2017 03:08:56 +0000 (03:08 +0000)]
include/toplevel.mk: Add xconfig target

Add xconfig target to include/toplevel.mk, so that ``make xconfig`` can
be invoked from $TOPDIR to use Qt based configuration tool to prepare
.config file.

The qconf related sources are taken from linux 4.9.13 archive.

Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
7 years agoscripts/config: add qconf files to .gitignore
Alif M. Ahmad [Sun, 23 Jul 2017 03:08:47 +0000 (03:08 +0000)]
scripts/config: add qconf files to .gitignore

This commit adds qconf related files to .gitignore.
The files to be tracked are qconf.cc, qconf.h, and images.c.
The files to be ignored are qconf*.o, qconf*, qconf.moc, and
.tmp_qtcheck.

Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
7 years agoscripts/config: Add qconf target to Makefile
Alif M. Ahmad [Sun, 23 Jul 2017 03:08:17 +0000 (03:08 +0000)]
scripts/config: Add qconf target to Makefile

qconf is kconfig UI utilizing QT toolkit. This makes it possible to use
graphical interface interaction to configure LEDE build target.

This commit adds qconf target to ./script/config/Makefile to be used by
toplevel ``make xconfig`` later.

Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
7 years agoscripts/config: add -DKBUILD_NO_NLS to CXXFLAGS
Felix Fietkau [Sun, 29 Oct 2017 16:15:49 +0000 (17:15 +0100)]
scripts/config: add -DKBUILD_NO_NLS to CXXFLAGS

Preparation for adding C++ code which needs the same flag

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoscripts/config: import qconf
Alif M. Ahmad [Sun, 23 Jul 2017 03:08:04 +0000 (03:08 +0000)]
scripts/config: import qconf

Import qconf.cc, qconf.h, and images.c from linux kernel 4.9.13 archive.

Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
7 years agoramips: add support for switching between 3-byte and 4-byte addressing on w25q256...
Felix Fietkau [Thu, 20 Jul 2017 10:57:44 +0000 (12:57 +0200)]
ramips: add support for switching between 3-byte and 4-byte addressing on w25q256 flash

On some devices the flash chip needs to be in 3-byte addressing mode during
reboot, otherwise the boot loader will fail to start.
This mode however does not allow regular reads/writes onto the upper 16M
half. W25Q256 has separate read commands for reading from >16M, however
it does not have any separate write commands.
This patch changes the code to leave the chip in 3-byte mode most of the
time and only switch during erase/write cycles that go to >16M
addresses.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agonghttp2: switch to release tarball
Hans Dedecker [Tue, 31 Oct 2017 17:25:14 +0000 (18:25 +0100)]
nghttp2: switch to release tarball

Switch from git to xz release tarball as there's no good reason to keep
using git when release tarballs are provided.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agoopenssl: Enable assembler optimizations for aarch64
Baptiste Jonglez [Fri, 27 Oct 2017 18:45:53 +0000 (20:45 +0200)]
openssl: Enable assembler optimizations for aarch64

OpenSSL is built with the generic linux settings for most targets,
including aarch64.  These generic settings are designed for 32-bit CPU and
provide no assembler optmization: this is widely suboptimal for aarch64.

This patch simply switches to the aarch64 settings that are already
available in OpenSSL.

Here is the output of "openssl speed" before the optimization, with
"(...)" representing build flags that didn't change:

    OpenSSL 1.0.2l  25 May 2017
    options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,int) aes(partial) blowfish(ptr)
    compiler: aarch64-openwrt-linux-musl-gcc  (...)

And after this patch, OpenSSL uses 64 bit mode and assembler optimizations:

    OpenSSL 1.0.2l  25 May 2017
    options:bn(64,64) rc4(ptr,char) des(idx,cisc,2,int) aes(partial) blowfish(ptr)
    compiler: aarch64-openwrt-linux-musl-gcc  (...)  -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM

Here are some benchmarks on a pine64+ running latest LEDE master r5142-20d363aed3:

    before# openssl speed sha aes blowfish
    The 'numbers' are in 1000s of bytes per second processed.
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    sha1              3918.89k     9982.43k    19148.03k    24933.03k    27325.78k
    sha256            4604.51k    10240.64k    17472.51k    21355.18k    22801.07k
    sha512            3662.19k    14539.41k    21443.16k    29544.11k    33177.60k
    blowfish cbc     16266.63k    16940.86k    17176.92k    17237.33k    17252.35k
    aes-128 cbc      19712.95k    21447.40k    22091.09k    22258.35k    22304.09k
    aes-192 cbc      17680.12k    19064.47k    19572.14k    19703.13k    19737.26k
    aes-256 cbc      15986.67k    17132.48k    17537.28k    17657.17k    17689.26k

    after# openssl speed sha aes blowfish
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    sha1              6770.87k    26172.80k    86878.38k   205649.58k   345978.20k
    sha256           20913.93k    74663.85k   184658.18k   290891.09k   351032.66k
    sha512            7633.10k    30110.14k    50083.24k    71883.43k    82485.25k
    blowfish cbc     16224.93k    16933.55k    17173.76k    17234.94k    17252.35k
    aes-128 cbc      19425.74k    21193.31k    22065.74k    22304.77k    22380.54k
    aes-192 cbc      17452.29k    18883.84k    19536.90k    19741.70k    19800.06k
    aes-256 cbc      15815.89k    17003.01k    17530.03k    17695.40k    17746.60k

For some reason AES and blowfish do not benefit, but SHA performance
improves between 1.7x and 15x.  SHA256 clearly benefits the most from the
optimization (4.5x on small blocks, 15x on large blocks!).

When using EVP (with "openssl speed -evp <algo>"):

    # Before, EVP mode
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    sha1              3824.46k    10049.66k    19170.56k    24947.03k    27325.78k
    sha256            3368.33k     8511.15k    16061.44k    20772.52k    22721.88k
    sha512            2845.23k    11381.57k    19467.69k    28512.26k    33008.30k
    bf-cbc           15146.74k    16623.83k    17092.01k    17211.39k    17249.62k
    aes-128-cbc      17873.03k    20870.61k    21933.65k    22216.36k    22301.35k
    aes-192-cbc      16184.18k    18607.15k    19447.13k    19670.02k    19737.26k
    aes-256-cbc      14774.06k    16757.25k    17457.58k    17639.42k    17686.53k

    # After, EVP mode
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    sha1              7056.97k    27142.10k    89515.86k   209155.41k   347419.99k
    sha256            7745.70k    29750.06k    95341.48k   211001.69k   332376.75k
    sha512            4550.47k    18086.06k    39997.10k    65880.75k    81431.21k
    bf-cbc           15129.20k    16619.03k    17090.56k    17212.76k    17246.89k
    aes-128-cbc      99619.74k   269032.34k   450214.23k   567353.00k   613933.06k
    aes-192-cbc      93180.74k   231017.79k   361766.66k   433671.51k   461731.16k
    aes-256-cbc      89343.23k   209858.58k   310160.04k   362234.88k   380878.85k

Blowfish does not seem to have assembler optimization at all, and SHA
still benefits (between 1.6x and 14.5x) but is generally slower than in
non-EVP mode.

However, AES performance is improved between 5.5x and 27.5x, which is
really impressive!  For aes-128-cbc on large blocks, a core i7-6600U
@2.60GHz is only twice as fast...

Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
7 years agoacx-mac80211: allow compilation on 4.9
Jonas Gorski [Sun, 29 Oct 2017 22:27:33 +0000 (23:27 +0100)]
acx-mac80211: allow compilation on 4.9

acx-mac80211 compiles fine with 4.9, so no reason to not allow it.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7: add kernel 4.9 support
Jonas Gorski [Thu, 12 Oct 2017 08:50:08 +0000 (10:50 +0200)]
ar7: add kernel 4.9 support

Compile and run tested on WAG354Gv1.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7: drop unused 4.1 support
Jonas Gorski [Sun, 29 Oct 2017 22:28:39 +0000 (23:28 +0100)]
ar7: drop unused 4.1 support

Kernel 4.1 isn't support anymore anyway.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7: unbreak serial console
Jonas Gorski [Sun, 29 Oct 2017 22:12:20 +0000 (23:12 +0100)]
ar7: unbreak serial console

Serial output was broken since 3.16 for shared uarts between
kernel and login. Fix this by adding a fix sent upstream.

While at it, drop a useless patch that adds duplicate code.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7: remove gpio character device
Jonas Gorski [Thu, 12 Oct 2017 08:51:53 +0000 (10:51 +0200)]
ar7: remove gpio character device

There are no obvious users, and any out of tree users should convert to
one of the generic APIs.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7-atm: fix function signatures with expected ones
Jonas Gorski [Thu, 19 Oct 2017 13:47:41 +0000 (15:47 +0200)]
ar7-atm: fix function signatures with expected ones

Newer kernels treat differing signatures an error, not just a warning,
so fix the signatures to match.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7-atm: fixup proc fixes
Jonas Gorski [Fri, 13 Oct 2017 11:17:51 +0000 (13:17 +0200)]
ar7-atm: fixup proc fixes

They were incomplete, so fix them to properly update the function signatures
to what is expected.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar7-atm: drop LINUX_VERSION tests
Jonas Gorski [Fri, 13 Oct 2017 09:32:31 +0000 (11:32 +0200)]
ar7-atm: drop LINUX_VERSION tests

Minimum supported kernel is 3.18, so we don't need to test for anything
older. In addition, the API hasn't changed since then, so we don't need
to check for any kernel version at all.  This helps to keeps the amount
of changes more managable.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agocurl: bump to 7.56.1
Hans Dedecker [Sun, 29 Oct 2017 09:32:42 +0000 (10:32 +0100)]
curl: bump to 7.56.1

Refresh patches
Remove 320-curl-confopts.m4-fix-disable-threaded-resolver.patch as
integrated upstream

See https://curl.haxx.se/changes.html for the bugfixes in 7.56.0 and
7.56.1

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agonghttp2: bump to 1.27.0
Hans Dedecker [Sun, 29 Oct 2017 21:59:31 +0000 (22:59 +0100)]
nghttp2: bump to 1.27.0

Changes in v1.27.0 :

build: Fixed accidental compiler flags concatenation for MSVC (Patch from LazyHamster) (GH-1029)
build: Reduce libxml2 version requirement to 2.6.26 (Patch from Mike Lothian) (GH-1020)
asio: Support for Windows / MinGW (Patch from Daniel Evers) (GH-1027)
h2load: Print out h2 header fields with --verbose option (GH-1015)
nghttpx: Send non-final response to HTTP/1.1 or HTTP/2 client only (GH-1016)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agoltq-atm: Add missing dependency to kmod-ltq-adsl-ase-mei
Hauke Mehrtens [Sun, 29 Oct 2017 15:58:44 +0000 (16:58 +0100)]
ltq-atm: Add missing dependency to kmod-ltq-adsl-ase-mei

Commit 2e496876c60 fixed the generation of the depends line for external
kernel modules which makes it possible for the build system to
automatically detect this missing dependency. This fixes the build bot
build of the lantiq/aes target.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 years agobuild: use KERNEL_MAKE_FLAGS for kernel file compilations
Karl Vogel [Fri, 13 Oct 2017 09:10:03 +0000 (11:10 +0200)]
build: use KERNEL_MAKE_FLAGS for kernel file compilations

The build system already defines KERNEL_CROSS which defaults to TARGET_CROSS.
Make use of this variable for kernel makefiles.

Signed-off-by: Karl Vogel <karl.vogel@gmail.com>
7 years agoadb: fix package description
Matt Mets [Fri, 27 Oct 2017 19:27:53 +0000 (03:27 +0800)]
adb: fix package description

Signed-off-by: Matt Mets <matt@blinkinlabs.com>
7 years agolayerscape: reverse changes to ndo_get_stats64
Mathew McBride [Tue, 24 Oct 2017 00:49:00 +0000 (11:49 +1100)]
layerscape: reverse changes to ndo_get_stats64

The NXP LSDK kernel backported changes for interface ndo_get_stats64
functions from mainline, this causes a compile error with
backports/mac80211, which expects the original 4.9 defintion.

As reversing the ndo_get_stats64 change signifcantly reduces the size of
patch 601, the patches that were aggregated into it have been
disaggregated.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
7 years agolayerscape: Remove netfilter and LZ4 config symbols
Mathew McBride [Fri, 13 Oct 2017 04:23:07 +0000 (15:23 +1100)]
layerscape: Remove netfilter and LZ4 config symbols

These conflict with the kmod packages (such as nf-netlink)

Signed-off-by: Mathew McBride <matt@traverse.com.au>
[Add same changes for arm8_32b subtarget and refresh config]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 years agoarc770: mark as source-only
Hans Dedecker [Sat, 28 Oct 2017 11:42:28 +0000 (13:42 +0200)]
arc770: mark as source-only

Mark target arc770 as source-only as it has package compile issues
(e.g. iproute2) due to the usage of uClibc.
As a prerequisite to be included in future releases the arc770 target
needs to switch either to glibc or musl.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agobuild: actually fix the creation of PKG_INFO_DIR
Jonas Gorski [Sat, 28 Oct 2017 09:57:39 +0000 (11:57 +0200)]
build: actually fix the creation of PKG_INFO_DIR

The creation was accidentally moved to the wrong hook, fix it by moving
it to the pre hook.

Fixes: e5e5c3f5fd38 ("build: ensure PKG_INFO_DIR exists before trying to use it")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agobuild: ensure PKG_INFO_DIR exists before trying to use it
Jonas Gorski [Sat, 28 Oct 2017 09:19:25 +0000 (11:19 +0200)]
build: ensure PKG_INFO_DIR exists before trying to use it

PKG_INFO_DIR is only created at the finish step of the first package
build, but kernel modules now use it at the start. Doing a parallel build
could cause a kernel module to be the first package, breaking the build.

Fix this by ensuring the directory exists.

Fixes: 2e496876c60c ("kernel: collect module symvers for external modules")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agomwlwifi: switch to AutoProbe
Jonas Gorski [Sun, 27 Aug 2017 18:03:58 +0000 (20:03 +0200)]
mwlwifi: switch to AutoProbe

Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agomt76: switch to AutoProbe
Jonas Gorski [Mon, 24 Jul 2017 09:16:21 +0000 (11:16 +0200)]
mt76: switch to AutoProbe

Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agomac80211: ath10k: switch to AutoProbe
Jonas Gorski [Mon, 24 Jul 2017 11:14:20 +0000 (13:14 +0200)]
mac80211: ath10k: switch to AutoProbe

Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agobroadcom-wl: switch to AutoProbe
Jonas Gorski [Sun, 27 Aug 2017 18:01:51 +0000 (20:01 +0200)]
broadcom-wl: switch to AutoProbe

Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agobroadcom-wl: reorder kmod build and pass EXTRA_VERSIONS
Jonas Gorski [Fri, 21 Jul 2017 14:23:06 +0000 (16:23 +0200)]
broadcom-wl: reorder kmod build and pass EXTRA_VERSIONS

Reoder the build to build the glue module first and pass the glue module's
Module.symvers to the wl driver builds.

This allows modpost to properly store a wl_glue dependency in the driver.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agobroadcom-wl: define module directories
Jonas Gorski [Fri, 21 Jul 2017 13:46:35 +0000 (15:46 +0200)]
broadcom-wl: define module directories

Define the module subdirs so our build system properly picks up the
Module.symvers.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoath10k-ct: switch to AutoProbe
Jonas Gorski [Mon, 24 Jul 2017 11:11:33 +0000 (13:11 +0200)]
ath10k-ct: switch to AutoProbe

Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoath10k-ct: define module directories
Jonas Gorski [Fri, 21 Jul 2017 13:20:12 +0000 (15:20 +0200)]
ath10k-ct: define module directories

Define the module subdir so our buildsystem properly picks up the
Module.symvers.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoacx-mac80211: drop PKG_BUILD_DEPENDS
Jonas Gorski [Mon, 24 Jul 2017 11:12:54 +0000 (13:12 +0200)]
acx-mac80211: drop PKG_BUILD_DEPENDS

We already have a DEPENDS on mac80211, which should be enough to ensure
headers are available before build.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoacx-mac80211: switch to AutoProbe
Jonas Gorski [Mon, 24 Jul 2017 11:12:28 +0000 (13:12 +0200)]
acx-mac80211: switch to AutoProbe

Now that we have working module dependency generation, we can switch to
AutoProbe and let modprobe handle loading required modules.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>