Current code directly writes the FOE entry to hash_val+1 position
when hash collision occurs. However, it is found that this behavior
will cause the cache and the hardware FOE table to be inconsistent.
For example, there are three flows, and their hashed values are all
equal to 100. The first flow is written to the position of 100. The
second flow is written to the position of 100+1. Then, the logic of
the current code will also write the third flow to 100+1.
At this time, the cache has flow 1 and 2; and the hardware FOE table
has flow 1 and 3, where these two parts store different contents.
So it is necessary to check whether the hash_val+1 is also occupied
before writing. If hash_val+1 is also occupied, we won’t bind th
third flow to the FOE table.
Addition to that, we also cancel the processing of foe_entry removal
because the hardware has auto age-out ability. The hardware will
periodically iterate through the FOE table to find out the time-out
entry and set it as INVALID.
Signed-off-by: HsiuWen Yen <y.hsiuwen@gmail.com>
LAN ports 1 and 4 and 2 and 3 are interchanged. Fix this in 02_network
so the ports show up in the correct order in luci.
The correct ucidef_add_switch line is already present. This commit moves
the blocks around to keep alphabetical order.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The swconfig load operation always triggers 'apply' function which in
this driver currently clears port mirroring flags effectively undoing
port mirroring configuration.
This fix preserves port mirroring flags during apply.
Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
The swconfig load operation always triggers 'apply' function which in
this driver currently clears port mirroring flags effectively undoing
port mirroring configuration.
Signed-off-by: Milan Krstic <milan.krstic@gmail.com>
Backport upstream patch:
Commit 65cab850f0ee ("net: Allow class-e address assignment via ifconfig
ioctl") modified the IN_BADCLASS macro a bit, but unfortunatly one too
many '(' characters were added to the line, making any code that used
it, not build properly.
Also, the macro now compares an unsigned with a signed value, which
isn't ok, so fix that up by making both types match properly.
Reported-by: Christopher Ferris <cferris@google.com>
Fixes: 65cab850f0ee ("net: Allow class-e address assignment via ifconfig ioctl")
Cc: Dave Taht <dave.taht@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
This patch applies cleanly, so it doesn't cause errors while rebasing
patches. It results in redifinition of inode_still_linked, causing build
to fail when ubifs is enabled. Drop the patch.
Fixes: a37098a2d0 ("kernel: bump 4.19 to 4.19.16")
Reported-by: Deng Qingfang <dengqf6@mail2.sysu.edu.cn>
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Move the zip compression into a build recipe. Pad the image using the
existing build recipes as well to remove duplicate functionality
Change the code to append header and footer in two steps. Allow to use a
fixed filename as the netgear update image does.
Use a fixed timestamp within the zip archive to make the images
reproducible.
Due to the changes we are now compatible to the gnu89 c standard used by
default on the buildbots and we don't need to force a more recent
standard anymore.
Beside all changes, the footer still looks wrong in compare to the
netgear update image.
Signed-off-by: Mathias Kresin <dev@kresin.me>
This adds supprot for kernel 4.19 to the sunxi target. The patches and
the configuration were copied from the kernel 4.14 patches folder and
adapted for kernel 4.19.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
To make it easier to support multiple kernel versions in parallel also
copy the sub target specific kernel configurations into kernel specific
files.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
In the device tree file the higher offsets of the reset controller are
not used, so this patch supporting higher bits is not needed.
The sunxi architecture switched to the simple reset controller with
kernel 4.19 and then this patch does not apply any more.
The sunxi target in OpenWrt is very close to mainline, so if the device
tree files from the mainline Linux kernel need this the mainline kernel
will get support for this.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This configuration option was added in kernel 4.15 and is missing in the
kernel 4.19 configuration.
Fixes: ed2839ac41 ("kernel/modules: add kmod-pmbus-zl6100 module")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This adds a kernel configuration file for kernel 4.19 on malta.
CONFIG_POWER_RESET_PIIX4_POWEROFF and CONFIG_POWER_RESET_SYSCON were
activated because malta now uses this driver for reboot.
CONFIG_BLK_DEV_SR was also added because it was also added to the kernel
default configuration.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Many MIPS CPUs have optional CPU features which are not activates for
all CPU cores. Print the CPU options which are implemented in the core
in /proc/cpuinfo. This makes it possible to see what features are
supported and which are not supported. This should cover all standard
MIPS extensions, before it only printed information about the main MIPS
ASEs.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This fixes two build problems introduced with the recently added new
kernel module package.
Fixes: ed2839ac41 ("kernel/modules: add kmod-pmbus-zl6100 module")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Hardware
========
CPU: Freescale P1010 PowerPC
RAM: 128M DDR3
NAND: 128MiB
ETH: RTL8211F SGMII PHY
RTL8367B 5-port RGMII switch
(not connected to SoC - unmanaged)
WiFi: SparkLan WPEA-121N
- Atheros AR9382 2T2R abgn
USB: 1x USB 2.0
LED: System, Router, Internet, Tunnel controllable
LAN1-4, WAN, Power non-controllable
BTN: None
Installation
============
1. Power on the device while attached to the Console port.
2. Halt the U-Boot by pressing Enter when prompted.
3. Set the correct bootcmd for booting OpenWRT:
> setenv bootargs_owrt "setenv bootargs console=ttyS0,115200"
> setenv bootcmd "run bootargs_owrt;
nand read 0x1000000 0x300000 0x800000;
bootm 0x1000000;"
> saveenv
5. Rename OpenWRT initramfs image to 'kernel.bin' and place it in a
TFTP server root-directory served on 192.168.1.2/24. Connect your
computer to one of the LAN-ports.
4. Boot OpenWRT initramfs image with
> run bootargs_owrt; tftpboot 0x1000000 192.168.1.2:kernel.bin;
bootm 0x1000000;
6. (Optional)
Make a Backup of 'sophos-os1', 'sophos-os2' and 'sophos-data' in case
you ever want to go back to the vendor firmware.
7. Create Ubi Volume on mtd4 by executing
> ubiformat /dev/mtd4 -y
8. Transfer OpenWRT sysupgrade image to the device via SCP and install it
with
> sysupgrade -n <openwrt-image-file>
Back to Stock
=============
If you want to go back to the stock firmware, here is the bootcmd of the
vendor firmware:
> setenv bootargs console=ttyS0,115200 root=/dev/mtdblock5;
nand read 0xc00000 0x00300000 0x100000;
nand read 0x1000000 0x00400000 0x00800000;
bootm 0x1000000 - 0xc00000
Set it via 'setenv' from the U-Boot shell and don't forget to save it
using 'saveenv'!
After this, boot the OpenWRT initramfs image just like you would for
installation. Write back the three vendor partitions using mtd. Reboot
the device afterwards.
Signed-off-by: David Bauer <mail@david-bauer.net>
[refresh and reorder patches]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Initramfs image isn't required for this device and regular
initramfs generation isn't work properly. It create not working
binaries.
This patch disable initramfs image for TL-WDR4900.
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
This patch adds the kmod packaging for the Intersil / Zilker Labs
ZL6100 and compatible digital DC-DC controllers as well as the
core kernel module for the Power Management Bus.
Add:
kmod-pmbus-core
kmod-pmbus-zl6100
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
This adds initial support for kernel 4.19 to the x86 target.
The patches and the kernel configurations were copied from kernel 4.14
and then refreshed.
The legacy and the genode target will not support PAE any more because
they use a CPU type which does not support PAE, the generic sub target
still supports PAE.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This refreshes the kernel configuration for kernel 4.14.
First this was run for the legacy target:
make kernel_oldconfig
Then for all targets including the legacy target this was run:
make kernel_oldconfig CONFIG_TARGET=subtarget
The option CONFIG_104_QUAD_8 was added to the generic configuration
because it would have been automatically removed.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This makes it possible to use different sub target configurations for
kernel 4.19 for example.
To support kernel 4.9 and kernel 4.14 with the same configuration file
already needed some extra work this will not be needed for kernel 4.19
any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
It's needed to:
1) Fix GPIOLIB_IRQCHIP as in 4.19 there is no bcma revert anymore
2) Fix /sys/devices/
3) Fix dma_zalloc_coherent() regression
It still needs a bcma change that will follow later.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
upstream commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
reimplemented cns3xxx_pci_read_config() using pci_generic_config_read32(),
which preserved the property of only doing 32-bit reads.
It also replaced cns3xxx_pci_write_config() with pci_generic_config_write(),
so it changed writes from always being 32 bits to being the actual size,
which works just fine.
Due to:
- The documentation does not mention that only 32 bit access is allowed.
- Writes are already executed using the actual size
- Extensive testing shows that 8b, 16b and 32b reads work as intended
It makes perfectly sense to also swap 32 bit reading in favor of actual size.
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Sometimes the tuples might be hashed to the same FOE entry.
When this hash collision problem occurs, some of the
connections will not be bound and consequently the CPU
idle rate cannot reach 100%. Therefore, two-way hashing
is adopted to alleviate this problem.
Signed-off-by: HsiuWen Yen <y.hsiuwen@gmail.com>
Copy U-Boot to STAGING_DIR_IMAGE (and append it to the EVA-image from
there) to fix image generation using the image-builder.
Also remove the bootloader from DEVICE_PACKAGES and instead use the
BUILD_DEVICES directive from within the U-Boot makefile.
This fixes eva-image generation using the OpenWRT image-builder.
Signed-off-by: David Bauer <mail@david-bauer.net>
This patch syncs the 4.14 kernel config to the
current generic configuration.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [reworded commit]
This patch syncs the 4.19 kernel config since the
KERNEL_STACKPROTECTOR and compiler options are
now part of the 4.19 generic config.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [reworded commit]
Robert Marko reported an issue with the current imagebuilder images:
"Imagebuilder includes the new kmod-usb-dwc3-qcom USB driver
package by default even on 4.14. [...] the current state imagebuilder
can't build images under 4.14 at all as the kmod-usb-dwc3-qcom does
not exist in it so it throws and error and exits."
This patch reverts the Makefile to just kmod-usb-dwc3-of-simple and
once the switch to 4.19 is done. It also removes the
kmod-usb-phy-qcom-dwc3 as they only contain the usb-phy drivers for
the ipq806x generation.
Dynamic switching based on the KERNEL_PATCHVER is possible by using:
$(if $(filter 4.14,$(KERNEL_PATCHVER)),kmod-usb-dwc3-of-simple,kmod-usb-dwc3-qcom)
though it
Fixes: 13321fa142 ("ipq40xx: Use kmod-usb-dwc3-qcom by default")
Fixes: 6e58fb2c33 ("ipq40xx: kmod-usb-dwc3-of-simple vs kmod-usb-dwc3-qcom")
Reported-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>