juhosg
08d268c8a7
ar71xx: ag71xx: check PHY IDs before accessing the switch registers
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29541 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 13:25:23 +00:00
juhosg
a82d9221c9
ar71xx: ag71xx: don't use port 4 of the switch, it is not connected on ar724x
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29540 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 13:25:21 +00:00
juhosg
ba116ade9e
ar71xx: ag71xx: nuke ar7240sw_init
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29539 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-15 13:25:20 +00:00
juhosg
35606f14a3
ar71xx: check squashfs signature in TP-Link mtd parser
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29446 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-05 14:52:33 +00:00
juhosg
17c2fb2fc8
ar71xx: add mtd partition parser for the TP-Link boards
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29415 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-03 18:13:27 +00:00
juhosg
73b96446ee
ar71xx: add AR71XX_ prefix to GPIO_REG_* defines
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29123 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-14 17:43:11 +00:00
juhosg
d9b73ec674
ar71xx: merge nand scan patch
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29122 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-14 17:43:10 +00:00
juhosg
3095cc8090
ar71xx: ag71xx: add support for getting switch port link status
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29017 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:27:04 +00:00
juhosg
451654dc3a
ar71xx: ag71xx: remove unused mii_ctrl field from struct ag71xx
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29015 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:27:01 +00:00
juhosg
749767a552
ar71xx: ag71xx: remove unused mii_cfg related functions and defines
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29014 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:27:00 +00:00
juhosg
228681e328
ar71xx: set MII interface speed from the set_speed callbacks
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29013 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:26:59 +00:00
juhosg
7571fae3ab
ar71xx: rename set_pll callback to set_speed in ag71xx_platform_data
...
Also rename the corresponding callback functions.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29012 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:26:57 +00:00
juhosg
95d3699b73
ar71xx: ag71xx: remove MII interface setup code
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29011 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-13 11:26:56 +00:00
juhosg
3cd36281d9
ar71xx: ag71xx: use fixed link parameters if the mii bus is not registered
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28977 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-12 10:54:16 +00:00
nbd
33f4cde7a9
ar71xx: remove dead code
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28851 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-08 00:33:20 +00:00
nbd
4677737b0a
ar71xx: on ar7240, exclude ports from their own port vlan destination mask
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28850 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-08 00:33:15 +00:00
jogo
d066413d5d
ag71xx: close a race between the phy state machine and link state
...
A fast stop/start cycle could leave the ag71xx interrupts and tx engine
disabled when using a phy driver with a fixed link and the start/stop
happens between two phy state machine polls.
Prevent this by always forcing the link down on stop regardless of phy
state and having a phy connected.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28380 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-10-08 11:37:14 +00:00
nbd
3c978d1604
ar71xx: fix register range check for DMA stuck checks (thx, Frédéric Moulins)
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28213 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-09-11 17:44:12 +00:00
nbd
db5c8f65ca
ar71xx: add some code to detect DMA stuck conditions on ar7240
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27975 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-13 22:30:14 +00:00
nbd
5051a6677f
ar71xx: on ar724x only reset the link status in the restart handler, the fast reset takes care of DMA stuck issues
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27973 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-13 21:49:46 +00:00
nbd
571d12ab3a
ar71xx: fix ethernet FIFO state corruption on ar7240
...
When starting/stopping DMA sometimes the FIFO state gets corrupted,
leading to wildly fluctuating latencies or packet data corruption.
Fix this by issuing a fast MAC reset as soon as the link is detected
as up. Fixes #9689 , #9405
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27896 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-04 17:36:31 +00:00
nbd
27818ae524
ag71xx: fix memory corruption issues on ar7240 on ethernet start/stop
...
When the DMA engine state gets corrupted due to a hardware issues, it
often won't stop rx until a full reset is issued. In that case the hardware
must keep a valid descriptor, otherwise it will write to random places in
system RAM, triggering random crashes. To fix this, keep a dummy descriptor
without a buffer that keeps the DMA engine in a sane state until the reset
is done
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27895 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-04 17:36:27 +00:00
nbd
3fe5c4149b
ar71xx: fix MAC/MDIO reset mask handling
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27894 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-04 17:36:23 +00:00
nbd
3bad82d2e7
ar71xx: reinitialize global switch settings after reset on ar7240
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27705 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 14:39:47 +00:00
nbd
340551c062
ar71xx: configure address aging on ar7240
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27704 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 14:39:42 +00:00
nbd
8ea4f149b0
ar71xx: reset the phy in the ethernet init on ar724x
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27703 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:34 +00:00
nbd
96c14099ce
ar71xx: make sure that rx and interrupts are disabled before issuing the hardware reset
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27702 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:29 +00:00
nbd
9dfcd7e5e2
ar71xx: increase the delay after the ethernet MAC reset
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27701 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:25 +00:00
nbd
db4cd49d62
ar71xx: fix an unused variable warning
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27700 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-20 12:04:20 +00:00
nbd
ec8e57edd9
ar71xx: do not reset the hardware on transmit timeout - this would mess up the up the PHY state
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27568 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-09 06:30:13 +00:00
nbd
cc32100390
ag71xx: keep the rx engine stopped while the link is not up, should hopefully fix stability issues from #9405
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27567 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-09 06:29:46 +00:00
juhosg
5c047f9906
ar71xx: merge 2.6.39 patches
...
Also remove the old UART driver for ar933x.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27314 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-29 08:57:37 +00:00
juhosg
da1bd2aad6
ar71xx: add 2.6.39 support
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27310 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-29 08:57:32 +00:00
juhosg
8738d0666a
ar71xx: cleanup AR933X UART driver
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27222 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-19 13:17:51 +00:00
juhosg
63dccaf23b
ar71xx: use ar933x_uart.h in the AR933X serial driver
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27166 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-13 08:12:40 +00:00
juhosg
377e161817
ar71xx: setup wdt_clock for AR913X to avoid a kernel bug
...
Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27102 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-04 12:30:10 +00:00
nbd
480dfda6ec
Revert "ar71xx: only enable the rx engine after the link is up..."
...
It messes up the DMA state when the link goes down
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27088 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-01 18:15:43 +00:00
juhosg
1c869e33cc
ar71xx: add serial driver for the AR933X UART
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27065 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:40 +00:00
juhosg
c7eb38661b
ar71xx: the watchdog uses the reference clock on the AR933x SoCs
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27060 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:34 +00:00
juhosg
eaa759a8e5
ar71xx: Fix header offset for newer WRT160NL models
...
Newer WRT160NLs have a flash chip with 4K erase blocks instead of 64K,
resulting in miscalculated partition sizes.
Since the actual sizes did not change, hardcode them to their current
sizes, and make sure they are at least one erase block big (in case Cisco
decides to start to use chips with 128K erase blocks).
Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27049 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:20 +00:00
juhosg
75e1476cce
ar71xx: ag71xx: make ring sizes configurable via ethtool
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27041 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:10 +00:00
juhosg
a137dec884
ar71xx: ag71xx: prepare to make ring sizes configurable
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27040 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:09 +00:00
juhosg
940317dc35
ar71xx: ag71xx: nuke unused AG71XX_TX_FIFO_LEN define
...
Reported-by: Dave Täht <dave.taht@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27039 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-31 22:53:07 +00:00
nbd
debcf79f90
ar71xx: only enable the rx engine after the link is up, fixes a race condition that got rx stuck when the interface is brought up during lots of inbound traffic (thx, matteo)
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27035 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-30 23:08:01 +00:00
nbd
20aef6d6fc
ar71xx: disable flow control for ar724x, it can get stuck in a loop of continously sending MAC pause frames
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27034 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-30 23:07:57 +00:00
matteo
483991c363
ar71xx: detect link on LAN ports
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26922 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-17 11:12:56 +00:00
matteo
51053e7640
use correct macros and frame size in ag71xx
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26890 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-14 23:10:06 +00:00
juhosg
bb14a2f07c
ar71xx: ag71xx: make switch register access atomic
...
Reading of the PHY registers occasionally returns with bogus values
under heavy load. This misleads the PHY driver and thus causes false
link/speed change notifications which leads to performance loss.
This is easily noticable during an iperf session:
...
[ 3] 52.0-53.0 sec 11.3 MBytes 94.4 Mbits/sec
[ 3] 53.0-54.0 sec 11.4 MBytes 95.4 Mbits/sec
eth1: link down
br-lan: port 2(eth1) entering forwarding state
eth1: link up (100Mbps/Full duplex)
br-lan: port 2(eth1) entering forwarding state
br-lan: port 2(eth1) entering forwarding state
[ 3] 54.0-55.0 sec 6.75 MBytes 56.6 Mbits/sec
[ 3] 55.0-56.0 sec 0.00 Bytes 0.00 bits/sec
[ 3] 56.0-57.0 sec 10.5 MBytes 88.1 Mbits/sec
...
[ 3] 169.0-170.0 sec 11.4 MBytes 95.4 Mbits/sec
[ 3] 170.0-171.0 sec 11.4 MBytes 95.4 Mbits/sec
eth1: link up (10Mbps/Half duplex)
[ 3] 171.0-172.0 sec 7.63 MBytes 64.0 Mbits/sec
[ 3] 172.0-173.0 sec 9.38 MBytes 78.6 Mbits/sec
eth1: link up (100Mbps/Full duplex)
[ 3] 173.0-174.0 sec 11.3 MBytes 94.4 Mbits/sec
[ 3] 174.0-175.0 sec 11.4 MBytes 95.4 Mbits/sec
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26856 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-08 16:32:53 +00:00
juhosg
0511a7adf1
ar71xx: ag71xx: fix section mismatch warnings
...
The function __devinit ag71xx_probe() references
a function __devexit ag71xx_phy_disconnect().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __devexit annotation of
ag71xx_phy_disconnect() so it may be used outside an exit section.
The function ag71xx_phy_disconnect() references a function in an exit
section.
Often the function ag71xx_ar7240_cleanup() has valid usage outside the
exit section
and the fix is to remove the __devexit annotation of
ag71xx_ar7240_cleanup.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26855 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-08 13:30:36 +00:00
juhosg
14088891b0
ar71xx: ag71xx: fix build error if debugfs is enabled
...
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26854 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-08 13:30:26 +00:00