Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

SS20 SBus & burst modes (Re: SBus driver & burst (>32 bits) accesses)

Chase Rayfield <cusbrar2%yahoo.com@localhost> wrote:
> Also at least the 32bit sun4m SS20 and probably hyperstation 30 support 64bit sbus
> extensions, with up to 128byte burst... in hardware. It may have never been implemented
> in Solaris but Sunflash vol 65 #75 indicates the hardware supports the requisite extensions
> and was slated to be supported sometime in a Solaris 2.x release.

I suspect there was an 'approximation' from Sun there (and I wonder if
the HS30 would be similar or if it has fewer restrictions than
described below for the SS20, if anyone has a HS30 they could look up
the SBus attributes on I'm interested).

The SS20 indeed report in the /iommu/sbus attributes:

`burst-sizes 00f8007f`

Which indicates support for all SBus transfers modes, in 32-bits (7f
-> from 1 to 64 bytes) and 64-bits Extended Transfers (f8 -> from 8 to
128 bytes).

But while I can get my experimental DMA to work in Burst4 (16 bytes)
and Burst8 (32 bytes) modes, the SBus controller politely declines
with an ACK_ERR when I request Burst16 (64 bytes). And the NetBSD
source code has this to say (/usr/src/sys/arch/sparc/dev/sbus.c):

* Some models (e.g. SS20) erroneously report 64-bit
* burst capability. We mask it out here for all SUN4Ms,
* since probably no member of that class supports
* 64-bit Sbus bursts.

I suspect the issue lies with this other attribute:

`up-burst-sizes 0000003f`

Which is documented in the standard as "(...)indicates the set of
allowed transfer sizes up though the node to its parent bus"... and
here we only have 32-bits up to 32 bytes (0x40 or 2^6=64 bytes is not

So my guess is, the controller does support everything, but the
connection with the MBus and the rest of the machines is limited to
32-bits/32-bytes. Given that you usually want to DMA to the memory and
not another SBus device, it seriously limits the usefulness of the 64
bits hardware. But theoretically speaking, it's possible that in a
SS20, a 64-bits ET capable DMA bus master can talk using 64-bits ET to
a 64-bits ET capable slave...

I have a second carrier board. Now I need to decide if I want to buy a
second FPGA daughterboard and test the theory :-)


Romain Dolbeau

Home | Main Index | Thread Index | Old Index