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>