Merge Official Source

This commit is contained in:
CN_SZTL 2020-08-07 18:34:26 +08:00
commit 349f7e09e7
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
235 changed files with 4186 additions and 5307 deletions

View File

@ -103,6 +103,15 @@ menu "Global build settings"
help
If enabled, buildinfo files will be stored in /etc/build.* of firmware.
config REPRODUCIBLE_DEBUG_INFO
bool "Make debug information reproducible"
default BUILDBOT
help
This strips the local build path out of debug information. This has the
advantage of making it reproducible, but the disadvantage of making local
debugging using ./scripts/remote-gdb harder, since the debug data will
no longer point to the full path on the build host.
config COLLECT_KERNEL_DEBUG
bool
prompt "Collect kernel debug information"

View File

@ -114,6 +114,10 @@ $(eval $(call SetupHostCommand,grep,Please install GNU 'grep', \
ggrep --version 2>&1 | grep GNU, \
grep --version 2>&1 | grep GNU))
$(eval $(call SetupHostCommand,egrep,Please install GNU 'grep', \
gegrep --version 2>&1 | grep GNU, \
egrep --version 2>&1 | grep GNU))
$(eval $(call SetupHostCommand,getopt, \
Please install an extended getopt version that supports --long, \
gnugetopt -o t --long test -- --test | grep '^ *--test *--', \

View File

@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
include $(INCLUDE_DIR)/feeds.mk
PKG_NAME:=base-files
PKG_RELEASE:=225
PKG_RELEASE:=226
PKG_FLAGS:=nonshared
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/

View File

@ -107,10 +107,15 @@ config_unset() {
# config_get <variable> <section> <option> [<default>]
# config_get <section> <option>
config_get() {
case "$2${3:-$1}" in
*[^A-Za-z0-9_]*) : ;;
*)
case "$3" in
"") eval echo "\"\${CONFIG_${1}_${2}:-\${4}}\"";;
*) eval export ${NO_EXPORT:+-n} -- "${1}=\${CONFIG_${2}_${3}:-\${4}}";;
esac
;;
esac
}
# config_get_bool <variable> <section> <option> [<default>]

View File

@ -64,6 +64,7 @@ netgear,wndrmac-v1)
;;
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300tn|\
netgear,wndr4300sw)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x20000"
;;

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=binutils
PKG_VERSION:=2.27
PKG_VERSION:=2.34
PKG_RELEASE:=1
PKG_SOURCE_URL:=@GNU/binutils
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_VERSION:=$(PKG_VERSION)
PKG_HASH:=369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
PKG_HASH:=f00b0e8803dc9bab1e2165bd568528135be734df3fabf8d0161828cd56028952
PKG_FIXUP:=autoreconf
PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
@ -37,10 +37,17 @@ define Package/libbfd
DEPENDS:=+zlib $(ICONV_DEPENDS) $(INTL_DEPENDS)
endef
define Package/libctf
SECTION:=libs
CATEGORY:=Libraries
TITLE:=libctf
DEPENDS:=+libbfd
endef
define Package/libopcodes
SECTION:=libs
CATEGORY:=Libraries
TITLE:=libbfd
TITLE:=libopcodes
DEPENDS:=+libbfd
endef
@ -56,7 +63,7 @@ define Package/objdump
SECTION:=devel
CATEGORY:=Development
TITLE:=objdump
DEPENDS:=+libopcodes
DEPENDS:=+libopcodes +libctf
endef
define Package/ar
@ -94,7 +101,12 @@ endef
define Package/libbfd/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so* $(1)/usr/lib/
endef
define Package/libctf/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libctf.so* $(1)/usr/lib/
endef
define Package/libopcodes/install
@ -121,6 +133,7 @@ define Package/binutils/install
endef
$(eval $(call BuildPackage,libbfd))
$(eval $(call BuildPackage,libctf))
$(eval $(call BuildPackage,libopcodes))
$(eval $(call BuildPackage,binutils))
$(eval $(call BuildPackage,objdump))

View File

@ -1,65 +0,0 @@
From 183eb37e25d903ccd68cc2d8f8a37e75872c03d2 Mon Sep 17 00:00:00 2001
From: Nick Clifton <nickc@redhat.com>
Date: Tue, 6 Sep 2016 17:35:35 +0100
Subject: [PATCH 1/2] Do not pass host compiler sanitization flags on to linker
testsuite.
* Makefile.am (CFLAGS_FOR_TARGET): Define as a copy of CFLAGS but
without any sanitization options.
(CXXFLAGS_FOR_TARGET): Define as a copy of CXXFLAGS but without
any sanitization options.
(check-DEJAGNU): Pass CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET
as CFLAGS and CXXFLAGS respectively.
---
ld/Makefile.am | 8 ++++++--
ld/Makefile.in | 8 ++++++--
2 files changed, 12 insertions(+), 4 deletions(-)
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -136,6 +136,10 @@ CXX_FOR_TARGET = ` \
fi; \
fi`
+# Strip out sanitization options as we want to test building binaries without any extra paraphernalia
+CFLAGS_FOR_TARGET = `echo $(CFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+
transform = s/^ld-new$$/$(installed_linker)/;@program_transform_name@
bin_PROGRAMS = ld-new
info_TEXINFOS = ld.texinfo
@@ -2075,8 +2079,8 @@ check-DEJAGNU: site.exp
runtest=$(RUNTEST); \
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
$$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \
- CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \
- CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \
+ CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS_FOR_TARGET)" \
+ CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \
OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \
LIBIBERTY="$(LIBIBERTY) $(LIBINTL)" LIBS="$(LIBS)" \
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -507,6 +507,10 @@ CXX_FOR_TARGET = ` \
fi; \
fi`
+
+# Strip out sanitization options as they require special host libraries.
+CFLAGS_FOR_TARGET = `echo $(CFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
+CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
info_TEXINFOS = ld.texinfo
ld_TEXINFOS = configdoc.texi
noinst_TEXINFOS = ldint.texinfo
@@ -3644,8 +3648,8 @@ check-DEJAGNU: site.exp
runtest=$(RUNTEST); \
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
$$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \
- CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \
- CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \
+ CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS_FOR_TARGET)" \
+ CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \
OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \
LIBIBERTY="$(LIBIBERTY) $(LIBINTL)" LIBS="$(LIBS)" \

View File

@ -35,6 +35,7 @@ PKG_DRIVERS = \
PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_kmod-mac80211 \
CONFIG_PACKAGE_CFG80211_TESTMODE \
CONFIG_PACKAGE_MAC80211_DEBUGFS \
CONFIG_PACKAGE_MAC80211_MESH \
CONFIG_PACKAGE_MAC80211_TRACING \
@ -56,7 +57,6 @@ config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
config-y:= \
WLAN \
NL80211_TESTMODE \
CFG80211_WEXT \
CFG80211_CERTIFICATION_ONUS \
MAC80211_RC_MINSTREL \
@ -80,6 +80,7 @@ config-y:= \
WLAN_VENDOR_ZYDAS \
config-$(call config_package,cfg80211) += CFG80211
config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE
config-$(call config_package,mac80211) += MAC80211
config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
@ -108,6 +109,20 @@ define KernelPackage/cfg80211/description
cfg80211 is the Linux wireless LAN (802.11) configuration API.
endef
define KernelPackage/cfg80211/config
if PACKAGE_kmod-cfg80211
config PACKAGE_CFG80211_TESTMODE
bool "Enable testmode command support"
default n
help
This is typically used for tests and calibration during
manufacturing, or vendor specific debugging features
endif
endef
define KernelPackage/mac80211
$(call KernelPackage/mac80211/Default)
TITLE:=Linux 802.11 Wireless Networking Stack

View File

