openwrt/staging/chunkeey.git
6 years agomwlwifi: Update to latest commit 20180208
Chris Breuer [Tue, 23 Jan 2018 15:43:28 +0000 (16:43 +0100)]
mwlwifi: Update to latest commit 20180208

Changes since last merge into OpenWrt since 2017-12-14:
 - Added debugfs file tx_hist.
 - Added debugfs file fixed_rate.
 - Added debugfs file ba_hist.
 - Modified the way to establish BA stream.
 - Added code to control BF type.
 - Added functions to check/dump dhcp packet.
 - Upgrade 88W8964 firmware to 9.3.2.4.
 - Added debugfs file coredump.
 - Corrected the way to transmit multicast packets.
 - Change driver version to 10.3.4.0-20180118.
 - Corrected the way to get qos control.
 - Assigned broadcast dhcpoffer to another queue.
 - Separated broadcast and multicast packets. Bump to latest commit 20180206

Signed-off-by: Chris Breuer <github@chrisbreuer.de>
6 years agomvebu: Migrate uci config to new PCIe path
Hauke Mehrtens [Sun, 21 Jan 2018 15:33:34 +0000 (16:33 +0100)]
mvebu: Migrate uci config to new PCIe path

The name of the PCIe controller node in device tree changed between
kernel 4.9 and kernel 4.14. Migrate the configuration when an update
from kernel 4.9 to 4.14 or back is done to the new name to make
the existing wifi configuration compatible with the new names.

This replaces the "pcie-controller" part with "pcie" on all nodes if the
file exists in sys fs.

This is not done in the uci-defualts, because they are getting executed
to late in the boot process. The kernel module gets loaded before the
uci-defaults scripts are executed. When the mwlwifi driver gets loaded
it will trigger an event via hotplug to detect new devices and as the
paths are not in the uci configuration they will be added again.
When the migration is done before the script will detect that they are
already there.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agomvebu: Add support for kernel 4.14
Hauke Mehrtens [Thu, 21 Dec 2017 11:13:30 +0000 (12:13 +0100)]
mvebu: Add support for kernel 4.14

Add support for kernel 4.14 to the mvebu target.

This also replaces the old sfp and phylink patches with new versions
from Russell's clearfog-4.13 branch
http://git.arm.linux.org.uk/cgit/linux-arm.git/log/?h=clearfog-4.13

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agomvebu: move files to files-4.9 and files-4.4 folder
Hauke Mehrtens [Sat, 23 Dec 2017 16:45:23 +0000 (17:45 +0100)]
mvebu: move files to files-4.9 and files-4.4 folder

This is needed to prevent copying it into kernel 4.14.
These device tree files are already integrated into kernel 4.14 and we
would like to use the upstream versions only.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agomac80211: move wifi detect hotplug script to later
Hauke Mehrtens [Sun, 11 Feb 2018 21:58:42 +0000 (22:58 +0100)]
mac80211: move wifi detect hotplug script to later

Make it easily possible to add a custom script in front of this hotplug
script which adds new devices. This is needed for the mvebu target in
which we want to migrate the old configuration before new devices are
getting detected.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agokernel: ubifs: create use file system format 4 by default
Hauke Mehrtens [Sun, 21 Jan 2018 15:01:15 +0000 (16:01 +0100)]
kernel: ubifs: create use file system format 4 by default

Instead of creating an ubifs file system with format version 5 by
default on empty UBI volumes use the older format 4 by default. This
will make it possible to mount these file systems also on older kernel
versions.

When a user wants to do a sysupgrade from kernel 4.14 to kernel 4.9 the
old kernel has to read the file system created by the more recent kernel
which currently does not work for ubifs.

This fixes the problem by creating file systems which are compatible
with older kernel versions by default.
Kernel 4.14 will still be able to read and write UBI FS file system
version 5, it will just not be used when a ubifs partition is created
implicitly on an empty UBI volume.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agokernel: Add missing config options
Hauke Mehrtens [Tue, 13 Feb 2018 20:55:43 +0000 (21:55 +0100)]
kernel: Add missing config options

These were found when compiling the new octeontx target.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agobrcm63xx: drop root parameter from cmdline
Jonas Gorski [Tue, 13 Feb 2018 11:19:29 +0000 (12:19 +0100)]
brcm63xx: drop root parameter from cmdline

The root= parameter overrides the automatic rootfs detection by partition
name, so drop it. Fixes boot from flash after renumeration changes of
partitions due to parser changes.

Fixes FS#1350.

Fixes: a27d59bb4274 ("brcm63xx: switch to new partition layout specification")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agotarget.mk: let profile remove from DEFAULT_PACKAGES
Philip Prindeville [Tue, 16 Jan 2018 22:46:44 +0000 (15:46 -0700)]
target.mk: let profile remove from DEFAULT_PACKAGES

In a profile, specifying -pkg in the list of PACKAGES will suppress
it even if it appears in the target's DEFAULT_PACKAGES list.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
6 years agoipq806x: switch to full dual-boot for the nbg6817 sysupgrade support
Stefan Lippers-Hollmann [Thu, 18 Jan 2018 21:41:44 +0000 (22:41 +0100)]
ipq806x: switch to full dual-boot for the nbg6817 sysupgrade support

Instead of writing to the currently booted partition set, this
implements full dual-boot support for sysupgrade by always writing to
the other, currently inactive, partition set and toggling the dualflag
after a successful flash.

