Hi Erick,
-
Can you please clarify what you mean by specifying the device id?
The online docs do not explain anything about the ‘did’ option. Can I get
its proper syntax?
-
It seems that devb-ncr8 does not have proper command-line argument
parsing. It seems to accept any invalid option that is passed to it,
without displaying any errors, so I never know when it has accepted a valid
option, and when it has simply ignored my option either because it is not
supported, or because I made a typing mistake.
-
Having said all the above, I tried your command with 2 pci indices:
devb-ncr8 cam verbose ncr8 pci=0,did=h
devb-ncr8 cam verbose ncr8 pci=1,did=h
and none of them worked.
I guessed that maybe what you meant is to specify did=f (and not did=h),
since the output of my ‘pci’ command is the following:
Class = Mass Storage (SCSI)
Vendor ID = 1000h, LSI Logic
Device ID = fh, 53C875, 53C876 Ultra-Wide SCSI (53C876 is dual-channel)
PCI index = 0h
IO Address = e800h enabled
Mem Address = ea004000h enabled
Mem Address = ea000000h enabled
Expansion ROM = e8000000h disabled
PCI Int Pin = INT A
Interrupt line = 9
Class = Mass Storage (SCSI)
Vendor ID = 1000h, LSI Logic
Device ID = fh, 53C875, 53C876 Ultra-Wide SCSI (53C876 is dual-channel)
PCI index = 1h
IO Address = ec00h enabled
Mem Address = ea002000h enabled
Mem Address = ea003000h enabled
Expansion ROM = e9000000h disabled
PCI Int Pin = INT A
Interrupt line = 10
which means that my device id is 0x0F (or 15 decimal), so I tried:
slay devb-ncr8
devb-ncr8 cam verbose ncr8 pci=0,did=f
and I got:
scsi_interpret_sense: path=0, target=1, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=2, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=3, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=4, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=5, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=6, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=7, lun=0, cam_status=79, scsi_status=0
scsi_interpret_sense: path=0, target=8, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=9, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=10, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=11, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=12, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=13, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=14, lun=0, cam_status=4a,
scsi_status=0
[00] SIM="" HBA=“53C875+”
[00,0,0] type=00 ver=02 resp=02 SEAGATE ST32550N 0016
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=c4, scsi_status=2
scsi_interpret_sense: error=70, sense=6, asc=29, ascq=0
scsi_interpret_sense: ASC_BUS_RESET
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=c4, scsi_status=2
scsi_interpret_sense: error=70, sense=5, asc=24, ascq=0
scsi_interpret_sense: SK_ILLEGAL command 1a in commandbyte
which seems ok. Then I followed it with:
devb-ncr8 cam verbose ncr8 pci=1,did=f
Resulting in the following strange output:
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=1, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=2, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=3, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=4, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=5, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=6, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=7, lun=0, cam_status=79, scsi_status=0
scsi_interpret_sense: path=0, target=8, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=9, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=10, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=11, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=12, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=13, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=14, lun=0, cam_status=4a,
scsi_status=0
[00] SIM="" HBA=“53C875+”
When I checked with my driver what was going on, it told me that the 2 PCI
indices 0 and 1 were “IN USE”.
So now I tried:
/root# slay devb-ncr8
slay: sbin/devb-ncr8 811034 on (tty not known) (y/N)? Y
slay: sbin/devb-ncr8 823325 on (tty not known) (y/N)? Y
followed by:
/root# devb-ncr8 cam verbose ncr8 pci=1,did=f
/root# scsi_interpret_sense: path=0, target=0, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=1, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=2, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=3, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=4, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=5, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=6, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=7, lun=0, cam_status=79, scsi_status=0
scsi_interpret_sense: path=0, target=8, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=9, lun=0, cam_status=4a, scsi_status=0
scsi_interpret_sense: path=0, target=10, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=11, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=12, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=13, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=14, lun=0, cam_status=4a,
scsi_status=0
[00] SIM="" HBA=“53C875+”
When I checked with my driver, it said that pci index=1 was “IN USE”.
So, I suspect that the proper syntax should be:
devb-ncr8 cam verbose ncr8 pci=1,did=f
however, your verbose output is reporting that “path=0” in both cases for
pci=0 and pci=1. What is not clear to me is whether ‘path’ actually means
the same as ‘pci index’ or not? And how come I get path=0 and path=1 when I
don’t specify the pci index.
Can you clarify that as well?
Thanks a lot!
Alain.
“Hardware Support Account” <hw@qnx.com> wrote in message
news:9rn27l$b12$1@nntp.qnx.com…
Hi Alain,
If you pass the device ID of the controller along with the PCI Index
you will be able to start the driver for the the controller specified.
E.g. devb-ncr8 cam verbose ncr8 pci=0,did=h
I did this with two 53C875 cards and when I would specify the device id
then only the specified controller would start.
Erick.
Alain Achkar <> aachkar@storagequest.com> > wrote:
Hello,
I have 2 Symbios (or LSI Logic) PCI cards in my PC. When I type the
following:
devb-ncr8 cam verbose ncr8 pci=0
I get:
scsi_interpret_sense: path=0, target=1, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=2, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=3, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=4, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=5, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=6, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=7, lun=0, cam_status=79,
scsi_status=0
scsi_interpret_sense: path=0, target=8, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=9, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=10, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=11, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=12, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=13, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=14, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=0, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=1, lun=0, cam_status=79,
scsi_status=0
scsi_interpret_sense: path=1, target=2, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=3, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=4, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=5, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=6, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=7, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=8, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=9, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=10, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=11, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=12, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=13, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=1, target=14, lun=0, cam_status=4a,
scsi_status=0
[00] SIM="" HBA=“53C875+”
[00,0,0] type=00 ver=02 resp=02 SEAGATE ST32550N 0016
[01] SIM="" HBA=“53C875+”
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=c4,
scsi_status=2
scsi_interpret_sense: error=70, sense=6, asc=29, ascq=0
scsi_interpret_sense: ASC_BUS_RESET
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=c4,
scsi_status=2
scsi_interpret_sense: error=70, sense=5, asc=24, ascq=0
scsi_interpret_sense: SK_ILLEGAL command 1a in commandbyte
If I type the following:
devb-ncr8 cam verbose ncr8 pci=1
I get the same results as above.
This shows that devb-ncr8 is scanning both cards regardless of the pci
option.
Can someone at QSSL please look into this?
We are writing a target mode driver that needs exclusive access to one
card.
Right now, what I am forced to do is:
- slay devb-ncr8
- taspi devid=1 (Start my driver, which properly attaches to the
specified card on its command line, in this case devid=1)
- devb-ncr8 cam verbose
Only now do I get the desired result:
scsi_interpret_sense: path=0, target=2, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=3, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=4, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=5, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=6, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=7, lun=0, cam_status=79,
scsi_status=0
scsi_interpret_sense: path=0, target=8, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=9, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=10, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=11, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=12, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=13, lun=0, cam_status=4a,
scsi_status=0
scsi_interpret_sense: path=0, target=14, lun=0, cam_status=4a,
scsi_status=0
[00] SIM="" HBA=“53C875+”
[00,0,0] type=00 ver=02 resp=02 SEAGATE ST32550N 0016
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=c4,
scsi_status=2
scsi_interpret_sense: error=70, sense=6, asc=29, ascq=0
scsi_interpret_sense: ASC_BUS_RESET
scsi_interpret_sense: path=0, target=0, lun=0, cam_status=c4,
scsi_status=2
scsi_interpret_sense: error=70, sense=5, asc=24, ascq=0
scsi_interpret_sense: SK_ILLEGAL command 1a in commandbyte
This work-around is causing us a lot of problems, and I appreciate if a
fix
can be found.
Thank you!
Alain Achkar