From owner-svn-src-projects@FreeBSD.ORG  Mon Aug 11 17:46:20 2014
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
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 40E04C2B;
 Mon, 11 Aug 2014 17:46:20 +0000 (UTC)
Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 0C12429C9;
 Mon, 11 Aug 2014 17:46:19 +0000 (UTC)
Received: from aurora.physics.berkeley.edu (aurora.Physics.Berkeley.EDU
 [128.32.117.67]) (authenticated bits=0)
 by c.mail.sonic.net (8.14.9/8.14.9) with ESMTP id s7BHkGFS012116
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);
 Mon, 11 Aug 2014 10:46:16 -0700
Message-ID: <53E90168.1030403@freebsd.org>
Date: Mon, 11 Aug 2014 10:46:16 -0700
From: Nathan Whitehorn <nwhitehorn@freebsd.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Andrew Turner <andrew@fubar.geek.nz>
Subject: Re: svn commit: r269818 - projects/arm64/sys/dev/fdt
References: <53e8f606.23db.c1d4a@svn.freebsd.org>	<53E8FC5B.9070605@freebsd.org>
 <20140811184356.52954d03@bender.lan>
In-Reply-To: <20140811184356.52954d03@bender.lan>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Sonic-CAuth: UmFuZG9tSVY1HyZZwQGEKH9zaxM39svXMlEhGB7EdMnZDMp4vU/B9PGS98s9n+jdbWrwlhtF5Yn6FaHb1TT/pWrnY33LdrvzqURVLPEbqDY=
X-Sonic-ID: C;7FmhZH8h5BGrGOJAoK8kYw== M;pjPMZH8h5BGrGOJAoK8kYw==
X-Spam-Flag: No
X-Sonic-Spam-Details: 0.0/5.0 by cerberusd
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 &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Aug 2014 17:46:20 -0000


On 08/11/14 10:43, Andrew Turner wrote:
> On Mon, 11 Aug 2014 10:24:43 -0700
> Nathan Whitehorn <nwhitehorn@freebsd.org> 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 <type irq flags>
>>> 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
>

That's clear :) I just was trying to point there's an easier place to do 
the hack.
-Nathan