diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-07-20 14:39:42 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-07-20 14:39:42 +0000 |
commit | ca473833c42367e1bd48cb43138b09590b8120a9 (patch) | |
tree | 5b1a0ed68dd71845ac2bb276cf22754c529850f3 /target | |
parent | fefc79f3cb0c74d9890617284e6fe2f8d2f6c203 (diff) | |
download | upstream-ca473833c42367e1bd48cb43138b09590b8120a9.tar.gz upstream-ca473833c42367e1bd48cb43138b09590b8120a9.tar.bz2 upstream-ca473833c42367e1bd48cb43138b09590b8120a9.zip |
ar71xx: configure address aging on ar7240
SVN-Revision: 27704
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c index d84cc81aec..fe3232be56 100644 --- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c +++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c @@ -57,7 +57,13 @@ #define AR7240_VTUDATA_MEMBER BITS(0, 10) #define AR7240_VTUDATA_VALID BIT(11) +#define AR7240_REG_ATU 0x50 +#define AR7240_ATU_FLUSH_ALL 0x1 + #define AR7240_REG_AT_CTRL 0x5c +#define AR7240_AT_CTRL_AGE_TIME BITS(0, 15) +#define AR7240_AT_CTRL_AGE_EN BIT(17) +#define AR7240_AT_CTRL_LEARN_CHANGE BIT(18) #define AR7240_AT_CTRL_ARP_EN BIT(20) #define AR7240_REG_TAG_PRIORITY 0x70 @@ -446,8 +452,12 @@ static void ar7240sw_setup(struct ar7240sw *as) /* Setup TAG priority mapping */ ar7240sw_reg_write(mii, AR7240_REG_TAG_PRIORITY, 0xfa50); - /* Enable ARP frame acknowledge */ - ar7240sw_reg_set(mii, AR7240_REG_AT_CTRL, AR7240_AT_CTRL_ARP_EN); + /* Enable ARP frame acknowledge, aging, MAC replacing */ + ar7240sw_reg_write(mii, AR7240_REG_AT_CTRL, + 0x2b /* 5 min age time */ | + AR7240_AT_CTRL_AGE_EN | + AR7240_AT_CTRL_ARP_EN | + AR7240_AT_CTRL_LEARN_CHANGE); /* Enable Broadcast frames transmitted to the CPU */ ar7240sw_reg_set(mii, AR7240_REG_FLOOD_MASK, |