Make firmware version 4.1.12 the default for download to PCA-200E adapters.

The old firmware (3.0.1) can still be used by specifying the '-3' option
to fore_dnld.

Document the -r option that resets the adapter prior to the download.

Ther newer firmware version allows traffic shaping.
This commit is contained in:
Hartmut Brandt 2003-07-31 14:26:07 +00:00
parent 50b751a7d4
commit fac5c31769
3 changed files with 2073 additions and 11 deletions

View File

@ -33,9 +33,11 @@
.Nd "download FORE Systems' microcode into host ATM adapter"
.Sh SYNOPSIS
.Nm
.Op Fl Ar intf
.Op Fl 3
.Op Fl i Ar intf
.Op Fl d Ar path
.Op Fl f Ar objfile
.Op Fl r
.Sh DESCRIPTION
The
.Nm
@ -62,7 +64,10 @@ for PCA-200E adapters.
.El
.Sh NOTES
For the PCA200E adapter, if no file is specified on the command
line a built-in copy of version 3.0.1 microcode is used.
line a built-in copy of version 4.1.12 microcode is used. When the
option
.Fl 3
is specified version 3.0.1 microcode is used instead.
.Pp
Microcode as distributed by FORE Systems is not ready for downloading
directly into SBA host ATM adapters.

View File

@ -68,8 +68,10 @@
__RCSID("@(#) $FreeBSD$");
#endif
extern u_char pca200e_microcode[];
extern int pca200e_microcode_size;
extern u_char pca200e_microcode_3[];
extern int pca200e_microcode_size_3;
extern u_char pca200e_microcode_4[];
extern int pca200e_microcode_size_4;
#ifdef sun
#define DEV_NAME "/dev/sbus%d"
@ -919,12 +921,16 @@ main(int argc, char *argv[])
char base[64]; /* sba200/sba200e/pca200e basename */
int ext = 0; /* 0 == bin 1 == objd */
struct stat sbuf; /* Used to find if .bin or .objd */
int pca_vers = 4;
progname = basename(argv[0]);
comm_mode = strcmp ( progname, "fore_comm" ) == 0;
while ( ( c = getopt ( argc, argv, "i:d:f:berv" ) ) != -1 )
while ( ( c = getopt ( argc, argv, "3i:d:f:berv" ) ) != -1 )
switch ( c ) {
case '3':
pca_vers = 3;
break;
case 'b':
binary++;
break;
@ -1280,8 +1286,13 @@ main(int argc, char *argv[])
break;
case DEV_FORE_PCA200E:
/* Use compiled in microcode */
ucode = pca200e_microcode;
ucode_size = pca200e_microcode_size;
if (pca_vers == 3) {
ucode = pca200e_microcode_3;
ucode_size = pca200e_microcode_size_3;
} else {
ucode = pca200e_microcode_4;
ucode_size = pca200e_microcode_size_4;
}
break;
default:
break;
@ -1336,5 +1347,4 @@ main(int argc, char *argv[])
* Exit
*/
exit (0);
}

File diff suppressed because it is too large Load Diff