Commit Graph

139 Commits (aa2d8b3cbb35f0d167d87aca729a65705c480397)

Author SHA1 Message Date
John Crispin 3e6b801eb4 ralink: check ethernet MAC address whether it is valid
The mac address usually write in factory block. but sometime user erase this block , the mac address will change to ff:ff:ff:ff:ff:ff.
This patch is purpose to fix this issue.

Signed-off-by: wengbj <linux.c@foxmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44166 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-28 12:06:22 +00:00
Felix Fietkau 2921fef744 ralink: fix ethernet feature TSO not work
* fix TSO features verify on mt7621 firewrt board
* improve tx clean up. no need to access uncached
  memory. also use TX_DTX register instead of
  read tx ring DONE bit
* mt7621 need napi weight 64 to get more performance
* remove netif_receive_skb, after kernel version
  3.7 tcp4_gro_receive can handle tcp checksum.
  on rt2880 use iperf tcp LAN to WAN throughput test.
  with gro 135 Mbits/sec. without gro 80.4Mbits/sec.

Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44118 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-24 22:45:28 +00:00
Felix Fietkau 1ff6e9aef8 ralink: init tx/rx vlan offload register for mt7621
on mt7621 don't have tx vlan vid registers.
so set FE_REG_FE_DMA_VID_BASE to 0.
set rx vlan offload register to disable.

Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44117 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-24 22:45:23 +00:00
Felix Fietkau 2bc783064d ralink: use fe_max_buf_size to get rx buffer size
the rx_buf_size now is 1534 when mtu is 1500.
the ethernet frame with vlan tag and FCS is 1522.
so the buffer is enough.

Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44116 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-24 22:45:16 +00:00
Felix Fietkau ff3864e8a4 ramips: fix ethernet vlan tx offload support check
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44115 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-24 22:45:10 +00:00
Felix Fietkau 311b20a71c ralink: fix ethernet rx buffer size breakage
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44047 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-18 20:17:41 +00:00
Felix Fietkau 7e7a5831f7 ralink: improve check rx sg function. use check frags instead of function call
Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44046 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-18 20:17:28 +00:00
Felix Fietkau 2a76888e3f ralink: correct handle hardware rx 2bytes offset
Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44045 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-18 20:17:18 +00:00
Felix Fietkau 8b61d50feb ralink: use fe_reset to control all reset
Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44044 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-18 20:17:07 +00:00
Felix Fietkau 71a43766c2 ralink: improve tx_timeout function
* use default timeout value
* print more debug ring info
* move timeout reset function to workqueue

Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44043 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-18 20:16:50 +00:00
Felix Fietkau 31fa24e3e3 ralink: reduce access to uncached tx/rx dma ring buffer
Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44041 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-18 20:16:35 +00:00
Felix Fietkau 8ce6953097 ramips: fix tx bql related race condition in the ethernet driver
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43995 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-17 13:13:55 +00:00
Felix Fietkau 980e0502ce ramips: use a larger number of rx descriptors on mt7621 to work around rx overrun related packet loss
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43953 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-13 00:34:45 +00:00
Felix Fietkau bc68bea2e7 ramips: remove interrupt coalescing, it is unnecessary with napi polling and could reduce throughput
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43952 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-13 00:34:38 +00:00
Felix Fietkau 1e66f2e231 ramips: disable ethernet checksum offloads for mt7621, they are broken
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43811 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-02 21:53:24 +00:00
Felix Fietkau 79b56eb3e4 ramips: use netif_receive_skb instead of napi_gro_receive when rx csum offload is unavailable
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43810 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-01-02 21:53:18 +00:00
John Crispin 5cd69085ed ralink: fix tx vlan offload and hardware status
hardware status and tx vlan offload support on all targets
except rt5350. so i modify the IS_ENABLE condition only for
mt7621.
support mt7621 hardware status reference by SDK. but i don't
have mt7621. if not work just set mt7621 FE_REG_FE_COUNTER_BASE
to 0 to let software count.

Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43303 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-19 09:19:57 +00:00
John Crispin 0f47bf20de ralink: support netconsole
Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43302 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-19 09:19:49 +00:00
John Crispin 2825bdda9f ralink: improve tx vlan offload
hardware tx vlan offload only support max 16 vids
now use add/delete vlan interface to update vlan id table
when duplicate vlan id index detect.
disable hardware tx vlan offload support.

