Merge Official Source
This commit is contained in:
commit
608d3c70ab
@ -85,6 +85,126 @@ config KERNEL_PROFILING
|
||||
Enable the extended profiling support mechanisms used by profilers such
|
||||
as OProfile.
|
||||
|
||||
config KERNEL_UBSAN
|
||||
bool "Compile the kernel with undefined behaviour sanity checker"
|
||||
help
|
||||
This option enables undefined behaviour sanity checker
|
||||
Compile-time instrumentation is used to detect various undefined
|
||||
behaviours in runtime. Various types of checks may be enabled
|
||||
via boot parameter ubsan_handle
|
||||
(see: Documentation/dev-tools/ubsan.rst).
|
||||
|
||||
config KERNEL_UBSAN_SANITIZE_ALL
|
||||
bool "Enable instrumentation for the entire kernel"
|
||||
depends on KERNEL_UBSAN
|
||||
default y
|
||||
help
|
||||
This option activates instrumentation for the entire kernel.
|
||||
If you don't enable this option, you have to explicitly specify
|
||||
UBSAN_SANITIZE := y for the files/directories you want to check for UB.
|
||||
Enabling this option will get kernel image size increased
|
||||
significantly.
|
||||
|
||||
config KERNEL_UBSAN_ALIGNMENT
|
||||
bool "Enable checking of pointers alignment"
|
||||
depends on KERNEL_UBSAN
|
||||
help
|
||||
This option enables detection of unaligned memory accesses.
|
||||
Enabling this option on architectures that support unaligned
|
||||
accesses may produce a lot of false positives.
|
||||
|
||||
config KERNEL_UBSAN_NULL
|
||||
bool "Enable checking of null pointers"
|
||||
depends on KERNEL_UBSAN
|
||||
help
|
||||
This option enables detection of memory accesses via a
|
||||
null pointer.
|
||||
|
||||
config KERNEL_KASAN
|
||||
bool "Compile the kernel with KASan: runtime memory debugger"
|
||||
select KERNEL_SLUB_DEBUG
|
||||
depends on (x86_64 || aarch64)
|
||||
help
|
||||
Enables kernel address sanitizer - runtime memory debugger,
|
||||
designed to find out-of-bounds accesses and use-after-free bugs.
|
||||
This is strictly a debugging feature and it requires a gcc version
|
||||
of 4.9.2 or later. Detection of out of bounds accesses to stack or
|
||||
global variables requires gcc 5.0 or later.
|
||||
This feature consumes about 1/8 of available memory and brings about
|
||||
~x3 performance slowdown.
|
||||
For better error detection enable CONFIG_STACKTRACE.
|
||||
Currently CONFIG_KASAN doesn't work with CONFIG_DEBUG_SLAB
|
||||
(the resulting kernel does not boot).
|
||||
|
||||
config KERNEL_KASAN_EXTRA
|
||||
bool "KAsan: extra checks"
|
||||
depends on KERNEL_KASAN && KERNEL_DEBUG_KERNEL
|
||||
help
|
||||
This enables further checks in the kernel address sanitizer, for now
|
||||
it only includes the address-use-after-scope check that can lead
|
||||
to excessive kernel stack usage, frame size warnings and longer
|
||||
compile time.
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more
|
||||
|
||||
|
||||
choice
|
||||
prompt "Instrumentation type"
|
||||
depends on KERNEL_KASAN
|
||||
default KERNEL_KASAN_OUTLINE
|
||||
|
||||
config KERNEL_KASAN_OUTLINE
|
||||
bool "Outline instrumentation"
|
||||
help
|
||||
Before every memory access compiler insert function call
|
||||
__asan_load*/__asan_store*. These functions performs check
|
||||
of shadow memory. This is slower than inline instrumentation,
|
||||
however it doesn't bloat size of kernel's .text section so
|
||||
much as inline does.
|
||||
|
||||
config KERNEL_KASAN_INLINE
|
||||
bool "Inline instrumentation"
|
||||
help
|
||||
Compiler directly inserts code checking shadow memory before
|
||||
memory accesses. This is faster than outline (in some workloads
|
||||
it gives about x2 boost over outline instrumentation), but
|
||||
make kernel's .text size much bigger.
|
||||
This requires a gcc version of 5.0 or later.
|
||||
|
||||
endchoice
|
||||
|
||||
config KERNEL_KCOV
|
||||
bool "Compile the kernel with code coverage for fuzzing"
|
||||
select KERNEL_DEBUG_FS
|
||||
help
|
||||
KCOV exposes kernel code coverage information in a form suitable
|
||||
for coverage-guided fuzzing (randomized testing).
|
||||
|
||||
If RANDOMIZE_BASE is enabled, PC values will not be stable across
|
||||
different machines and across reboots. If you need stable PC values,
|
||||
disable RANDOMIZE_BASE.
|
||||
|
||||
For more details, see Documentation/kcov.txt.
|
||||
|
||||
config KERNEL_KCOV_ENABLE_COMPARISONS
|
||||
bool "Enable comparison operands collection by KCOV"
|
||||
depends on KERNEL_KCOV
|
||||
help
|
||||
KCOV also exposes operands of every comparison in the instrumented
|
||||
code along with operand sizes and PCs of the comparison instructions.
|
||||
These operands can be used by fuzzing engines to improve the quality
|
||||
of fuzzing coverage.
|
||||
|
||||
config KERNEL_KCOV_INSTRUMENT_ALL
|
||||
bool "Instrument all code by default"
|
||||
depends on KERNEL_KCOV
|
||||
default y if KERNEL_KCOV
|
||||
help
|
||||
If you are doing generic system call fuzzing (like e.g. syzkaller),
|
||||
then you will want to instrument the whole kernel and you should
|
||||
say y here. If you are doing more targeted fuzzing (like e.g.
|
||||
filesystem fuzzing with AFL) then you will want to enable coverage
|
||||
for more specific subsets of files, and should say n here.
|
||||
|
||||
config KERNEL_TASKSTATS
|
||||
bool "Compile the kernel with task resource/io statistics and accounting"
|
||||
default n
|
||||
@ -257,6 +377,74 @@ config KERNEL_PROVE_LOCKING
|
||||
select KERNEL_DEBUG_KERNEL
|
||||
default n
|
||||
|
||||
config KERNEL_LOCKUP_DETECTOR
|
||||
bool "Compile the kernel with detect Hard and Soft Lockups"
|
||||
depends on KERNEL_DEBUG_KERNEL
|
||||
help
|
||||
Say Y here to enable the kernel to act as a watchdog to detect
|
||||
hard and soft lockups.
|
||||
|
||||
Softlockups are bugs that cause the kernel to loop in kernel
|
||||
mode for more than 20 seconds, without giving other tasks a
|
||||
chance to run. The current stack trace is displayed upon
|
||||
detection and the system will stay locked up.
|
||||
|
||||
Hardlockups are bugs that cause the CPU to loop in kernel mode
|
||||
for more than 10 seconds, without letting other interrupts have a
|
||||
chance to run. The current stack trace is displayed upon detection
|
||||
and the system will stay locked up.
|
||||
|
||||
The overhead should be minimal. A periodic hrtimer runs to
|
||||
generate interrupts and kick the watchdog task every 4 seconds.
|
||||
An NMI is generated every 10 seconds or so to check for hardlockups.
|
||||
|
||||
The frequency of hrtimer and NMI events and the soft and hard lockup
|
||||
thresholds can be controlled through the sysctl watchdog_thresh.
|
||||
|
||||
config KERNEL_DETECT_HUNG_TASK
|
||||
bool "Compile the kernel with detect Hung Tasks"
|
||||
depends on KERNEL_DEBUG_KERNEL
|
||||
default KERNEL_LOCKUP_DETECTOR
|
||||
help
|
||||
Say Y here to enable the kernel to detect "hung tasks",
|
||||
which are bugs that cause the task to be stuck in
|
||||
uninterruptible "D" state indefinitely.
|
||||
|
||||
When a hung task is detected, the kernel will print the
|
||||
current stack trace (which you should report), but the
|
||||
task will stay in uninterruptible state. If lockdep is
|
||||
enabled then all held locks will also be reported. This
|
||||
feature has negligible overhead.
|
||||
|
||||
config KERNEL_WQ_WATCHDOG
|
||||
bool "Compile the kernel with detect Workqueue Stalls"
|
||||
depends on KERNEL_DEBUG_KERNEL
|
||||
help
|
||||
Say Y here to enable stall detection on workqueues. If a
|
||||
worker pool doesn't make forward progress on a pending work
|
||||
item for over a given amount of time, 30s by default, a
|
||||
warning message is printed along with dump of workqueue
|
||||
state. This can be configured through kernel parameter
|
||||
"workqueue.watchdog_thresh" and its sysfs counterpart.
|
||||
|
||||
config KERNEL_DEBUG_ATOMIC_SLEEP
|
||||
bool "Compile the kernel with sleep inside atomic section checking"
|
||||
depends on KERNEL_DEBUG_KERNEL
|
||||
help
|
||||
If you say Y here, various routines which may sleep will become very
|
||||
noisy if they are called inside atomic sections: when a spinlock is
|
||||
held, inside an rcu read side critical section, inside preempt disabled
|
||||
sections, inside an interrupt, etc...
|
||||
|
||||
config KERNEL_DEBUG_VM
|
||||
bool "Compile the kernel with debug VM"
|
||||
depends on KERNEL_DEBUG_KERNEL
|
||||
help
|
||||
Enable this to turn on extended checks in the virtual-memory system
|
||||
that may impact performance.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config KERNEL_PRINTK_TIME
|
||||
bool "Enable printk timestamps"
|
||||
default y
|
||||
|
||||
@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=arm-trusted-firmware-mvebu
|
||||
PKG_VERSION:=2.2
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_RELEASE).tar.xz
|
||||
PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
|
||||
PKG_SOURCE_DATE:=2019-10-22
|
||||
PKG_SOURCE_VERSION:=a04808c16cfc126d9fe572ae7c4b5a3d39de5796
|
||||
PKG_MIRROR_HASH:=ff93aad67227ca96db54e92288f61b4ff3abbaad291fc88ad95c29cd3dd3588c
|
||||
PKG_SOURCE_DATE:=2020-01-21
|
||||
PKG_SOURCE_VERSION:=3b3d406ebc6f5dae6b5c9170c674183026e7301b
|
||||
PKG_MIRROR_HASH:=7c63da237c52808e1fe49458d5a4ac804a8eb4c365e26c6b2b709256e8fc041f
|
||||
|
||||
PKG_MAINTAINER:=Vladimir Vid <vladimir.vid@sartura.hr>
|
||||
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=linux-firmware
|
||||
PKG_VERSION:=20191215
|
||||
PKG_VERSION:=20200122
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=c2068ff4a797c0f2c3edbb9488f82a48bca8a995855ea21310a8346195c0ae56
|
||||
PKG_HASH:=a30e811b3736a72b874ac27e10662f5e5409b1cadf8aab7ba88e8f8bc8083986
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
||||
@ -181,7 +181,7 @@ PKG_EXTRA_CFLAGS:= \
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
$(PKG_EXTRA_KCONFIG) \
|
||||
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(4,2,0)\"" \
|
||||
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi -I$(STAGING_DIR)/usr/include/mac80211-backport \
|
||||
|
||||
@ -112,7 +112,7 @@ endif
|
||||
define Build/Compile
|
||||
+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \
|
||||
M="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
@ -102,7 +102,7 @@ endef
|
||||
MAKE_KMOD := $(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
PATH="$(TARGET_PATH)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)/kmod" \
|
||||
M="$(PKG_BUILD_DIR)/kmod" \
|
||||
|
||||
define Build/Prepare
|
||||
$(call Build/Prepare/Default)
|
||||
@ -113,18 +113,18 @@ endef
|
||||
define Build/Compile
|
||||
# Compile glue driver
|
||||
$(MAKE_KMOD) -C "$(LINUX_DIR)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)/glue" \
|
||||
M="$(PKG_BUILD_DIR)/glue" \
|
||||
modules
|
||||
|
||||
# Compile the kernel part
|
||||
$(MAKE_KMOD) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)/driver" \
|
||||
M="$(PKG_BUILD_DIR)/driver" \
|
||||
MODFLAGS="-DMODULE -mlong-calls" \
|
||||
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
|
||||
modules
|
||||
|
||||
$(MAKE_KMOD) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)/driver-mini" \
|
||||
M="$(PKG_BUILD_DIR)/driver-mini" \
|
||||
MODFLAGS="-DMODULE -mlong-calls" \
|
||||
BUILD_TYPE="wl_apsta_mini" \
|
||||
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
|
||||
|
||||
@ -37,7 +37,7 @@ EXTRA_CFLAGS:= \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ endef
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)"
|
||||
M="$(PKG_BUILD_DIR)"
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
|
||||
@ -38,7 +38,7 @@ EXTRA_CFLAGS:= \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ endef
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ define KernelPackage/sched-cake/description
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" modules
|
||||
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,sched-cake))
|
||||
|
||||
@ -38,7 +38,7 @@ EXTRA_CFLAGS:= \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@ endef
|
||||
$(eval $(call KernelPackage,ath3k))
|
||||
|
||||
|
||||
define KernelPackage/bluetooth_6lowpan
|
||||
define KernelPackage/bluetooth-6lowpan
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Bluetooth 6LoWPAN support
|
||||
DEPENDS:=+kmod-6lowpan +kmod-bluetooth
|
||||
@ -93,11 +93,11 @@ define KernelPackage/bluetooth_6lowpan
|
||||
AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
|
||||
endef
|
||||
|
||||
define KernelPackage/bluetooth_6lowpan/description
|
||||
define KernelPackage/bluetooth-6lowpan/description
|
||||
Kernel support for 6LoWPAN over Bluetooth Low Energy devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,bluetooth_6lowpan))
|
||||
$(eval $(call KernelPackage,bluetooth-6lowpan))
|
||||
|
||||
|
||||
define KernelPackage/btmrvl
|
||||
|
||||
@ -116,7 +116,7 @@ endef
|
||||
|
||||
$(eval $(call KernelPackage,cc2520))
|
||||
|
||||
define KernelPackage/ieee802154_6lowpan
|
||||
define KernelPackage/ieee802154-6lowpan
|
||||
SUBMENU:=$(WPAN_MENU)
|
||||
TITLE:= 6LoWPAN support over IEEE-802.15.4
|
||||
DEPENDS:=+kmod-6lowpan +kmod-ieee802154
|
||||
@ -126,8 +126,8 @@ define KernelPackage/ieee802154_6lowpan
|
||||
AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
|
||||
endef
|
||||
|
||||
define KernelPackage/ieee802154_6lowpan/description
|
||||
define KernelPackage/ieee802154-6lowpan/description
|
||||
IPv6 compression over IEEE 802.15.4
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,ieee802154_6lowpan))
|
||||
$(eval $(call KernelPackage,ieee802154-6lowpan))
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
commit 753ffad3d6243303994227854d951ff5c70fa9e0
|
||||
Author: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
|
||||
Date: Tue Nov 19 14:34:51 2019 +0100
|
||||
|
||||
mac80211: fix TID field in monitor mode transmit
|
||||
|
||||
Fix overwriting of the qos_ctrl.tid field for encrypted frames injected on
|
||||
a monitor interface. While qos_ctrl.tid is not encrypted, it's used as an
|
||||
input into the encryption algorithm so it's protected, and thus cannot be
|
||||
modified after encryption. For injected frames, the encryption may already
|
||||
have been done in userspace, so we cannot change any fields.
|
||||
|
||||
Before passing the frame to the driver, the qos_ctrl.tid field is updated
|
||||
from skb->priority. Prior to dbd50a851c50 skb->priority was updated in
|
||||
ieee80211_select_queue_80211(), but this function is no longer always
|
||||
called.
|
||||
|
||||
Update skb->priority in ieee80211_monitor_start_xmit() so that the value
|
||||
is stored, and when later code 'modifies' the TID it really sets it to
|
||||
the same value as before, preserving the encryption.
|
||||
|
||||
Fixes: dbd50a851c50 ("mac80211: only allocate one queue when using iTXQs")
|
||||
Signed-off-by: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
|
||||
Link: https://lore.kernel.org/r/20191119133451.14711-1-fredrik.olofsson@anyfinetworks.com
|
||||
[rewrite commit message based on our discussion]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -2269,6 +2269,15 @@ netdev_tx_t ieee80211_monitor_start_xmit
|
||||
payload[7]);
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * Initialize skb->priority for QoS frames. This is put in the TID field
|
||||
+ * of the frame before passing it to the driver.
|
||||
+ */
|
||||
+ if (ieee80211_is_data_qos(hdr->frame_control)) {
|
||||
+ u8 *p = ieee80211_get_qos_ctl(hdr);
|
||||
+ skb->priority = *p & IEEE80211_QOS_CTL_TAG1D_MASK;
|
||||
+ }
|
||||
+
|
||||
memset(info, 0, sizeof(*info));
|
||||
|
||||
info->flags = IEEE80211_TX_CTL_REQ_TX_STATUS |
|
||||
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2020-02-02
|
||||
PKG_SOURCE_VERSION:=721673759d8229a42ab39a9a7cba15261f1dfcf9
|
||||
PKG_MIRROR_HASH:=67631bbe0ec9af6e4f255841457cde706dbbde21092c9485e7b0cc222e54e6d9
|
||||
PKG_SOURCE_DATE:=2020-02-20
|
||||
PKG_SOURCE_VERSION:=fd892bc033fbfad7b1a5bcba1432709a74327a1e
|
||||
PKG_MIRROR_HASH:=1f73f5be38ec3f8fca07dc54d0e29dd08cfe6c6c82d72b6c489bf0aa8fd19acd
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
@ -202,7 +202,7 @@ define Build/Compile
|
||||
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
$(PKG_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
@ -44,7 +44,7 @@ NOSTDINC_FLAGS = \
|
||||
define Build/Compile
|
||||
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
@ -26,7 +26,7 @@ endef
|
||||
include $(INCLUDE_DIR)/kernel-defaults.mk
|
||||
|
||||
define Build/Compile
|
||||
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)/nat46/modules" \
|
||||
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/nat46/modules" \
|
||||
MODFLAGS="-DMODULE -mlong-calls" \
|
||||
EXTRA_CFLAGS="-DNAT46_VERSION=\\\"$(PKG_SOURCE_VERSION)\\\"" \
|
||||
modules
|
||||
|
||||
@ -24,7 +24,7 @@ endef
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
@ -45,7 +45,7 @@ NOSTDINC_FLAGS+=-DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DBUILD_OPE
|
||||
define Build/Compile
|
||||
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ endef
|
||||
include $(INCLUDE_DIR)/kernel-defaults.mk
|
||||
|
||||
define Build/Compile
|
||||
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" modules
|
||||
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
|
||||
endef
|
||||
|
||||
define KernelPackage/trelay/conffiles
|
||||
|
||||
@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
|
||||
|
||||
MAKE_OPTS:= \
|
||||
$(KERNEL_MAKE_FLAGS) \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
$(EXTRA_KCONFIG)
|
||||
|
||||
|
||||
@ -1,19 +1,20 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libbsd
|
||||
PKG_VERSION:=0.8.7
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=0.10.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31
|
||||
PKG_SOURCE_URL:=https://libbsd.freedesktop.org/releases
|
||||
PKG_HASH:=34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887
|
||||
|
||||
PKG_LICENSE:=BSD-4-Clause
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
PKG_INSTALL:=1
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/libbsd
|
||||
SECTION:=libs
|
||||
|
||||
@ -1,195 +0,0 @@
|
||||
From 11ec8f1e5dfa1c10e0c9fb94879b6f5b96ba52dd Mon Sep 17 00:00:00 2001
|
||||
From: Guillem Jover <guillem@hadrons.org>
|
||||
Date: Tue, 6 Mar 2018 01:41:35 +0100
|
||||
Subject: Handle systems missing <sys/cdefs.h>
|
||||
|
||||
This is a non-portable header, and we cannot expect it to be provided by
|
||||
the system libc (e.g. musl). We just need and rely on declaration that
|
||||
we have defined ourselves in our own <bsd/sys/cdefs.h>. So we switch to
|
||||
only ever assume that.
|
||||
|
||||
Fixes: https://bugs.freedesktop.org/105281
|
||||
---
|
||||
include/bsd/libutil.h | 4 ++++
|
||||
include/bsd/md5.h | 4 ++++
|
||||
include/bsd/nlist.h | 4 ++++
|
||||
include/bsd/readpassphrase.h | 4 ++++
|
||||
include/bsd/stdlib.h | 4 ++++
|
||||
include/bsd/string.h | 4 ++++
|
||||
include/bsd/stringlist.h | 5 +++++
|
||||
include/bsd/sys/queue.h | 4 ++++
|
||||
include/bsd/sys/tree.h | 4 ++++
|
||||
include/bsd/timeconv.h | 4 ++++
|
||||
include/bsd/vis.h | 4 ++++
|
||||
include/bsd/wchar.h | 4 ++++
|
||||
12 files changed, 49 insertions(+)
|
||||
|
||||
--- a/include/bsd/libutil.h
|
||||
+++ b/include/bsd/libutil.h
|
||||
@@ -40,7 +40,11 @@
|
||||
#define LIBBSD_LIBUTIL_H
|
||||
|
||||
#include <features.h>
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
--- a/include/bsd/md5.h
|
||||
+++ b/include/bsd/md5.h
|
||||
@@ -27,7 +27,11 @@ typedef struct MD5Context {
|
||||
uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
|
||||
} MD5_CTX;
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
--- a/include/bsd/nlist.h
|
||||
+++ b/include/bsd/nlist.h
|
||||
@@ -27,7 +27,11 @@
|
||||
#ifndef LIBBSD_NLIST_H
|
||||
#define LIBBSD_NLIST_H
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
|
||||
struct nlist {
|
||||
union {
|
||||
--- a/include/bsd/readpassphrase.h
|
||||
+++ b/include/bsd/readpassphrase.h
|
||||
@@ -31,7 +31,11 @@
|
||||
#define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */
|
||||
#define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
--- a/include/bsd/stdlib.h
|
||||
+++ b/include/bsd/stdlib.h
|
||||
@@ -42,7 +42,11 @@
|
||||
#ifndef LIBBSD_STDLIB_H
|
||||
#define LIBBSD_STDLIB_H
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/stat.h>
|
||||
#include <stdint.h>
|
||||
|
||||
--- a/include/bsd/string.h
|
||||
+++ b/include/bsd/string.h
|
||||
@@ -33,7 +33,11 @@
|
||||
#ifndef LIBBSD_STRING_H
|
||||
#define LIBBSD_STRING_H
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
--- a/include/bsd/stringlist.h
|
||||
+++ b/include/bsd/stringlist.h
|
||||
@@ -31,7 +31,12 @@
|
||||
|
||||
#ifndef LIBBSD_STRINGLIST_H
|
||||
#define LIBBSD_STRINGLIST_H
|
||||
+
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
/*
|
||||
--- a/include/bsd/sys/queue.h
|
||||
+++ b/include/bsd/sys/queue.h
|
||||
@@ -33,7 +33,11 @@
|
||||
#ifndef LIBBSD_SYS_QUEUE_H
|
||||
#define LIBBSD_SYS_QUEUE_H
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* This file defines four types of data structures: singly-linked lists,
|
||||
--- a/include/bsd/sys/tree.h
|
||||
+++ b/include/bsd/sys/tree.h
|
||||
@@ -30,7 +30,11 @@
|
||||
#ifndef LIBBSD_SYS_TREE_H
|
||||
#define LIBBSD_SYS_TREE_H
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* This file defines data structures for different types of trees:
|
||||
--- a/include/bsd/timeconv.h
|
||||
+++ b/include/bsd/timeconv.h
|
||||
@@ -41,7 +41,11 @@
|
||||
#ifndef LIBBSD_TIMECONV_H
|
||||
#define LIBBSD_TIMECONV_H
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <stdint.h>
|
||||
#include <time.h>
|
||||
|
||||
--- a/include/bsd/vis.h
|
||||
+++ b/include/bsd/vis.h
|
||||
@@ -72,7 +72,11 @@
|
||||
*/
|
||||
#define UNVIS_END 1 /* no more characters */
|
||||
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
char *vis(char *, int, int, int);
|
||||
--- a/include/bsd/wchar.h
|
||||
+++ b/include/bsd/wchar.h
|
||||
@@ -40,7 +40,11 @@
|
||||
#define LIBBSD_WCHAR_H
|
||||
|
||||
#include <stddef.h>
|
||||
+#ifdef LIBBSD_OVERLAY
|
||||
#include <sys/cdefs.h>
|
||||
+#else
|
||||
+#include <bsd/sys/cdefs.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
@ -1,65 +0,0 @@
|
||||
From 1f8a3f7bccfc84b195218ad0086ebd57049c3490 Mon Sep 17 00:00:00 2001
|
||||
From: Guillem Jover <guillem@hadrons.org>
|
||||
Date: Tue, 6 Mar 2018 01:39:45 +0100
|
||||
Subject: Fix function declaration protection for glibc already providing them
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
On non-glibc based systems we cannot unconditionally use the
|
||||
__GLIBC_PREREQ macro as it gets expanded before evaluation. Instead,
|
||||
if it is undefined, define it to 0.
|
||||
|
||||
We should also always declare these functions on non-glibc based
|
||||
systems. And on systems with a new enough glibc, which provides these
|
||||
functions, we should still provide the declarations if _GNU_SOURCE
|
||||
is *not* defined.
|
||||
|
||||
Reported-by: Jörg Krause <joerg.krause@embedded.rocks>
|
||||
---
|
||||
include/bsd/stdlib.h | 3 ++-
|
||||
include/bsd/string.h | 3 ++-
|
||||
include/bsd/sys/cdefs.h | 8 ++++++++
|
||||
3 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/include/bsd/stdlib.h
|
||||
+++ b/include/bsd/stdlib.h
|
||||
@@ -71,7 +71,8 @@ int sradixsort(const unsigned char **bas
|
||||
const unsigned char *table, unsigned endbyte);
|
||||
|
||||
void *reallocf(void *ptr, size_t size);
|
||||
-#if defined(_GNU_SOURCE) && defined(__GLIBC__) && !__GLIBC_PREREQ(2, 26)
|
||||
+#if !defined(__GLIBC__) || \
|
||||
+ (defined(__GLIBC__) && (!__GLIBC_PREREQ(2, 26) || !defined(_GNU_SOURCE)))
|
||||
void *reallocarray(void *ptr, size_t nmemb, size_t size);
|
||||
#endif
|
||||
|
||||
--- a/include/bsd/string.h
|
||||
+++ b/include/bsd/string.h
|
||||
@@ -46,7 +46,8 @@ size_t strlcat(char *dst, const char *sr
|
||||
char *strnstr(const char *str, const char *find, size_t str_len);
|
||||
void strmode(mode_t mode, char *str);
|
||||
|
||||
-#if defined(_GNU_SOURCE) && defined(__GLIBC__) && !__GLIBC_PREREQ(2, 25)
|
||||
+#if !defined(__GLIBC__) || \
|
||||
+ (defined(__GLIBC__) && (!__GLIBC_PREREQ(2, 25) || !defined(_GNU_SOURCE)))
|
||||
void explicit_bzero(void *buf, size_t len);
|
||||
#endif
|
||||
__END_DECLS
|
||||
--- a/include/bsd/sys/cdefs.h
|
||||
+++ b/include/bsd/sys/cdefs.h
|
||||
@@ -59,6 +59,14 @@
|
||||
#endif
|
||||
|
||||
/*
|
||||
+ * On non-glibc based systems, we cannot unconditionally use the
|
||||
+ * __GLIBC_PREREQ macro as it gets expanded before evaluation.
|
||||
+ */
|
||||
+#ifndef __GLIBC_PREREQ
|
||||
+#define __GLIBC_PREREQ(maj, min) 0
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
* Some kFreeBSD headers expect those macros to be set for sanity checks.
|
||||
*/
|
||||
#ifndef _SYS_CDEFS_H_
|
||||
@ -1,30 +0,0 @@
|
||||
From f60b6777cc2047f9845de2c88cf092b045c160c0 Mon Sep 17 00:00:00 2001
|
||||
From: Rosen Penev <rosenp@gmail.com>
|
||||
Date: Fri, 17 May 2019 01:44:56 +0000
|
||||
Subject: [PATCH] local-elf: Add ARC support
|
||||
|
||||
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
||||
---
|
||||
src/local-elf.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/local-elf.h b/src/local-elf.h
|
||||
index 83ca253..b90baf3 100644
|
||||
--- a/src/local-elf.h
|
||||
+++ b/src/local-elf.h
|
||||
@@ -53,6 +53,12 @@
|
||||
#endif
|
||||
#define ELF_TARG_DATA ELFDATA2LSB
|
||||
|
||||
+#elif defined (__arc__)
|
||||
+
|
||||
+#define ELF_TARG_MACH EM_ARC
|
||||
+#define ELF_TARG_CLASS ELFCLASS32
|
||||
+#define ELF_TARG_DATA ELFDATA2LSB
|
||||
+
|
||||
#elif defined(__arm__)
|
||||
|
||||
#define ELF_TARG_MACH EM_ARM
|
||||
--
|
||||
2.18.1
|
||||
|
||||
@ -4,3 +4,5 @@
|
||||
uci set dhcp.@dnsmasq[0].resolvfile="/tmp/resolv.conf.d/resolv.conf.auto"
|
||||
uci commit dhcp
|
||||
}
|
||||
|
||||
exit 0
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=lldpd
|
||||
PKG_VERSION:=1.0.3
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=1.0.5
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://media.luffy.cx/files/lldpd
|
||||
PKG_HASH:=39fced395168015416bfe78b95414facf066f841f349024433aa20ab54e4c360
|
||||
PKG_HASH:=2dd3b212f4dbabfcbb2794c0010b245f9f8e74b387984e757be6243a74c6cb99
|
||||
|
||||
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -244,7 +244,13 @@ PKG_CHECK_MODULES([check], [check >= 0.9
|
||||
@@ -246,7 +246,13 @@ PKG_CHECK_MODULES([check], [check >= 0.9
|
||||
|
||||
# Third-party libraries
|
||||
lldp_CHECK_LIBEVENT
|
||||
|
||||
@ -1,19 +0,0 @@
|
||||
From b2eebb31fc21b5ce12ef8944b50088119f1b9427 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Mon, 25 Mar 2019 18:43:03 +0100
|
||||
Subject: [PATCH] priv: include limits.h for PATH_MAX
|
||||
|
||||
---
|
||||
src/daemon/priv.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/src/daemon/priv.c
|
||||
+++ b/src/daemon/priv.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
+#include <limits.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/socket.h>
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ppp
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
From 858976b1fc3107f1261aae337831959b511b83c2 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Mackerras <paulus@ozlabs.org>
|
||||
Date: Sat, 4 Jan 2020 12:01:32 +1100
|
||||
Subject: [PATCH] radius: Prevent buffer overflow in rc_mksid()
|
||||
|
||||
On some systems getpid() can return a value greater than 65535.
|
||||
Increase the size of buf[] to allow for this, and use slprintf()
|
||||
to make sure we never overflow it.
|
||||
|
||||
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
|
||||
---
|
||||
pppd/plugins/radius/util.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pppd/plugins/radius/util.c b/pppd/plugins/radius/util.c
|
||||
index 6f976a712951..740131e8377c 100644
|
||||
--- a/pppd/plugins/radius/util.c
|
||||
+++ b/pppd/plugins/radius/util.c
|
||||
@@ -73,9 +73,9 @@ void rc_mdelay(int msecs)
|
||||
char *
|
||||
rc_mksid (void)
|
||||
{
|
||||
- static char buf[15];
|
||||
+ static char buf[32];
|
||||
static unsigned short int cnt = 0;
|
||||
- sprintf (buf, "%08lX%04X%02hX",
|
||||
+ slprintf(buf, sizeof(buf), "%08lX%04X%02hX",
|
||||
(unsigned long int) time (NULL),
|
||||
(unsigned int) getpid (),
|
||||
cnt & 0xFF);
|
||||
@ -0,0 +1,37 @@
|
||||
From 8d7970b8f3db727fe798b65f3377fe6787575426 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Mackerras <paulus@ozlabs.org>
|
||||
Date: Mon, 3 Feb 2020 15:53:28 +1100
|
||||
Subject: [PATCH] pppd: Fix bounds check in EAP code
|
||||
|
||||
Given that we have just checked vallen < len, it can never be the case
|
||||
that vallen >= len + sizeof(rhostname). This fixes the check so we
|
||||
actually avoid overflowing the rhostname array.
|
||||
|
||||
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
|
||||
---
|
||||
pppd/eap.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pppd/eap.c b/pppd/eap.c
|
||||
index 94407f56a336..1b93db01aebd 100644
|
||||
--- a/pppd/eap.c
|
||||
+++ b/pppd/eap.c
|
||||
@@ -1420,7 +1420,7 @@ int len;
|
||||
}
|
||||
|
||||
/* Not so likely to happen. */
|
||||
- if (vallen >= len + sizeof (rhostname)) {
|
||||
+ if (len - vallen >= sizeof (rhostname)) {
|
||||
dbglog("EAP: trimming really long peer name down");
|
||||
BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
|
||||
rhostname[sizeof (rhostname) - 1] = '\0';
|
||||
@@ -1846,7 +1846,7 @@ int len;
|
||||
}
|
||||
|
||||
/* Not so likely to happen. */
|
||||
- if (vallen >= len + sizeof (rhostname)) {
|
||||
+ if (len - vallen >= sizeof (rhostname)) {
|
||||
dbglog("EAP: trimming really long peer name down");
|
||||
BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
|
||||
rhostname[sizeof (rhostname) - 1] = '\0';
|
||||
@ -0,0 +1,61 @@
|
||||
From 8d45443bb5c9372b4c6a362ba2f443d41c5636af Mon Sep 17 00:00:00 2001
|
||||
From: Paul Mackerras <paulus@ozlabs.org>
|
||||
Date: Mon, 3 Feb 2020 16:31:42 +1100
|
||||
Subject: [PATCH] pppd: Ignore received EAP messages when not doing EAP
|
||||
|
||||
This adds some basic checks to the subroutines of eap_input to check
|
||||
that we have requested or agreed to doing EAP authentication before
|
||||
doing any processing on the received packet. The motivation is to
|
||||
make it harder for a malicious peer to disrupt the operation of pppd
|
||||
by sending unsolicited EAP packets. Note that eap_success() already
|
||||
has a check that the EAP client state is reasonable, and does nothing
|
||||
(apart from possibly printing a debug message) if not.
|
||||
|
||||
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
|
||||
---
|
||||
pppd/eap.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/pppd/eap.c b/pppd/eap.c
|
||||
index 1b93db01aebd..082e95343120 100644
|
||||
--- a/pppd/eap.c
|
||||
+++ b/pppd/eap.c
|
||||
@@ -1328,6 +1328,12 @@ int len;
|
||||
int fd;
|
||||
#endif /* USE_SRP */
|
||||
|
||||
+ /*
|
||||
+ * Ignore requests if we're not open
|
||||
+ */
|
||||
+ if (esp->es_client.ea_state <= eapClosed)
|
||||
+ return;
|
||||
+
|
||||
/*
|
||||
* Note: we update es_client.ea_id *only if* a Response
|
||||
* message is being generated. Otherwise, we leave it the
|
||||
@@ -1736,6 +1742,12 @@ int len;
|
||||
u_char dig[SHA_DIGESTSIZE];
|
||||
#endif /* USE_SRP */
|
||||
|
||||
+ /*
|
||||
+ * Ignore responses if we're not open
|
||||
+ */
|
||||
+ if (esp->es_server.ea_state <= eapClosed)
|
||||
+ return;
|
||||
+
|
||||
if (esp->es_server.ea_id != id) {
|
||||
dbglog("EAP: discarding Response %d; expected ID %d", id,
|
||||
esp->es_server.ea_id);
|
||||
@@ -2047,6 +2059,12 @@ u_char *inp;
|
||||
int id;
|
||||
int len;
|
||||
{
|
||||
+ /*
|
||||
+ * Ignore failure messages if we're not open
|
||||
+ */
|
||||
+ if (esp->es_client.ea_state <= eapClosed)
|
||||
+ return;
|
||||
+
|
||||
if (!eap_client_active(esp)) {
|
||||
dbglog("EAP unexpected failure message in state %s (%d)",
|
||||
eap_state_name(esp->es_client.ea_state),
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iw
|
||||
PKG_VERSION:=5.3
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=5.4
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/software/network/iw
|
||||
PKG_HASH:=04afe857bc8dea67e461946de30ae1b012954b6965839c5c3fda7d0ed15505d5
|
||||
PKG_HASH:=a2469f677088d7b1070a7fbb28f3c747041697e8f6ec70783339cb1bc27a395f
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -1,116 +1,41 @@
|
||||
--- a/nl80211.h
|
||||
+++ b/nl80211.h
|
||||
@@ -52,6 +52,11 @@
|
||||
#define NL80211_MULTICAST_GROUP_NAN "nan"
|
||||
#define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
|
||||
|
||||
+#define NL80211_EDMG_BW_CONFIG_MIN 4
|
||||
+#define NL80211_EDMG_BW_CONFIG_MAX 15
|
||||
+#define NL80211_EDMG_CHANNELS_MIN 1
|
||||
+#define NL80211_EDMG_CHANNELS_MAX 0x3c /* 0b00111100 */
|
||||
+
|
||||
/**
|
||||
* DOC: Station handling
|
||||
@@ -2373,6 +2373,9 @@ enum nl80211_commands {
|
||||
* the allowed channel bandwidth configurations. (u8 attribute)
|
||||
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
||||
*
|
||||
@@ -2361,6 +2366,16 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection
|
||||
* functionality.
|
||||
*
|
||||
+ * @NL80211_ATTR_WIPHY_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
|
||||
+ * channel(s) that are allowed to be used for EDMG transmissions.
|
||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute)
|
||||
+ * @NL80211_ATTR_WIPHY_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
|
||||
+ * the allowed channel bandwidth configurations. (u8 attribute)
|
||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
||||
+ *
|
||||
+ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
|
||||
+ * transmit power to stay within regulatory limits. u32, dBi.
|
||||
+ *
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -2820,6 +2835,11 @@ enum nl80211_attrs {
|
||||
@@ -2835,6 +2838,8 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_WIPHY_EDMG_CHANNELS,
|
||||
NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
|
||||
|
||||
NL80211_ATTR_HE_OBSS_PD,
|
||||
|
||||
+ NL80211_ATTR_WIPHY_EDMG_CHANNELS,
|
||||
+ NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
|
||||
+
|
||||
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
|
||||
+
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -3201,6 +3221,8 @@ enum nl80211_sta_bss_param {
|
||||
* sent to the station (u64, usec)
|
||||
* @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
|
||||
* @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
|
||||
+ * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
|
||||
+ * of STA's association
|
||||
* @__NL80211_STA_INFO_AFTER_LAST: internal
|
||||
* @NL80211_STA_INFO_MAX: highest possible station info attribute
|
||||
@@ -5484,6 +5489,10 @@ enum nl80211_feature_flags {
|
||||
* @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
|
||||
* station mode (SAE password is passed as part of the connect command).
|
||||
*
|
||||
+ * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
|
||||
+ * feature, which prevents bufferbloat by using the expected transmission
|
||||
+ * time to limit the amount of data buffered in the hardware.
|
||||
+ *
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
*/
|
||||
@@ -3247,6 +3269,7 @@ enum nl80211_sta_info {
|
||||
NL80211_STA_INFO_TX_DURATION,
|
||||
NL80211_STA_INFO_AIRTIME_WEIGHT,
|
||||
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
|
||||
+ NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
|
||||
@@ -5529,6 +5538,8 @@ enum nl80211_ext_feature_index {
|
||||
NL80211_EXT_FEATURE_EXT_KEY_ID,
|
||||
NL80211_EXT_FEATURE_STA_TX_PWR,
|
||||
NL80211_EXT_FEATURE_SAE_OFFLOAD,
|
||||
+ NL80211_EXT_FEATURE_VLAN_OFFLOAD,
|
||||
+ NL80211_EXT_FEATURE_AQL,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_STA_INFO_AFTER_LAST,
|
||||
@@ -3428,6 +3451,12 @@ enum nl80211_band_iftype_attr {
|
||||
* @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
|
||||
* @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
|
||||
* attributes from &enum nl80211_band_iftype_attr
|
||||
+ * @NL80211_BAND_ATTR_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
|
||||
+ * channel(s) that are allowed to be used for EDMG transmissions.
|
||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251.
|
||||
+ * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
|
||||
+ * the allowed channel bandwidth configurations.
|
||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
||||
* @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
|
||||
* @__NL80211_BAND_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -3445,6 +3474,9 @@ enum nl80211_band_attr {
|
||||
NL80211_BAND_ATTR_VHT_CAPA,
|
||||
NL80211_BAND_ATTR_IFTYPE_DATA,
|
||||
|
||||
+ NL80211_BAND_ATTR_EDMG_CHANNELS,
|
||||
+ NL80211_BAND_ATTR_EDMG_BW_CONFIG,
|
||||
+
|
||||
/* keep last */
|
||||
__NL80211_BAND_ATTR_AFTER_LAST,
|
||||
NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
|
||||
@@ -3843,6 +3875,8 @@ enum nl80211_user_reg_hint_type {
|
||||
* @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan
|
||||
* (on this channel or globally)
|
||||
* @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment
|
||||
+ * @NL80211_SURVEY_INFO_TIME_BSS_RX: amount of time the radio spent
|
||||
+ * receiving frames destined to the local BSS
|
||||
* @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
|
||||
* currently defined
|
||||
* @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
|
||||
@@ -3859,6 +3893,7 @@ enum nl80211_survey_info {
|
||||
NL80211_SURVEY_INFO_TIME_TX,
|
||||
NL80211_SURVEY_INFO_TIME_SCAN,
|
||||
NL80211_SURVEY_INFO_PAD,
|
||||
+ NL80211_SURVEY_INFO_TIME_BSS_RX,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_SURVEY_INFO_AFTER_LAST,
|
||||
@@ -4543,6 +4578,7 @@ enum nl80211_txrate_gi {
|
||||
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
|
||||
* @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
|
||||
* @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
|
||||
+ * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
|
||||
* @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
|
||||
* since newer kernel versions may support more bands
|
||||
*/
|
||||
@@ -4550,6 +4586,7 @@ enum nl80211_band {
|
||||
NL80211_BAND_2GHZ,
|
||||
NL80211_BAND_5GHZ,
|
||||
NL80211_BAND_60GHZ,
|
||||
+ NL80211_BAND_6GHZ,
|
||||
|
||||
NUM_NL80211_BANDS,
|
||||
};
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
|
||||
@ -150,7 +150,7 @@
|
||||
{
|
||||
--- a/scan.c
|
||||
+++ b/scan.c
|
||||
@@ -1197,6 +1197,9 @@ static void print_ht_op(const uint8_t ty
|
||||
@@ -1195,6 +1195,9 @@ static void print_ht_op(const uint8_t ty
|
||||
printf("\t\t * secondary channel offset: %s\n",
|
||||
ht_secondary_offset[data[1] & 0x3]);
|
||||
printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]);
|
||||
@ -160,7 +160,7 @@
|
||||
printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3);
|
||||
printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]);
|
||||
printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2);
|
||||
@@ -1524,6 +1527,14 @@ static void print_ie(const struct ie_pri
|
||||
@@ -1522,6 +1525,14 @@ static void print_ie(const struct ie_pri
|
||||
|
||||
static const struct ie_print ieprinters[] = {
|
||||
[0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
|
||||
@ -175,7 +175,7 @@
|
||||
[1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), },
|
||||
[3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), },
|
||||
[5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), },
|
||||
@@ -1533,21 +1544,15 @@ static const struct ie_print ieprinters[
|
||||
@@ -1531,21 +1542,15 @@ static const struct ie_print ieprinters[
|
||||
[32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), },
|
||||
[35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), },
|
||||
[42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), },
|
||||
@ -198,7 +198,7 @@
|
||||
};
|
||||
|
||||
static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data,
|
||||
@@ -2026,6 +2031,7 @@ void print_ies(unsigned char *ie, int ie
|
||||
@@ -2024,6 +2029,7 @@ void print_ies(unsigned char *ie, int ie
|
||||
ieprinters[ie[0]].flags & BIT(ptype)) {
|
||||
print_ie(&ieprinters[ie[0]],
|
||||
ie[0], ie[1], ie + 2, &ie_buffer);
|
||||
@ -206,7 +206,7 @@
|
||||
} else if (ie[0] == 221 /* vendor */) {
|
||||
print_vendor(ie[1], ie + 2, unknown, ptype);
|
||||
} else if (unknown) {
|
||||
@@ -2035,6 +2041,7 @@ void print_ies(unsigned char *ie, int ie
|
||||
@@ -2033,6 +2039,7 @@ void print_ies(unsigned char *ie, int ie
|
||||
for (i=0; i<ie[1]; i++)
|
||||
printf(" %.2x", ie[2+i]);
|
||||
printf("\n");
|
||||
@ -214,7 +214,7 @@
|
||||
}
|
||||
ielen -= ie[1] + 2;
|
||||
ie += ie[1] + 2;
|
||||
@@ -2075,6 +2082,7 @@ static void print_capa_non_dmg(__u16 cap
|
||||
@@ -2073,6 +2080,7 @@ static void print_capa_non_dmg(__u16 cap
|
||||
printf(" ESS");
|
||||
if (capa & WLAN_CAPABILITY_IBSS)
|
||||
printf(" IBSS");
|
||||
@ -222,7 +222,7 @@
|
||||
if (capa & WLAN_CAPABILITY_CF_POLLABLE)
|
||||
printf(" CfPollable");
|
||||
if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST)
|
||||
@@ -2103,6 +2111,7 @@ static void print_capa_non_dmg(__u16 cap
|
||||
@@ -2101,6 +2109,7 @@ static void print_capa_non_dmg(__u16 cap
|
||||
printf(" DelayedBACK");
|
||||
if (capa & WLAN_CAPABILITY_IMM_BACK)
|
||||
printf(" ImmediateBACK");
|
||||
@ -230,7 +230,7 @@
|
||||
}
|
||||
|
||||
static int print_bss_handler(struct nl_msg *msg, void *arg)
|
||||
@@ -2187,8 +2196,10 @@ static int print_bss_handler(struct nl_m
|
||||
@@ -2185,8 +2194,10 @@ static int print_bss_handler(struct nl_m
|
||||
if (bss[NL80211_BSS_FREQUENCY]) {
|
||||
int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
|
||||
printf("\tfreq: %d\n", freq);
|
||||
@ -241,7 +241,7 @@
|
||||
}
|
||||
if (bss[NL80211_BSS_BEACON_INTERVAL])
|
||||
printf("\tbeacon interval: %d TUs\n",
|
||||
@@ -2382,6 +2393,7 @@ static int handle_stop_sched_scan(struct
|
||||
@@ -2380,6 +2391,7 @@ static int handle_stop_sched_scan(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -249,14 +249,14 @@
|
||||
COMMAND(scan, sched_start,
|
||||
SCHED_SCAN_OPTIONS,
|
||||
NL80211_CMD_START_SCHED_SCAN, 0, CIB_NETDEV, handle_start_sched_scan,
|
||||
@@ -2392,3 +2404,4 @@ COMMAND(scan, sched_start,
|
||||
@@ -2390,3 +2402,4 @@ COMMAND(scan, sched_start,
|
||||
COMMAND(scan, sched_stop, "",
|
||||
NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
|
||||
"Stop an ongoing scheduled scan.");
|
||||
+#endif
|
||||
--- a/util.c
|
||||
+++ b/util.c
|
||||
@@ -291,6 +291,7 @@ static const char *commands[NL80211_CMD_
|
||||
@@ -153,6 +153,7 @@ static const char *commands[NL80211_CMD_
|
||||
|
||||
static char cmdbuf[100];
|
||||
|
||||
@ -264,7 +264,7 @@
|
||||
const char *command_name(enum nl80211_commands cmd)
|
||||
{
|
||||
if (cmd <= NL80211_CMD_MAX && commands[cmd])
|
||||
@@ -298,6 +299,7 @@ const char *command_name(enum nl80211_co
|
||||
@@ -160,6 +161,7 @@ const char *command_name(enum nl80211_co
|
||||
sprintf(cmdbuf, "Unknown command (%d)", cmd);
|
||||
return cmdbuf;
|
||||
}
|
||||
@ -272,7 +272,7 @@
|
||||
|
||||
int ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
|
||||
{
|
||||
@@ -436,6 +438,9 @@ int parse_keys(struct nl_msg *msg, char
|
||||
@@ -298,6 +300,9 @@ int parse_keys(struct nl_msg *msg, char
|
||||
char keybuf[13];
|
||||
int pos = 0;
|
||||
|
||||
@ -299,7 +299,7 @@
|
||||
ifeq ($(NO_PKG_CONFIG),)
|
||||
--- a/station.c
|
||||
+++ b/station.c
|
||||
@@ -736,10 +736,12 @@ static int handle_station_set_plink(stru
|
||||
@@ -759,10 +759,12 @@ static int handle_station_set_plink(stru
|
||||
nla_put_failure:
|
||||
return -ENOBUFS;
|
||||
}
|
||||
@ -312,7 +312,7 @@
|
||||
|
||||
static int handle_station_set_vlan(struct nl80211_state *state,
|
||||
struct nl_msg *msg,
|
||||
@@ -834,11 +836,13 @@ static int handle_station_set_mesh_power
|
||||
@@ -857,11 +859,13 @@ static int handle_station_set_mesh_power
|
||||
nla_put_failure:
|
||||
return -ENOBUFS;
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ define Package/rssileds
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=RSSI real-time LED indicator
|
||||
DEPENDS:=+libiwinfo
|
||||
DEPENDS:=+libiwinfo +libnl-tiny +libubox +libuci
|
||||
MAINTAINER:=Daniel Golle <dgolle@allnet.de>
|
||||
endef
|
||||
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=f2fs-tools
|
||||
PKG_VERSION:=1.12.0
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=1.13.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/
|
||||
PKG_HASH:=e2124e4dffaba865d41495d817bcb924d096adaec67ff777b8c7da99aa13f696
|
||||
PKG_HASH:=b39d3ae9224267aab0070b5f17d91d0c5143f6d960166a27f6b11c8c87072c7d
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
@ -58,6 +58,7 @@ define Package/libf2fs
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--disable-static \
|
||||
--without-selinux \
|
||||
--without-blkid
|
||||
|
||||
@ -77,7 +78,6 @@ endef
|
||||
|
||||
define Package/f2fsck/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fsck.f2fs $(1)/usr/sbin
|
||||
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/defrag.f2fs
|
||||
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/dump.f2fs
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
From 46772bbf0d978512423923da461ceb6b6e791c91 Mon Sep 17 00:00:00 2001
|
||||
From: Rosen Penev <rosenp@gmail.com>
|
||||
Date: Fri, 7 Dec 2018 17:39:03 -0800
|
||||
Subject: [PATCH] fsck: Fix big endian platforms
|
||||
|
||||
Since "fsck.f2fs: integrate sanity_check_inode to __check_inode_mode",
|
||||
big endian platforms have been broken due to an endianness bug.
|
||||
|
||||
More info: https://github.com/openwrt/openwrt/pull/1575
|
||||
|
||||
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
||||
---
|
||||
fsck/fsck.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/fsck/fsck.c
|
||||
+++ b/fsck/fsck.c
|
||||
@@ -339,7 +339,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static int __check_inode_mode(u32 nid, enum FILE_TYPE ftype, u32 mode)
|
||||
+static int __check_inode_mode(u32 nid, enum FILE_TYPE ftype, u16 mode)
|
||||
{
|
||||
if (ftype >= F2FS_FT_MAX)
|
||||
return 0;
|
||||
@@ -457,7 +457,7 @@ static int sanity_check_nid(struct f2fs_
|
||||
return 0;
|
||||
|
||||
if (ntype == TYPE_INODE &&
|
||||
- __check_inode_mode(nid, ftype, le32_to_cpu(node_blk->i.i_mode)))
|
||||
+ __check_inode_mode(nid, ftype, le16_to_cpu(node_blk->i.i_mode)))
|
||||
return -EINVAL;
|
||||
|
||||
/* workaround to fix later */
|
||||
@ -1,24 +0,0 @@
|
||||
From a1241763f50d20efc42910e922b9c8845814f024 Mon Sep 17 00:00:00 2001
|
||||
From: Chao Yu <yuchao0@huawei.com>
|
||||
Date: Sun, 9 Dec 2018 19:41:52 -0800
|
||||
Subject: [PATCH] dump.f2fs: fix incorrect endian conversion
|
||||
|
||||
f2fs_inode.i_mode is variable of __le16 type, during endian converison,
|
||||
it should to use le16_to_cpu instead of le32_to_cpu, fix it.
|
||||
|
||||
Signed-off-by: Chao Yu <yuchao0@huawei.com>
|
||||
---
|
||||
fsck/dump.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/fsck/dump.c
|
||||
+++ b/fsck/dump.c
|
||||
@@ -407,7 +407,7 @@ static void dump_file(struct f2fs_sb_inf
|
||||
struct f2fs_node *node_blk, int force)
|
||||
{
|
||||
struct f2fs_inode *inode = &node_blk->i;
|
||||
- u32 imode = le32_to_cpu(inode->i_mode);
|
||||
+ u32 imode = le16_to_cpu(inode->i_mode);
|
||||
u32 namelen = le32_to_cpu(inode->i_namelen);
|
||||
char name[F2FS_NAME_LEN + 1] = {0};
|
||||
char path[1024] = {0};
|
||||
@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
PKG_DATA_VERSION:=20170806
|
||||
PKG_DATA_VERSION:=20191128
|
||||
PKG_DATA_URL:=http://www.draisberghof.de/usb_modeswitch
|
||||
PKG_DATA_PATH:=usb-modeswitch-data-$(PKG_DATA_VERSION)
|
||||
PKG_DATA_FILENAME:=$(PKG_DATA_PATH).tar.bz2
|
||||
@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/cmake.mk
|
||||
define Download/data
|
||||
FILE:=$(PKG_DATA_FILENAME)
|
||||
URL:=$(PKG_DATA_URL)
|
||||
HASH:=ce413ef2a50e648e9c81bc3ea6110e7324a8bf981034fc9ec4467d3562563c2c
|
||||
HASH:=3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9
|
||||
endef
|
||||
$(eval $(call Download,data))
|
||||
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=util-linux
|
||||
PKG_VERSION:=2.34
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=2.35.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.34
|
||||
PKG_HASH:=743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.35
|
||||
PKG_HASH:=d9de3edd287366cd908e77677514b9387b22bc7b88f45b83e1922c3597f1d7f9
|
||||
PKG_CPE_ID:=cpe:/a:kernel:util-linux
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
endif # BUILD_LIBUUID
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2416,18 +2416,23 @@ AC_CONFIG_HEADERS([config.h])
|
||||
@@ -2496,18 +2496,23 @@ AC_CONFIG_HEADERS([config.h])
|
||||
#
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/lib/randutils.c
|
||||
+++ b/lib/randutils.c
|
||||
@@ -25,6 +25,11 @@
|
||||
@@ -26,6 +26,11 @@
|
||||
#define THREAD_LOCAL static
|
||||
#endif
|
||||
|
||||
|
||||
@ -165,15 +165,12 @@ CONFIG_NO_BOOTMEM=y
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_ADDRESS_PCI=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_KOBJ=y
|
||||
CONFIG_OF_NET=y
|
||||
CONFIG_OF_PCI=y
|
||||
CONFIG_OF_PCI_IRQ=y
|
||||
CONFIG_OF_RESERVED_MEM=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_PADATA=y
|
||||
|
||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
Normal file
@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wa.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WA701ND v1";
|
||||
compatible = "tplink,tl-wa701nd-v1", "qca,ar7240";
|
||||
};
|
||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
Normal file
@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wa.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WA730RE v1";
|
||||
compatible = "tplink,tl-wa730re-v1", "qca,ar7240";
|
||||
};
|
||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
Normal file
@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wa.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WA801ND v1";
|
||||
compatible = "tplink,tl-wa801nd-v1", "qca,ar7240";
|
||||
};
|
||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
Normal file
@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7240_tplink_tl-wa.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link TL-WA901ND v1";
|
||||
compatible = "tplink,tl-wa901nd-v1", "qca,ar7240";
|
||||
};
|
||||
13
target/linux/ath79/dts/ar7241_ubnt_nanostation-loco-m.dts
Normal file
13
target/linux/ath79/dts/ar7241_ubnt_nanostation-loco-m.dts
Normal file
@ -0,0 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7241_ubnt_xm_outdoor.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "ubnt,nanostation-loco-m", "ubnt,xm", "qca,ar7241";
|
||||
model = "Ubiquiti Nanostation Loco M";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
};
|
||||
13
target/linux/ath79/dts/ar7241_ubnt_picostation-m.dts
Normal file
13
target/linux/ath79/dts/ar7241_ubnt_picostation-m.dts
Normal file
@ -0,0 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar7241_ubnt_xm_outdoor.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "ubnt,picostation-m", "ubnt,xm", "qca,ar7241";
|
||||
model = "Ubiquiti Picostation M";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
};
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_xw.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_wa.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_wa.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_wa.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_wa.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_wa.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_xw.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9342_ubnt_xw.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
346
target/linux/ath79/dts/ar9344_teltonika_rut955.dts
Normal file
346
target/linux/ath79/dts/ar9344_teltonika_rut955.dts
Normal file
@ -0,0 +1,346 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "ar9344.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Teltonika RUT955";
|
||||
compatible = "teltonika,rut955", "qca,ar9344";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart;
|
||||
serial1 = &hs_uart;
|
||||
led-boot = &led_system_green;
|
||||
led-failsafe = &led_system_red;
|
||||
led-running = &led_system_green;
|
||||
led-upgrade = &led_system_red;
|
||||
label-mac-device = ð1;
|
||||
};
|
||||
|
||||
i2c {
|
||||
compatible = "i2c-gpio";
|
||||
scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hwmon@4d {
|
||||
compatible = "microchip,mcp3221";
|
||||
reg = <0x4d>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
signal1 {
|
||||
label = "rut955:green:signal1";
|
||||
gpios = <&gpio_ext 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
signal2 {
|
||||
label = "rut955:green:signal2";
|
||||
gpios = <&gpio_ext 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
signal3 {
|
||||
label = "rut955:green:signal3";
|
||||
gpios = <&gpio_ext 2 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
signal4 {
|
||||
label = "rut955:green:signal4";
|
||||
gpios = <&gpio_ext 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
signal5 {
|
||||
label = "rut955:green:signal5";
|
||||
gpios = <&gpio_ext 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led_system_red: system_red {
|
||||
label = "rut955:red:system";
|
||||
gpios = <&gpio_ext 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led_system_green: system_green {
|
||||
label = "rut955:green:system";
|
||||
gpios = <&gpio_ext 6 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&jtag_disable_pins>;
|
||||
|
||||
gpio-line-names = "RS485_D", "led_wan", "DIN3", "mmc_cs",
|
||||
"ext_sck", "", "", "",
|
||||
"", "", "", "",
|
||||
"ext_mosi", "led_lan2", "led_lan1", "",
|
||||
"i2c_scl", "i2c_sda", "", "DIN2",
|
||||
"ext_cs", "DIN1", "led_lan3", "",
|
||||
"", "", "", "",
|
||||
"", "", "", "";
|
||||
|
||||
ext_sck {
|
||||
gpio-hog;
|
||||
gpios = <4 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:ext:sck";
|
||||
};
|
||||
|
||||
ext_mosi {
|
||||
gpio-hog;
|
||||
gpios = <12 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:ext:mosi";
|
||||
};
|
||||
|
||||
ext_cs {
|
||||
gpio-hog;
|
||||
gpios = <20 GPIO_ACTIVE_HIGH>;
|
||||
output-low;
|
||||
line-name = "rut955:ext:cs";
|
||||
};
|
||||
|
||||
mmc_cs {
|
||||
gpio-hog;
|
||||
gpios = <3 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:mmc:cs";
|
||||
};
|
||||
|
||||
uart1_td {
|
||||
gpio-hog;
|
||||
gpios = <18 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:uart1:td";
|
||||
};
|
||||
|
||||
uart1_rd {
|
||||
gpio-hog;
|
||||
gpios = <11 GPIO_ACTIVE_LOW>;
|
||||
input;
|
||||
line-name = "rut955:uart1:rd";
|
||||
};
|
||||
|
||||
led_wan {
|
||||
gpio-hog;
|
||||
gpios = <1 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:led:wan";
|
||||
};
|
||||
|
||||
led_lan2 {
|
||||
gpio-hog;
|
||||
gpios = <13 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:led:lan2";
|
||||
};
|
||||
|
||||
led_lan1 {
|
||||
gpio-hog;
|
||||
gpios = <14 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:led:lan1";
|
||||
};
|
||||
|
||||
led_lan3 {
|
||||
gpio-hog;
|
||||
gpios = <22 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "rut955:led:lan3";
|
||||
};
|
||||
};
|
||||
|
||||
&ref {
|
||||
clock-frequency = <40000000>;
|
||||
};
|
||||
|
||||
&uart {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hs_uart {
|
||||
status = "okay";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmx_uart2>;
|
||||
|
||||
rts-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
|
||||
rs485-rts-active-low;
|
||||
linux,rs485-enabled-at-boot-time;
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
|
||||
num-cs = <3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmx_spi>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x0 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
config: partition@20000 {
|
||||
label = "config";
|
||||
reg = <0x20000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
art: partition@30000 {
|
||||
label = "art";
|
||||
reg = <0x30000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "firmware";
|
||||
reg = <0x40000 0xf30000>;
|
||||
compatible = "tplink,firmware";
|
||||
};
|
||||
|
||||
partition@f70000 {
|
||||
label = "event-log";
|
||||
reg = <0xf70000 0x90000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
microsd@1 {
|
||||
status = "disabled";
|
||||
|
||||
compatible = "mmc-spi-slot";
|
||||
spi-max-frequency = <25000000>;
|
||||
reg = <1>;
|
||||
voltage-ranges = <3200 3400>;
|
||||
broken-cd;
|
||||
};
|
||||
|
||||
gpio_ext: gpio_ext@2 {
|
||||
compatible = "fairchild,74hc595";
|
||||
reg = <2>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
registers-number = <2>;
|
||||
spi-max-frequency = <10000000>;
|
||||
gpio-line-names = "led_signal_bar1", "led_signal_bar2", "led_signal_bar3", "led_signal_bar4",
|
||||
"led_signal_bar5", "led_status_red", "led_status_green", "sim_sel",
|
||||
"DOUT1", "DOUT2", "modem_vbus", "modem_rst",
|
||||
"DOUT3", "RS485_R", "SDCS", "HWRST";
|
||||
};
|
||||
};
|
||||
|
||||
&usb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
port@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
port@1 {
|
||||
compatible = "usb-a-connector";
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
port@3 {
|
||||
label = "RS-232 serial adapter";
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
port@4 {
|
||||
label = "internal wwan modem";
|
||||
reg = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&config 0x0>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
phy-handle = <&swphy4>;
|
||||
|
||||
mtd-mac-address = <&config 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&config 0x0>;
|
||||
};
|
||||
|
||||
&builtin_switch {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmx_leds_switch>;
|
||||
};
|
||||
|
||||
&pinmux {
|
||||
pmx_spi: spi {
|
||||
// SPI_CS1 on GPIO 3, 2nd SCK on GPIO 4
|
||||
// 2nd MOSI on GPIO 12, SPI_CS2 on GPIO 20
|
||||
pinctrl-single,bits = <0x0 0x07000000 0xff000000>,
|
||||
<0x4 0x0a 0xff>,
|
||||
<0xc 0x0b 0xff>,
|
||||
<0x14 0x08 0xff>;
|
||||
};
|
||||
|
||||
pmx_leds_switch: leds_switch {
|
||||
// switch port LEDs on GPIO 1, GPIO 13, GPIO 14 and GPIO 22
|
||||
pinctrl-single,bits = <0x0 0x00002d00 0x0000ff00>,
|
||||
<0xc 0x002c2b00 0x00ffff00>,
|
||||
<0x14 0x002a0000 0x00ff0000>;
|
||||
};
|
||||
|
||||
pmx_uart2: uart2 {
|
||||
// UART1_DTR on GPIO 0, UART1_RD on GPIO 11, UART1_TD on GPIO 18
|
||||
pinctrl-single,bits = <0x0 0x0 0xff>,
|
||||
<0x10 0x4f000000 0xff000000>,
|
||||
<0x3c 0x000b0000 0x00ff0000>;
|
||||
};
|
||||
};
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9558_comfast_cf-wr650ac.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9558_comfast_cf-wr650ac.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9558_tplink_tl-wr1043nd.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9558_tplink_tl-wr1043nd.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9563_elecom_wrc-ghbk2-i.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca9563_elecom_wrc-ghbk2-i.dtsi"
|
||||
|
||||
/ {
|
||||
|
||||
@ -244,9 +244,11 @@ trendnet,tew-823dru)
|
||||
;;
|
||||
ubnt,bullet-m|\
|
||||
ubnt,bullet-m-xw|\
|
||||
ubnt,nanostation-loco-m|\
|
||||
ubnt,nanostation-loco-m-xw|\
|
||||
ubnt,nanostation-m|\
|
||||
ubnt,nanostation-m-xw|\
|
||||
ubnt,picostation-m|\
|
||||
ubnt,rocket-m)
|
||||
ucidef_set_rssimon "wlan0" "200000" "1"
|
||||
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100"
|
||||
|
||||
@ -47,7 +47,9 @@ ath79_setup_interfaces()
|
||||
ubnt,litebeam-ac-gen2|\
|
||||
ubnt,nanobeam-ac|\
|
||||
ubnt,nanostation-ac-loco|\
|
||||
ubnt,nanostation-loco-m|\
|
||||
ubnt,nanostation-loco-m-xw|\
|
||||
ubnt,picostation-m|\
|
||||
ubnt,rocket-m|\
|
||||
ubnt,unifiac-lite|\
|
||||
ubnt,unifiac-lr|\
|
||||
@ -218,6 +220,11 @@ ath79_setup_interfaces()
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan" "3:wan"
|
||||
;;
|
||||
teltonika,rut955)
|
||||
ucidef_set_interface_wan "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
tplink,archer-a7-v5|\
|
||||
tplink,archer-c6-v2|\
|
||||
tplink,archer-c6-v2-us|\
|
||||
@ -426,7 +433,9 @@ ath79_setup_macs()
|
||||
;;
|
||||
ubnt,airrouter|\
|
||||
ubnt,bullet-m|\
|
||||
ubnt,nanostation-loco-m|\
|
||||
ubnt,nanostation-m|\
|
||||
ubnt,picostation-m|\
|
||||
ubnt,rocket-m|\
|
||||
ubnt,unifi)
|
||||
label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
|
||||
|
||||
@ -38,6 +38,14 @@ dlink,dir-835-a1)
|
||||
librerouter,librerouter-v1)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "1" "0"
|
||||
;;
|
||||
teltonika,rut955)
|
||||
ucidef_add_gpio_switch "sim_sel" "SIM select" "503" "1"
|
||||
ucidef_add_gpio_switch "DOUT1" "DOUT1 (OC)" "504" "0"
|
||||
ucidef_add_gpio_switch "DOUT2" "DOUT2 (Relay)" "505" "0"
|
||||
ucidef_add_gpio_switch "modem_vbus" "Modem enable" "506" "1"
|
||||
ucidef_add_gpio_switch "modem_rst" "Modem reset" "507" "0"
|
||||
ucidef_add_gpio_switch "DOUT3" "DOUT3" "508" "0"
|
||||
;;
|
||||
tplink,archer-c25-v1)
|
||||
ucidef_add_gpio_switch "led_control" "LED control" "21" "0"
|
||||
ucidef_add_gpio_switch "led_reset" "LED reset" "19" "1"
|
||||
|
||||
@ -90,7 +90,9 @@ case "$FIRMWARE" in
|
||||
tplink,tl-wr842n-v1|\
|
||||
ubnt,airrouter|\
|
||||
ubnt,bullet-m|\
|
||||
ubnt,nanostation-loco-m|\
|
||||
ubnt,nanostation-m|\
|
||||
ubnt,picostation-m|\
|
||||
ubnt,rocket-m)
|
||||
caldata_extract "art" 0x1000 0x1000
|
||||
;;
|
||||
|
||||
@ -11,6 +11,7 @@ endef
|
||||
|
||||
define Device/tplink-v1
|
||||
DEVICE_VENDOR := TP-Link
|
||||
TPLINK_HWID := 0x0
|
||||
TPLINK_HWREV := 0x1
|
||||
TPLINK_HEADER_VERSION := 1
|
||||
LOADER_TYPE := gz
|
||||
@ -23,6 +24,7 @@ endef
|
||||
|
||||
define Device/tplink-v2
|
||||
DEVICE_VENDOR := TP-Link
|
||||
TPLINK_HWID := 0x0
|
||||
TPLINK_HWREV := 0x1
|
||||
TPLINK_HWREVADD := 0x0
|
||||
TPLINK_HVERSION := 3
|
||||
@ -74,9 +76,10 @@ endef
|
||||
|
||||
define Device/tplink-safeloader
|
||||
$(Device/tplink-v1)
|
||||
TPLINK_HWREV := 0x0
|
||||
KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
|
||||
IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
|
||||
append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||
append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||
IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
|
||||
endef
|
||||
|
||||
|
||||
@ -320,8 +320,6 @@ define Device/tplink_re350k-v1
|
||||
DEVICE_VARIANT := v1
|
||||
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
||||
TPLINK_BOARD_ID := RE350K-V1
|
||||
TPLINK_HWID := 0x0
|
||||
TPLINK_HWREV := 0
|
||||
endef
|
||||
TARGET_DEVICES += tplink_re350k-v1
|
||||
|
||||
@ -330,8 +328,6 @@ define Device/tplink_rex5x-v1
|
||||
SOC := qca9558
|
||||
IMAGE_SIZE := 6016k
|
||||
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
|
||||
TPLINK_HWID := 0x0
|
||||
TPLINK_HWREV := 0
|
||||
endef
|
||||
|
||||
define Device/tplink_re355-v1
|
||||
@ -359,8 +355,6 @@ define Device/tplink_re450-v2
|
||||
DEVICE_MODEL := RE450
|
||||
DEVICE_VARIANT := v2
|
||||
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
|
||||
TPLINK_HWID := 0x0
|
||||
TPLINK_HWREV := 0
|
||||
TPLINK_BOARD_ID := RE450-V2
|
||||
LOADER_TYPE := elf
|
||||
endef
|
||||
@ -585,8 +579,6 @@ define Device/tplink_tl-wr902ac-v1
|
||||
-swconfig -uboot-envtools
|
||||
TPLINK_BOARD_ID := TL-WR902AC-V1
|
||||
IMAGE_SIZE := 7360k
|
||||
TPLINK_HWID := 0x0
|
||||
TPLINK_HWREV := 0
|
||||
SUPPORTED_DEVICES += tl-wr902ac-v1
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wr902ac-v1
|
||||
|
||||
@ -179,6 +179,14 @@ define Device/ubnt_nanostation-ac-loco
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_nanostation-ac-loco
|
||||
|
||||
define Device/ubnt_nanostation-loco-m
|
||||
$(Device/ubnt-xm)
|
||||
DEVICE_MODEL := Nanostation Loco M
|
||||
DEVICE_PACKAGES += rssileds
|
||||
SUPPORTED_DEVICES += bullet-m
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_nanostation-loco-m
|
||||
|
||||
define Device/ubnt_nanostation-loco-m-xw
|
||||
$(Device/ubnt-xw)
|
||||
DEVICE_MODEL := Nanostation Loco M
|
||||
@ -203,6 +211,14 @@ define Device/ubnt_nanostation-m-xw
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_nanostation-m-xw
|
||||
|
||||
define Device/ubnt_picostation-m
|
||||
$(Device/ubnt-xm)
|
||||
DEVICE_MODEL := Picostation M
|
||||
DEVICE_PACKAGES += rssileds
|
||||
SUPPORTED_DEVICES += bullet-m
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_picostation-m
|
||||
|
||||
define Device/ubnt_rocket-m
|
||||
$(Device/ubnt-xm)
|
||||
DEVICE_MODEL := Rocket-M
|
||||
|
||||
@ -36,6 +36,11 @@ define Build/addpattern
|
||||
-mv "$@.new" "$@"
|
||||
endef
|
||||
|
||||
define Build/append-md5sum-bin
|
||||
$(STAGING_DIR_HOST)/bin/mkhash md5 $@ | sed 's/../\\\\x&/g' |\
|
||||
xargs echo -ne >> $@
|
||||
endef
|
||||
|
||||
define Build/cybertan-trx
|
||||
@echo -n '' > $@-empty.bin
|
||||
-$(STAGING_DIR_HOST)/bin/trx -o $@.new \
|
||||
@ -73,6 +78,17 @@ define Build/pisen_wmb001n-factory
|
||||
rm -rf "$@.tmp"
|
||||
endef
|
||||
|
||||
define Build/teltonika-fw-fake-checksum
|
||||
# Teltonika U-Boot web based firmware upgrade/recovery routine compares
|
||||
# 16 bytes from md5sum1[16] field in TP-Link v1 header (offset: 76 bytes
|
||||
# from begin of the firmware file) with 16 bytes stored just before
|
||||
# 0xdeadc0de marker. Values are only compared, MD5 sum is not verified.
|
||||
let \
|
||||
offs="$$(stat -c%s $@) - 20"; \
|
||||
dd if=$@ bs=1 count=16 skip=76 |\
|
||||
dd of=$@ bs=1 count=16 seek=$$offs conv=notrunc
|
||||
endef
|
||||
|
||||
define Device/seama
|
||||
KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
|
||||
KERNEL_INITRAMFS := $$(KERNEL) | seama
|
||||
@ -1046,6 +1062,7 @@ define Device/siemens_ws-ap3610
|
||||
DEVICE_VENDOR := Siemens
|
||||
DEVICE_MODEL := WS-AP3610
|
||||
IMAGE_SIZE := 14336k
|
||||
BLOCKSIZE := 256k
|
||||
LOADER_TYPE := bin
|
||||
LOADER_FLASH_OFFS := 0x82000
|
||||
COMPILE := loader-$(1).bin
|
||||
@ -1069,6 +1086,28 @@ define Device/sitecom_wlr-7100
|
||||
endef
|
||||
TARGET_DEVICES += sitecom_wlr-7100
|
||||
|
||||
define Device/teltonika_rut955
|
||||
SOC := ar9344
|
||||
DEVICE_VENDOR := Teltonika
|
||||
DEVICE_MODEL := RUT955
|
||||
DEVICE_PACKAGES := kmod-usb2 kmod-usb-acm kmod-usb-net-qmi-wwan \
|
||||
kmod-usb-serial-option kmod-hwmon-mcp3021 uqmi -uboot-envtools
|
||||
IMAGE_SIZE := 15552k
|
||||
TPLINK_HWID := 0x35000001
|
||||
TPLINK_HWREV := 0x1
|
||||
TPLINK_HEADER_VERSION := 1
|
||||
KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header
|
||||
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs |\
|
||||
pad-rootfs | teltonika-fw-fake-checksum | append-string master |\
|
||||
append-md5sum-bin | check-size $$$$(IMAGE_SIZE)
|
||||
IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
|
||||
append-rootfs | pad-rootfs | append-metadata |\
|
||||
check-size $$$$(IMAGE_SIZE)
|
||||
endef
|
||||
TARGET_DEVICES += teltonika_rut955
|
||||
|
||||
define Device/trendnet_tew-823dru
|
||||
SOC := qca9558
|
||||
DEVICE_VENDOR := Trendnet
|
||||
|
||||
@ -66,6 +66,36 @@ define Device/tplink_tl-mr3420-v2
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-mr3420-v2
|
||||
|
||||
define Device/tplink_tl-wa701nd-v1
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar7240
|
||||
DEVICE_MODEL := TL-WA701ND
|
||||
DEVICE_VARIANT := v1
|
||||
TPLINK_HWID := 0x07010001
|
||||
SUPPORTED_DEVICES += tl-wa901nd
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wa701nd-v1
|
||||
|
||||
define Device/tplink_tl-wa730re-v1
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar7240
|
||||
DEVICE_MODEL := TL-WA730RE
|
||||
DEVICE_VARIANT := v1
|
||||
TPLINK_HWID := 0x07300001
|
||||
SUPPORTED_DEVICES += tl-wa901nd
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wa730re-v1
|
||||
|
||||
define Device/tplink_tl-wa801nd-v1
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar7240
|
||||
DEVICE_MODEL := TL-WA801ND
|
||||
DEVICE_VARIANT := v1
|
||||
TPLINK_HWID := 0x08010001
|
||||
SUPPORTED_DEVICES += tl-wa901nd
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wa801nd-v1
|
||||
|
||||
define Device/tplink_tl-wa830re-v1
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar7240
|
||||
@ -95,12 +125,21 @@ define Device/tplink_tl-wa850re-v2
|
||||
DEVICE_VARIANT := v2
|
||||
TPLINK_BOARD_ID := TLWA850REV2
|
||||
TPLINK_HWID := 0x08500002
|
||||
TPLINK_HWREV := 0x0
|
||||
DEVICE_PACKAGES := rssileds
|
||||
SUPPORTED_DEVICES += tl-wa850re-v2
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wa850re-v2
|
||||
|
||||
define Device/tplink_tl-wa901nd-v1
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar7240
|
||||
DEVICE_MODEL := TL-WA901ND
|
||||
DEVICE_VARIANT := v1
|
||||
TPLINK_HWID := 0x09010001
|
||||
SUPPORTED_DEVICES += tl-wa901nd
|
||||
endef
|
||||
TARGET_DEVICES += tplink_tl-wa901nd-v1
|
||||
|
||||
define Device/tplink_tl-wa901nd-v2
|
||||
$(Device/tplink-4m)
|
||||
SOC := ar9132
|
||||
|
||||
@ -0,0 +1,271 @@
|
||||
From patchwork Fri Feb 21 21:23:31 2020
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
|
||||
X-Patchwork-Id: 1198835
|
||||
Date: Fri, 21 Feb 2020 22:23:31 +0100
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
To: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org
|
||||
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
|
||||
Jiri Slaby <jslaby@suse.com>, Petr =?utf-8?q?=C5=A0tetiar?= <ynezz@true.cz>,
|
||||
Chuanhong Guo <gch981213@gmail.com>, Piotr Dymacz <pepe2k@gmail.com>
|
||||
Subject: [PATCH v2] serial: ar933x_uart: add RS485 support
|
||||
Message-ID: <20200221212331.GA21467@makrotopia.org>
|
||||
MIME-Version: 1.0
|
||||
Content-Disposition: inline
|
||||
Sender: linux-kernel-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-kernel.vger.kernel.org>
|
||||
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||
|
||||
Emulate half-duplex operation and use mctrl_gpio to add support for
|
||||
RS485 tranceiver with transmit/receive switch hooked to RTS GPIO line.
|
||||
This is needed to make use of the RS485 port found on Teltonika RUT955.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
v2: use bool to indicate ongoing half-duplex send, use it afterwards
|
||||
to decide whether we've just been in a send operation.
|
||||
|
||||
drivers/tty/serial/Kconfig | 1 +
|
||||
drivers/tty/serial/ar933x_uart.c | 113 +++++++++++++++++++++++++++++--
|
||||
2 files changed, 108 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
|
||||
index 52eaac21ff9f..b675924138e0 100644
|
||||
--- a/drivers/tty/serial/Kconfig
|
||||
+++ b/drivers/tty/serial/Kconfig
|
||||
@@ -1279,6 +1279,7 @@ config SERIAL_AR933X
|
||||
tristate "AR933X serial port support"
|
||||
depends on HAVE_CLK && ATH79
|
||||
select SERIAL_CORE
|
||||
+ select SERIAL_MCTRL_GPIO if GPIOLIB
|
||||
help
|
||||
If you have an Atheros AR933X SOC based board and want to use the
|
||||
built-in UART of the SoC, say Y to this option.
|
||||
diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
|
||||
index ea12f10610b6..7e7f1398019f 100644
|
||||
--- a/drivers/tty/serial/ar933x_uart.c
|
||||
+++ b/drivers/tty/serial/ar933x_uart.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/console.h>
|
||||
#include <linux/sysrq.h>
|
||||
#include <linux/delay.h>
|
||||
+#include <linux/gpio/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
@@ -29,6 +30,8 @@
|
||||
|
||||
#include <asm/mach-ath79/ar933x_uart.h>
|
||||
|
||||
+#include "serial_mctrl_gpio.h"
|
||||
+
|
||||
#define DRIVER_NAME "ar933x-uart"
|
||||
|
||||
#define AR933X_UART_MAX_SCALE 0xff
|
||||
@@ -47,6 +50,8 @@ struct ar933x_uart_port {
|
||||
unsigned int min_baud;
|
||||
unsigned int max_baud;
|
||||
struct clk *clk;
|
||||
+ struct mctrl_gpios *gpios;
|
||||
+ struct gpio_desc *rts_gpiod;
|
||||
};
|
||||
|
||||
static inline unsigned int ar933x_uart_read(struct ar933x_uart_port *up,
|
||||
@@ -100,6 +105,18 @@ static inline void ar933x_uart_stop_tx_interrupt(struct ar933x_uart_port *up)
|
||||
ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||
}
|
||||
|
||||
+static inline void ar933x_uart_start_rx_interrupt(struct ar933x_uart_port *up)
|
||||
+{
|
||||
+ up->ier |= AR933X_UART_INT_RX_VALID;
|
||||
+ ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||
+}
|
||||
+
|
||||
+static inline void ar933x_uart_stop_rx_interrupt(struct ar933x_uart_port *up)
|
||||
+{
|
||||
+ up->ier &= ~AR933X_UART_INT_RX_VALID;
|
||||
+ ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||
+}
|
||||
+
|
||||
static inline void ar933x_uart_putc(struct ar933x_uart_port *up, int ch)
|
||||
{
|
||||
unsigned int rdata;
|
||||
@@ -125,11 +142,21 @@ static unsigned int ar933x_uart_tx_empty(struct uart_port *port)
|
||||
|
||||
static unsigned int ar933x_uart_get_mctrl(struct uart_port *port)
|
||||
{
|
||||
- return TIOCM_CAR;
|
||||
+ struct ar933x_uart_port *up =
|
||||
+ container_of(port, struct ar933x_uart_port, port);
|
||||
+ int ret = TIOCM_CTS | TIOCM_DSR | TIOCM_CAR;
|
||||
+
|
||||
+ mctrl_gpio_get(up->gpios, &ret);
|
||||
+
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static void ar933x_uart_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||
{
|
||||
+ struct ar933x_uart_port *up =
|
||||
+ container_of(port, struct ar933x_uart_port, port);
|
||||
+
|
||||
+ mctrl_gpio_set(up->gpios, mctrl);
|
||||
}
|
||||
|
||||
static void ar933x_uart_start_tx(struct uart_port *port)
|
||||
@@ -140,6 +167,37 @@ static void ar933x_uart_start_tx(struct uart_port *port)
|
||||
ar933x_uart_start_tx_interrupt(up);
|
||||
}
|
||||
|
||||
+static void ar933x_uart_wait_tx_complete(struct ar933x_uart_port *up)
|
||||
+{
|
||||
+ unsigned int status;
|
||||
+ unsigned int timeout = 60000;
|
||||
+
|
||||
+ /* Wait up to 60ms for the character(s) to be sent. */
|
||||
+ do {
|
||||
+ status = ar933x_uart_read(up, AR933X_UART_CS_REG);
|
||||
+ if (--timeout == 0)
|
||||
+ break;
|
||||
+ udelay(1);
|
||||
+ } while (status & AR933X_UART_CS_TX_BUSY);
|
||||
+
|
||||
+ if (timeout == 0)
|
||||
+ dev_err(up->port.dev, "waiting for TX timed out\n");
|
||||
+}
|
||||
+
|
||||
+static void ar933x_uart_rx_flush(struct ar933x_uart_port *up)
|
||||
+{
|
||||
+ unsigned int status;
|
||||
+
|
||||
+ /* clear RX_VALID interrupt */
|
||||
+ ar933x_uart_write(up, AR933X_UART_INT_REG, AR933X_UART_INT_RX_VALID);
|
||||
+
|
||||
+ /* remove characters from the RX FIFO */
|
||||
+ do {
|
||||
+ ar933x_uart_write(up, AR933X_UART_DATA_REG, AR933X_UART_DATA_RX_CSR);
|
||||
+ status = ar933x_uart_read(up, AR933X_UART_DATA_REG);
|
||||
+ } while (status & AR933X_UART_DATA_RX_CSR);
|
||||
+}
|
||||
+
|
||||
static void ar933x_uart_stop_tx(struct uart_port *port)
|
||||
{
|
||||
struct ar933x_uart_port *up =
|
||||
@@ -153,8 +211,7 @@ static void ar933x_uart_stop_rx(struct uart_port *port)
|
||||
struct ar933x_uart_port *up =
|
||||
container_of(port, struct ar933x_uart_port, port);
|
||||
|
||||
- up->ier &= ~AR933X_UART_INT_RX_VALID;
|
||||
- ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||
+ ar933x_uart_stop_rx_interrupt(up);
|
||||
}
|
||||
|
||||
static void ar933x_uart_break_ctl(struct uart_port *port, int break_state)
|
||||
@@ -336,11 +393,20 @@ static void ar933x_uart_rx_chars(struct ar933x_uart_port *up)
|
||||
static void ar933x_uart_tx_chars(struct ar933x_uart_port *up)
|
||||
{
|
||||
struct circ_buf *xmit = &up->port.state->xmit;
|
||||
+ struct serial_rs485 *rs485conf = &up->port.rs485;
|
||||
int count;
|
||||
+ bool half_duplex_send = false;
|
||||
|
||||
if (uart_tx_stopped(&up->port))
|
||||
return;
|
||||
|
||||
+ if ((rs485conf->flags & SER_RS485_ENABLED) &&
|
||||
+ (up->port.x_char || !uart_circ_empty(xmit))) {
|
||||
+ ar933x_uart_stop_rx_interrupt(up);
|
||||
+ gpiod_set_value(up->rts_gpiod, !!(rs485conf->flags & SER_RS485_RTS_ON_SEND));
|
||||
+ half_duplex_send = true;
|
||||
+ }
|
||||
+
|
||||
count = up->port.fifosize;
|
||||
do {
|
||||
unsigned int rdata;
|
||||
@@ -368,8 +434,14 @@ static void ar933x_uart_tx_chars(struct ar933x_uart_port *up)
|
||||
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
|
||||
uart_write_wakeup(&up->port);
|
||||
|
||||
- if (!uart_circ_empty(xmit))
|
||||
+ if (!uart_circ_empty(xmit)) {
|
||||
ar933x_uart_start_tx_interrupt(up);
|
||||
+ } else if (half_duplex_send) {
|
||||
+ ar933x_uart_wait_tx_complete(up);
|
||||
+ ar933x_uart_rx_flush(up);
|
||||
+ ar933x_uart_start_rx_interrupt(up);
|
||||
+ gpiod_set_value(up->rts_gpiod, !!(rs485conf->flags & SER_RS485_RTS_AFTER_SEND));
|
||||
+ }
|
||||
}
|
||||
|
||||
static irqreturn_t ar933x_uart_interrupt(int irq, void *dev_id)
|
||||
@@ -427,8 +499,7 @@ static int ar933x_uart_startup(struct uart_port *port)
|
||||
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
|
||||
|
||||
/* Enable RX interrupts */
|
||||
- up->ier = AR933X_UART_INT_RX_VALID;
|
||||
- ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||
+ ar933x_uart_start_rx_interrupt(up);
|
||||
|
||||
spin_unlock_irqrestore(&up->port.lock, flags);
|
||||
|
||||
@@ -511,6 +582,21 @@ static const struct uart_ops ar933x_uart_ops = {
|
||||
.verify_port = ar933x_uart_verify_port,
|
||||
};
|
||||
|
||||
+static int ar933x_config_rs485(struct uart_port *port,
|
||||
+ struct serial_rs485 *rs485conf)
|
||||
+{
|
||||
+ struct ar933x_uart_port *up =
|
||||
+ container_of(port, struct ar933x_uart_port, port);
|
||||
+
|
||||
+ if ((rs485conf->flags & SER_RS485_ENABLED) &&
|
||||
+ !up->rts_gpiod) {
|
||||
+ dev_err(port->dev, "RS485 needs rts-gpio\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ port->rs485 = *rs485conf;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
#ifdef CONFIG_SERIAL_AR933X_CONSOLE
|
||||
static struct ar933x_uart_port *
|
||||
ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS];
|
||||
@@ -680,6 +766,8 @@ static int ar933x_uart_probe(struct platform_device *pdev)
|
||||
goto err_disable_clk;
|
||||
}
|
||||
|
||||
+ uart_get_rs485_mode(&pdev->dev, &port->rs485);
|
||||
+
|
||||
port->mapbase = mem_res->start;
|
||||
port->line = id;
|
||||
port->irq = irq_res->start;
|
||||
@@ -690,6 +778,7 @@ static int ar933x_uart_probe(struct platform_device *pdev)
|
||||
port->regshift = 2;
|
||||
port->fifosize = AR933X_UART_FIFO_SIZE;
|
||||
port->ops = &ar933x_uart_ops;
|
||||
+ port->rs485_config = ar933x_config_rs485;
|
||||
|
||||
baud = ar933x_uart_get_baud(port->uartclk, AR933X_UART_MAX_SCALE, 1);
|
||||
up->min_baud = max_t(unsigned int, baud, AR933X_UART_MIN_BAUD);
|
||||
@@ -697,6 +786,18 @@ static int ar933x_uart_probe(struct platform_device *pdev)
|
||||
baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP);
|
||||
up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD);
|
||||
|
||||
+ up->gpios = mctrl_gpio_init(port, 0);
|
||||
+ if (IS_ERR(up->gpios) && PTR_ERR(up->gpios) != -ENOSYS)
|
||||
+ return PTR_ERR(up->gpios);
|
||||
+
|
||||
+ up->rts_gpiod = mctrl_gpio_to_gpiod(up->gpios, UART_GPIO_RTS);
|
||||
+
|
||||
+ if ((port->rs485.flags & SER_RS485_ENABLED) &&
|
||||
+ !up->rts_gpiod) {
|
||||
+ dev_err(&pdev->dev, "lacking rts-gpio, disabling RS485\n");
|
||||
+ port->rs485.flags &= ~SER_RS485_ENABLED;
|
||||
+ }
|
||||
+
|
||||
#ifdef CONFIG_SERIAL_AR933X_CONSOLE
|
||||
ar933x_console_ports[up->port.line] = up;
|
||||
#endif
|
||||
@ -42,7 +42,11 @@ on,n150r)
|
||||
;;
|
||||
tplink,tl-mr3020-v1|\
|
||||
tplink,tl-mr3040-v2|\
|
||||
tplink,tl-wa830re-v1)
|
||||
tplink,tl-wa701nd-v1|\
|
||||
tplink,tl-wa730re-v1|\
|
||||
tplink,tl-wa801nd-v1|\
|
||||
tplink,tl-wa830re-v1|\
|
||||
tplink,tl-wa901nd-v1)
|
||||
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
|
||||
;;
|
||||
tplink,tl-mr3420-v2|\
|
||||
|
||||
@ -32,9 +32,13 @@ ath79_setup_interfaces()
|
||||
tplink,tl-mr10u|\
|
||||
tplink,tl-mr3020-v1|\
|
||||
tplink,tl-mr3040-v2|\
|
||||
tplink,tl-wa701nd-v1|\
|
||||
tplink,tl-wa730re-v1|\
|
||||
tplink,tl-wa801nd-v1|\
|
||||
tplink,tl-wa830re-v1|\
|
||||
tplink,tl-wa850re-v1|\
|
||||
tplink,tl-wa850re-v2|\
|
||||
tplink,tl-wa901nd-v1|\
|
||||
tplink,tl-wa901nd-v2|\
|
||||
tplink,tl-wr703n)
|
||||
ucidef_set_interface_lan "eth0"
|
||||
|
||||
@ -10,7 +10,11 @@ case "$FIRMWARE" in
|
||||
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
||||
case $board in
|
||||
buffalo,whr-g301n|\
|
||||
tplink,tl-wa701nd-v1|\
|
||||
tplink,tl-wa730re-v1|\
|
||||
tplink,tl-wa801nd-v1|\
|
||||
tplink,tl-wa830re-v1|\
|
||||
tplink,tl-wa901nd-v1|\
|
||||
tplink,tl-wr841-v5|\
|
||||
tplink,tl-wr941-v4)
|
||||
caldata_extract "art" 0x1000 0xeb8
|
||||
|
||||
@ -76,7 +76,6 @@ CONFIG_CSRC_R4K=y
|
||||
CONFIG_DMA_NONCOHERENT=y
|
||||
CONFIG_DTC=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_GENERIC_ATOMIC64=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
@ -197,15 +196,12 @@ CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
|
||||
# CONFIG_NO_IOPORT_MAP is not set
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_ADDRESS_PCI=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_MDIO=y
|
||||
CONFIG_OF_NET=y
|
||||
CONFIG_OF_PCI=y
|
||||
CONFIG_OF_PCI_IRQ=y
|
||||
CONFIG_PCI=y
|
||||
# CONFIG_PCIEAER is not set
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
|
||||
@ -594,6 +594,7 @@ CONFIG_BLOCK=y
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_BOOKE_WDT is not set
|
||||
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
CONFIG_BOOT_RAW=y
|
||||
CONFIG_BPF=y
|
||||
@ -1073,6 +1074,9 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_UART_BCM63XX is not set
|
||||
# CONFIG_DEBUG_VIRTUAL is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_VM_PGFLAGS is not set
|
||||
# CONFIG_DEBUG_VM_RB is not set
|
||||
# CONFIG_DEBUG_VM_VMACACHE is not set
|
||||
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
||||
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
||||
# CONFIG_DEBUG_WX is not set
|
||||
@ -1081,6 +1085,7 @@ CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEFAULT_CUBIC=y
|
||||
CONFIG_DEFAULT_DEADLINE=y
|
||||
CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
CONFIG_DEFAULT_IOSCHED="deadline"
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
@ -1516,6 +1521,10 @@ CONFIG_GACT_PROB=y
|
||||
# CONFIG_GAMEPORT is not set
|
||||
# CONFIG_GATEWORKS_GW16083 is not set
|
||||
# CONFIG_GCC_PLUGINS is not set
|
||||
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
||||
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set
|
||||
# CONFIG_GCOV is not set
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
# CONFIG_GDB_SCRIPTS is not set
|
||||
@ -4923,6 +4932,7 @@ CONFIG_TCP_CONG_CUBIC=y
|
||||
# CONFIG_TEST_FIRMWARE is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_TEST_HEXDUMP is not set
|
||||
# CONFIG_TEST_KASAN is not set
|
||||
# CONFIG_TEST_KMOD is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
|
||||
@ -617,6 +617,7 @@ CONFIG_BLOCK=y
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_BOOKE_WDT is not set
|
||||
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
CONFIG_BOOT_RAW=y
|
||||
CONFIG_BPF=y
|
||||
@ -1131,6 +1132,9 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_UART_BCM63XX is not set
|
||||
# CONFIG_DEBUG_VIRTUAL is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_VM_PGFLAGS is not set
|
||||
# CONFIG_DEBUG_VM_RB is not set
|
||||
# CONFIG_DEBUG_VM_VMACACHE is not set
|
||||
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
||||
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
||||
# CONFIG_DEBUG_WX is not set
|
||||
@ -1139,6 +1143,7 @@ CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEFAULT_CUBIC=y
|
||||
CONFIG_DEFAULT_DEADLINE=y
|
||||
CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
CONFIG_DEFAULT_IOSCHED="deadline"
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
@ -1549,7 +1554,6 @@ CONFIG_FILE_LOCKING=y
|
||||
# CONFIG_FIREWIRE_NOSY is not set
|
||||
# CONFIG_FIREWIRE_SERIAL is not set
|
||||
# CONFIG_FIRMWARE_EDID is not set
|
||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
||||
# CONFIG_FIRMWARE_MEMMAP is not set
|
||||
# CONFIG_FIXED_PHY is not set
|
||||
CONFIG_FLATMEM=y
|
||||
@ -1605,6 +1609,8 @@ CONFIG_GACT_PROB=y
|
||||
# CONFIG_GAMEPORT is not set
|
||||
# CONFIG_GATEWORKS_GW16083 is not set
|
||||
# CONFIG_GCC_PLUGINS is not set
|
||||
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
||||
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||
# CONFIG_GCOV is not set
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
# CONFIG_GDB_SCRIPTS is not set
|
||||
@ -5185,6 +5191,7 @@ CONFIG_TCP_CONG_CUBIC=y
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_TEST_HEXDUMP is not set
|
||||
# CONFIG_TEST_IDA is not set
|
||||
# CONFIG_TEST_KASAN is not set
|
||||
# CONFIG_TEST_KMOD is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
@ -5197,6 +5204,7 @@ CONFIG_TCP_CONG_CUBIC=y
|
||||
# CONFIG_TEST_STATIC_KEYS is not set
|
||||
# CONFIG_TEST_STRING_HELPERS is not set
|
||||
# CONFIG_TEST_SYSCTL is not set
|
||||
# CONFIG_TEST_UBSAN is not set
|
||||
# CONFIG_TEST_UDELAY is not set
|
||||
# CONFIG_TEST_USER_COPY is not set
|
||||
# CONFIG_TEST_UUID is not set
|
||||
|
||||
@ -87,8 +87,8 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
};
|
||||
|
||||
enum {
|
||||
+ XT_CONNMARK_VALUE = BIT(0),
|
||||
+ XT_CONNMARK_DSCP = BIT(1)
|
||||
+ XT_CONNMARK_VALUE = (1 << 0),
|
||||
+ XT_CONNMARK_DSCP = (1 << 1)
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
|
||||
@ -8,22 +8,17 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
|
||||
index f4afe123e9dc..a34fa42d47a2 100644
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -2346,6 +2346,11 @@ static const struct flash_info spi_nor_ids[] = {
|
||||
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
|
||||
@@ -976,6 +976,11 @@ static const struct flash_info spi_nor_i
|
||||
|
||||
/* GigaDevice */
|
||||
+ {
|
||||
{
|
||||
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
+ },
|
||||
{
|
||||
+ {
|
||||
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
--
|
||||
2.17.1
|
||||
|
||||
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
|
||||
@ -8,22 +8,17 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
|
||||
index f4afe123e9dc..a34fa42d47a2 100644
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -2346,6 +2346,11 @@ static const struct flash_info spi_nor_ids[] = {
|
||||
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
|
||||
@@ -1017,6 +1017,11 @@ static const struct flash_info spi_nor_i
|
||||
|
||||
/* GigaDevice */
|
||||
+ {
|
||||
{
|
||||
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
+ },
|
||||
{
|
||||
+ {
|
||||
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
--
|
||||
2.17.1
|
||||
|
||||
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
From d68b4aa22e8c625685bfad642dd7337948dc0ad1 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
Date: Mon, 6 Jan 2020 13:07:56 +0100
|
||||
Subject: [PATCH] mtd: spi-nor: add support for Gigadevice GD25D05
|
||||
|
||||
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
---
|
||||
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
|
||||
index f4afe123e9dc..a34fa42d47a2 100644
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -2346,6 +2346,11 @@ static const struct flash_info spi_nor_ids[] = {
|
||||
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
|
||||
|
||||
/* GigaDevice */
|
||||
+ {
|
||||
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
+ },
|
||||
{
|
||||
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@ -10,41 +10,18 @@ board_config_update
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
"cloudengines,pogoe02")
|
||||
ucidef_set_led_default "health" "health" "pogo_e02:green:health" "1"
|
||||
ucidef_set_led_default "fault" "fault" "pogo_e02:orange:fault" "1"
|
||||
;;
|
||||
"iom,ix2-200")
|
||||
ucidef_set_led_timer "health" "health" "status:white:rebuild_led" "200" "800"
|
||||
;;
|
||||
"linksys,audi")
|
||||
ucidef_set_led_default "power" "power" "audi:green:power" "1"
|
||||
;;
|
||||
"linksys,viper")
|
||||
ucidef_set_led_default "health" "health" "viper:white:health" "1"
|
||||
ucidef_set_led_default "pulse" "pulse" "viper:white:pulse" "1"
|
||||
;;
|
||||
"raidsonic,ib-nas62x0")
|
||||
ucidef_set_led_default "health" "health" "ib62x0:green:os" "1"
|
||||
ucidef_set_led_default "fault" "fault" "ib62x0:red:os" "1"
|
||||
;;
|
||||
"seagate,dockstar")
|
||||
ucidef_set_led_default "health" "health" "status:green:health" "1"
|
||||
ucidef_set_led_default "fault" "fault" "status:orange:fault" "1"
|
||||
;;
|
||||
"seagate,goflexhome"|\
|
||||
"seagate,goflexnet")
|
||||
ucidef_set_led_default "health" "health" "status:green:health" "1"
|
||||
ucidef_set_led_default "fault" "fault" "status:orange:fault" "0"
|
||||
;;
|
||||
"zyxel,nsa310b")
|
||||
ucidef_set_led_default "health" "health" "nsa310:green:sys" "1"
|
||||
ucidef_set_led_usbhost "usb" "USB" "nsa310:green:usb"
|
||||
ucidef_set_led_ataport "hdd" "HDD" "nsa310:green:hdd" "1"
|
||||
ucidef_set_led_ataport "esata" "eSata" "nsa310:green:esata" "2"
|
||||
;;
|
||||
"zyxel,nsa325")
|
||||
ucidef_set_led_default "health" "health" "nsa325:green:sys" "1"
|
||||
ucidef_set_led_usbhost "usb" "USB" "nsa325:green:usb"
|
||||
ucidef_set_led_ataport "hdd1" "HDD1" "nsa325:green:hdd1" "1"
|
||||
ucidef_set_led_ataport "hdd2" "HDD2" "nsa325:green:hdd2" "2"
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) 2014 OpenWrt.org
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/leds.sh
|
||||
|
||||
get_status_led() {
|
||||
case $(board_name) in
|
||||
cisco,on100)
|
||||
status_led="on100:green:health"
|
||||
;;
|
||||
cloudengines,pogoe02)
|
||||
status_led="pogo_e02:orange:fault"
|
||||
;;
|
||||
cloudengines,pogoplugv4)
|
||||
status_led="pogoplugv4:green:health"
|
||||
;;
|
||||
iom,ix2-200)
|
||||
status_led="status:white:power_led"
|
||||
;;
|
||||
linksys,audi)
|
||||
status_led="audi:green:power"
|
||||
;;
|
||||
linksys,viper)
|
||||
status_led="viper:white:health"
|
||||
;;
|
||||
seagate,dockstar|\
|
||||
seagate,goflexhome|\
|
||||
seagate,goflexnet)
|
||||
status_led="status:orange:fault"
|
||||
;;
|
||||
zyxel,nsa310b)
|
||||
status_led="nsa310:green:sys"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
set_state() {
|
||||
get_status_led
|
||||
|
||||
case "$1" in
|
||||
preinit)
|
||||
status_led_blink_preinit
|
||||
;;
|
||||
failsafe)
|
||||
status_led_blink_failsafe
|
||||
;;
|
||||
preinit_regular)
|
||||
status_led_blink_preinit_regular
|
||||
;;
|
||||
done)
|
||||
status_led_on
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@ -1,15 +1,38 @@
|
||||
--- a/arch/arm/boot/dts/kirkwood-ib62x0.dts
|
||||
+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts
|
||||
@@ -6,7 +6,7 @@
|
||||
@@ -6,7 +6,14 @@
|
||||
|
||||
/ {
|
||||
model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)";
|
||||
- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||
+ compatible = "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||
+
|
||||
+ aliases {
|
||||
+ led-boot = &led_green_os;
|
||||
+ led-failsafe = &led_red_os;
|
||||
+ led-running = &led_green_os;
|
||||
+ led-upgrade = &led_red_os;
|
||||
+ };
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
@@ -118,13 +118,13 @@
|
||||
@@ -81,12 +88,12 @@
|
||||
&pmx_led_usb_transfer>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- green-os {
|
||||
+ led_green_os: green-os {
|
||||
label = "ib62x0:green:os";
|
||||
gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
|
||||
- default-state = "keep";
|
||||
+ default-state = "on";
|
||||
};
|
||||
- red-os {
|
||||
+ led_red_os: red-os {
|
||||
label = "ib62x0:red:os";
|
||||
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
@@ -118,13 +125,13 @@
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
|
||||
@ -1,6 +1,20 @@
|
||||
--- a/arch/arm/boot/dts/kirkwood-iconnect.dts
|
||||
+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts
|
||||
@@ -16,8 +16,6 @@
|
||||
@@ -8,6 +8,13 @@
|
||||
model = "Iomega Iconnect";
|
||||
compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||
|
||||
+ aliases {
|
||||
+ led-boot = &led_power_blue;
|
||||
+ led-failsafe = &led_power_red;
|
||||
+ led-running = &led_power_blue;
|
||||
+ led-upgrade = &led_power_red;
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
@@ -16,8 +23,6 @@
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8 earlyprintk";
|
||||
stdout-path = &uart0;
|
||||
@ -9,7 +23,23 @@
|
||||
};
|
||||
|
||||
ocp@f1000000 {
|
||||
@@ -146,28 +144,23 @@
|
||||
@@ -89,12 +94,12 @@
|
||||
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
- power-blue {
|
||||
+ led_power_blue: power-blue {
|
||||
label = "power:blue";
|
||||
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||
- default-state = "keep";
|
||||
+ default-state = "on";
|
||||
};
|
||||
- power-red {
|
||||
+ led_power_red: power-red {
|
||||
label = "power:red";
|
||||
gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
@@ -146,28 +151,23 @@
|
||||
status = "okay";
|
||||
|
||||
partition@0 {
|
||||
|
||||
@ -1,6 +1,36 @@
|
||||
--- a/arch/arm/boot/dts/kirkwood-dockstar.dts
|
||||
+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts
|
||||
@@ -78,18 +78,22 @@
|
||||
@@ -8,6 +8,13 @@
|
||||
model = "Seagate FreeAgent Dockstar";
|
||||
compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||
|
||||
+ aliases {
|
||||
+ led-boot = &led_health;
|
||||
+ led-failsafe = &led_fault;
|
||||
+ led-running = &led_health;
|
||||
+ led-upgrade = &led_fault;
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x8000000>;
|
||||
@@ -42,12 +49,12 @@
|
||||
pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- health {
|
||||
+ led_health: health {
|
||||
label = "status:green:health";
|
||||
gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
|
||||
- default-state = "keep";
|
||||
+ default-state = "on";
|
||||
};
|
||||
- fault {
|
||||
+ led_fault: fault {
|
||||
label = "status:orange:fault";
|
||||
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
@@ -78,18 +85,22 @@
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
|
||||
@ -1,6 +1,40 @@
|
||||
--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
|
||||
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
|
||||
@@ -186,18 +186,18 @@
|
||||
@@ -8,6 +8,13 @@
|
||||
model = "Iomega StorCenter ix2-200";
|
||||
compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||
|
||||
+ aliases {
|
||||
+ led-boot = &led_power;
|
||||
+ led-failsafe = &led_health;
|
||||
+ led-running = &led_power;
|
||||
+ led-upgrade = &led_health;
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
@@ -127,16 +134,16 @@
|
||||
&pmx_led_rebuild &pmx_led_health >;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- power_led {
|
||||
+ led_power: power_led {
|
||||
label = "status:white:power_led";
|
||||
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
||||
- default-state = "keep";
|
||||
+ default-state = "on";
|
||||
};
|
||||
rebuild_led {
|
||||
label = "status:white:rebuild_led";
|
||||
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
- health_led {
|
||||
+ led_health: health_led {
|
||||
label = "status:red:health_led";
|
||||
gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
@@ -186,18 +193,18 @@
|
||||
};
|
||||
|
||||
partition@a0000 {
|
||||
@ -22,7 +56,7 @@
|
||||
reg = <0x400000 0x1C00000>;
|
||||
};
|
||||
};
|
||||
@@ -211,7 +211,7 @@
|
||||
@@ -211,7 +218,7 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
kirkwood-lsxhl.dtb \
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/kirkwood-linksys-audi.dts
|
||||
@@ -0,0 +1,245 @@
|
||||
@@ -0,0 +1,250 @@
|
||||
+/*
|
||||
+ * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
|
||||
+ *
|
||||
@ -39,6 +39,10 @@
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ led-boot = &led_power;
|
||||
+ led-failsafe = &led_power;
|
||||
+ led-running = &led_power;
|
||||
+ led-upgrade = &led_power;
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
@ -71,9 +75,10 @@
|
||||
+ pinctrl-0 = < &pmx_led_green_power >;
|
||||
+ pinctrl-names = "default";
|
||||
+
|
||||
+ green-power {
|
||||
+ led_power: power {
|
||||
+ label = "audi:green:power";
|
||||
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||
+ default-state = "on";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
|
||||
@ -1,6 +1,29 @@
|
||||
--- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts
|
||||
+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
|
||||
@@ -69,9 +69,18 @@
|
||||
@@ -26,6 +26,10 @@
|
||||
};
|
||||
|
||||
aliases {
|
||||
+ led-boot = &led_white_health;
|
||||
+ led-failsafe = &led_white_health;
|
||||
+ led-running = &led_white_health;
|
||||
+ led-upgrade = &led_white_health;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
@@ -58,9 +62,10 @@
|
||||
pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- white-health {
|
||||
+ led_white_health: white-health {
|
||||
label = "viper:white:health";
|
||||
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||
+ default-state = "on";
|
||||
};
|
||||
|
||||
white-pulse {
|
||||
@@ -69,9 +74,18 @@
|
||||
};
|
||||
};
|
||||
|
||||
@ -21,7 +44,7 @@
|
||||
compatible = "marvell,dsa";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
@@ -163,22 +172,22 @@
|
||||
@@ -163,22 +177,22 @@
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
@ -48,7 +71,7 @@
|
||||
reg = <0x1EA0000 0x1760000>;
|
||||
};
|
||||
|
||||
@@ -209,53 +218,6 @@
|
||||
@@ -209,53 +223,6 @@
|
||||
|
||||
&mdio {
|
||||
status = "okay";
|
||||
@ -102,7 +125,7 @@
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
@@ -274,10 +236,14 @@
|
||||
@@ -274,10 +241,14 @@
|
||||
};
|
||||
|
||||
/* eth1 is connected to the switch at port 6. However DSA only supports a
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user