Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: piixide write speed very slow
On Sun, 6 Dec 2009, Matthias Scheler wrote:
On Sun, Dec 06, 2009 at 02:49:45PM +0000, Stephen Borrill wrote:
Should they be supported by ahcisata(4)?
On the second slow box, I tried all sorts of BIOS settings to try to get
ahcisata to attach but failed.
ahcisata(4) contains a list of PCI ids which it attaches to even if they
don't present the correct device class. You try adding your device
to that for testing purposes.
This really isn't an ahci device. Also the first part of the ahci match
routine is rather lax already and so it matches this:
Class Name: mass storage (0x01)
Subclass Name: IDE (0x01)
Interface: 0x8a
The registers do not map though and thus the match fails:
if (pci_mapreg_map(pa, AHCI_PCI_ABAR,
PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_32BIT, 0,
®t, ®h, NULL, &size) != 0)
return 0;
According to the specs, PCI_MAPREG_MEM_TYPE_32BIT is the only valid type
for ABAR. ABAR is type I/O:
Base address register at 0x24
type: i/o
base: 0x00004040, not sized
The BIOS (actually UEFI) on the IBM x3250 M3 is the very latest and does
not offer an AHCI option. I've also tried native and compatible mode and
both controllers (there's a piixide0 and piixide1).
As an aside, I tried OpenBSD on this box and their pciide (effectively
piixide) has correct write performance. I really can't see many
differences in the code though (certainly not the piix part of it). One
obvious difference was the code removed by cube@ in revision 1.35 of
piixide because of ahcisata superceding it, but that's not the cause (I
commented the code out in OpenBSD with no change in performance).
Looks like this controller falls down the gap between the drivers
(ahcisata can't attach and piixide is no longer up to the task). I'm
getting increasingly desperate to get this working (a 72 hour RAID-1
rebuild isn't pleasant); anyone else got any ideas?
--
Stephen
Home |
Main Index |
Thread Index |
Old Index