Subject: Re: pciide performance on alpha
To: Manuel Bouyer <firstname.lastname@example.org>
From: Andreas Johansson <email@example.com>
Date: 08/12/1999 22:57:07
On Thu, 12 Aug 1999, Manuel Bouyer wrote:
> > Time to try the real disk...
> Cool ! I'll try to have a look at the cypress driver then.
Yep, it seems to work as good as I had hoped - I think this disk is also
maxed out with modest cpu usage:
ajo@ymer /home/ajo #time dd if=/dev/rwd0c of=/dev/null bs=64k count=8192
8192+0 records in
8192+0 records out
536870912 bytes transferred in 34 secs (15790320 bytes/sec)
0.033u 1.550s 0:34.44 4.5% 0+0k 0+0io 0pf+0w
> Do you have the BIOS ROM on your board ? If so try to remove it.
> Maybe the alpha firmare tries to run it (with i386 emulation, as it is done
> for VGA) and it gets this really wrong.
It seems that the pci registers had been changed in software while I was
trying to get things to work - I coldbooted the machine, and the channels
were enabled without me having to force-enable them.
Now only the problem with bad I/O addresses remain. This is what I get
(and change) in my SX at boot time. I have to take back that about
overlapping addresses, I was masking too much (different masks for
mem/io). It seems the firmware simply thinks that IO addresses above
0x10000 are ok (which they probably are in the alpha), but NetBSD wraps IO
addresses higher than 0xffff. If I don't change the IO addresses, I get a
machine check as quick as the driver is accessing the registers.
pciide2 at pci0 dev 6 function 0: Promise Ultra DMA/ATA Bus Master IDE
pciide2: Changing IO from 0x10230 to 0x8000
pciide2: Changing IO from 0x10250 to 0x8010
pciide2: Changing IO from 0x10238 to 0x8020
pciide2: Changing IO from 0x10254 to 0x8030
pciide2: Changing IO from 0x10200 to 0x8040
> Manuel Bouyer, LIP6, Universite Paris VI. Manuel.Bouyer@lip6.fr