@ -0,0 +1,81 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Fri, 24 Jul 2020 20:25:07 +0200
Subject: [PATCH] mac80211: improve AQL tx airtime estimation
AQL does not take into account that most HT/VHT/HE traffic is A-MPDU aggregated.
Because of that, the per-packet airtime overhead is vastly overestimated.
Improve it by assuming an average aggregation length of 16 for non-legacy
traffic if not using the VO AC queue.
This should improve performance with high data rates, especially with multiple
stations
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/net/mac80211/airtime.c
+++ b/net/mac80211/airtime.c
@@ -551,7 +551,7 @@ EXPORT_SYMBOL_GPL(ieee80211_calc_tx_airt
u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *pubsta,
- int len)
+ int len, bool ampdu)
{
struct ieee80211_supported_band *sband;
struct ieee80211_chanctx_conf *conf;
@@ -572,10 +572,26 @@ u32 ieee80211_calc_expected_tx_airtime(s
if (pubsta) {
struct sta_info *sta = container_of(pubsta, struct sta_info,
sta);
+ struct ieee80211_tx_rate *rate = &sta->tx_stats.last_rate;
+ u32 airtime;
- return ieee80211_calc_tx_airtime_rate(hw,
- &sta->tx_stats.last_rate,
- band, len);
+ if (!(rate->flags & (IEEE80211_TX_RC_VHT_MCS |
+ IEEE80211_TX_RC_MCS)))
+ ampdu = false;
+
+ /*
+ * Assume that HT/VHT transmission on any AC except VO will
+ * use aggregation. Since we don't have reliable reporting
+ * of aggregation length, assume an average of 16.
+ * This will not be very accurate, but much better than simply
+ * assuming un-aggregated tx.
+ */
+ airtime = ieee80211_calc_tx_airtime_rate(hw, rate, band,
+ ampdu ? len * 16 : len);
+ if (ampdu)
+ airtime /= 16;
+
+ return airtime;
}
if (!conf)
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -2278,7 +2278,7 @@ extern const struct ethtool_ops ieee8021
u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *pubsta,
- int len);
+ int len, bool ampdu);
#ifdef CPTCFG_MAC80211_NOINLINE
#define debug_noinline noinline
#else
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3694,10 +3694,11 @@ encap_out:
if (vif &&
wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
+ bool ampdu = txq->ac != IEEE80211_AC_VO;
u32 airtime;
airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
- skb->len);
+ skb->len, ampdu);
if (airtime) {
airtime = ieee80211_info_set_tx_time_est(info, airtime);
ieee80211_sta_update_pending_airtime(local, tx.sta,

View File

@ -0,0 +1,31 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sat, 25 Jul 2020 10:42:30 +0200
Subject: [PATCH] mac80211: remove STA txq pending airtime underflow
warning
This warning can trigger if there is a mismatch between frames that were
sent with the sta pointer set vs tx status frames reported for the sta address.
This can happen due to race conditions on re-creating stations, or even
in the case of .sta_add/remove being used instead of .sta_state, which can cause
frames to be sent to a station that has not been uploaded yet.
If there is an actual underflow issue, it should show up in the device airtime
warning below, so it is better to remove this one.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -1924,9 +1924,7 @@ void ieee80211_sta_update_pending_airtim
if (sta) {
tx_pending = atomic_sub_return(tx_airtime,
&sta->airtime[ac].aql_tx_pending);
- if (WARN_ONCE(tx_pending < 0,
- "STA %pM AC %d txq pending airtime underflow: %u, %u",
- sta->addr, ac, tx_pending, tx_airtime))
+ if (tx_pending < 0)
atomic_cmpxchg(&sta->airtime[ac].aql_tx_pending,
tx_pending, 0);
}

View File

@ -0,0 +1,186 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sat, 25 Jul 2020 20:53:23 +0200
Subject: [PATCH] mac80211: add a function for running rx without passing skbs
to the stack
This can be used to run mac80211 rx processing on a batch of frames in NAPI
poll before passing them to the network stack in a large batch.
This can improve icache footprint, or it can be used to pass frames via
netif_receive_skb_list.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -4358,6 +4358,31 @@ void ieee80211_free_hw(struct ieee80211_
void ieee80211_restart_hw(struct ieee80211_hw *hw);
/**
+ * ieee80211_rx_list - receive frame and store processed skbs in a list
+ *
+ * Use this function to hand received frames to mac80211. The receive
+ * buffer in @skb must start with an IEEE 802.11 header. In case of a
+ * paged @skb is used, the driver is recommended to put the ieee80211
+ * header of the frame on the linear part of the @skb to avoid memory
+ * allocation and/or memcpy by the stack.
+ *
+ * This function may not be called in IRQ context. Calls to this function
+ * for a single hardware must be synchronized against each other. Calls to
+ * this function, ieee80211_rx_ni() and ieee80211_rx_irqsafe() may not be
+ * mixed for a single hardware. Must not run concurrently with
+ * ieee80211_tx_status() or ieee80211_tx_status_ni().
+ *
+ * This function must be called with BHs disabled and RCU read lock
+ *
+ * @hw: the hardware this frame came in on
+ * @sta: the station the frame was received from, or %NULL
+ * @skb: the buffer to receive, owned by mac80211 after this call
+ * @list: the destination list
+ */
+void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
+ struct sk_buff *skb, struct list_head *list);
+
+/**
* ieee80211_rx_napi - receive frame from NAPI context
*
* Use this function to hand received frames to mac80211. The receive
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -218,7 +218,7 @@ enum ieee80211_rx_flags {
};
struct ieee80211_rx_data {
- struct napi_struct *napi;
+ struct list_head *list;
struct sk_buff *skb;
struct ieee80211_local *local;
struct ieee80211_sub_if_data *sdata;
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2552,8 +2552,8 @@ static void ieee80211_deliver_skb_to_loc
memset(skb->cb, 0, sizeof(skb->cb));
/* deliver to local stack */
- if (rx->napi)
- napi_gro_receive(rx->napi, skb);
+ if (rx->list)
+ list_add_tail(&skb->list, rx->list);
else
netif_receive_skb(skb);
}
@@ -3843,7 +3843,6 @@ void ieee80211_release_reorder_timeout(s
/* This is OK -- must be QoS data frame */
.security_idx = tid,
.seqno_idx = tid,
- .napi = NULL, /* must be NULL to not have races */
};
struct tid_ampdu_rx *tid_agg_rx;
@@ -4453,8 +4452,8 @@ static bool ieee80211_invoke_fast_rx(str
/* deliver to local stack */
skb->protocol = eth_type_trans(skb, fast_rx->dev);
memset(skb->cb, 0, sizeof(skb->cb));
- if (rx->napi)
- napi_gro_receive(rx->napi, skb);
+ if (rx->list)
+ list_add_tail(&skb->list, rx->list);
else
netif_receive_skb(skb);
@@ -4521,7 +4520,7 @@ static bool ieee80211_prepare_and_rx_han
static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
struct ieee80211_sta *pubsta,
struct sk_buff *skb,
- struct napi_struct *napi)
+ struct list_head *list)
{
struct ieee80211_local *local = hw_to_local(hw);
struct ieee80211_sub_if_data *sdata;
@@ -4536,7 +4535,7 @@ static void __ieee80211_rx_handle_packet
memset(&rx, 0, sizeof(rx));
rx.skb = skb;
rx.local = local;
- rx.napi = napi;
+ rx.list = list;
if (ieee80211_is_data(fc) || ieee80211_is_mgmt(fc))
I802_DEBUG_INC(local->dot11ReceivedFragmentCount);
@@ -4644,8 +4643,8 @@ static void __ieee80211_rx_handle_packet
* This is the receive path handler. It is called by a low level driver when an
* 802.11 MPDU is received from the hardware.
*/
-void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
- struct sk_buff *skb, struct napi_struct *napi)
+void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
+ struct sk_buff *skb, struct list_head *list)
{
struct ieee80211_local *local = hw_to_local(hw);
struct ieee80211_rate *rate = NULL;
@@ -4737,36 +4736,53 @@ void ieee80211_rx_napi(struct ieee80211_
status->rx_flags = 0;
/*
- * key references and virtual interfaces are protected using RCU
- * and this requires that we are in a read-side RCU section during
- * receive processing
- */
- rcu_read_lock();
-
- /*
* Frames with failed FCS/PLCP checksum are not returned,
* all other frames are returned without radiotap header
* if it was previously present.
* Also, frames with less than 16 bytes are dropped.
*/
skb = ieee80211_rx_monitor(local, skb, rate);
- if (!skb) {
- rcu_read_unlock();
+ if (!skb)
return;
- }
ieee80211_tpt_led_trig_rx(local,
((struct ieee80211_hdr *)skb->data)->frame_control,
skb->len);
- __ieee80211_rx_handle_packet(hw, pubsta, skb, napi);
-
- rcu_read_unlock();
+ __ieee80211_rx_handle_packet(hw, pubsta, skb, list);
return;
drop:
kfree_skb(skb);
}
+EXPORT_SYMBOL(ieee80211_rx_list);
+
+void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
+ struct sk_buff *skb, struct napi_struct *napi)
+{
+ struct sk_buff *tmp;
+ LIST_HEAD(list);
+
+
+ /*
+ * key references and virtual interfaces are protected using RCU
+ * and this requires that we are in a read-side RCU section during
+ * receive processing
+ */
+ rcu_read_lock();
+ ieee80211_rx_list(hw, pubsta, skb, &list);
+ rcu_read_unlock();
+
+ if (!napi) {
+ netif_receive_skb_list(&list);
+ return;
+ }
+
+ list_for_each_entry_safe(skb, tmp, &list, list) {
+ skb_list_del_init(skb);
+ napi_gro_receive(napi, skb);
+ }
+}
EXPORT_SYMBOL(ieee80211_rx_napi);
/* This is a version of the rx handler that can be called from hard irq

View File

@ -0,0 +1,55 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 26 Jul 2020 14:37:02 +0200
Subject: [PATCH] net/fq_impl: use skb_get_hash instead of
skb_get_hash_perturb
This avoids unnecessary regenerating of the skb flow hash
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/include/net/fq.h
+++ b/include/net/fq.h
@@ -69,15 +69,6 @@ struct fq {
struct list_head backlogs;
spinlock_t lock;
u32 flows_cnt;
-#if LINUX_VERSION_IS_GEQ(5,3,10) || \
- LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
- LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
- LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
- LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
- siphash_key_t perturbation;
-#else
- u32 perturbation;
-#endif
u32 limit;
u32 memory_limit;
u32 memory_usage;
--- a/include/net/fq_impl.h
+++ b/include/net/fq_impl.h
@@ -108,15 +108,7 @@ begin:
static u32 fq_flow_idx(struct fq *fq, struct sk_buff *skb)
{
-#if LINUX_VERSION_IS_GEQ(5,3,10) || \
- LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
- LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
- LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
- LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
- u32 hash = skb_get_hash_perturb(skb, &fq->perturbation);
-#else
- u32 hash = skb_get_hash_perturb(skb, fq->perturbation);
-#endif
+ u32 hash = skb_get_hash(skb);
return reciprocal_scale(hash, fq->flows_cnt);
}
@@ -316,7 +308,6 @@ static int fq_init(struct fq *fq, int fl
INIT_LIST_HEAD(&fq->backlogs);
spin_lock_init(&fq->lock);
fq->flows_cnt = max_t(u32, flows_cnt, 1);
- get_random_bytes(&fq->perturbation, sizeof(fq->perturbation));
fq->quantum = 300;
fq->limit = 8192;
fq->memory_limit = 16 << 20; /* 16 MBytes */

View File

