Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 May 2000 21:14:19 +0200 (CEST)
From:      =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr>
To:        Matthew Jacob <mjacob@feral.com>
Cc:        alpha@FreeBSD.ORG
Subject:   Re: AlphaServer 4100 Support being integrated
Message-ID:  <Pine.LNX.4.10.10005072036220.885-100000@linux.local>
In-Reply-To: <Pine.BSF.4.10.10005071109370.7876-100000@beppo.feral.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On Sun, 7 May 2000, Matthew Jacob wrote:

> Hmm. It's a normal PCI bus. If DELAY is wrong on alpha's, this may explai=
n
> some of the funnies I've seen elsewhere. Thanks for spotting this.

I looked into the source and it seems obviously wrong to me. It is based
on a loop that is hardcoded as lasting 3 cycles. This is probably correct
for some CPU types but certainly not for all. For the CPU of the 4100 and
given the actual memory alignment of the loop code, it could well be that
the loop cost is actually 2 cycles instead of the hardcoded 3 cycles (just
a guessing based on the below biased value displayed by `sym').

The `sym' driver may estimate the SCSI clock for chips that should use a
80 MHz clock or use a 40 Mhz clock and may have a clock multiplier. Given
the bias due to DELAY() error the driver will estimated SCSI clock
frequency as follows:

If actually 40 Mhz, result will be 26,6 Mhz.
   Driver will assume 40Hz  --> NO HARM.

If actually 80 Mhz, result will be 53,3 Mhz.
   Driver will assule 50Hz --> BAD SPOT.
   A 860 or a 875 may not properly work in that situation...
   But if the booting software properly set SCNTL3 and clock multiplier=20
   if any, the driver may just trust IO registers values for its guessing=
=20
   of the SCSI clock frequency  --> NO HARM.

G=E9rard.

> On Sun, 7 May 2000, [ISO-8859-1] G=E9rard Roudier wrote:
>=20
> >=20
> >=20
> > On Sat, 6 May 2000, Matthew Jacob wrote:
> >=20
> > [...]
> >=20
> > > sym0: <810> port 0x1fffc00-0x1fffcff mem 0x7fdde00-0x7fddeff irq 4 at=
 device 1.0 on pci0
> > > sym0: No NVRAM, ID 7, Fast-10, SE, parity checking
> > > sym0: open drain IRQ line driver
> > > sym0: using NCR-generic firmware.
> > > sym0: initial SCNTL3/DMODE/DCNTL/CTEST3/4/5 =3D (hex) 00/00/00/00/00/=
00
> > > sym0: final   SCNTL3/DMODE/DCNTL/CTEST3/4/5 =3D (hex) 03/c8/00/00/08/=
00
> > > sym0: Delay (GEN=3D11): 403 msec, 22055 KHz
> > > sym0: Delay (GEN=3D11): 426 msec, 20864 KHz
> > > sym0: Delay (GEN=3D11): 426 msec, 20864 KHz
> >=20
> > [...]
> >=20
> > Based on the boot messages, estimation of PCI clock frequency by the
> > driver is about 20 MHz. Is it correct ?
> > If it is not, then DELAY() may well be very inaccurate on this Alpha
> > machine.
> >=20
> > (The code used to measure the PCI clock frequency had been written by
> > Stefan Esser for both Linux and FreeBSD ncr drivers. This code was
> > initially only used to measure the SCSI clock frequency of 875 chips
> > (given the SCSI clock frequency value, presence of clock doubler can be
> > guessed). Btw, this code has proven to be as accurate as DELAY() allows=
).
> >=20
> > G=E9rard.
> >=20
> >=20
> >=20
>=20
>=20
>=20
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-alpha" in the body of the message




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10005072036220.885-100000>