The currently active/ booted partition set is determined by parsing
/proc/cmdline for its rootfs parameter (supplied by the DTS), instead
of reading from the 0:DUAL_FLAG mtd, in order to prevent (potentially)
bricking both partition sets.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
6 years agoipq806x: request the first free loop device dynamically for the nbg6817 sysupgrade
Stefan Lippers-Hollmann [Thu, 18 Jan 2018 21:27:08 +0000 (22:27 +0100)]
ipq806x: request the first free loop device dynamically for the nbg6817 sysupgrade

Instead of hardcoding /dev/loop0, it's safer to query for the first
free loop device and assign that dynamically. While /dev/loop0 is a
reasonable assumption immediately following "losetup --detach-all",
detaching the mounted overlay is no longer strictly necessary once
dual-boot support has been added for the nbg6817.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
6 years agoipq806x: use absolute the device path in $kernel for the nbg6817 sysupgrade
Stefan Lippers-Hollmann [Thu, 18 Jan 2018 21:18:36 +0000 (22:18 +0100)]
ipq806x: use absolute the device path in $kernel for the nbg6817 sysupgrade

Harmonize the variable usage for $kernel and $rootfs to always contain
the full device path, instead of just its basename.

Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
6 years agoipq806x: support new location of USB PHY kernel module
Luis Araneda [Fri, 22 Dec 2017 03:23:07 +0000 (00:23 -0300)]
ipq806x: support new location of USB PHY kernel module

PHY drivers were grouped into vendor specific directories
by upstream commit 0b56e9a7e8358e59b21d8a425e463072bfae523c

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
6 years agoi2c.mk: sort kernel modules
Lucian Cristian [Sun, 14 Jan 2018 14:27:15 +0000 (16:27 +0200)]
i2c.mk: sort kernel modules

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
6 years agohwmon.mk: sort kernel modules
Lucian Cristian [Sun, 14 Jan 2018 14:22:40 +0000 (16:22 +0200)]
hwmon.mk: sort kernel modules

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
6 years agocan.mk: sort modules
Lucian Cristian [Sun, 14 Jan 2018 13:37:06 +0000 (15:37 +0200)]
can.mk: sort modules

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
6 years agocrypto.mk: sort kernel modules
Lucian Cristian [Sun, 14 Jan 2018 14:06:27 +0000 (16:06 +0200)]
crypto.mk: sort kernel modules

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
6 years agofs.mk: sort kernel modules
Lucian Cristian [Sun, 14 Jan 2018 14:15:30 +0000 (16:15 +0200)]
fs.mk: sort kernel modules

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
6 years agofirewire.mk: sort kernel modules
Lucian Cristian [Sun, 14 Jan 2018 14:08:45 +0000 (16:08 +0200)]
firewire.mk: sort kernel modules

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
6 years agobuild: cleanup leftover qconf files
Alif M. Ahmad [Fri, 12 Jan 2018 08:55:48 +0000 (08:55 +0000)]
build: cleanup leftover qconf files

``make xconfig`` toplevel target will invoke ``make qconf`` inside
./scripts/config directory, which results a ``qconf`` executable.

This commit removes leftover ``qconf`` executable during ``make
config-clean``.

Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
6 years agoar71xx: add more registers to ar71x_regs.h
Julien Dusser [Wed, 20 Dec 2017 14:29:42 +0000 (15:29 +0100)]
ar71xx: add more registers to ar71x_regs.h

Add more registers and flags to ar71x_regs.h for QCA955x and QCA956x
SoCs. Values come from Qualcomm Atheros u-boot code.

Patches can be merged into
622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch

Signed-off-by: Julien Dusser <julien.dusser@free.fr>
6 years agoramips: add support for D-Link DAP-1522 A1
George Hopkins [Sat, 28 Oct 2017 12:24:21 +0000 (14:24 +0200)]
ramips: add support for D-Link DAP-1522 A1

D-Link DAP-1522 is a wireless bridge/access point with 4 LAN
ports and a dual-band wireless chipset.

Specifications:
- Ralink RT2880
- 32 MB of RAM
- 4 MB of Flash
- 4x 10/100/1000 Mbps Ethernet (RTL8366SR)
- 802.11abgn (RT2850)

Flash Instructions:
1. Download lede-ramips-rt288x-dap-1522-a1-squashfs-factory.bin
2. Open the web interface and upload the image

Signed-off-by: George Hopkins <george-hopkins@null.net>
6 years agomtd: add fixwrg command
George Hopkins [Sat, 28 Oct 2017 12:08:38 +0000 (14:08 +0200)]
mtd: add fixwrg command

Add a command to fix WRG headers, based on wrgg.c.

Signed-off-by: George Hopkins <george-hopkins@null.net>
6 years agokernel: mtdsplit: split by WRG header
George Hopkins [Sat, 28 Oct 2017 12:01:10 +0000 (14:01 +0200)]
kernel: mtdsplit: split by WRG header

Support splitting WRG images, which can be found in older
D-Link devices.

Signed-off-by: George Hopkins <george-hopkins@null.net>
6 years agokernel: add missing symbol
John Crispin [Tue, 13 Feb 2018 09:55:46 +0000 (10:55 +0100)]
kernel: add missing symbol

Signed-off-by: John Crispin <john@phrozen.org>
6 years agouqmi: bump package release
Koen Vandeputte [Tue, 13 Feb 2018 09:12:11 +0000 (10:12 +0100)]
uqmi: bump package release