@ -0,0 +1,19 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 26 Jul 2020 14:42:58 +0200
Subject: [PATCH] mac80211: calculcate skb hash early when using itxq
This avoids flow separation issues when using software encryption
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3937,6 +3937,7 @@ void __ieee80211_subif_start_xmit(struct
if (local->ops->wake_tx_queue) {
u16 queue = __ieee80211_select_queue(sdata, sta, skb);
skb_set_queue_mapping(skb, queue);
+ skb_get_hash(skb);
}
if (sta) {

View File

@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2020-05-30
PKG_SOURCE_VERSION:=85c516081338d3d1454fb53b5741321c2adefbef
PKG_MIRROR_HASH:=a3e110700843ecfee10eba274ab6fe63b9d78a00eb96ee1634b145e0a9ae9a69
PKG_SOURCE_DATE:=2020-07-22
PKG_SOURCE_VERSION:=b5df0fbb1847a51f0a11f03a3fa8dc9d98d4df82
PKG_MIRROR_HASH:=70aca7f8912b89af975c7b63fdf25d41be831c434e0c991fcbdaa60127d4acd5
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_BUILD_PARALLEL:=1
@ -23,12 +23,17 @@ PKG_CONFIG_DEPENDS += \
CONFIG_PACKAGE_kmod-mt76x2-common \
CONFIG_PACKAGE_kmod-mt76x2 \
CONFIG_PACKAGE_kmod-mt76x2u \
CONFIG_PACKAGE_kmod-mt7603
CONFIG_PACKAGE_kmod-mt7603 \
CONFIG_PACKAGE_CFG80211_TESTMODE
STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
CMAKE_SOURCE_DIR:=$(PKG_BUILD_DIR)/tools
CMAKE_BINARY_DIR:=$(PKG_BUILD_DIR)/tools
define KernelPackage/mt76-default
SUBMENU:=Wireless Drivers
@ -170,10 +175,29 @@ define KernelPackage/mt7663-firmware-sta
TITLE:=MediaTek MT7663e firmware (client mode offload)
endef
define KernelPackage/mt7663-usb-sdio
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7663 USB/SDIO shared code
DEPENDS+=+kmod-mt7615-common
HIDDEN:=1
FILES:= \
$(PKG_BUILD_DIR)/mt7615/mt7663-usb-sdio-common.ko
endef
define KernelPackage/mt7663s
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7663s wireless driver
DEPENDS+=+kmod-mmc +kmod-mt7615-common +kmod-mt7663-usb-sdio
FILES:= \
$(PKG_BUILD_DIR)/mt76-sdio.ko \
$(PKG_BUILD_DIR)/mt7615/mt7663s.ko
AUTOLOAD:=$(call AutoProbe,mt7663s)
endef
define KernelPackage/mt7663u
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7663u wireless driver
DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common
DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common +kmod-mt7663-usb-sdio
FILES:= $(PKG_BUILD_DIR)/mt7615/mt7663u.ko
AUTOLOAD:=$(call AutoProbe,mt7663u)
endef
@ -186,6 +210,15 @@ define KernelPackage/mt7915e
AUTOLOAD:=$(call AutoProbe,mt7915e)
endef
define Package/mt76-test
SECTION:=devel
CATEGORY:=Development
TITLE:=mt76 testmode CLI
DEPENDS:=kmod-mt76-core +libnl-tiny
endef
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
NOSTDINC_FLAGS = \
-I$(PKG_BUILD_DIR) \
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
@ -199,6 +232,11 @@ ifdef CONFIG_PACKAGE_MAC80211_MESH
NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
endif
ifdef CONFIG_PACKAGE_CFG80211_TESTMODE
NOSTDINC_FLAGS += -DCONFIG_NL80211_TESTMODE
PKG_MAKE_FLAGS += CONFIG_NL80211_TESTMODE=y
endif
ifdef CONFIG_PACKAGE_kmod-mt76-usb
PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
endif
@ -239,6 +277,13 @@ ifdef CONFIG_PACKAGE_kmod-mt7615e
NOSTDINC_FLAGS += -DCONFIG_MT7622_WMAC
endif
endif
ifdef CONFIG_PACKAGE_kmod-mt7663-usb-sdio
PKG_MAKE_FLAGS += CONFIG_MT7663_USB_SDIO_COMMON=m
endif
ifdef CONFIG_PACKAGE_kmod-mt7663s
PKG_MAKE_FLAGS += CONFIG_MT76_SDIO=m
PKG_MAKE_FLAGS += CONFIG_MT7663S=m
endif
ifdef CONFIG_PACKAGE_kmod-mt7663u
PKG_MAKE_FLAGS += CONFIG_MT7663U=m
endif
@ -253,6 +298,11 @@ define Build/Compile
M="$(PKG_BUILD_DIR)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules
$(MAKE) -C $(PKG_BUILD_DIR)/tools
endef
define Build/Install
:
endef
define Package/kmod-mt76/install
@ -334,6 +384,11 @@ define KernelPackage/mt7915e/install
$(1)/lib/firmware/mediatek
endef
define Package/mt76-test/install
mkdir -p $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/mt76-test $(1)/usr/sbin
endef
$(eval $(call KernelPackage,mt76-core))
$(eval $(call KernelPackage,mt76-usb))
$(eval $(call KernelPackage,mt76x02-usb))
@ -350,6 +405,9 @@ $(eval $(call KernelPackage,mt7615-firmware))
$(eval $(call KernelPackage,mt7615e))
$(eval $(call KernelPackage,mt7663-firmware-ap))
$(eval $(call KernelPackage,mt7663-firmware-sta))
$(eval $(call KernelPackage,mt7663-usb-sdio))
$(eval $(call KernelPackage,mt7663u))
$(eval $(call KernelPackage,mt7663s))
$(eval $(call KernelPackage,mt7915e))
$(eval $(call KernelPackage,mt76))
$(eval $(call BuildPackage,mt76-test))

View File

@ -5,9 +5,9 @@ PKG_RELEASE=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
PKG_MIRROR_HASH:=cb941cd33f43b38ef1a1f2b4fd212e0bb21c100dcdd2ab1976f8cc2071566d32
PKG_SOURCE_DATE:=2020-07-11
PKG_SOURCE_VERSION:=f4e9bf73ac5c0ee6b8f240e2a2100e70ca56d705
PKG_MIRROR_HASH:=cf963b19f5a25da85b2d8888514cbcc33c3f641c4478c9c25312b8bf83fe9e6b
PKG_SOURCE_DATE:=2020-08-06
PKG_SOURCE_VERSION:=9e52171d70def760a6949676800d0b73f85ee22d
CMAKE_INSTALL:=1
PKG_LICENSE:=ISC

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_UPSTREAM_VERSION:=2.82
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq

View File

@ -42,9 +42,13 @@ dnsmasq_ignore_opt() {
bootp-*|\
pxe-*)
[ -z "$dnsmasq_has_dhcp" ] ;;
dnssec-*|\
dnssec*|\
trust-anchor)
[ -z "$dnsmasq_has_dnssec" ] ;;
if [ -z "$dnsmasq_has_dnssec" ]; then
echo "dnsmasq: \"$opt\" requested, but dnssec support is not available" >&2
exit 1
fi
;;
tftp-*)
[ -z "$dnsmasq_has_tftp" ] ;;
ipset)

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openvpn
PKG_VERSION:=2.4.9
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE_URL:=\
https://build.openvpn.net/downloads/releases/ \

View File

@ -13,7 +13,8 @@
case "$ACTION" in
up|down)
if get_openvpn_option "$config" command "$ACTION"; then
exec /bin/sh -c "$command $ACTION $INSTANCE $*"
shift
exec /bin/sh -c "$command $*"
fi
;;
esac

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
PKG_SOURCE_DATE:=2020-06-03
PKG_SOURCE_VERSION:=939c281c70ef82929ffcb3cb383fd6fdc40f341b
PKG_MIRROR_HASH:=4cd16ef955fe32ddb579ec79f3d8f636e7100ccecd95be1991e7e4d317090a54
PKG_SOURCE_DATE:=2020-08-05
PKG_SOURCE_VERSION:=212f8364d49c1bc27dd8bdc394fc3615ea9b7ba3
PKG_MIRROR_HASH:=c717924cd075951846cb8ad271f4754db56af53a271ed0afbdc5a2f482e15f97
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=ISC

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
PKG_SOURCE_DATE:=2020-07-30
PKG_SOURCE_VERSION:=2ae5cbcf1d4509837a16eceafca374e9bf0ea850
PKG_MIRROR_HASH:=479d4a4bfb71ef54300e7b669846e596db7792566302b4d29e3265643d89bce3
PKG_SOURCE_DATE:=2020-08-06
PKG_SOURCE_VERSION:=ab55357dfe5bd0edac0b9556a83e69814df791b1
PKG_MIRROR_HASH:=38c882e105811bcd10b5ce55f91a16a647ed2ad436aec01cd03fda588b7bfca9
CMAKE_INSTALL:=1
PKG_LICENSE:=GPL-2.0

View File

@ -144,7 +144,7 @@ ifeq ($(or $(CONFIG_EXTERNAL_TOOLCHAIN),$(CONFIG_TARGET_uml)),)
ifeq ($(CONFIG_GCC_USE_IREMAP),y)
iremap = -iremap$(1):$(2)
else
iremap = -ffile-prefix-map=$(1)=$(2)
iremap = -f$(if $(CONFIG_REPRODUCIBLE_DEBUG_INFO),file,macro)-prefix-map=$(1)=$(2)
endif
endif

View File

@ -130,7 +130,6 @@ CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_SYSFS=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y

View File

@ -145,7 +145,6 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_SYSFS=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y

View File

@ -339,7 +339,6 @@ CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_LATCH is not set
CONFIG_GPIO_NXP_74HC153=y
CONFIG_GPIO_PCF857X=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y

View File

@ -122,7 +122,6 @@ CONFIG_GPIOLIB=y
CONFIG_GPIO_DWAPB=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_SNPS_CREG=y
CONFIG_GPIO_SYSFS=y
CONFIG_GRACE_PERIOD=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HAS_DMA=y

View File

@ -211,7 +211,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GLOB=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_SYSFS=y
# CONFIG_GRO_CELLS is not set
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y

View File

@ -62,7 +62,6 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_AR2315=y
CONFIG_GPIO_AR5312=y
CONFIG_GPIO_SYSFS=y
# CONFIG_GRO_CELLS is not set
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y

View File

@ -81,7 +81,6 @@ CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_74X164=y
CONFIG_GPIO_ATH79=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y

View File

@ -90,7 +90,6 @@ CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_74X164=y
CONFIG_GPIO_ATH79=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y

View File

