summaryrefslogtreecommitdiffstats
path: root/sys/dev/fxp
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2010-05-07 18:03:35 +0000
committeryongari <yongari@FreeBSD.org>2010-05-07 18:03:35 +0000
commit3e71fc19c6fb2fa393e610a790ff6bb2fecb8e6c (patch)
tree0ce3eab5b5a29c657aea8b6aff5b7191b04d5a26 /sys/dev/fxp
parentc7f2e5c804d1e1f486b02bed91a44bc4603a6c61 (diff)
downloadFreeBSD-src-3e71fc19c6fb2fa393e610a790ff6bb2fecb8e6c.zip
FreeBSD-src-3e71fc19c6fb2fa393e610a790ff6bb2fecb8e6c.tar.gz
8255x configure command requires number of bytes of configuration
table. The default size of the configuration table was 22 bytes. To use extended feature of 82550/82551 the configuration table size was expanded to 32 bytes. The added configuration for 82550/82551 specifies VLAN hardware tagging and IPSec configuration as well as TCO. To make configuration easier fxp(4) used a configuration template and the template was copied to configuration table. After that, some parameters of the configuration table was changed depending on controller type and operation mode. However the size of template was 22 bytes so some configuration parameters were not properly initialized on 82550/82551. Fix this by increasing the template size. For 82557, 82558 and 82559 the size of the configuration is still 22 bytes.
Diffstat (limited to 'sys/dev/fxp')
-rw-r--r--sys/dev/fxp/if_fxp.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c
index 4be525d..9c0b44a 100644
--- a/sys/dev/fxp/if_fxp.c
+++ b/sys/dev/fxp/if_fxp.c
@@ -106,9 +106,8 @@ static int tx_threshold = 64;
/*
* The configuration byte map has several undefined fields which
- * must be one or must be zero. Set up a template for these bits
- * only, (assuming a 82557 chip) leaving the actual configuration
- * to fxp_init.
+ * must be one or must be zero. Set up a template for these bits.
+ * The actual configuration is performed in fxp_init.
*
* See struct fxp_cb_config for the bit definitions.
*/
@@ -137,7 +136,17 @@ static u_char fxp_cb_config_template[] = {
0xf0, /* 18 */
0x0, /* 19 */
0x3f, /* 20 */
- 0x5 /* 21 */
+ 0x5, /* 21 */
+ 0x0, /* 22 */
+ 0x0, /* 23 */
+ 0x0, /* 24 */
+ 0x0, /* 25 */
+ 0x0, /* 26 */
+ 0x0, /* 27 */
+ 0x0, /* 28 */
+ 0x0, /* 29 */
+ 0x0, /* 30 */
+ 0x0 /* 31 */
};
/*
OpenPOWER on IntegriCloud