summaryrefslogtreecommitdiffstats
path: root/sbin/atm/fore_dnld/fore_dnld.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/atm/fore_dnld/fore_dnld.c')
-rw-r--r--sbin/atm/fore_dnld/fore_dnld.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/sbin/atm/fore_dnld/fore_dnld.c b/sbin/atm/fore_dnld/fore_dnld.c
index c973fa6..bc3cde9 100644
--- a/sbin/atm/fore_dnld/fore_dnld.c
+++ b/sbin/atm/fore_dnld/fore_dnld.c
@@ -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);
-
}
OpenPOWER on IntegriCloud