@ -40,7 +40,7 @@
};
};
leds {
leds: leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@ -57,16 +57,6 @@
default-state = "keep";
};
wan_green {
label = "netgear:green:wan";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
wan_amber {
label = "netgear:amber:wan";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
wlan2g_green {
label = "netgear:green:wlan2g";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
@ -88,13 +78,6 @@
label = "netgear:amber:wps";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
usb_green {
label = "netgear:green:usb";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
ubi-concat {
@ -272,28 +255,6 @@
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
usb_power {
gpio-hog;
line-name = "netgear:power:usb";
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
};
};
};
&usb_phy {
status = "okay";
};
&usb {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};

View File

@ -2,6 +2,8 @@
/dts-v1/;
#include "ar9344_netgear_wndr.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"
/ {
compatible = "netgear,wndr3700-v4", "qca,ar9344";

View File

@ -2,6 +2,8 @@
/dts-v1/;
#include "ar9344_netgear_wndr.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"
/ {
compatible = "netgear,wndr4300", "qca,ar9344";

View File

@ -2,6 +2,8 @@
/dts-v1/;
#include "ar9344_netgear_wndr.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"
/ {
compatible = "netgear,wndr4300sw", "qca,ar9344";

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9344_netgear_wndr.dtsi"
/ {
compatible = "netgear,wndr4300tn", "qca,ar9344";
model = "Netgear WNDR4300TN";
};

View File

@ -0,0 +1,34 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
&leds {
usb_green {
label = "netgear:green:usb";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
&ath9k {
usb_power {
gpio-hog;
line-name = "netgear:power:usb";
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
};
};
&usb_phy {
status = "okay";
};
&usb {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};

View File

@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
&leds {
wan_green {
label = "netgear:green:wan";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
wan_amber {
label = "netgear:amber:wan";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
};

View File

@ -206,6 +206,16 @@ define Device/netgear_wndr4300sw
endef
TARGET_DEVICES += netgear_wndr4300sw
define Device/netgear_wndr4300tn
SOC := ar9344
DEVICE_MODEL := WNDR4300TN
NETGEAR_KERNEL_MAGIC := 0x33373033
NETGEAR_BOARD_ID := WNDR4300TN
NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
$(Device/netgear_ath79_nand)
endef
TARGET_DEVICES += netgear_wndr4300tn
define Device/netgear_wndr4300-v2
SOC := qca9563
DEVICE_MODEL := WNDR4300

View File

@ -29,6 +29,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
;;
netgear,wndr4300tn)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
zyxel,nbg6716)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"

View File

@ -15,6 +15,7 @@ case "$FIRMWARE" in
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300tn|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
caldata_extract "caldata" 0x1000 0x440
@ -29,6 +30,7 @@ case "$FIRMWARE" in
netgear,wndr3700-v4|\
netgear,wndr4300|\
netgear,wndr4300sw|\
netgear,wndr4300tn|\
netgear,wndr4300-v2|\
netgear,wndr4500-v3)
caldata_extract "caldata" 0x5000 0x440

View File

@ -205,7 +205,6 @@ CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_GPIO_BCM_VIRT is not set
CONFIG_GPIO_RASPBERRYPI_EXP=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_HAS_DMA=y

View File

@ -260,7 +260,6 @@ CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_BCM_VIRT=y
CONFIG_GPIO_RASPBERRYPI_EXP=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_HARDIRQS_SW_RESEND=y

View File

@ -308,7 +308,6 @@ CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_BCM_VIRT=y
CONFIG_GPIO_RASPBERRYPI_EXP=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_HARDIRQS_SW_RESEND=y

View File

@ -314,7 +314,6 @@ CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_BCM_VIRT=y
CONFIG_GPIO_RASPBERRYPI_EXP=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_HARDIRQS_SW_RESEND=y

View File

@ -83,7 +83,6 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_WDT=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y

View File

@ -83,7 +83,6 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_WDT=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y

View File

@ -162,7 +162,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_74X164=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_HARDIRQS_SW_RESEND=y

View File

@ -173,7 +173,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_74X164=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_HARDIRQS_SW_RESEND=y

View File

@ -107,7 +107,6 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_BCM63XX=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_SYSFS=y
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y

View File

@ -1,37 +1,66 @@
From e190f57df3c7e7713687905c14e72fbcbd81c5e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Thu, 4 Jun 2020 15:59:05 +0200
Subject: [PATCH] leds-bcm6328: support second hw blinking interval
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Right now the driver uses only 3 LED modes:
0: On
1: HW Blinking (Interval 1)
3: Off
However, the controller supports a second HW blinking interval, which results
in 4 possible LED modes:
0: On
1: HW Blinking (Interval 1)
2: HW Blinking (Interval 2)
3: Off
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
---
drivers/leds/leds-bcm6328.c | 97 ++++++++++++++++++++++++++++---------
1 file changed, 75 insertions(+), 22 deletions(-)
--- a/drivers/leds/leds-bcm6328.c
+++ b/drivers/leds/leds-bcm6328.c
@@ -24,12 +24,16 @@
@@ -24,12 +24,17 @@
#define BCM6328_LED_MAX_COUNT 24
#define BCM6328_LED_DEF_DELAY 500
+#define BCM6328_LED_INTERVAL_NUM 2
#define BCM6328_LED_INTERVAL_MS 20
-#define BCM6328_LED_INTERVAL_MS 20
#define BCM6328_LED_INTV_MASK 0x3f
-#define BCM6328_LED_INTV_MASK 0x3f
-#define BCM6328_LED_FAST_INTV_SHIFT 6
-#define BCM6328_LED_FAST_INTV_MASK (BCM6328_LED_INTV_MASK << \
- BCM6328_LED_FAST_INTV_SHIFT)
+#define BCM6328_LED_INTV1_SHIFT 0
+#define BCM6328_LED_INTV1_MASK (BCM6328_LED_INTV_MASK << \
+ BCM6328_LED_INTV1_SHIFT)
+#define BCM6328_LED_INTV2_SHIFT 6
+#define BCM6328_LED_INTV2_MASK (BCM6328_LED_INTV_MASK << \
+ BCM6328_LED_INTV2_SHIFT)
+#define BCM6328_LED_BLINK_DELAYS 2
+#define BCM6328_LED_BLINK_MS 20
+
+#define BCM6328_LED_BLINK_MASK 0x3f
+#define BCM6328_LED_BLINK1_SHIFT 0
+#define BCM6328_LED_BLINK1_MASK (BCM6328_LED_BLINK_MASK << \
+ BCM6328_LED_BLINK1_SHIFT)
+#define BCM6328_LED_BLINK2_SHIFT 6
+#define BCM6328_LED_BLINK2_MASK (BCM6328_LED_BLINK_MASK << \
+ BCM6328_LED_BLINK2_SHIFT)
#define BCM6328_SERIAL_LED_EN BIT(12)
#define BCM6328_SERIAL_LED_MUX BIT(13)
#define BCM6328_SERIAL_LED_CLK_NPOL BIT(14)
@@ -45,8 +49,8 @@
@@ -45,8 +50,8 @@
#define BCM6328_LED_MODE_MASK 3
#define BCM6328_LED_MODE_ON 0
-#define BCM6328_LED_MODE_FAST 1
-#define BCM6328_LED_MODE_BLINK 2
+#define BCM6328_LED_MODE_INTV1 1
+#define BCM6328_LED_MODE_INTV2 2
+#define BCM6328_LED_MODE_BLINK1 1
+#define BCM6328_LED_MODE_BLINK2 2
#define BCM6328_LED_MODE_OFF 3
#define BCM6328_LED_SHIFT(X) ((X) << 1)
@@ -127,12 +131,18 @@ static void bcm6328_led_set(struct led_c
@@ -127,12 +132,18 @@ static void bcm6328_led_set(struct led_c
unsigned long flags;
spin_lock_irqsave(led->lock, flags);
@ -51,7 +80,28 @@
spin_unlock_irqrestore(led->lock, flags);
}
@@ -176,20 +186,59 @@ static int bcm6328_blink_set(struct led_
@@ -140,8 +151,8 @@ static unsigned long bcm6328_blink_delay
{
unsigned long bcm6328_delay;
- bcm6328_delay = delay + BCM6328_LED_INTERVAL_MS / 2;
- bcm6328_delay = bcm6328_delay / BCM6328_LED_INTERVAL_MS;
+ bcm6328_delay = delay + BCM6328_LED_BLINK_MS / 2;
+ bcm6328_delay = bcm6328_delay / BCM6328_LED_BLINK_MS;
if (bcm6328_delay == 0)
bcm6328_delay = 1;
@@ -168,28 +179,68 @@ static int bcm6328_blink_set(struct led_
return -EINVAL;
}
- if (delay > BCM6328_LED_INTV_MASK) {
+ if (delay > BCM6328_LED_BLINK_MASK) {
dev_dbg(led_cdev->dev,
"fallback to soft blinking (delay > %ums)\n",
- BCM6328_LED_INTV_MASK * BCM6328_LED_INTERVAL_MS);
+ BCM6328_LED_BLINK_MASK * BCM6328_LED_BLINK_MS);
return -EINVAL;
}
spin_lock_irqsave(led->lock, flags);
@ -62,75 +112,76 @@
+ * Check if any of the two configurable HW blinking intervals is
+ * available:
+ * 1. No LEDs assigned to the HW blinking interval.
+ * 2. LEDs with the same delay assigned.
+ * 2. Only this LED is assigned to the HW blinking interval.
+ * 3. LEDs with the same delay assigned.
+ */
+ if (led->blink_leds[0] == 0 ||
+ led->blink_leds[0] == BIT(led->pin) ||
+ led->blink_delay[0] == delay) {
+ unsigned long val;
+
unsigned long val;
- *(led->blink_leds) |= BIT(led->pin);
- *(led->blink_delay) = delay;
+ /* Add LED to the first HW blinking interval cache */
+ led->blink_leds[0] |= BIT(led->pin);
+
+ /* Remove LED from the second HW blinking interval cache */
+ led->blink_leds[1] &= ~BIT(led->pin);
+
+ /* Cache the LED in the first HW blinking interval delay */
+ /* Cache first HW blinking interval delay */
+ led->blink_delay[0] = delay;
+
+ /* Update the delay for the first HW blinking interval */
+ val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
+ val &= ~BCM6328_LED_INTV1_MASK;
+ val |= (delay << BCM6328_LED_INTV1_SHIFT);
+ bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
+
val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
- val &= ~BCM6328_LED_FAST_INTV_MASK;
- val |= (delay << BCM6328_LED_FAST_INTV_SHIFT);
+ val &= ~BCM6328_LED_BLINK1_MASK;
+ val |= (delay << BCM6328_LED_BLINK1_SHIFT);
bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
- bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK);
+ /* Set the LED to first HW blinking interval */
+ bcm6328_led_mode(led, BCM6328_LED_MODE_INTV1);
+ bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK1);
+
+ rc = 0;
+ } else if (led->blink_leds[1] == 0 ||
+ led->blink_leds[1] == BIT(led->pin) ||
+ led->blink_delay[1] == delay) {
unsigned long val;
- *(led->blink_leds) |= BIT(led->pin);
- *(led->blink_delay) = delay;
+ unsigned long val;
+
+ /* Remove LED from the first HW blinking interval */
+ led->blink_leds[0] &= ~BIT(led->pin);
+
+ /* Add LED to the second HW blinking interval */
+ led->blink_leds[1] |= BIT(led->pin);
+ /* Cache the LED in the first HW blinking interval delay */
+
+ /* Cache second HW blinking interval delay */
+ led->blink_delay[1] = delay;
+
+ /* Update the delay for the second HW blinking interval */
val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
- val &= ~BCM6328_LED_FAST_INTV_MASK;
- val |= (delay << BCM6328_LED_FAST_INTV_SHIFT);
+ val &= ~BCM6328_LED_INTV2_MASK;
+ val |= (delay << BCM6328_LED_INTV2_SHIFT);
bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
- bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK);
+ val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
+ val &= ~BCM6328_LED_BLINK2_MASK;
+ val |= (delay << BCM6328_LED_BLINK2_SHIFT);
+ bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
+
+ /* Set the LED to second HW blinking interval */
+ bcm6328_led_mode(led, BCM6328_LED_MODE_INTV2);
+ bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK2);
+
rc = 0;
} else {
dev_dbg(led_cdev->dev,
@@ -363,11 +412,13 @@ static int bcm6328_leds_probe(struct pla
@@ -363,11 +414,13 @@ static int bcm6328_leds_probe(struct pla
if (!lock)
return -ENOMEM;
- blink_leds = devm_kzalloc(dev, sizeof(*blink_leds), GFP_KERNEL);
+ blink_leds = devm_kcalloc(dev, BCM6328_LED_INTERVAL_NUM,
+ blink_leds = devm_kcalloc(dev, BCM6328_LED_BLINK_DELAYS,
+ sizeof(*blink_leds), GFP_KERNEL);
if (!blink_leds)
return -ENOMEM;
- blink_delay = devm_kzalloc(dev, sizeof(*blink_delay), GFP_KERNEL);
+ blink_delay = devm_kcalloc(dev, BCM6328_LED_INTERVAL_NUM,
+ blink_delay = devm_kcalloc(dev, BCM6328_LED_BLINK_DELAYS,
+ sizeof(*blink_delay), GFP_KERNEL);
if (!blink_delay)
return -ENOMEM;

View File

@ -0,0 +1,155 @@
From c425423a075718eac625c78351fa5907d4f3a9de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Mon, 8 Jun 2020 12:18:28 +0200
Subject: [PATCH] MIPS: BCM63xx: add endif comments
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
There are plenty of ifdefs in board_bcm963xx.c without endif comments.
Let's make the code easier to follow by adding proper comments.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
---
arch/mips/bcm63xx/boards/board_bcm963xx.c | 33 +++++++++++------------
1 file changed, 15 insertions(+), 18 deletions(-)
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -67,7 +67,7 @@ static struct board_info __initdata boar
.ephy_reset_gpio = 36,
.ephy_reset_gpio_flags = GPIOF_INIT_HIGH,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_3368 */
/*
* known 6328 boards
@@ -115,7 +115,7 @@ static struct board_info __initdata boar
},
},
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
* known 6338 boards
@@ -204,7 +204,7 @@ static struct board_info __initdata boar
},
},
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
* known 6345 boards
@@ -216,7 +216,7 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6345 */
/*
* known 6348 boards
@@ -464,7 +464,6 @@ static struct board_info __initdata boar
},
};
-
static struct board_info __initdata board_DV201AMR = {
.name = "DV201AMR",
.expected_cpu_id = 0x6348,
@@ -505,7 +504,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
* known 6358 boards
@@ -530,7 +529,6 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
-
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
@@ -654,7 +652,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
* all boards
@@ -662,17 +660,17 @@ static struct board_info __initdata boar
static const struct board_info __initconst *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_3368
&board_cvg834g,
-#endif
+#endif /* CONFIG_BCM63XX_CPU_3368 */
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6328 */
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
&board_96338w,
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6338 */
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6345 */
#ifdef CONFIG_BCM63XX_CPU_6348
&board_96348r,
&board_96348gw,
@@ -682,14 +680,13 @@ static const struct board_info __initcon
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,
-#endif
-
+#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6358 */
};
/*
@@ -728,7 +725,7 @@ int bcm63xx_get_fallback_sprom(struct ss
return -EINVAL;
}
}
-#endif
+#endif /* CONFIG_SSB_PCIHOST */
/*
* return board name for /proc/cpuinfo
@@ -807,7 +804,7 @@ void __init board_prom_init(void)
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G2_PCI;
}
-#endif
+#endif /* CONFIG_PCI */
if (board.has_pccard) {
if (BCMCPU_IS_6348())
@@ -892,7 +889,7 @@ int __init board_register_devices(void)
&bcm63xx_get_fallback_sprom) < 0)
pr_err("failed to register fallback SPROM\n");
}
-#endif
+#endif /* CONFIG_SSB_PCIHOST */
bcm63xx_spi_register();

View File

@ -0,0 +1,56 @@
From e27e1cc9d360a347dbd5a398e9df21cfb4e60e3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Mon, 8 Jun 2020 11:28:35 +0200
Subject: [PATCH] MIPS: BCM63xx: improve CFE version detection
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
There are some CFE variants that start with 'cfe-vd' instead of 'cfe-v', such
as the one used in the Huawei HG556a: "cfe-vd081.5003". In this case, the CFE
version is stored as is (string vs number bytes).
Some newer devices have an additional version number, such as the Comtrend
VR-3032u: "1.0.38-112.118-11".
Finally, print the string as is if the version doesn't start with "cfe-v" or
"cfe-vd", but starts with "cfe-".
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
---
arch/mips/bcm63xx/boards/board_bcm963xx.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -760,11 +760,25 @@ void __init board_prom_init(void)
/* dump cfe version */
cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
- if (!memcmp(cfe, "cfe-v", 5))
- snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
- cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
- else
+ if (strstarts(cfe, "cfe-")) {
+ if(cfe[4] == 'v') {
+ if(cfe[5] == 'd')
+ snprintf(cfe_version, 11, "%s",
+ (char *) &cfe[5]);
+ else if (cfe[10] > 0)
+ snprintf(cfe_version, sizeof(cfe_version),
+ "%u.%u.%u-%u.%u-%u", cfe[5], cfe[6],
+ cfe[7], cfe[8], cfe[9], cfe[10]);
+ else
+ snprintf(cfe_version, sizeof(cfe_version),
+ "%u.%u.%u-%u.%u", cfe[5], cfe[6],
+ cfe[7], cfe[8], cfe[9]);
+ } else {
+ snprintf(cfe_version, 12, "%s", (char *) &cfe[4]);
+ }
+ } else {
strcpy(cfe_version, "unknown");
+ }
pr_info("CFE version: %s\n", cfe_version);
bcm63xx_nvram_init(boot_addr + BCM963XX_NVRAM_OFFSET);

View File

@ -24,7 +24,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
@@ -881,6 +882,9 @@ int __init board_register_devices(void)
@@ -892,6 +893,9 @@ int __init board_register_devices(void)
if (board.has_usbd)
bcm63xx_usbd_register(&board.usbd);

View File

@ -24,7 +24,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
#include <bcm63xx_dev_usb_ohci.h>
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
@@ -882,6 +883,9 @@ int __init board_register_devices(void)
@@ -893,6 +894,9 @@ int __init board_register_devices(void)
if (board.has_usbd)
bcm63xx_usbd_register(&board.usbd);

View File

@ -61,7 +61,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/*
* known 3368 boards
*/
@@ -695,52 +683,6 @@ static const struct board_info __initcon
@@ -692,52 +680,6 @@ static const struct board_info __initcon
};
/*
@ -100,7 +100,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
- return -EINVAL;
- }
-}
-#endif
-#endif /* CONFIG_SSB_PCIHOST */
-
-/*
- * return board name for /proc/cpuinfo
@ -114,7 +114,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
* early init callback, read nvram data from flash and checksum it
*/
void __init board_prom_init(void)
@@ -785,137 +727,15 @@ void __init board_prom_init(void)
@@ -796,137 +738,15 @@ void __init board_prom_init(void)
if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
continue;
/* copy, board desc array is marked initdata */
@ -144,8 +144,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
- bcm63xx_pci_enabled = 1;
- if (BCMCPU_IS_6348())
- val |= GPIO_MODE_6348_G2_PCI;
}
-#endif
- }
-#endif /* CONFIG_PCI */
-
- if (board.has_pccard) {
- if (BCMCPU_IS_6348())
@ -235,8 +235,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
- if (ssb_arch_register_fallback_sprom(
- &bcm63xx_get_fallback_sprom) < 0)
- pr_err("failed to register fallback SPROM\n");
- }
-#endif
}
-#endif /* CONFIG_SSB_PCIHOST */
-
- bcm63xx_spi_register();
-

