From owner-svn-src-projects@FreeBSD.ORG Mon Aug 11 17:44:14 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 485EB9C8; Mon, 11 Aug 2014 17:44:14 +0000 (UTC) Received: from nibbler.fubar.geek.nz (nibbler.fubar.geek.nz [199.48.134.198]) by mx1.freebsd.org (Postfix) with ESMTP id 2B58C29AB; Mon, 11 Aug 2014 17:44:13 +0000 (UTC) Received: from bender.lan (97e07ab1.skybroadband.com [151.224.122.177]) by nibbler.fubar.geek.nz (Postfix) with ESMTPSA id C5FBB5DEC1; Mon, 11 Aug 2014 17:44:06 +0000 (UTC) Date: Mon, 11 Aug 2014 18:43:56 +0100 From: Andrew Turner To: Nathan Whitehorn Subject: Re: svn commit: r269818 - projects/arm64/sys/dev/fdt Message-ID: <20140811184356.52954d03@bender.lan> In-Reply-To: <53E8FC5B.9070605@freebsd.org> References: <53e8f606.23db.c1d4a@svn.freebsd.org> <53E8FC5B.9070605@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Aug 2014 17:44:14 -0000 On Mon, 11 Aug 2014 10:24:43 -0700 Nathan Whitehorn wrote: > > On 08/11/14 09:57, Andrew Turner wrote: > > Author: andrew > > Date: Mon Aug 11 16:57:42 2014 > > New Revision: 269818 > > URL: http://svnweb.freebsd.org/changeset/base/269818 > > > > Log: > > Hack to get the correct value for the interrupt from the vendor > > supplied device tree. The GIC used the format > > where the type is 0 for Shared Peripheral Interrupts (SPI), and 1 > > for Private Peripheral Interrupts. The SPIs start at 32 in the GIc > > so we need to adjust their values to match this. > > > > Modified: > > projects/arm64/sys/dev/fdt/simplebus.c > > > > Modified: projects/arm64/sys/dev/fdt/simplebus.c > > ============================================================================== > > --- projects/arm64/sys/dev/fdt/simplebus.c Mon Aug 11 > > 16:44:06 2014 (r269817) +++ > > projects/arm64/sys/dev/fdt/simplebus.c Mon Aug 11 16:57:42 > > 2014 (r269818) @@ -310,10 +310,18 @@ > > simplebus_setup_dinfo(device_t dev, phan icells = 1; } > > for (i = 0, k = 0; i < nintr; i += icells, k++) { > > + u_int irq; > > + > > + if (icells == 3) { > > + irq = intr[i + 1]; > > + if (intr[i] == 0) > > + irq += 32; > > + } else > > + irq = intr[i]; > > intr[i] = ofw_bus_map_intr(dev, iparent, > > icells, &intr[i]); > > - resource_list_add(&ndi->rl, SYS_RES_IRQ, > > k, intr[i], > > - intr[i], 1); > > + resource_list_add(&ndi->rl, SYS_RES_IRQ, > > k, irq, > > + irq, 1); > > } > > free(intr, M_OFWPROP); > > } > > > > The much better place to do this kind of hack is in the ARM > nexus_ofw_map_intr() routine. Ian's intrng branch will push this into > the PIC driver, where it actually belongs, but putting it in nexus > isn't so bad for now and will apply to all buses, not just simplebus. > -Nathan I know, this is a hack to get interrupts working. It will be fixed before merging into head. Andrew