fixes: da8990e717e1 ("uqmi: use built-in command for data-link verification")

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
6 years agoar71xx: Add eTactica EG-200 support
Karl Palsson [Thu, 26 May 2016 11:20:53 +0000 (11:20 +0000)]
ar71xx: Add eTactica EG-200 support

EG-200 is a DIN rail mountable device with one ethernet port, wifi,
an RS-485 port, and an internal USB attached uSD card reader.

Two leds, "modbus" and "etactica" are managed by userspace applications
in factory firmware.

Flash instruction:
    Original firmware is based on OpenWrt.
    Use sysupgrade image directly in vendor GUI.

Signed-off-by: Karl Palsson <karlp@etactica.com>
6 years agouqmi: use built-in command for data-link verification
Koen Vandeputte [Wed, 7 Feb 2018 12:23:28 +0000 (13:23 +0100)]
uqmi: use built-in command for data-link verification

uqmi contains a command for directly querying the modem if there
is a valid data connection, so let's use it.

This avoids the cases were all previous tests are succesful, but the
actual data link is not up for some reasons, leading to states were we
thought the link was up when it actually wasn't ..

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
6 years agouqmi: use correct value for connection checking
Koen Vandeputte [Wed, 7 Feb 2018 12:23:27 +0000 (13:23 +0100)]
uqmi: use correct value for connection checking

Originally, the implementation only checked if uqmi command
execution succeeded properly without actually checking it's returned data.

This lead to a pass, even when the returned data was indicating an error.

Rework the verification to actually check the returned data,
which can only be correct if the uqmi command itself also executed correctly.

On command execution success, value "pdh_" is a pure numeric value.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
6 years agouqmi: use general method for state cleaning
Koen Vandeputte [Wed, 7 Feb 2018 12:23:26 +0000 (13:23 +0100)]
uqmi: use general method for state cleaning

Debugging shows that using the general method properly cleans on each
run, while the method specifying the client-ID shows "No effect"
even while in connected state.

Fixes several connectivity issues seen on specific modems.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
6 years agoramips: use new image build code for WHR-G300N
INAGAKI Hiroshi [Sun, 11 Feb 2018 18:42:47 +0000 (03:42 +0900)]
ramips: use new image build code for WHR-G300N

The tftp.bin image for Buffalo WHR-G300N was not built, so I was fixed
it after rewriting to new image build code. And the code for
factory-EU.bin was broken, so I deleted it.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
6 years agomediatek: remove the CPU_SUBTYPE
John Crispin [Mon, 12 Feb 2018 20:02:01 +0000 (21:02 +0100)]
mediatek: remove the CPU_SUBTYPE

Signed-off-by: John Crispin <john@phrozen.org>
6 years agocns3xxx: remove linux 4.9 support
Koen Vandeputte [Thu, 1 Feb 2018 16:50:27 +0000 (17:50 +0100)]
cns3xxx: remove linux 4.9 support

- Remove kernel 4.9 support
- Apply specific 4.14 changes directly to source
- Refreshed all

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
6 years agotarget: Remove nomips16 option.
Rosen Penev [Fri, 2 Feb 2018 22:06:14 +0000 (14:06 -0800)]
target: Remove nomips16 option.

There is no target with a CPU subtype of nomips16.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
6 years agotools/mkimage: copy mkenvimage to bin directory
Evgeniy Didin [Mon, 12 Feb 2018 16:42:01 +0000 (19:42 +0300)]
tools/mkimage: copy mkenvimage to bin directory

For some boards u-boot binary environment file is required,
which is generated by mkenvimage utility. But in OpenWrt there
is no separate support for mkenvimage, which is a part of u-boot tools.
mkenvimage gets built in u-boot/tools as well as mkimage anyways.

So lets just copy mkenvimage to the $(STAGING_DIR_HOST)/bin/ directory.

Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
CC: Alexey Brodkin <abrodkin@synopsys.com>
CC: Hauke Mehrtens <hauke@hauke-m.de>
CC: John Crispin <john@phrozen.org>
6 years agokernel: add missing symbol for v4.14
John Crispin [Mon, 12 Feb 2018 16:38:58 +0000 (17:38 +0100)]
kernel: add missing symbol for v4.14

Signed-off-by: John Crispin <john@phrozen.org>
6 years agoocteontx: add support for OCTEON TX target
Tim Harvey [Tue, 23 Jan 2018 23:15:44 +0000 (15:15 -0800)]
octeontx: add support for OCTEON TX target

The Cavium OCTEON TX is an ARM 64-bit SoC leveraging CPU cores and
periperhals from the Cavium ThunderX SoC.

This initial support provides a 4.14 kernel and kernel+initramfs that is
bootable on the Gateworks Newport GW630x as well as the Cavium sff8104
reference board.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
6 years agopackages: uboot-mxs: override instead of appending u-boot make flags
Michael Heimpold [Sat, 10 Feb 2018 13:05:17 +0000 (14:05 +0100)]
packages: uboot-mxs: override instead of appending u-boot make flags

This prevents passing down the HOSTCC stuff set in u-boot.mk
which results in linking errors against openssl:

tools/mxsimage.o: In function `sb_aes_reinit':
mxsimage.c:(.text+0x202): undefined reference to `EVP_CIPHER_CTX_reset'
tools/mxsimage.o: In function `mxsimage_generate':
mxsimage.c:(.text+0x110d): undefined reference to `EVP_MD_CTX_new'
mxsimage.c:(.text+0x114f): undefined reference to `EVP_MD_CTX_free'
mxsimage.c:(.text+0x11c3): undefined reference to `EVP_MD_CTX_new'
mxsimage.c:(.text+0x1323): undefined reference to `EVP_MD_CTX_free'
mxsimage.c:(.text+0x134a): undefined reference to `EVP_CIPHER_CTX_reset'
tools/mxsimage.o: In function `mxsimage_verify_print_header':
mxsimage.c:(.text+0x23ce): undefined reference to `EVP_MD_CTX_new'
mxsimage.c:(.text+0x242c): undefined reference to `EVP_MD_CTX_new'
mxsimage.c:(.text+0x246b): undefined reference to `EVP_MD_CTX_free'
mxsimage.c:(.text+0x24ef): undefined reference to `EVP_CIPHER_CTX_reset'
mxsimage.c:(.text+0x2e52): undefined reference to `EVP_MD_CTX_free'
collect2: error: ld returned 1 exit status

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
6 years agopackages: uboot-mxs: bump to 2017.11
Michael Heimpold [Sat, 10 Feb 2018 13:05:10 +0000 (14:05 +0100)]
packages: uboot-mxs: bump to 2017.11

Also update the U-Boot BSP patch for I2SE Duckbill devices.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
6 years agomxs: rename files to files-4.9
Michael Heimpold [Sat, 10 Feb 2018 13:04:34 +0000 (14:04 +0100)]
mxs: rename files to files-4.9

The Device Tree file for I2SE Duckbill boards was updated upstream.
Let's use the upstream version for upcoming kernel 4.14 by keeping
our current version for v4.9 still around.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
6 years agoramips: Add support for the GnuBee Personal Cloud Two
Rosen Penev [Mon, 5 Feb 2018 00:24:15 +0000 (16:24 -0800)]
ramips: Add support for the GnuBee Personal Cloud Two

The GnuBee Personal Cloud Two crowdfunded on https://www.crowdsupply.com
It is a low-cost, low-power, network-attached storage device.

Specifications:

- SoC: MediaTek MT7621AT
- RAM: DDR3 512 MB
- Flash: 32 MB
- Six SATA ports for 3.5" Drives
- One SDcard
- One USB 3.0
- Two USB 2.0
- Gigabit Ethernet: Three Ports
- UART 3.5mm Audio Jack or 3 pin header - 57600 8N1
- Three GPIOs available on a pin header

Flash instructions:

The GnuBee Personal Cloud Two ships with libreCMC installed.
libreCMC is a Free Software Foundation approved fork of LEDE/OpenWrt.
As such one can upgrade using the webinterface or sysupgrade.

Das U-Boot has multiple options for recovery or updates including :

- USB
- http
- tftp

Errata:
- While there are three ethernet ports, the third requires support for
  the second GMAC. This will come in kernel 4.14.
- The first hard drive slot has a clearance issue with the two fan
  headers. Workaround is to pull the headers out and connect the pins to
  jumper wires.
- Using this device as a NAS is problematic with the 4.9 kernel as many
  /dev/sdX reads throw silent errors. The current theory behind this is
  some kind of unhandled DMA mapping error in the kernel. This is not an
  issue with kernel 4.4.

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
6 years agoiptables: Support building connlabel module
Kristian Evensen [Mon, 22 Jan 2018 17:52:28 +0000 (18:52 +0100)]
iptables: Support building connlabel module

It is currently possible to enable connlabel-support in iptables.
However, in order for connlabel to work properly, the kernel module must
also be present. This patch adds support for building the
connlabel-module, and selects it by default when connlabel-support is
enabled.

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
6 years agolayerscape: fix call trace of pfe module removing
Yangbo Lu [Tue, 30 Jan 2018 12:45:25 +0000 (20:45 +0800)]
layerscape: fix call trace of pfe module removing

Updated pfe kernel patch to clean up iounmap(pfe->ddr_baseaddr).
pfe->ddr_baseaddr was got through phys_to_virt() not ioremap(),
so iounmap() for pfe->ddr_baseaddr should be removed.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: fix DPAA2 QDMA issue
Yangbo Lu [Mon, 29 Jan 2018 10:30:44 +0000 (18:30 +0800)]
layerscape: fix DPAA2 QDMA issue

This patch is to reverse a upstream dmatest patch for now
which is causing DPAA2 QDMA test issue.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: add a make menuconfig known issue in README
Yangbo Lu [Fri, 26 Jan 2018 08:46:17 +0000 (16:46 +0800)]
layerscape: add a make menuconfig known issue in README

This patch is to add a known issue of make menuconfig
in README file. This is also a common issue for OpenWrt.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: fix type for kernel 4.9 dpaa2_mac_get_stats() function
Yangbo Lu [Thu, 25 Jan 2018 08:52:38 +0000 (16:52 +0800)]
layerscape: fix type for kernel 4.9 dpaa2_mac_get_stats() function

This patch changes the declarations of ndo_get_stats64 handlers
to the previous struct rtnl_link_stats64 * return type instead of
the mainline void return.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update README
Yangbo Lu [Mon, 22 Jan 2018 08:42:05 +0000 (16:42 +0800)]
layerscape: update README

Tis patch is to fix up some descriptions in README.
Per-device rootfs had been supported, and a known issue
had been found. These also should be updated accordingly.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: support ubifs rootfs in u-boot env
Yangbo Lu [Mon, 22 Jan 2018 08:33:29 +0000 (16:33 +0800)]
layerscape: support ubifs rootfs in u-boot env

