Date: Tue, 25 Nov 1997 15:29:54 -0500 (EST) From: "Christopher T. Johnson" <cjohnson@neunacht.netgsi.com> To: questions@freebsd.org Subject: NCR 810a breaks AMANDA, help please Message-ID: <Pine.BSF.3.95q.971125150603.349A-100000@neunacht.netgsi.com>
index | next in thread | raw e-mail
Because one of our new computers needs an ISA scsi card, on Friday I
decided to upgrade my computer from an Adaptec 1542CP to an NCR
controller. The controller I ended up with is an ASUS SC-200 which is
recogonized as an NCR 53c810a. All well and good.
I'm running FreeBSD Current as of Monday night.
Once I installed the 810, disk response seemed to be much more responsive
but my amflush died.
The following test code will cause the same error to occur:
----------------------------------
#include <stdio.h>
#include <sys/mtio.h>
#include <fcntl.h>
main()
{
struct mtop mt;
int result;
int tapefd;
#define BUFFER_SIZE (32*1024)
char buffer[BUFFER_SIZE];
fprintf(stderr,"We is here.\n");
tapefd = open("/dev/nrst0", O_RDONLY);
if (tapefd < 0) {
perror("open");
}
printstatus(tapefd);
fprintf(stderr,"Rewind 1.\n");
mt.mt_op = MTREW;
mt.mt_count = 1;
result = ioctl(tapefd, MTIOCTOP, &mt);
if (result < 0) {
perror("rewind 1");
}
printstatus(tapefd);
result = close(tapefd);
if (result) {
perror("close 1");
}
fprintf(stdout,"closed, now opening WRONLY\n");
tapefd = open("/dev/nrst0", O_WRONLY);
if (tapefd < 0) {
perror("open 2");
}
printstatus(tapefd);
fprintf(stderr,"Rewind 1.\n");
mt.mt_op = MTREW;
mt.mt_count = 1;
result = ioctl(tapefd, MTIOCTOP, &mt);
if (result < 0) {
perror("rewind 1");
}
printstatus(tapefd);
memset(buffer, '\0', BUFFER_SIZE);
sprintf(buffer, "AMANDA: TAPESTART DATE %s TAPE %s\n\014\n",
"X", "NET024");
result = write(tapefd, buffer, BUFFER_SIZE);
if (result != BUFFER_SIZE) {
if (result > 0) {
perror("short write");
}
}
printstatus(tapefd);
result = close(tapefd);
if (result) {
perror("close");
}
fprintf(stderr,"We're out of here....\n");
return 0;
}
printstatus(int fd)
{
struct mtget status;
int result;
result = ioctl(fd, MTIOCGET, &status);
if (result) {
perror("ioctl MTIOCGET");
}
fprintf(stdout,"mt_type = 0x%x\nmt_dsreg = 0x%x\nmt_erreg = 0x%x\n",
status.mt_type, status.mt_dsreg, status.mt_erreg);
}
------------------------
I replaced the NCR card with the 1542 and the problem went away. Went
back to the NCR for more debugging.
Here is what scsi says is the sense status after a rewind failure.
-------------------------
scsi -f /dev/rst0.ctl -c "03 00 00 00 20 00" -i 32 - |\
hexdump -C
00000000 70 00 00 00 00 7f ff 12 00 00 00 00 00 00 00 00 |p...............|
00000010 00 00 00 00 00 00 00 22 f3 b1 00 00 00 00 00 00 |......."........|
--------------------------
The command has also responeded as:
00000000 70 00 00 00 ff ff ff 12 00 00 00 00 00 00 00 00 |p...............|
00000010 00 00 00 00 00 00 00 22 f3 b1 00 00 00 00 00 00 |......."........|
Here is the results of the inquire:
scsi -f /dev/rst0.ctl -c "12 0 0 0 40 0" -i 64 "s8 z8 z16 z4"
EXABYTE EXB-8200 252X
------------
For grins, I modified the NCR driver so that the 53c810a was treated
just like it was a 53c810 as far as features was concerned, this made
no difference.
-------------------
Oh, the other reason I want to get away from the ADAPTEC card, it
gives me DMA beyond ISA range error messages often.
Often enough that I'm willing to take a few dumps of the system for
anybody that wants to debug the aha driver.
Thanks in advance...
Christopher T. Johnson <cjohnson@netgsi.com>
P.S. I'm running 3 weeks behind on my freebsd lists, please cc a copy
of any response to my e-mail address, thanks.
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.971125150603.349A-100000>