View File

@ -17,7 +17,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -727,7 +727,8 @@ void __init board_prom_init(void)
@@ -738,7 +738,8 @@ void __init board_prom_init(void)
if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
continue;
/* copy, board desc array is marked initdata */

View File

@ -1,27 +0,0 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -707,10 +707,20 @@ void __init board_prom_init(void)
/* dump cfe version */
cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
- if (!memcmp(cfe, "cfe-v", 5))
- snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
- cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
- else
+ if (strstarts(cfe, "cfe-")) {
+ if(cfe[4] == 'v') {
+ if(cfe[5] == 'd')
+ snprintf(cfe_version, 11, "%s", (char *) &cfe[5]);
+ else if (cfe[10] > 0)
+ snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u-%u",
+ cfe[5], cfe[6], cfe[7], cfe[8], cfe[9], cfe[10]);
+ else
+ snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
+ cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
+ } else {
+ snprintf(cfe_version, 12, "%s", (char *) &cfe[4]);
+ }
+ } else
strcpy(cfe_version, "unknown");
pr_info("CFE version: %s\n", cfe_version);

View File

@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -290,6 +290,9 @@ config BCM63XX
@@ -291,6 +291,9 @@ config BCM63XX
select SYNC_R4K
select DMA_NONCOHERENT
select IRQ_MIPS_CPU

View File

@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
source "arch/mips/bcm63xx/boards/Kconfig"
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -697,7 +697,7 @@ void __init board_prom_init(void)
@@ -694,7 +694,7 @@ void __init board_prom_init(void)
/* read base address of boot chip select (0)
* 6328/6362 do not have MPI but boot from a fixed address
*/

View File

@ -35,7 +35,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
select SYS_HAS_CPU_BMIPS4350
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -697,7 +697,7 @@ void __init board_prom_init(void)
@@ -694,7 +694,7 @@ void __init board_prom_init(void)
/* read base address of boot chip select (0)
* 6328/6362 do not have MPI but boot from a fixed address
*/

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -576,6 +576,7 @@ static struct board_info __initdata boar
@@ -574,6 +574,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,

View File

@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+endmenu
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -686,7 +686,7 @@ static const struct board_info __initcon
@@ -683,7 +683,7 @@ static const struct board_info __initcon
/*
* early init callback, read nvram data from flash and checksum it
*/

View File