ls1012ardb/ls1012afrdm/ls1046ardb/ls1088ardb firmwares now use ubifs
rootfs. So u-boot env should be set accordingly.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: support ubifs rootfs
Yangbo Lu [Fri, 19 Jan 2018 10:38:03 +0000 (18:38 +0800)]
layerscape: support ubifs rootfs

Some layerscape devices (ls1012ardb/ls1012afrdm/ls1046ardb/ls1088ardb)
were using ext4 rootfs because there were issues using squashfs.
This patch is to drop using ext4 rootfs and use ubifs rootfs instead
which is more proper for SPI-NOR flash.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update u-boot to LSDK1712
Yangbo Lu [Fri, 19 Jan 2018 03:04:25 +0000 (11:04 +0800)]
layerscape: update u-boot to LSDK1712

This patch is to update layerscape u-boot to
NXP LSDK1712 release.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update ppfe firmware to LSDK1712
Yangbo Lu [Thu, 18 Jan 2018 08:36:49 +0000 (16:36 +0800)]
layerscape: update ppfe firmware to LSDK1712

Updated ppfe firmware to NXP LSDK1712 release. Used
ppfe firmware git tree on NXP github since it was
migrated here from qoriq-open-source github.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: add ls-rcw-bin package
Yangbo Lu [Thu, 18 Jan 2018 08:24:24 +0000 (16:24 +0800)]
layerscape: add ls-rcw-bin package

NXP LSDK1712 release used two rcw git trees. The
original rcw git tree was still source code but
dropping ls1012a/ls1088a/ls2088a boards in LSDK1712.
Instead another new rcw git tree was used to just
provided rcw binaries for these boards dropped. So
this patch is to update ls-rcw to LSDK1712 release
and add a new ls-rcw-bin package.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update PPA firmware to LSDK1712
Yangbo Lu [Thu, 18 Jan 2018 07:24:07 +0000 (15:24 +0800)]
layerscape: update PPA firmware to LSDK1712

This patch is to update PPA firmware to NXP LSDK1712
release.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: migrate fman-ucode to NXP github
Yangbo Lu [Thu, 18 Jan 2018 07:08:25 +0000 (15:08 +0800)]
layerscape: migrate fman-ucode to NXP github

fman-ucode had been migrated from qoriq-open-source
github to NXP github. So the Makefile should be fixed
accordingly.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update MC firmware to LSDK1712
Yangbo Lu [Thu, 18 Jan 2018 06:55:19 +0000 (14:55 +0800)]
layerscape: update MC firmware to LSDK1712

Updated MC firmware to NXP LSDK1712 release. Used
MC firmware git tree on NXP github since it was
migrated here from qoriq-open-source github.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: remove USB configs for 64-bit
Yangbo Lu [Thu, 18 Jan 2018 06:14:16 +0000 (14:14 +0800)]
layerscape: remove USB configs for 64-bit

Removed USB configs for 64-bit device since they're
already in kmod package.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: remove USB and TI specific configs for 32-bit
Yangbo Lu [Thu, 18 Jan 2018 06:02:58 +0000 (14:02 +0800)]
layerscape: remove USB and TI specific configs for 32-bit

This patch is to remove USB configs for 32-bit device since
they're already in kmod package. Also removed TI platform
specific configs.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update patches-4.9 to LSDK1712
Yangbo Lu [Tue, 6 Feb 2018 04:39:05 +0000 (12:39 +0800)]
layerscape: update patches-4.9 to LSDK1712

Patches changes
- Updated patches-4.9 to NXP LSDK1712 linux-4.9.
- Merged changes of patch 303 into integrated patch 201.
- Split changes of patch 706 into dpaa part and dpaa2
  part, and merged these changes into integrated patches
  701 and 705.
- Removed patch 819 since ehci-fsl driver could be compiled now.
- Refreshed these patches.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update restool to 2017-12-03
Yangbo Lu [Thu, 11 Jan 2018 09:23:00 +0000 (17:23 +0800)]
layerscape: update restool to 2017-12-03

Updated restool to 2017-12-03 and removed patches
since the new version had involved them.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agolayerscape: update build guide in README
Yangbo Lu [Mon, 8 Jan 2018 04:12:16 +0000 (12:12 +0800)]
layerscape: update build guide in README

Added package feeds updating and installing in build guide
of README.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
6 years agoar71xx: add support for TP-Link RE355
Henryk Heisig [Tue, 6 Feb 2018 21:08:28 +0000 (22:08 +0100)]
ar71xx: add support for TP-Link RE355

This device is identical as TP-Link RE450
RE355 is a dual-band AC1200 router, based on Qualcomm/Atheros
QCA9558+QCA9880.

Specification:

720/600/200 MHz (CPU/DDR/AHB)
64/128 MB of RAM (DDR2)
8 MB of FLASH (SPI NOR)
3T3R 2.4 GHz
3T3R 5 GHz
1x 10/100/1000 Mbps Ethernet
7x LED, 3x button
UART header on PCB

Flash instruction:
Web:
Download lede-ar71xx-generic-archer-c60-v2-squashfs-factory.bin
and use OEM System Tools - Firmware Upgrade site.

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
6 years agokmod-sched: add sch_multiq to extra schedulers
Philip Prindeville [Fri, 26 Jan 2018 21:28:02 +0000 (14:28 -0700)]
kmod-sched: add sch_multiq to extra schedulers

