+ if (i == 5 && inqbuf.version == 1 && inqbuf.qualifier == 0x50) {
+ printf(" TK50\n");
+ sc->sc_tapeid = MT_ISTK50;
+ } else if (i == 5 && inqbuf.version == 1 && inqbuf.qualifier == 0) {
+ /* assume Emultex MT02 controller */
+ printf(" MT02\n");
+ sc->sc_tapeid = MT_ISMT02;
+ } else if (inqbuf.version > 2 || i < 36) {
+ printf(" GENERIC SCSI tape device: qual 0x%x, ver %d\n",
+ inqbuf.qualifier, inqbuf.version);
+ sc->sc_tapeid = 0;
+ } else {
+ char vid[9], pid[17], revl[5];
+
+ bcopy((caddr_t)inqbuf.vendorID, (caddr_t)vid, 8);
+ bcopy((caddr_t)inqbuf.productID, (caddr_t)pid, 16);
+ bcopy((caddr_t)inqbuf.revLevel, (caddr_t)revl, 4);
+ for (i = 8; --i > 0; )
+ if (vid[i] != ' ')
+ break;
+ vid[i+1] = 0;
+ for (i = 16; --i > 0; )
+ if (pid[i] != ' ')
+ break;
+ pid[i+1] = 0;
+ for (i = 4; --i > 0; )
+ if (revl[i] != ' ')
+ break;
+ revl[i+1] = 0;
+ printf(" %s %s rev %s\n", vid, pid, revl);
+
+ if (bcmp("EXB-8200", pid, 8) == 0) {
+ sc->sc_tapeid = MT_ISEXABYTE;
+ sc->sc_modelen = 17;
+ } else if (bcmp("VIPER 150", pid, 9) == 0) {
+ sc->sc_tapeid = MT_ISVIPER1;
+ } else if (bcmp("Python 25501", pid, 12) == 0) {
+ sc->sc_tapeid = MT_ISPYTHON;
+ } else if (bcmp("HP35450A", pid, 8) == 0) {
+#if 0
+ /* XXX "extra" stat makes the HP drive happy at boot time */
+ stat = scsi_test_unit_rdy(ctlr, slave, unit);
+#endif
+ sc->sc_tapeid = MT_ISHPDAT;
+ } else if (bcmp("123107 SCSI", pid, 11) == 0) {
+ sc->sc_tapeid = MT_ISMFOUR;
+ } else {
+ printf("tz%d: assuming GENERIC SCSI tape device\n",
+ sd->sd_unit,
+ inqbuf.type, inqbuf.qualifier, inqbuf.version);
+ sc->sc_tapeid = 0;
+ }
+ }