On Sunday 17 May 2009 6:51:19 pm Alexander Motin wrote: > John Baldwin wrote: > > Sounds like the ATA driver is allocating the same BAR twice. Hmm, yes, it > > allocates the resources once for each channel it seems in the ata_ali_sata > > attachment. Looking in ata-chipset.c, all the other chipsets are good about > > allocating these resources in their chipinit routines rather than the > > per-channel allocate routine. Well, except ata_pci_allocate() is also > > busted. *sigh* I can work on a patch for HEAD if you are willing to test. > > ata_pci_allocate() (now known as ata_pci_ch_attach()) is a different > case. It uses allocation functions wrapped by the atapci "bus", so every > channel uses it's own pair of RIDs.
Hmm, ok. > Problem of ALI SATA is a bit different. As I understand, controller has > two pairs of RIDs for 4 channels, so each channel should share resources > with another one, just using different offset. Is there any other way to > correctly handle two halves of same resource separately without teaching > atapci to virtualize this as interrupts or handle it on controller level? I will just fix the ALI attachment to handle this possibly by using 'chipset_data' to cache resources. -- John Baldwin _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"