Signed-off-by: michael lee <igvtee@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43301 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-19 09:19:43 +00:00
John Crispin 170c9f6bb6 ralink: update ethernet driver to use new ralink_soc variable
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43247 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-14 16:52:52 +00:00
John Crispin 2983053813 ralink: fix the 10mbit bug on mt7621
a missing "val =" caused the AN bit in the phy0 reg to be flushed.

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43246 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-14 16:52:47 +00:00
John Crispin 7741062f9b ralink: improve mt7530 support
the SDK does a bit of extra init that we did not do yet when using an external mt7530.

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43245 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-14 16:52:42 +00:00
John Crispin 48fdd908ac ralink: mt7621 has a different base addr for PVID
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43243 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-14 16:52:30 +00:00
John Crispin addf7b958d ralink: add support for mt7621 ethernet
somehow all switch ports still come up as 10mbit.

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43237 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-12 14:54:50 +00:00
John Crispin bec227fc64 ralink: fix mdio polling of external phys if only 1 phy exists
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43235 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-11 11:46:09 +00:00
John Crispin c59e6ee48d ralink: mt7628 does not actually need this fix for the ethernet driver
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43206 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-07 10:51:00 +00:00
John Crispin 7a875b6831 ralink: improve r43200
r43200 tries to detect if the fixup is needed or not. control the behaviour via
OF instead and disable unused ports.

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43201 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-06 12:19:53 +00:00
John Crispin 7996c754bd ralink: only apply ephy1 fixup if the phy is present
this broke e1700 lan2 as the fixup was applied to the phy inside the mt7530.

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43200 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-06 11:11:44 +00:00
John Crispin e6a6d7d6d1 ralink: add mt7628 support to the ethernet driver
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43196 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-06 09:31:19 +00:00
John Crispin 0f6eebbe44 ralink: cleanup ethernet Makefile/Kconfig
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43195 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-06 09:31:09 +00:00
John Crispin c4a31fe958 ralink: move ethernet driver to files/
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43194 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-06 09:31:03 +00:00
John Crispin 84238ad24d [ramips] move files to files-3.7
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36161 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-04-03 09:58:44 +00:00
John Crispin 7866042160 [ramips] fix for non-blinking LAN LEDs
https://dev.openwrt.org/ticket/12830

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35359 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-28 18:06:31 +00:00
Gabor Juhos eb858227b3 ramips: ramips_eth: use Kconfig definition to enable debug
The Kconfig identifier to enable debugging in the driver was different from the
actually used one. Fix that.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34332 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-25 14:25:54 +00:00
John Crispin 043881f47f [ramips] move ethernet hw init to init/uninit functions
This should fix the stalled irq problem seen by several people.
This is not the real fix, but rather moves the bug to the un/init patch of the driver.
The real bug still needs to be fixed, but this workaround should be suffcient to make
the ethernet stable.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34177 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-12 21:35:01 +00:00
John Crispin d27303e486 [ramips] add ethernet support for rt5350
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33548 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-25 14:47:08 +00:00
John Crispin f00a987a69 [ramips] make ramips ethernet use a register mapping table
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33547 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-25 14:46:58 +00:00
Gabor Juhos d4ae3a4ae2 ramips: Add missing andmask to ramips_esw register read for recv_good value.
Add missing andmask to ramips_esw register read for recv_good value.

Without the mask, recv_bad leaks into the recv_good packet count.
Didn't notice the bug before since you don't usually get bad
packets, so I only saw it when I was playing with overlength packets
earlier...

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33322 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-05 20:08:43 +00:00
Gabor Juhos 68eeafd44e ramips: Use doubletagging to disable ramips_esw vlan by default, it seems more reliable.
Use doubletagging to disable ramips_esw vlan by default, it seems
more reliable.

Daniel Golle found an issue where sometimes (possibly only for
RT3352) the default vlan disable method (clearing en_vlan, untag,
doubletag and putting all ports into vlan 0) doesn't work and the
packets get sent out vlan-tagged with vlan 0.

Instead switch to using the doubletagging method (allow doubletagged
packets, put all ports into vlan 0 with untag enabled) by default.

Unless someone figures out a way to really globally disable vlan for
this switch, this seems like the best (most reliable) option.