For hardware that supports multiple h/w output queues, add
a compatible scheduler (NET_SCH_MULTIQ).

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
6 years agobase-files: don't evaluate block-device uevent
Daniel Golle [Mon, 12 Feb 2018 22:36:54 +0000 (23:36 +0100)]
base-files: don't evaluate block-device uevent

Current code and also before commit da52dd0c83 was vulnerable to shell
injection using volume lables in the GPT partition table of block
devices. Given that partition names can be freely defined in GPT tables
we really shouldn't evaluate a string which is potentially crafted with
evil intentions. Hence rather use `export -n` to absorb the uevent's
variables into the environment.

Fixes commit da52dd0c83 (base-files: quote values when evaluating uevent)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
[mschiffer@universe-factory.net: suggested export -n usage]

6 years agokernel: add IEEE-1284 parallel port support
Daniel Gimpelevich [Thu, 18 Jan 2018 11:52:12 +0000 (03:52 -0800)]
kernel: add IEEE-1284 parallel port support

The kmod-lp package included both lp.ko and ppdev.ko, but ECP device
drivers may or may not require lp NOT to be loaded, needing only ppdev.
Additionally, There were no packages for any parport interface modules,
such as uss720 or parport_pc, provided here. It has not been otherwise
possible to use PC-style parport hardware for kmod-lp.

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
6 years agobrcm63xx: switch to kernel 4.9
Jonas Gorski [Mon, 12 Feb 2018 10:44:12 +0000 (11:44 +0100)]
brcm63xx: switch to kernel 4.9

Now that we have support for it, let's switch to kernel 4.9.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agoar7: switch to kernel 4.9
Jonas Gorski [Mon, 12 Feb 2018 10:42:48 +0000 (11:42 +0100)]
ar7: switch to kernel 4.9

With generic run tested and ac49x compile tested, and no complaints so
far, let's switch to 4.9.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agoar7: fix ac49x compilation with 4.9
Jonas Gorski [Mon, 12 Feb 2018 10:40:38 +0000 (11:40 +0100)]
ar7: fix ac49x compilation with 4.9

This will introduce a warning on 3.18, but fixes an error when
compiling for 4.9.

Fixes: cf9e0a59aabd ("ar7: add kernel 4.9 support")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agoRevert "mediatek: activate fpu feature flag"
John Crispin [Mon, 12 Feb 2018 10:35:47 +0000 (11:35 +0100)]
Revert "mediatek: activate fpu feature flag"

This reverts commit 3594447a7d0398c55ea78f658b52b7d8084ae9f9.

This causes the userland to not come up properly

Signed-off-by: John Crispin <john@phrozen.org>
6 years agotools: update patch to v2.7.6
Russell Senior [Mon, 12 Feb 2018 07:40:59 +0000 (23:40 -0800)]
tools: update patch to v2.7.6

Removes a redundant patch with a fix already upstream.  Build tested on
apm821xx (PPC).

Signed-off-by: Russell Senior <russell@personaltelco.net>
6 years agomvebu: fix sysupgrade from 17.04 for clearfog pro
Jonas Gorski [Sun, 11 Feb 2018 21:31:36 +0000 (22:31 +0100)]
mvebu: fix sysupgrade from 17.04 for clearfog pro

When clearfog was renamed to clearfog pro, it broke sysupgrade from
17.04 as the new images now get rejected as incompatible. Fix this by
adding the legacy boardname to the compatible devices.

Fixes: ec4a8c6dee81 ("mvebu: ClearFog renamed upstream to ClearFog Pro")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobrcm63xx: add kernel 4.14 support
Jonas Gorski [Sat, 13 Jan 2018 17:43:32 +0000 (18:43 +0100)]
brcm63xx: add kernel 4.14 support

Add support for kernel 4.14. Increases compressed kernel size by ~64k
compared to 4.9.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobroadcom-wl: fix compilation with 4.14
Jonas Gorski [Sat, 13 Jan 2018 17:44:04 +0000 (18:44 +0100)]
broadcom-wl: fix compilation with 4.14

The last_rx field was removed from net_device. Since the field wasn't
used by the generic subsystem, and the driver only writes to it, just
remove the usage.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobrcm63xx: add kernel 4.9 support
Jonas Gorski [Sat, 13 Jan 2018 12:18:10 +0000 (13:18 +0100)]
brcm63xx: add kernel 4.9 support

Add support for kernel 4.9 based on the more upstream comformant
partition defintions. Increases compressed kernel size by ~95k
compared to 4.4.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobrcm63xx: switch to new partition layout specification
Jonas Gorski [Wed, 28 Jun 2017 08:44:38 +0000 (10:44 +0200)]
brcm63xx: switch to new partition layout specification

Now that we support parsing the expected upstream definition, update
the dts files to it.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobrcm63xx: enhance dt partitions support to match upstream more closely
Jonas Gorski [Mon, 26 Jun 2017 17:01:20 +0000 (19:01 +0200)]
brcm63xx: enhance dt partitions support to match upstream more closely

Partitions are supposed to be enclosed in an extra partitions node. Allow
the bcm63xxpart parser to cope with that.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobrcm63xx: backport latest bcm63xx_enet changes from upstream
Jonas Gorski [Sun, 17 Dec 2017 13:15:29 +0000 (14:15 +0100)]
brcm63xx: backport latest bcm63xx_enet changes from upstream

No functional changes, just simple cleanups.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agobrcm63xx: fix ephy reset gpio lookup
Jonas Gorski [Sat, 13 Jan 2018 17:41:14 +0000 (18:41 +0100)]
brcm63xx: fix ephy reset gpio lookup