@ -74,7 +74,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
.enet0 = {
.has_phy = 1,
@@ -461,6 +468,7 @@ static struct board_info __initdata boar
@@ -460,6 +467,7 @@ static struct board_info __initdata boar
.has_uart0 = 1,
.has_pci = 1,
@ -82,7 +82,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
.has_ohci0 = 1,
.has_enet0 = 1,
@@ -483,6 +491,7 @@ static struct board_info __initdata boar
@@ -482,6 +490,7 @@ static struct board_info __initdata boar
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@ -90,7 +90,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
.enet0 = {
.has_phy = 1,
@@ -509,6 +518,7 @@ static struct board_info __initdata boar
@@ -508,6 +517,7 @@ static struct board_info __initdata boar
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@ -98,7 +98,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
.enet0 = {
.has_phy = 1,
@@ -561,6 +571,7 @@ static struct board_info __initdata boar
@@ -559,6 +569,7 @@ static struct board_info __initdata boar
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@ -106,7 +106,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
.enet0 = {
.has_phy = 1,
@@ -632,6 +643,7 @@ static struct board_info __initdata boar
@@ -630,6 +641,7 @@ static struct board_info __initdata boar
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,

View File

@ -16,8 +16,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -695,6 +695,10 @@ static const struct board_info __initcon
#endif
@@ -692,6 +692,10 @@ static const struct board_info __initcon
#endif /* CONFIG_BCM63XX_CPU_6358 */
};
+static struct of_device_id const bcm963xx_boards_dt[] = {
@ -27,7 +27,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/*
* early init callback, read nvram data from flash and checksum it
*/
@@ -706,6 +710,7 @@ void __init board_bcm963xx_init(void)
@@ -703,6 +707,7 @@ void __init board_bcm963xx_init(void)
char *board_name = NULL;
u32 val;
struct bcm_hcs *hcs;
@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/* read base address of boot chip select (0)
* 6328/6362 do not have MPI but boot from a fixed address
@@ -745,6 +750,16 @@ void __init board_bcm963xx_init(void)
@@ -746,6 +751,16 @@ void __init board_bcm963xx_init(void)
} else {
board_name = bcm63xx_nvram_get_name();
}

View File

@ -14,24 +14,26 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -696,6 +696,48 @@ static const struct board_info __initcon
@@ -693,6 +693,52 @@ static const struct board_info __initcon
};
static struct of_device_id const bcm963xx_boards_dt[] = {
+#ifdef CONFIG_OF
+#ifdef CONFIG_BCM63XX_CPU_3368
+ { .compatible = "netgear,cvg834g", .data = &board_cvg834g, },
+#endif
+#endif /* CONFIG_BCM63XX_CPU_3368 */
+#ifdef CONFIG_BCM63XX_CPU_6318
+#endif /* CONFIG_BCM63XX_CPU_6318 */
+#ifdef CONFIG_BCM63XX_CPU_6328
+ { .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6328 */
+#ifdef CONFIG_BCM63XX_CPU_6338
+ { .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
+ { .compatible = "brcm,bcm96338w", .data = &board_96338w, },
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6338 */
+#ifdef CONFIG_BCM63XX_CPU_6345
+ { .compatible = "brcm,bcm96345gw2", .data = &board_96345gw2, },
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6345 */
+#ifdef CONFIG_BCM63XX_CPU_6348
+ { .compatible = "belkin,f5d7633", .data = &board_96348gw_10, },
+ { .compatible = "brcm,bcm96348r", .data = &board_96348r, },
@ -44,7 +46,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+ { .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
+ { .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
+ { .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6348 */
+#ifdef CONFIG_BCM63XX_CPU_6358
+ { .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
+ { .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
@ -54,11 +56,13 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+ { .compatible = "pirelli,a226m", .data = &board_DWVS0, },
+ { .compatible = "pirelli,a226m-fwb", .data = &board_DWVS0, },
+ { .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6358 */
+#ifdef CONFIG_BCM63XX_CPU_6362
+#endif /* CONFIG_BCM63XX_CPU_6362 */
+#ifdef CONFIG_BCM63XX_CPU_6368
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6368 */
+#ifdef CONFIG_BCM63XX_CPU_63268
+#endif
+#endif /* CONFIG_BCM63XX_CPU_63268 */
+#endif /* CONFIG_OF */
{ },
};

View File

@ -22,7 +22,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
- .ephy_reset_gpio_flags = GPIOF_INIT_HIGH,
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
};
#endif
#endif /* CONFIG_BCM63XX_CPU_3368 */
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c

View File

@ -175,7 +175,7 @@
-
- .has_uart0 = 1,
};
#endif
#endif /* CONFIG_BCM63XX_CPU_6345 */
@@ -217,7 +209,6 @@ static struct board_info __initdata boar
.name = "96348R",
@ -217,7 +217,7 @@
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@@ -466,7 +453,6 @@ static struct board_info __initdata boar
@@ -465,7 +452,6 @@ static struct board_info __initdata boar
.name = "DV201AMR",
.expected_cpu_id = 0x6348,
@ -225,7 +225,7 @@
.has_pci = 1,
.use_fallback_sprom = 1,
.has_ohci0 = 1,
@@ -487,7 +473,6 @@ static struct board_info __initdata boar
@@ -486,7 +472,6 @@ static struct board_info __initdata boar
.name = "96348GW-A",
.expected_cpu_id = 0x6348,
@ -233,7 +233,7 @@
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@@ -514,7 +499,6 @@ static struct board_info __initdata boar
@@ -513,7 +498,6 @@ static struct board_info __initdata boar
.name = "96358VW",
.expected_cpu_id = 0x6358,
@ -241,7 +241,7 @@
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@@ -567,7 +551,6 @@ static struct board_info __initdata boar
@@ -565,7 +549,6 @@ static struct board_info __initdata boar
.name = "96358VW2",
.expected_cpu_id = 0x6358,
@ -249,7 +249,7 @@
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@@ -617,7 +600,6 @@ static struct board_info __initdata boar
@@ -615,7 +598,6 @@ static struct board_info __initdata boar
.name = "AGPF-S0",
.expected_cpu_id = 0x6358,

View File

@ -58,7 +58,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
- },
- },
};
#endif
#endif /* CONFIG_BCM63XX_CPU_6328 */
@@ -119,35 +82,6 @@ static struct board_info __initdata boar
},
@ -130,7 +130,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
- },
- },
};
#endif
#endif /* CONFIG_BCM63XX_CPU_6338 */
@@ -217,36 +122,6 @@ static struct board_info __initdata boar
.has_phy = 1,
@ -277,7 +277,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
};
static struct board_info __initdata board_FAST2404 = {
@@ -518,33 +306,6 @@ static struct board_info __initdata boar
@@ -516,33 +304,6 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_pccard = 1,
.has_ehci0 = 1,
@ -311,7 +311,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
};
static struct board_info __initdata board_96358vw2 = {
@@ -571,29 +332,6 @@ static struct board_info __initdata boar
@@ -569,29 +330,6 @@ static struct board_info __initdata boar
.has_pccard = 1,
.has_ehci0 = 1,
.num_usbh_ports = 2,

View File

@ -63,7 +63,7 @@
.force_speed_100 = 1,
.force_duplex_full = 1,
},
@@ -252,6 +266,8 @@ static struct board_info __initdata boar
@@ -251,6 +265,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
@ -72,7 +72,7 @@
.force_speed_100 = 1,
.force_duplex_full = 1,
},
@@ -271,6 +287,8 @@ static struct board_info __initdata boar
@@ -270,6 +286,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
@ -81,7 +81,7 @@
.force_speed_100 = 1,
.force_duplex_full = 1,
},
@@ -298,6 +316,8 @@ static struct board_info __initdata boar
@@ -297,6 +315,8 @@ static struct board_info __initdata boar
},
.enet1 = {
@ -90,7 +90,7 @@
.force_speed_100 = 1,
.force_duplex_full = 1,
},
@@ -323,6 +343,8 @@ static struct board_info __initdata boar
@@ -321,6 +341,8 @@ static struct board_info __initdata boar
},
.enet1 = {
@ -99,7 +99,7 @@
.force_speed_100 = 1,
.force_duplex_full = 1,
},
@@ -348,6 +370,8 @@ static struct board_info __initdata boar
@@ -346,6 +368,8 @@ static struct board_info __initdata boar
},
.enet1 = {
@ -108,7 +108,7 @@
.force_speed_100 = 1,
.force_duplex_full = 1,
},
@@ -371,6 +395,8 @@ static struct board_info __initdata boar
@@ -369,6 +393,8 @@ static struct board_info __initdata boar
},
.enet1 = {

View File

@ -1,56 +0,0 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -46,7 +46,7 @@ static struct board_info __initdata boar
.ephy_reset_gpio = 36,
.ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_3368 */
/*
* known 6328 boards
@@ -65,7 +65,7 @@ static struct board_info __initdata boar
.port_no = 0,
},
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
* known 6338 boards
@@ -98,7 +98,7 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
* known 6345 boards
@@ -108,7 +108,7 @@ static struct board_info __initdata boar
.name = "96345GW2",
.expected_cpu_id = 0x6345,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6345 */
/*
* known 6348 boards
@@ -295,7 +295,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
* known 6358 boards
@@ -403,7 +403,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
-#endif
+#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
* all boards

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -295,6 +295,21 @@ static struct board_info __initdata boar
@@ -294,6 +294,21 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -9,9 +9,9 @@
+ .name = "D-4P-W",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -22,15 +22,15 @@
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
@@ -431,6 +446,7 @@ static const struct board_info __initcon
@@ -429,6 +444,7 @@ static const struct board_info __initcon
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,
+ &board_96348_D4PW,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -462,6 +478,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -461,6 +477,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96348gw-10", .data = &board_96348gw_10, },
{ .compatible = "brcm,bcm96348gw-11", .data = &board_96348gw_11, },
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -418,6 +418,60 @@ static struct board_info __initdata boar
@@ -416,6 +416,56 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -9,73 +9,69 @@
+ .name = "NB4-SER-r0",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pccard = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 2,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+
+ .has_ohci0 = 1,
+ .has_pccard = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 2,
+};
+
+static struct board_info __initdata board_nb4_fxc_r1 = {
+ .name = "NB4-FXC-r1",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pccard = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 2,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+
+ .has_ohci0 = 1,
+ .has_pccard = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 2,
+};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
@@ -454,6 +508,8 @@ static const struct board_info __initcon
@@ -451,6 +501,8 @@ static const struct board_info __initcon
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
+ &board_nb4_ser_r0,
+ &board_nb4_fxc_r1,
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
};
@@ -495,6 +551,8 @@ static struct of_device_id const bcm963x
@@ -494,6 +546,8 @@ static struct of_device_id const bcm963x
{ .compatible = "pirelli,a226m", .data = &board_DWVS0, },
{ .compatible = "pirelli,a226m-fwb", .data = &board_DWVS0, },
{ .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
+ { .compatible = "sfr,neufbox-4-sercomm-r0", .data = &board_nb4_ser_r0, },
+ { .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
#ifdef CONFIG_BCM63XX_CPU_6362
#endif /* CONFIG_BCM63XX_CPU_6362 */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -98,6 +98,20 @@ static struct board_info __initdata boar
@@ -98,6 +98,19 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
};
@ -10,7 +10,6 @@
+ .expected_cpu_id = 0x6338,
+
+ .has_enet0 = 1,
+
+ .enet0 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -21,19 +20,19 @@
#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
@@ -487,6 +501,7 @@ static const struct board_info __initcon
@@ -481,6 +494,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
&board_96338w,
+ &board_96338w2_e7t,
#endif
#endif /* CONFIG_BCM63XX_CPU_6338 */
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
@@ -524,6 +539,7 @@ static struct of_device_id const bcm963x
@@ -519,6 +533,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6338
{ .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
{ .compatible = "brcm,bcm96338w", .data = &board_96338w, },
+ { .compatible = "d-link,dsl-2640u", .data = &board_96338w2_e7t, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6338 */
#ifdef CONFIG_BCM63XX_CPU_6345
{ .compatible = "brcm,bcm96345gw2", .data = &board_96345gw2, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -385,6 +385,25 @@ static struct board_info __initdata boar
@@ -382,6 +382,23 @@ static struct board_info __initdata boar
.num_usbh_ports = 2,
};
@ -8,25 +8,23 @@
+ .name = "CPVA642",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+};
+
+
static struct board_info __initdata board_AGPFS0 = {
.name = "AGPF-S0",
.expected_cpu_id = 0x6358,
@@ -522,6 +541,7 @@ static const struct board_info __initcon
@@ -514,6 +531,7 @@ static const struct board_info __initcon
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,
@ -34,11 +32,11 @@
&board_DWVS0,
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
@@ -569,6 +589,7 @@ static struct of_device_id const bcm963x
@@ -563,6 +581,7 @@ static struct of_device_id const bcm963x
{ .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
{ .compatible = "sfr,neufbox-4-sercomm-r0", .data = &board_nb4_ser_r0, },
{ .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
+ { .compatible = "telsey,cpva642", .data = &board_CPVA642, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
#ifdef CONFIG_BCM63XX_CPU_6362
#endif /* CONFIG_BCM63XX_CPU_6362 */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -452,6 +452,22 @@ static struct board_info __initdata boar
@@ -447,6 +447,22 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -9,9 +9,9 @@
+ .name = "AW4139",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -23,15 +23,15 @@
static struct board_info __initdata board_nb4_ser_r0 = {
.name = "NB4-SER-r0",
.expected_cpu_id = 0x6358,
@@ -543,6 +559,7 @@ static const struct board_info __initcon
@@ -533,6 +549,7 @@ static const struct board_info __initcon
&board_AGPFS0,
&board_CPVA642,
&board_DWVS0,
+ &board_dsl_274xb_rev_c,
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
#endif
@@ -582,6 +599,7 @@ static struct of_device_id const bcm963x
#endif /* CONFIG_BCM63XX_CPU_6358 */
@@ -574,6 +591,7 @@ static struct of_device_id const bcm963x
{ .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
{ .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
{ .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -324,6 +324,36 @@ static struct board_info __initdata boar
@@ -322,6 +322,36 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
};
@ -17,15 +17,15 @@
+ .name = "SPW500V",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM4318,
+ .pci_bus = 0,
@ -37,19 +37,19 @@
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
@@ -551,6 +581,7 @@ static const struct board_info __initcon
@@ -542,6 +572,7 @@ static const struct board_info __initcon
&board_96348gw_a,
&board_rta1025w_16,
&board_96348_D4PW,
+ &board_spw500v,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -592,6 +623,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -584,6 +615,7 @@ static struct of_device_id const bcm963x
{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
{ .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
+ { .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
{ .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
{ .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -217,6 +217,48 @@ static struct board_info __initdata boar
@@ -216,6 +216,46 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -8,48 +8,46 @@
+ .name = "GW6200",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+};
+
+static struct board_info __initdata board_gw6000 = {
+ .name = "GW6000",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+};
+
+
+
static struct board_info __initdata board_FAST2404 = {
.name = "F@ST2404",
.expected_cpu_id = 0x6348,
@@ -574,6 +616,8 @@ static const struct board_info __initcon
@@ -565,6 +605,8 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6348
&board_96348r,
&board_96348gw,
@ -58,7 +56,7 @@
&board_96348gw_10,
&board_96348gw_11,
&board_FAST2404,
@@ -624,6 +668,8 @@ static struct of_device_id const bcm963x
@@ -616,6 +658,8 @@ static struct of_device_id const bcm963x
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
{ .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
{ .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
@ -66,4 +64,4 @@
+ { .compatible = "tecom,gw6200", .data = &board_gw6200, },
{ .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
{ .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -396,6 +396,31 @@ static struct board_info __initdata boar
@@ -392,6 +392,30 @@ static struct board_info __initdata boar
.num_board_fixups = ARRAY_SIZE(spw500v_fixups),
},
};
@ -9,14 +9,17 @@
+ .name = "MAGIC",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pccard = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ /* it has BP_ENET_EXTERNAL_PHY */
+ .has_phy = 1,
@ -24,27 +27,23 @@
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+ .has_pccard = 1,
+ .has_ehci0 = 1,
+};
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
@@ -626,6 +651,7 @@ static const struct board_info __initcon
@@ -615,6 +639,7 @@ static const struct board_info __initcon
&board_rta1025w_16,
&board_96348_D4PW,
&board_spw500v,
+ &board_96348sv,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -670,6 +696,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -660,6 +685,7 @@ static struct of_device_id const bcm963x
{ .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
{ .compatible = "tecom,gw6000", .data = &board_gw6000, },
{ .compatible = "tecom,gw6200", .data = &board_gw6200, },
+ { .compatible = "telsey,magic", .data = &board_96348sv, },
{ .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
{ .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */

View File

@ -1,18 +1,20 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -618,6 +618,32 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
.num_usbh_ports = 2,
@@ -606,6 +606,31 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
};
+
+static struct board_info __initdata board_HW553 = {
+ .name = "HW553",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 2,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -20,10 +22,7 @@
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 2,
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM4318,
+ .pci_bus = 0,
@ -33,15 +32,15 @@
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
@@ -663,6 +689,7 @@ static const struct board_info __initcon
@@ -650,6 +675,7 @@ static const struct board_info __initcon
&board_dsl_274xb_rev_c,
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
+ &board_HW553,
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
};
@@ -706,6 +733,7 @@ static struct of_device_id const bcm963x
@@ -695,6 +721,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },
{ .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, },
{ .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -112,6 +112,20 @@ static struct board_info __initdata boar
@@ -111,6 +111,19 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
};
@ -10,7 +10,6 @@
+ .expected_cpu_id = 0x6338,
+
+ .has_enet0 = 1,
+
+ .enet0 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -21,19 +20,19 @@
#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
@@ -660,6 +674,7 @@ static const struct board_info __initcon
@@ -647,6 +660,7 @@ static const struct board_info __initcon
&board_96338gw,
&board_96338w,
&board_96338w2_e7t,
+ &board_rta1320_16m,
#endif
#endif /* CONFIG_BCM63XX_CPU_6338 */
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
@@ -704,6 +719,7 @@ static struct of_device_id const bcm963x
@@ -692,6 +706,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6338
{ .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
{ .compatible = "brcm,bcm96338w", .data = &board_96338w, },
+ { .compatible = "dynalink,rta1320", .data = &board_rta1320_16m, },
{ .compatible = "d-link,dsl-2640u", .data = &board_96338w2_e7t, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6338 */
#ifdef CONFIG_BCM63XX_CPU_6345

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -658,6 +658,20 @@ static struct board_info __initdata boar
@@ -644,6 +644,20 @@ static struct board_info __initdata boar
.pci_dev = 1,
},
};
@ -10,9 +10,9 @@
+ .name = "96358-502V",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet0 = 1,
+ .has_pci = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
@ -21,19 +21,19 @@
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
@@ -705,6 +719,7 @@ static const struct board_info __initcon
@@ -690,6 +704,7 @@ static const struct board_info __initcon
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
&board_HW553,
+ &board_spw303v,
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
};
@@ -756,6 +771,7 @@ static struct of_device_id const bcm963x
@@ -743,6 +758,7 @@ static struct of_device_id const bcm963x
{ .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
{ .compatible = "sfr,neufbox-4-sercomm-r0", .data = &board_nb4_ser_r0, },
{ .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
+ { .compatible = "t-com,speedport-w-303v", .data = &board_spw303v, },
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
#endif /* CONFIG_BCM63XX_CPU_6358 */
#ifdef CONFIG_BCM63XX_CPU_6362

View File

@ -1,22 +1,23 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -435,6 +435,26 @@ static struct board_info __initdata boar
.has_pccard = 1,
.has_ehci0 = 1,
@@ -429,6 +429,27 @@ static struct board_info __initdata boar
.force_duplex_full = 1,
},
};
+
+static struct board_info __initdata board_V2500V_BB = {
+ .name = "V2500V_BB",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pci = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -27,15 +28,15 @@
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
@@ -707,6 +727,7 @@ static const struct board_info __initcon
@@ -693,6 +714,7 @@ static const struct board_info __initcon
&board_96348_D4PW,
&board_spw500v,
&board_96348sv,
+ &board_V2500V_BB,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -746,6 +767,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -733,6 +755,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96348gw-10", .data = &board_96348gw_10, },
{ .compatible = "brcm,bcm96348gw-11", .data = &board_96348gw_11, },
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },
@ -43,7 +44,7 @@
{ .compatible = "d-link,dsl-2640b-b", .data = &board_96348_D4PW, },
{ .compatible = "davolink,dv-201amr", .data = &board_DV201AMR, },
{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
@@ -805,6 +827,22 @@ void __init board_bcm963xx_init(void)
@@ -794,6 +817,22 @@ void __init board_bcm963xx_init(void)
val &= MPI_CSBASE_BASE_MASK;
}
boot_addr = (u8 *)KSEG1ADDR(val);

View File

@ -1,18 +1,17 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -208,6 +208,24 @@ static struct board_info __initdata boar
@@ -206,6 +206,22 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
+
+/* BT Voyager 2110 */
+static struct board_info __initdata board_V2110 = {
+ .name = "V2110",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -20,20 +19,19 @@
+ .force_duplex_full = 1,
+ },
+};
+
+
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -728,6 +746,7 @@ static const struct board_info __initcon
@@ -715,6 +731,7 @@ static const struct board_info __initcon
&board_spw500v,
&board_96348sv,
&board_V2500V_BB,
+ &board_V2110,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -767,6 +786,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -755,6 +772,7 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96348gw-10", .data = &board_96348gw_10, },
{ .compatible = "brcm,bcm96348gw-11", .data = &board_96348gw_11, },
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },

View File

@ -58,7 +58,7 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
#endif /* __BOARD_COMMON_H */
--- /dev/null
+++ b/arch/mips/bcm63xx/boards/board_livebox.c
@@ -0,0 +1,155 @@
@@ -0,0 +1,153 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
@ -93,25 +93,23 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
+ .name = "Livebox-blue-5g",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pccard = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .ephy_reset_gpio = 6,
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 31,
+ },
+
+ .ephy_reset_gpio = 6,
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
+
+ .has_ohci0 = 1,
+ .has_pccard = 1,
+};
+#endif
+
@ -121,7 +119,7 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
+static const struct board_info __initdata *bcm963xx_boards[] = {
+#ifdef CONFIG_BCM63XX_CPU_6348
+ &board_livebox_blue5g
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6348 */
+};
+
+static struct of_device_id const livebox_boards_dt[] = {

View File

@ -1,18 +1,18 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -226,6 +226,33 @@ static struct board_info __initdata boar
@@ -222,6 +222,30 @@ static struct board_info __initdata boar
},
};
+static struct board_info __initdata board_ct536_ct5621 = {
+ .name = "CT536_CT5621",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 0,
+ .has_enet1 = 1,
+ .has_pccard = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -20,10 +20,7 @@
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+ .has_pccard = 1,
+ .has_ehci0 = 1,
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM4318,
+ .pci_bus = 0,
@ -34,15 +31,15 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -747,6 +774,7 @@ static const struct board_info __initcon
@@ -732,6 +756,7 @@ static const struct board_info __initcon
&board_96348sv,
&board_V2500V_BB,
&board_V2110,
+ &board_ct536_ct5621,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -788,6 +816,8 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -774,6 +799,8 @@ static struct of_device_id const bcm963x
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },
{ .compatible = "bt,voyager-2110", .data = &board_V2110, },
{ .compatible = "bt,voyager-2500v-bb", .data = &board_V2500V_BB, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -626,6 +626,7 @@ static struct board_info __initdata boar
@@ -613,6 +613,7 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -253,6 +253,30 @@ static struct board_info __initdata boar
@@ -246,6 +246,29 @@ static struct board_info __initdata boar
},
};
@ -8,10 +8,10 @@
+ .name = "96348A-122",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
@ -19,8 +19,7 @@
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM4318,
+ .pci_bus = 0,
@ -31,15 +30,15 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -776,6 +800,7 @@ static const struct board_info __initcon
@@ -758,6 +781,7 @@ static const struct board_info __initcon
&board_V2500V_BB,
&board_V2110,
&board_ct536_ct5621,
+ &board_96348A_122,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -818,6 +843,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -801,6 +825,7 @@ static struct of_device_id const bcm963x
{ .compatible = "bt,voyager-2110", .data = &board_V2110, },
{ .compatible = "bt,voyager-2500v-bb", .data = &board_V2500V_BB, },
{ .compatible = "comtrend,ct-536plus", .data = &board_ct536_ct5621, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -225,6 +225,33 @@ static struct board_info __initdata boar
@@ -222,6 +222,34 @@ static struct board_info __initdata boar
},
};
@ -8,41 +8,42 @@
+ .name = "CPVA502+",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .ephy_reset_gpio = 4,
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
+ },
+
+ .ephy_reset_gpio = 4,
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM4318,
+ .pci_bus = 0,
+ .pci_dev = 1,
+ },
+};
+
static struct board_info __initdata board_ct536_ct5621 = {
.name = "CT536_CT5621",
@@ -801,6 +828,7 @@ static const struct board_info __initcon
.expected_cpu_id = 0x6348,
@@ -782,6 +810,7 @@ static const struct board_info __initcon
&board_V2110,
&board_ct536_ct5621,
&board_96348A_122,
+ &board_CPVA502plus,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -853,6 +881,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -835,6 +864,7 @@ static struct of_device_id const bcm963x
{ .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
{ .compatible = "tecom,gw6000", .data = &board_gw6000, },
{ .compatible = "tecom,gw6200", .data = &board_gw6200, },

View File

@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -792,6 +792,58 @@ static struct board_info __initdata boar
@@ -774,6 +774,52 @@ static struct board_info __initdata boar
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
@ -22,16 +22,16 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
+ .expected_cpu_id = 0x6368,
+
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
+ .has_usbd = 1,
+
+ .usbd = {
+ .use_fullspeed = 0,
+ .port_no = 0,
+ },
+
+ .has_enetsw = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [1] = {
@ -39,19 +39,16 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
+ .phy_id = 2,
+ .name = "port1",
+ },
+
+ [2] = {
+ .used = 1,
+ .phy_id = 3,
+ .name = "port2",
+ },
+
+ [4] = {
+ .used = 1,
+ .phy_id = 0x12,
+ .name = "port0",
+ },
+
+ [5] = {
+ .used = 1,
+ .phy_id = 0x11,
@ -59,9 +56,6 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
+ },
+ },
+ },
+
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+};
+#endif /* CONFIG_BCM63XX_CPU_6368 */
+
@ -69,25 +63,24 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
* all boards
*/
static const struct board_info __initconst *bcm963xx_boards[] = {
@@ -843,6 +895,10 @@ static const struct board_info __initcon
@@ -824,6 +870,9 @@ static const struct board_info __initcon
&board_HW553,
&board_spw303v,
#endif
+
#endif /* CONFIG_BCM63XX_CPU_6358 */
+#ifdef CONFIG_BCM63XX_CPU_6368
+ &board_96368mvwg,
+#endif
+#endif /* CONFIG_BCM63XX_CPU_6368 */
};
static struct of_device_id const bcm963xx_boards_dt[] = {
@@ -903,6 +959,7 @@ static struct of_device_id const bcm963x
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
#endif
@@ -888,6 +937,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6362
#endif /* CONFIG_BCM63XX_CPU_6362 */
#ifdef CONFIG_BCM63XX_CPU_6368
+ { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6368 */
#ifdef CONFIG_BCM63XX_CPU_63268
#endif
#endif /* CONFIG_BCM63XX_CPU_63268 */
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
@@ -81,12 +81,25 @@ void __init board_early_setup(const stru

View File

@ -9,9 +9,9 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -841,6 +841,45 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
@@ -817,6 +817,41 @@ static struct board_info __initdata boar
},
},
};
+
+static struct board_info __initdata board_96368mvngr = {
@ -19,8 +19,10 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
+ .expected_cpu_id = 0x6368,
+
+ .has_pci = 1,
+ .has_enetsw = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
+ .has_enetsw = 1,
+ .enetsw = {
+ .used_ports = {
+ [0] = {
@ -28,19 +30,16 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
+ .phy_id = 1,
+ .name = "port1",
+ },
+
+ [1] = {
+ .used = 1,
+ .phy_id = 2,
+ .name = "port2",
+ },
+
+ [2] = {
+ .used = 1,
+ .phy_id = 3,
+ .name = "port3",
+ },
+
+ [3] = {
+ .used = 1,
+ .phy_id = 4,
@ -48,26 +47,23 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
+ },
+ },
+ },
+
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+};
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
@@ -898,6 +937,7 @@ static const struct board_info __initcon
@@ -872,6 +907,7 @@ static const struct board_info __initcon
#endif /* CONFIG_BCM63XX_CPU_6358 */
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
+ &board_96368mvngr,
#endif
#endif /* CONFIG_BCM63XX_CPU_6368 */
};
@@ -959,6 +999,7 @@ static struct of_device_id const bcm963x
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
#endif
@@ -937,6 +973,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6362
#endif /* CONFIG_BCM63XX_CPU_6362 */
#ifdef CONFIG_BCM63XX_CPU_6368
+ { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6368 */
#ifdef CONFIG_BCM63XX_CPU_63268

View File

@ -9,13 +9,12 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -64,6 +64,33 @@ static struct board_info __initdata boar
@@ -64,6 +64,32 @@ static struct board_info __initdata boar
.use_fullspeed = 0,
.port_no = 0,
},
+
+ .has_enetsw = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [0] = {

View File

@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -92,6 +92,40 @@ static struct board_info __initdata boar
@@ -91,6 +91,39 @@ static struct board_info __initdata boar
},
},
};
@ -21,7 +21,6 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
+ .has_pci = 1,
+
+ .has_enetsw = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [0] = {
@ -50,19 +49,19 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
@@ -918,6 +952,7 @@ static const struct board_info __initcon
#endif
@@ -889,6 +922,7 @@ static const struct board_info __initcon
#endif /* CONFIG_BCM63XX_CPU_3368 */
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
+ &board_963281TAN,
#endif
#endif /* CONFIG_BCM63XX_CPU_6328 */
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
@@ -974,6 +1009,7 @@ static struct of_device_id const bcm963x
{ .compatible = "netgear,cvg834g", .data = &board_cvg834g, },
#endif
@@ -945,6 +979,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6318
#endif /* CONFIG_BCM63XX_CPU_6318 */
#ifdef CONFIG_BCM63XX_CPU_6328
+ { .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },
{ .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6328 */
#ifdef CONFIG_BCM63XX_CPU_6338

View File

@ -10,7 +10,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -126,6 +126,51 @@ static struct board_info __initdata boar
@@ -124,6 +124,50 @@ static struct board_info __initdata boar
},
},
};
@ -33,7 +33,6 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
+ },
+
+ .has_enetsw = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [0] = {
@ -62,19 +61,19 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
@@ -953,6 +998,7 @@ static const struct board_info __initcon
@@ -923,6 +967,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,
+ &board_dsl_274xb_f1,
#endif
#endif /* CONFIG_BCM63XX_CPU_6328 */
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
@@ -1011,6 +1057,7 @@ static struct of_device_id const bcm963x
@@ -981,6 +1026,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6328
{ .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },
{ .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
+ { .compatible = "d-link,dsl-274xb-f1", .data = &board_dsl_274xb_f1, },
#endif
#endif /* CONFIG_BCM63XX_CPU_6328 */
#ifdef CONFIG_BCM63XX_CPU_6338
{ .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -568,6 +568,24 @@ static struct board_info __initdata boar
@@ -555,6 +555,23 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -9,31 +9,30 @@
+ .name = "96348W3",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet1 = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+};
+
static struct board_info __initdata board_96348_D4PW = {
.name = "D-4P-W",
.expected_cpu_id = 0x6348,
@@ -1028,6 +1046,7 @@ static const struct board_info __initcon
@@ -997,6 +1014,7 @@ static const struct board_info __initcon
&board_ct536_ct5621,
&board_96348A_122,
&board_CPVA502plus,
+ &board_96348W3,
#endif
#endif /* CONFIG_BCM63XX_CPU_6348 */
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -1083,6 +1102,7 @@ static struct of_device_id const bcm963x
&board_96358vw,
@@ -1052,6 +1070,7 @@ static struct of_device_id const bcm963x
{ .compatible = "davolink,dv-201amr", .data = &board_DV201AMR, },
{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },

View File

@ -1,7 +1,7 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -874,6 +874,30 @@ static struct board_info __initdata boar
.num_usbh_ports = 2,
@@ -853,6 +853,30 @@ static struct board_info __initdata boar
},
};
+static struct board_info __initdata board_ct6373_1 = {
@ -9,7 +9,6 @@
+ .expected_cpu_id = 0x6358,
+
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
@ -21,6 +20,7 @@
+ .force_duplex_full = 1,
+ },
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM4318,
+ .pci_bus = 0,
@ -31,15 +31,15 @@
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
@@ -1058,6 +1082,7 @@ static const struct board_info __initcon
@@ -1025,6 +1049,7 @@ static const struct board_info __initcon
&board_dsl_274xb_rev_c,
&board_nb4_ser_r0,
&board_nb4_fxc_r1,
+ &board_ct6373_1,
&board_HW553,
&board_spw303v,
#endif
@@ -1116,6 +1141,7 @@ static struct of_device_id const bcm963x
#endif /* CONFIG_BCM63XX_CPU_6358 */
@@ -1084,6 +1109,7 @@ static struct of_device_id const bcm963x
{ .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
{ .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
{ .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -937,6 +937,33 @@ static struct board_info __initdata boar
@@ -915,6 +915,31 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
};
@ -10,39 +10,37 @@
+ .name = "DVAG3810BN",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pccard = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
+ .has_enet0 = 1,
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .has_enet1 = 1,
+ .enet1 = {
+ .has_phy = 1,
+ .phy_id = 0,
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+
+ .has_ohci0 = 1,
+ .has_pccard = 1,
+ .has_ehci0 = 1,
+};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
@@ -1085,6 +1112,7 @@ static const struct board_info __initcon
@@ -1052,6 +1077,7 @@ static const struct board_info __initcon
&board_ct6373_1,
&board_HW553,
&board_spw303v,
+ &board_DVAG3810BN,
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
#ifdef CONFIG_BCM63XX_CPU_6368
@@ -1144,6 +1172,7 @@ static struct of_device_id const bcm963x
&board_96368mvwg,
@@ -1112,6 +1138,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,ct-6373", .data = &board_ct6373_1, },
{ .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, },
{ .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -966,6 +966,32 @@ static struct board_info __initdata boar
@@ -942,6 +942,31 @@ static struct board_info __initdata boar
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
@ -14,7 +14,6 @@
+ .num_usbh_ports = 2,
+
+ .has_enetsw = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [4] = {
@ -33,24 +32,21 @@
/*
* known 6368 boards
*/
@@ -1115,6 +1141,10 @@ static const struct board_info __initcon
@@ -1079,6 +1104,9 @@ static const struct board_info __initcon
&board_spw303v,
&board_DVAG3810BN,
#endif
#endif /* CONFIG_BCM63XX_CPU_6358 */
+#ifdef CONFIG_BCM63XX_CPU_6362
+ &board_nb6,
+#endif
+
+#endif /* CONFIG_BCM63XX_CPU_6362 */
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
@@ -1183,6 +1213,9 @@ static struct of_device_id const bcm963x
{ .compatible = "t-com,speedport-w-303v", .data = &board_spw303v, },
@@ -1150,6 +1178,7 @@ static struct of_device_id const bcm963x
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
#endif
+#ifdef CONFIG_BCM63XX_CPU_6362
#endif /* CONFIG_BCM63XX_CPU_6358 */
#ifdef CONFIG_BCM63XX_CPU_6362
+ { .compatible = "sfr,neufbox-6-sercomm-r0", .data = &board_nb6, },
+#endif
#endif /* CONFIG_BCM63XX_CPU_6362 */
#ifdef CONFIG_BCM63XX_CPU_6368
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -501,6 +501,22 @@ static struct board_info __initdata boar
@@ -489,6 +489,22 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
@ -23,7 +23,7 @@
static struct board_info __initdata board_rta1025w_16 = {
.name = "RTA1025W_16",
.expected_cpu_id = 0x6348,
@@ -1112,6 +1128,7 @@ static const struct board_info __initcon
@@ -1077,6 +1093,7 @@ static const struct board_info __initcon
&board_96348gw_10,
&board_96348gw_11,
&board_FAST2404,
@ -31,7 +31,7 @@
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,
@@ -1187,6 +1204,7 @@ static struct of_device_id const bcm963x
@@ -1151,6 +1168,7 @@ static struct of_device_id const bcm963x
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
{ .compatible = "netgear,dg834g-v4", .data = &board_96348W3, },
{ .compatible = "sagem,fast-2404", .data = &board_FAST2404, },

View File

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -127,6 +127,49 @@ static struct board_info __initdata boar
@@ -125,6 +125,49 @@ static struct board_info __initdata boar
},
};
@ -9,12 +9,11 @@
+ .expected_cpu_id = 0x6328,
+
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 1,
+ .has_enetsw = 1,
+
+ .has_enetsw = 1,
+ .enetsw = {
+ .used_ports = {
+ [0] = {
@ -40,6 +39,7 @@
+ },
+ },
+
+ .use_fallback_sprom = 1,
+ .fallback_sprom = {
+ .type = SPROM_BCM43225,
+ .pci_bus = 1,
@ -50,17 +50,17 @@
static struct board_info __initdata board_dsl_274xb_f1 = {
.name = "AW4339U",
.expected_cpu_id = 0x6328,
@@ -1109,6 +1152,7 @@ static const struct board_info __initcon
@@ -1074,6 +1117,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,
+ &board_A4001N1,
&board_dsl_274xb_f1,
#endif
#endif /* CONFIG_BCM63XX_CPU_6328 */
#ifdef CONFIG_BCM63XX_CPU_6338
@@ -1174,6 +1218,7 @@ static struct of_device_id const bcm963x
{ .compatible = "netgear,cvg834g", .data = &board_cvg834g, },
#endif
@@ -1138,6 +1182,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6318
#endif /* CONFIG_BCM63XX_CPU_6318 */
#ifdef CONFIG_BCM63XX_CPU_6328
+ { .compatible = "adb,a4001n1", .data = &board_A4001N1, },
{ .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },

Some files were not shown because too many files have changed in this diff Show More