summaryrefslogtreecommitdiffstats
path: root/sys/dev/fxp
diff options
context:
space:
mode:
authormux <mux@FreeBSD.org>2005-04-21 19:34:57 +0000
committermux <mux@FreeBSD.org>2005-04-21 19:34:57 +0000
commit667f7321287d811ba61deb4cafa622efc47f7cbc (patch)
tree14eb0d21ea4b99d82e7ac153b63cfa45b45b977d /sys/dev/fxp
parentfa9f34652d93f563eecad9ece0a3fe7182258ecb (diff)
downloadFreeBSD-src-667f7321287d811ba61deb4cafa622efc47f7cbc.zip
FreeBSD-src-667f7321287d811ba61deb4cafa622efc47f7cbc.tar.gz
Add a microcode to implement receive bundling for 82551 chipsets with
a revision ID of 0x0f (D102 E-step). MFC after: 2 weeks Tested by: pav
Diffstat (limited to 'sys/dev/fxp')
-rw-r--r--sys/dev/fxp/if_fxp.c3
-rw-r--r--sys/dev/fxp/if_fxpreg.h1
-rw-r--r--sys/dev/fxp/rcvbundl.h168
3 files changed, 152 insertions, 20 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c
index 0085ca4..1a702de 100644
--- a/sys/dev/fxp/if_fxp.c
+++ b/sys/dev/fxp/if_fxp.c
@@ -2622,6 +2622,7 @@ static uint32_t fxp_ucode_d101ma[] = D101M_B_RCVBUNDLE_UCODE;
static uint32_t fxp_ucode_d101s[] = D101S_RCVBUNDLE_UCODE;
static uint32_t fxp_ucode_d102[] = D102_B_RCVBUNDLE_UCODE;
static uint32_t fxp_ucode_d102c[] = D102_C_RCVBUNDLE_UCODE;
+static uint32_t fxp_ucode_d102e[] = D102_E_RCVBUNDLE_UCODE;
#define UCODE(x) x, sizeof(x)/sizeof(uint32_t)
@@ -2642,6 +2643,8 @@ struct ucode {
D102_B_CPUSAVER_DWORD, D102_B_CPUSAVER_BUNDLE_MAX_DWORD },
{ FXP_REV_82550_C, UCODE(fxp_ucode_d102c),
D102_C_CPUSAVER_DWORD, D102_C_CPUSAVER_BUNDLE_MAX_DWORD },
+ { FXP_REV_82551, UCODE(fxp_ucode_d102e),
+ D102_E_CPUSAVER_DWORD, D102_E_CPUSAVER_BUNDLE_MAX_DWORD },
{ 0, NULL, 0, 0, 0 }
};
diff --git a/sys/dev/fxp/if_fxpreg.h b/sys/dev/fxp/if_fxpreg.h
index 2f724ef..9981475 100644
--- a/sys/dev/fxp/if_fxpreg.h
+++ b/sys/dev/fxp/if_fxpreg.h
@@ -468,3 +468,4 @@ struct fxp_stats {
#define FXP_REV_82559S_A 9 /* 82559S A stepping */
#define FXP_REV_82550 12
#define FXP_REV_82550_C 13 /* 82550 C stepping */
+#define FXP_REV_82551 15 /* 82551 */
diff --git a/sys/dev/fxp/rcvbundl.h b/sys/dev/fxp/rcvbundl.h
index ec9b99b..2510f42 100644
--- a/sys/dev/fxp/rcvbundl.h
+++ b/sys/dev/fxp/rcvbundl.h
@@ -40,7 +40,7 @@ Version: 3.28
This file contains the loadable micro code arrays to implement receive bundling on the
D101 A-step, D101 B-step, D101M (B-step only), D101S, D102 B-step,
-D102 B-step with TCO work around and D012 C-step.
+D102 B-step with TCO work around, D102 C-step and D102 E-step.
Each controller has its own specific micro code array. The array for one controller
is totally incompatible with any other controller, and if used will most likely
@@ -51,25 +51,6 @@ rcvbundl.h file given above).
*/
-/* Size of loadable micro code image for each supported chip. */
-#ifndef D100_NUM_MICROCODE_DWORDS
-#define D100_NUM_MICROCODE_DWORDS 66
-#endif
-#ifndef D101_NUM_MICROCODE_DWORDS
-#define D101_NUM_MICROCODE_DWORDS 102
-#endif
-#ifndef D101M_NUM_MICROCODE_DWORDS
-#define D101M_NUM_MICROCODE_DWORDS 134
-#endif
-#ifndef D101S_NUM_MICROCODE_DWORDS
-#define D101S_NUM_MICROCODE_DWORDS 134
-#endif
-#ifndef D102_NUM_MICROCODE_DWORDS
-#define D102_NUM_MICROCODE_DWORDS 134
-#endif
-#ifndef D102_NUM_TCO_MICROCODE_DWORDS
-#define D102_NUM_TCO_MICROCODE_DWORDS 134
-#endif
/*************************************************************************
@@ -1127,3 +1108,150 @@ rcvbundl.h file given above).
0x00000000, \
0x00000000, \
}
+
+/********************************************************/
+/* Micro code for the D102 E-step */
+/********************************************************/
+
+/* Parameter values for the D102 E-step */
+#define D102_E_CPUSAVER_DWORD 42
+#define D102_E_CPUSAVER_BUNDLE_MAX_DWORD 54
+#define D102_E_CPUSAVER_MIN_SIZE_DWORD 46
+
+#define D102_E_RCVBUNDLE_UCODE \
+{\
+0x007D028F, \
+0x0E4204F9, \
+0x14ED0C85, \
+0x14FA14E9, \
+0x0EF70E36, \
+0x1FFF1FFF, \
+0x00E014B9, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00E014BD, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00E014D5, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00E014C1, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00E014C8, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00200600, \
+0x00E014EE, \
+0x00000000, \
+0x00000000, \
+0x0030FF80, \
+0x00940E46, \
+0x00038200, \
+0x00102000, \
+0x00E00E43, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00300006, \
+0x00E014FB, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00906E41, \
+0x00800E3C, \
+0x00E00E39, \
+0x00000000, \
+0x00906EFD, \
+0x00900EFD, \
+0x00E00EF8, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+0x00000000, \
+}
OpenPOWER on IntegriCloud