The lookup needs to be called just "reset" for the common code.

Fixes: 054c0d4e3193 ("brcm63xx: backport mdio-bus reset gpio support")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
6 years agoar71xx: add missing config symbol ATH79_MACH_CF_E375AC
Matthias Schiffer [Sun, 11 Feb 2018 17:41:25 +0000 (18:41 +0100)]
ar71xx: add missing config symbol ATH79_MACH_CF_E375AC

Fixes: bf66bb8c96 "ar71xx:add support for COMFAST CF-E375AC"
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
6 years agowrt55agv2-spidevs: remove obsolete package
Felix Fietkau [Sun, 11 Feb 2018 17:05:14 +0000 (18:05 +0100)]
wrt55agv2-spidevs: remove obsolete package

It hasn't compiled in a long time and needs to be updated before it can
be restored anyway.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
6 years agomediatek: activate fpu feature flag
Hauke Mehrtens [Fri, 9 Feb 2018 23:52:20 +0000 (00:52 +0100)]
mediatek: activate fpu feature flag

The arm CPUs uses in the supported Mediatket SoCs have a FPU accordingly
to the datasheet, activate it also. The CPU subtype "neon-vfpv4" is
selected, but the toolcahin generated for this SoC will still be
compiled with soft float and not with the hard float ABI as we haven't
the fpu feature flag set. If this toolchain is reused by other targets
this will even affect other targets.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agobase-files: quote values when evaluating uevent
Daniel Golle [Fri, 2 Feb 2018 00:57:46 +0000 (01:57 +0100)]
base-files: quote values when evaluating uevent

