Skip to contentSkip to conversation

E Class and SCSI (53c700 driver)

DISCUSSION Helge Deller 5 participants 9 messages Apr 2, 2015 – Apr 3, 2015 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

Hi Dmitry,

I've added the parisc-kernel-devel mailing list too, since I expect that *if* somebody is able to answer your question, it will probably be on the parisc-kernel-devel list...

Quoted 11 lines · Dmitry the Zuryanovich

As I understand, E class (in my case - E25) has LASI based 53c710 which is handled by 53c700.c? (and in case of workstations wrapped by lasi700 - what's for? Just for detecting it?)

If I know that that's

5. Sahp Baat Kiuh SCSI at 0xfff74000 [56/52] {4, 0x0, 0x044, 0x00039}

, is there a reason to try to

#modprobe 53c700 clock=25 base=0xfff74000

Looking at drivers/scsi/lasi700.c, it seems the lasi700 driver sets additional flags like force_le_on_be, chip710, burst_length and so on.
In addition, the IRQs gets connected via drivers/parisc/lasi.c (see lasi_choose_irq()). I assume you would need at least a "case 0x39" in there.
But James is the expert on the 53c700 driver, so he might know more... ?

Quoted 6 lines

[correct my syntax] and may I expect this to work somehow?

What's the problem with SCSI on E class? Is that a need of some driver which calls 53c700.c with correct parameters taken from hardware? Can it be just passed to module via parameter or the problem is deeper?

It might be deeper.
In arch/parisc/kernel/hardware.c I see:

        {HPHW_A_DMA, 0x044, 0x00039, 0x80, "Sahp Baat Kiuh SCSI"},
while other SCSI drivers on LASI have HPHW_FIO, e.g.:
	{HPHW_FIO, 0x016, 0x00082, 0x0, "Gecko Core SCSI"},

For reference, here is the full dmesg from Dmitry when he tried to boot his E25 machine with a recent Linux kernel:
ftp://parisc.parisc-linux.org/dmesg/E25.dmesg (http://pastebin.com/sXqUjVub)

Helge

#2 lore raw
Quoted 17 lines · Helge Deller

Hi Dmitry,

I've added the parisc-kernel-devel mailing list too, since I expect that *if* somebody is able to answer your question, it will probably be on the parisc-kernel-devel list...

Quoted 10 lines · Dmitry the Zuryanovich

As I understand, E class (in my case - E25) has LASI based 53c710 which is handled by 53c700.c? (and in case of workstations wrapped by lasi700 - what's for? Just for detecting it?)

If I know that that's

5. Sahp Baat Kiuh SCSI at 0xfff74000 [56/52] {4, 0x0, 0x044, 0x00039}

, is there a reason to try to

Quoted 7 lines
Quoted 1 line

#modprobe 53c700 clock=25 base=0xfff74000

Looking at drivers/scsi/lasi700.c, it seems the lasi700 driver sets additional flags like force_le_on_be, chip710, burst_length and so on.
In addition, the IRQs gets connected via drivers/parisc/lasi.c (see lasi_choose_irq()). I assume you would need at least a "case 0x39" in there.
But James is the expert on the 53c700 driver, so he might know more... ?

Well, I can tell you that the modprobe won't work. The 53c700 is designed to be a wrapper driver, meaning that it relies on another driver (like lasi700 or zorro7xxx or something) to set up the interrupt line and the register mappings.

Probably all that's needed is a tiny wrapper driver for whatever bus it's on (what bus is this?). If you look at lasi, it basically pulls the parameters out of firmware, translates the lasi specific IRQ setting and enables the GSC interrupt (plus some LED stuff specific to lasi).

Quoted 10 lines
Quoted 6 lines

[correct my syntax] and may I expect this to work somehow?

What's the problem with SCSI on E class? Is that a need of some driver which calls 53c700.c with correct parameters taken from hardware? Can it be just passed to module via parameter or the problem is deeper?

It might be deeper.
In arch/parisc/kernel/hardware.c I see:

         {HPHW_A_DMA, 0x044, 0x00039, 0x80, "Sahp Baat Kiuh SCSI"},

That tells us it's on the Precision bus, doesn't it?

Quoted 7 lines

while other SCSI drivers on LASI have HPHW_FIO, e.g.:

	{HPHW_FIO, 0x016, 0x00082, 0x0, "Gecko Core SCSI"},

For reference, here is the full dmesg from Dmitry when he tried to boot his E25 machine with a recent Linux kernel:
ftp://parisc.parisc-linux.org/dmesg/E25.dmesg (http://pastebin.com/sXqUjVub)

There's not enough information there to reverse engineer the information needed for the driver.

The best docs we have:

https://parisc.wiki.kernel.org/images-parisc/5/52/E-class_hpjournal.pdf

Say the SCSI controller here is precision attached not lasi attached (the ethernet is on the lasi, though). Unfortunately, we don't have any documents at all in the archive for the precision bus that I can find.

James

#3 lore raw
Quoted 7 lines · James Bottomley

The best docs we have:

https://parisc.wiki.kernel.org/images-parisc/5/52/E-class_hpjournal.pdf

Say the SCSI controller here is precision attached not lasi attached (the ethernet is on the lasi, though). Unfortunately, we don't have any documents at all in the archive for the precision bus that I can find.

It's also known as HP-IB and quite a few devices were made to attach to it. Maybe something can be found with Google.

Dave
--
John David Anglin [email protected]

#4 lore raw
Quoted 4 lines · John David Anglin
Quoted 2 lines · James Bottomley

The best docs we have:

Quoted 8 lines
Quoted 5 lines

https://parisc.wiki.kernel.org/images-parisc/5/52/E-class_hpjournal.pdf

Say the SCSI controller here is precision attached not lasi attached (the ethernet is on the lasi, though). Unfortunately, we don't have any documents at all in the archive for the precision bus that I can find.

It's also known as HP-IB and quite a few devices were made to attach to it. Maybe something can be found with Google.

Well, what do you know: HP has a computer museum full of obsolete documentation.

http://www.hpmuseum.net/collection_document.php

If anyone can identify the programming specs for the HP-PB (or better still the actual SCSI card) we might be in business.

James

#5 lore raw
Quoted 14 lines · James Bottomley
Quoted 4 lines · John David Anglin
Quoted 2 lines · James Bottomley

The best docs we have:

Quoted 8 lines
Quoted 5 lines

https://parisc.wiki.kernel.org/images-parisc/5/52/E-class_hpjournal.pdf

Say the SCSI controller here is precision attached not lasi attached (the ethernet is on the lasi, though). Unfortunately, we don't have any documents at all in the archive for the precision bus that I can find.

It's also known as HP-IB and quite a few devices were made to attach to it. Maybe something can be found with Google.

Quoted 7 lines

Well, what do you know: HP has a computer museum full of obsolete documentation.

http://www.hpmuseum.net/collection_document.php

If anyone can identify the programming specs for the HP-PB (or better still the actual SCSI card) we might be in business.

It seems to be a standard: IEEE-488-1978.

Dave
--
John David Anglin [email protected]

#6 lore raw
In reply to James Bottomley

On Thu, Apr 2, 2015 at 4:58 AM, James Bottomley
<[email protected]> wrote:
...

Quoted 4 lines

Well, what do you know: HP has a computer museum full of obsolete documentation.

http://www.hpmuseum.net/collection_document.php

oh wow...

Quoted 2 lines

If anyone can identify the programming specs for the HP-PB (or better still the actual SCSI card) we might be in business.

This doc will help a lot:

    3000-900_9000-800_OnlineDiagnosticsSubManual_VolIII_LAN-SCSI-MUX_09740-90034_324pages_Jul91.pdf

Look at Section 18 "SCSIPBA" - register descriptions starting on page 18-21. Register overview on 18-33 (page 216 of the PDF).

And I finally found the name of the SCSI chip in the above doc: SPIFI (v3). The "Fast-Wide HVD" NIO card uses SPIFI v4.

Knowing that name also helped find the Net BSD driver (again):

    http://lists.parisc-linux.org/pipermail/parisc-linux/2002-June/016557.html
    http://lists.parisc-linux.org/pipermail/parisc-linux/2002-June/016562.html
    http://lists.parisc-linux.org/pipermail/parisc-linux/2002-June/016563.html
    http://lists.parisc-linux.org/pipermail/parisc-linux/2002-June/016576.html

and looks like NetBSD "newsmips" did support SPIFI-3:
http://netbsd.mirrors.treibsand.com/ports/newsmips/

cheers,
grant

ps. It's embarrassing I couldn't remember the name of the SCSI chip: I worked on HPUX SPIFI-4 driver between 1994-1996.

#8 lore raw
Quoted 6 lines · Dmitry the Zuryanovich
Quoted 2 lines

And I finally found the name of the SCSI chip in the above doc: SPIFI (v3). The "Fast-Wide HVD" NIO card uses SPIFI v4.

http://xepb.org/dtz/2015E25.html - here is photos of the boards, if this helps.

Well, I think that tells us it's not Symbios (or NCR as it was then) 53c700 based. It looks like there's a custom HP ASIC, probably for the PB connection and a Xilinx FPGA which may be configured to run the bus.

James

#9 lore raw
In reply to James Bottomley

On Thu, Apr 2, 2015 at 1:59 AM, James Bottomley
<[email protected]> wrote:
....

Quoted 4 lines

Probably all that's needed is a tiny wrapper driver for whatever bus it's on (what bus is this?). If you look at lasi, it basically pulls the parameters out of firmware, translates the lasi specific IRQ setting and enables the GSC interrupt (plus some LED stuff specific to lasi).

...

Quoted 4 lines
Quoted 2 lines

In arch/parisc/kernel/hardware.c I see:

         {HPHW_A_DMA, 0x044, 0x00039, 0x80, "Sahp Baat Kiuh SCSI"},

That tells us it's on the Precision bus, doesn't it?

Yes. "E-class" was one of the "alphabet soup" servers with HP-PB (IIRC, not HP-IB) slots. Since the system uses PA-7100LC, the "system interconnect" is GSC and an HP-PB bus converter provided access to the HP-PB slots.

I don't believe the 53c710 was connected on E-class servers based on this table:
http://www.parisc-linux.org/documentation/hp9000_models.html

CPU BUILT-IN ADD-ON SCSI I/O

MODEL STRING     PROJECT NAME        TYPE    SE, FWD/TYPE  SE, FWD, GSC-FWD
------------     ------------------  -----   ------------  ----------------

...
806/E25 WB Orville (48 Mhz) 7100LC NIO, None NIO(1),NIO(2),NA

("BUILT-IN" and "ADD-ON" SCSI both are NIO - aka HP-PB)

...

Quoted 2 lines

The best docs we have:
https://parisc.wiki.kernel.org/images-parisc/5/52/E-class_hpjournal.pdf

Also check on:
http://www.openpa.net/systems/index.html

or more specifically:
http://www.openpa.net/systems/hp-9000_e25_e35_e45_e55.html

Quoted 3 lines

Say the SCSI controller here is precision attached not lasi attached (the ethernet is on the lasi, though). Unfortunately, we don't have any documents at all in the archive for the precision bus that I can find.

I don't recall any HP-PB specific docs being released. What I can say is the HP-PB devices used transaction based interrupt routing similar to how Dino and other PCI host controllers generated interrupts. So no IRQ lines are used for HP-PB. And IIRC, there is also no IOMMU in D/E/F/H/I series servers (meaning they are NOT DMA/Cache coherent systems).

Lastly, the HP-PB SCSI adapters used a proprietary HP designed (not Symbios designed) SCSI controller. No docs were ever published for those either. The "fast-narrow SE" controller (28655A) was directly controlled by the host computer and was not particularly efficient (IIRC: 3 interrupts per transaction). The "fast-Wide HVD" (28696A) had an i960 on board to manage the "version 4" chip. SCSI bus control was handed to the host computer if anything happened that the i960 couldn't handle.

cheers,
grant

ps. I also found the manual for 28655A:
http://pdfs.icecat.biz/pdf/22940335-3766.pdf