From owner-freebsd-ppc@freebsd.org Tue Dec 15 00:29:29 2015 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86110A44B4B; Tue, 15 Dec 2015 00:29:29 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id 587541D21; Tue, 15 Dec 2015 00:29:29 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp (bcdcce0d.skybroadband.com [188.220.206.13]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id 43013D78FE; Tue, 15 Dec 2015 00:28:54 +0000 (UTC) Date: Tue, 15 Dec 2015 00:28:30 +0000 From: Andrew Turner To: Marius Strobl Cc: freebsd-sparc64@FreeBSD.org, freebsd-ppc@FreeBSD.org Subject: Re: Testing an Open Firmware interrupt-map patch Message-ID: <20151215002830.2531673d@zapp> In-Reply-To: <20151214234710.GA32903@alchemy.franken.de> References: <20151214134625.79283652@zapp> <20151214234710.GA32903@alchemy.franken.de> X-Mailer: Claws Mail 3.13.0 (GTK+ 2.24.28; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Dec 2015 00:29:29 -0000 On Tue, 15 Dec 2015 00:47:10 +0100 Marius Strobl wrote: > On Mon, Dec 14, 2015 at 01:46:25PM +0000, Andrew Turner wrote: > > Hello, > > > > I'm looking for testers for a patch to update how we parse the > > interrupt-map property to follow the ePAPR spec. This property is > > commonly used with PCIe controllers. > > > > The current code doesn't take the parent address size property. When > > this is non-zero we need to also read these values. This is needed > > on an arm64 board I have as the interrupt parent has memory-mapped > > children so needs this to be set. > > > > I have a patch at [1] to add this, however would like it if this > > could be tested on other platforms using this code to check it > > doesn't break these platforms before I commit it. > > + "#address-cells", &paddrsz, sizeof(paddrsz)) == > -1) > + paddrsz = 0; /* default */ > > According to IEEE 1275-1994 (page 110) the default in case of a > "#address-cells" property is 2 (see also ofw_bus_setup_iinfo()), > with the latter also being known as the correct default value > for sparc64 machines. However both Linux and NetBSD have similar code, both assume a missing interrupt-parent #address-size property the correct value is 0. > In any case, this will have quite an impact on the offset > calculation on sparc64 machines for e. g. EBusses beneath PCI > busses (which use 3 address cells there) and, thus, most likely > will cause havoc. Maybe the parent unit address should be only > taken into account on platforms using interrupt parents? It would seem there is a difference between the encoding on Sparc64 and ePAPR. Using the the parent #address-size may lead to incorrect parsing on Sparc64, as such I will disable it there. Andrew