Date: Mon, 18 May 2009 11:44:50 -0400 From: John Baldwin <jhb@freebsd.org> To: Alexander Motin <mav@freebsd.org> Cc: Bruce Simpson <bms@incunabulum.net>, freebsd-stable@freebsd.org Subject: Re: Boot panic w/7.2-STABLE on amd64: resource_list_alloc Message-ID: <200905181144.50693.jhb@freebsd.org> In-Reply-To: <4A1094E7.9010502@FreeBSD.org> References: <1242375781.00112347.1242364801@10.7.7.3> <1242404600.00112531.1242393604@10.7.7.3> <4A1094E7.9010502@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905181144.50693.jhb>