I did some tests regarding maximum packet size and did not see any

difference between the two methods, both allow for slightly bigger packets
than the ramips_main.c ethernet driver (ping stops going through
above "ping -s 1472" (1514 bytes), on the switch packets are recv_good until
"ping -s 1490", or about 1532 bytes).

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33321 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-05 20:08:42 +00:00
Gabor Juhos 9ea1da3c30 ramips: Power down phy on disabled switch ports
Power down phy on disabled switch ports.

Haven't measured this myself yet, but according to this
http://www.8devices.com/community/viewtopic.php?f=6&t=156
it can save about 300mW of power.

[juhosg: fix checkpatch warning]

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33304 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:45 +00:00
Gabor Juhos a06541402f ramips: Rename POC registers
Rename POC registers.

The current code uses POC1-POC3.

The datasheet uses:
POC1: Port Control 0
POC1: Port Control 1
POC2: Port Control 2

So the first POC1 is a typo that should have been POC0, rename the
registers to POC0-POC2 accordingly.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33302 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:41 +00:00
Gabor Juhos 0d5d65059a ramips: Minor ramips_esw.c cleanup
Stop handling VLAN setup in the kernel.
Removes the obsolete RT305X_ESW_VLAN_CONFIG_BYPASS option I added for
WL-351 and add some extra comments.
Also removes the en_vlan per-port flag that isn't very useful really, it now
is only controlled by the global enable_vlan flag.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33301 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:40 +00:00
Gabor Juhos d7bf863ba7 ramips: Add swconfig support to ramips_esw.c
Add swconfig support to ramips_esw.c

This patch adds swconfig support for ramips_esw:

Tested on both D-LINK DIR-300 B1 and Sitecom WL-351 (external
rtl8366rb on internal port 5).
I've made sure that in the enable_vlan=0 case it behaves like a dumb
switch, so external switches should work fine with vlans and
verified this on the WL-351.

The current state shown by swconfig is always read directly from HW
registers, new settings only show after 'swconfig dev rt305x set apply'.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33299 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:36 +00:00
Gabor Juhos 357755f0cc ramips: ramips_esw.c indentation cleanup
Minor indentation cleanup.

Prepare for the main swconfig patch by cleaning up indentation a bit.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33298 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:35 +00:00
Gabor Juhos db37661614 ramips: Add byte queue limits support to net/ethernet/ramips_main.c
Add byte queue limits support to net/ethernet/ramips_main.c

"Byte queue limits are a mechanism to limit the size of the transmit
hardware queue on a NIC by number of bytes. The goal of these byte
limits is too reduce latency (HOL blocking) caused by excessive
queuing in hardware (aka buffer bloat) without sacrificing
throughput."

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31844 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-23 21:05:23 +00:00
Gabor Juhos 990c8a3efa ramips: don't read RAMIPS_RX_CALC_IDX0 register in the loop
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30733 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-26 10:54:13 +00:00
Gabor Juhos d2cd4c0438 ramips: raeth: add rx_info structure
This helps to reduce code size on RX path:

add/remove: 0/0 grow/shrink: 3/1 up/down: 68/-56 (12)
function                                     old     new   delta
ramips_eth_open                             1104    1144     +40
ramips_ring_free                             212     232     +20
ramips_eth_stop                              400     408      +8
ramips_eth_rx_hw                             648     592     -56

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30732 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-26 10:54:12 +00:00
Gabor Juhos 1b4b107170 ramips: raeth: add tx_info structure
This helps to reduce code size on TX path:

add/remove: 0/0 grow/shrink: 1/4 up/down: 56/-92 (-36)
function                                     old     new   delta
ramips_eth_open                             1048    1104     +56
ramips_eth_tx_housekeeping                   156     148      -8
ramips_ring_free                             224     212     -12
ramips_eth_stop                              420     400     -20
ramips_eth_hard_start_xmit                   480     428     -52

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30731 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-26 10:54:10 +00:00
Gabor Juhos c0d5f4346a ramips: raeth: don't process disabled interrupts
Also rename the 'fe_int' variable.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30713 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-25 11:59:19 +00:00
Gabor Juhos 999cdff204 ramips: raeth: show interrupt statistics in debugfs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30681 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-22 13:06:44 +00:00