When sourcing /sys/class/block/*/uevent values have to be quoted as
they may contain spaces (e.g. in PARTNAME).
Fix this by pre-processing with sed before sourcing.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
6 years agoipq-wifi: drop OpenMesh A42 board-2.bin
Sven Eckelmann [Mon, 29 Jan 2018 10:52:51 +0000 (11:52 +0100)]
ipq-wifi: drop OpenMesh A42 board-2.bin

The BDFs for OpenMesh A42 were upstreamed [1] to the ath10k-firmware
repository and are now part of ath10k-firmware 2018-01-26. The
ipq-wifi-openmesh_a42 package can now be dropped because OpenWrt already
ships the QCA4019 board-2.bin from this version.

[1] https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
6 years agofirmware: ath10k-firmware: update to 2018-01-26
Sven Eckelmann [Mon, 29 Jan 2018 10:46:35 +0000 (11:46 +0100)]
firmware: ath10k-firmware: update to 2018-01-26

* introduces the BDFs for the OpenMesh A42 in
  /lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin.
* adds new firmware firmware-6.bin_RM.4.4.1.c1-00037-QCARMSWP-1 for
  QCA6174 hw3.0

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
6 years agoar71xx:add support for COMFAST CF-E375AC
Ding Tengfei [Wed, 7 Feb 2018 03:47:52 +0000 (11:47 +0800)]
ar71xx:add support for COMFAST CF-E375AC

COMFAST CF-E375AC is a ceiling mount AP with PoE support, based on
Qualcomm/Atheros QCA9563 + QCA9886 + QCA8337.

Short specification:

    2x 10/100/1000 Mbps Ethernet, with PoE support
    128MB of RAM (DDR2)
    16 MB of FLASH
    3T3R 2.4 GHz, 802.11b/g/n
    2T2R 5 GHz, 802.11ac/n/a, wave 2
    built-in 5x 3 dBi antennas
    output power (max): 500 mW (27 dBm)
    1x RGB LED, 1x button
    built-in watchdog chipset

Flash instruction:

Original firmware is based on OpenWrt.
Use sysupgrade image directly in vendor GUI.

Signed-off-by: Ding Tengfei <dtf@comfast.cn>
6 years agoar71xx: remove bs-partition ro-flag for UniFi AC
David Bauer [Tue, 6 Feb 2018 18:44:36 +0000 (19:44 +0100)]
ar71xx: remove bs-partition ro-flag for UniFi AC

This removes the read-only flag from the bs (bootselect) partition
on UniFi AC devices. This allows to correct the indicator from which
partition the device is booting its kernel from.

See also:
 - https://github.com/freifunk-gluon/gluon/issues/1301
 - https://bugs.lede-project.org/index.php?do=details&task_id=662

Signed-off-by: David Bauer <mail@david-bauer.net>
6 years agokexec-tools: bump version to 2.0.16
Philip Prindeville [Sat, 3 Feb 2018 01:50:24 +0000 (18:50 -0700)]
kexec-tools: bump version to 2.0.16

All patches have been integrated upstream.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
6 years agokexec-tools: issue warning when dd'ing vmcore
Philip Prindeville [Sat, 16 Sep 2017 16:16:29 +0000 (10:16 -0600)]
kexec-tools: issue warning when dd'ing vmcore

With no warning, it just looks like the box has hung during boot.

We don't want users resetting it without having captured a crashdump.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
6 years agoramips: add support for TP-Link Archer C50 v3
Henryk Heisig [Sun, 28 Jan 2018 18:49:38 +0000 (19:49 +0100)]
ramips: add support for TP-Link Archer C50 v3

TP-Link Archer C50 v3 is a router with 5-port FE switch and
non-detachable antennas. It's based on MediaTek MT7628N+MT7612E.

Specification:
- MediaTek MT7628N/N (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 2T2R 5 GHz
- 5x 10/100 Mbps Ethernet
- 4x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- 7x LED (GPIO-controlled*), 2x button, power switch

* WAN LED in this devices is a dual-color, dual-leads type which isn't
  (fully) supported by gpio-leds driver. This type of LED requires both
  GPIOs state change at the same time to select color or turn it off.
  For now, we support/use only the green part of the LED.

Flash instruction:

The only way to flash LEDE image in ArcherC50v3 is to use
tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.0.66/24 and tftp server.
2. Rename "openwrt-ramips-mt7628-ArcherC50v3-squashfs-tftp-recovery.bin"
   to "tp_recovery.bin" and place it in tftp server directory.
3. Connect PC with one of LAN ports, press the reset button, power up
   the router and keep button pressed for around 6-7 seconds, until
   device starts downloading the file.
4. Router will download file from server, write it to flash and reboot.

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
6 years agoramips: ArcherC20v4: use common TP-Link dtsi file
Henryk Heisig [Sun, 28 Jan 2018 18:35:17 +0000 (19:35 +0100)]
ramips: ArcherC20v4: use common TP-Link dtsi file

and remove common part from dts file.

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
6 years agoramips: change the TP-Link dtsi filename
Henryk Heisig [Sun, 28 Jan 2018 18:09:51 +0000 (19:09 +0100)]
ramips: change the TP-Link dtsi filename

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
6 years agokernel: mtdsplit: Add support for D-link JBOOT
Pawel Dembicki [Sun, 4 Feb 2018 12:11:16 +0000 (13:11 +0100)]
kernel: mtdsplit: Add support for D-link JBOOT

The D-Link devices with JBOOT bootloader use their own kernel
image header (stag + sch2 headers).

This driver find jImage header and set rootfs start after kernel file.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
6 years agoipq806x: mark AVM FB4040 switchport as untagged
David Bauer [Tue, 6 Feb 2018 20:00:53 +0000 (21:00 +0100)]
ipq806x: mark AVM FB4040 switchport as untagged

This commit marks the CPUs switchport explicit as untagged.
Otherwise, an eth0.1 interface is created and the devices
LAN-ports are not working.

Signed-off-by: David Bauer <mail@david-bauer.net>
6 years agox86: add preinit hook to reload microcode
Zoltan HERPAI [Sat, 10 Feb 2018 18:16:37 +0000 (19:16 +0100)]
x86: add preinit hook to reload microcode

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
6 years agofirmware: add microcode package for Intel
Zoltan HERPAI [Sat, 10 Feb 2018 20:19:41 +0000 (21:19 +0100)]
firmware: add microcode package for Intel

Compiling the Intel microcode package results in a
microcode.bin and a microcode-64.bin. As we can
decide based on the subtarget which should be used,
we'll only split the required .bin file with
iucode-tool.

x64 will get the intel-microcode-64.bin
All other variants will get intel-microcode.bin

The microcodes will be updated from preinit via a common
script - that's the earliest place where we can do it.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
6 years agofirmware: add microcode package for AMD
Zoltan HERPAI [Sat, 10 Feb 2018 18:06:56 +0000 (19:06 +0100)]
firmware: add microcode package for AMD

Use the Debian repository for sourcing the ucode files.

Current (20171205) includes support for fam17h CPUs already.

The microcodes will be updated from preinit via a common
script - that's the earliest place where we can do it.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
6 years agotools: add iucode-tool
Zoltan HERPAI [Sun, 11 Feb 2018 11:30:07 +0000 (12:30 +0100)]
tools: add iucode-tool

Add tool to "compile" Intel microcode files. The tool will be
compiled for host (to split the microcode.dat) and for target
(to forcibly reload the microcode if required).

Instead of using the large microcode.bin/microcode-64.bin, the
splitted ucode files (separate for CPU families) will be
installed.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
6 years agox86: enable microcode loading for Intel and AMD
Zoltan HERPAI [Wed, 17 Jan 2018 08:58:26 +0000 (09:58 +0100)]
x86: enable microcode loading for Intel and AMD

Enable for 4.9 and 4.14.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
6 years agofstools: update to latest git HEAD
John Crispin [Sun, 11 Feb 2018 13:32:04 +0000 (14:32 +0100)]
fstools: update to latest git HEAD

3d23981 strip trailing spaces from vfat labels
c4a3c97 fix vfat volume label
5010710 block: support /dev/nvme* nodes

Signed-off-by: John Crispin <john@phrozen.org>
6 years agouboot-fritz4040: Fix build with HOSTCFLAGS
Hauke Mehrtens [Sat, 10 Feb 2018 23:52:08 +0000 (00:52 +0100)]
uboot-fritz4040: Fix build with HOSTCFLAGS

When we provide the HOSTCFLAGS to the U-Boot build it will fail because
it can not find the u-boot provided header files any more.
Just overwrite and not append the package specific configuration on top
of the configuration provided by u-boot.mk.
uboot-fritz4040 is based on U-Boot 2012.07 and this problem is probably
similar to the problem seen with the lantiq and ar71xx u-boot build.

Fixes: df9781a4205 ("u-boot,at91bootstrap: fix incorrect HOSTCPPFLAGS variable")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 years agoar71xx: Orders the names of the devices alphabetically.
Arne Zachlod [Sat, 10 Feb 2018 22:39:50 +0000 (23:39 +0100)]
ar71xx: Orders the names of the devices alphabetically.

Signed-off-by: Arne Zachlod <arne@nerdkeller.org>