Skip site navigation (1)Skip section navigation (2)
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>