Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754677AbbLPI7f (ORCPT ); Wed, 16 Dec 2015 03:59:35 -0500 Received: from mail-cys01nam02on0086.outbound.protection.outlook.com ([104.47.37.86]:9778 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752366AbbLPI7d (ORCPT ); Wed, 16 Dec 2015 03:59:33 -0500 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=bestguesspass action=none header.from=xilinx.com; Date: Wed, 16 Dec 2015 01:01:01 -0800 From: =?utf-8?B?U8O2cmVu?= Brinkmann To: Michal Simek CC: Marc Zyngier , Mark Rutland , , Pawel Moll , Ian Campbell , Catalin Marinas , Will Deacon , , "Rob Herring" , Kumar Gala , "Alistair Francis" , Subject: Re: [PATCH] ARM64: ZynqMP: DT: Fix GIC's 'reg' property Message-ID: <20151216090101.GW3358@xsjsorenbubuntu> References: <1450110700-14152-1-git-send-email-soren.brinkmann@xilinx.com> <20151214164613.GH21356@leverpostej> <566EF5CC.4070000@arm.com> <20151215091450.GI3358@xsjsorenbubuntu> <56702B44.5080201@xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56702B44.5080201@xilinx.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22004.006 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(979002)(6009001)(2980300002)(438002)(377424004)(479174004)(164054003)(199003)(189002)(24454002)(1220700001)(47776003)(11100500001)(36386004)(2950100001)(54356999)(189998001)(15975445007)(23676002)(86362001)(19580395003)(50466002)(93886004)(63266004)(85182001)(4001350100001)(19580405001)(92566002)(76506005)(83506001)(76176999)(586003)(50986999)(575784001)(106466001)(4001450100002)(77096005)(5008740100001)(33656002)(57986006)(5001960100002)(81156007)(1096002)(1076002)(110136002)(4001150100001)(85202003)(33716001)(87936001)(6806005)(107986001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2NAM02HT035;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;A:1;MX:1;LANG:en; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501001);SRVR:BL2NAM02HT035; X-Microsoft-Antispam-PRVS: <2f8af6b6e7ab4b9bbe7e00e824e4eb28@BL2NAM02HT035.eop-nam02.prod.protection.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001)(10201501046);SRVR:BL2NAM02HT035;BCL:0;PCL:0;RULEID:;SRVR:BL2NAM02HT035; X-Forefront-PRVS: 0792DBEAD0 X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2015 08:59:29.6313 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2NAM02HT035 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3761 Lines: 96 On Tue, 2015-12-15 at 04:01PM +0100, Michal Simek wrote: > Hi, > > On 15.12.2015 10:14, Sören Brinkmann wrote: > > On Mon, 2015-12-14 at 05:01PM +0000, Marc Zyngier wrote: > >> Mark, > >> > >> On 14/12/15 16:46, Mark Rutland wrote: > >>> On Mon, Dec 14, 2015 at 08:31:40AM -0800, Soren Brinkmann wrote: > >>>> Signed-off-by: Soren Brinkmann > >>>> --- > >>>> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 6 +++--- > >>>> 1 file changed, 3 insertions(+), 3 deletions(-) > >>>> > >>>> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi > >>>> index 857eda5c7217..b5d1facadf16 100644 > >>>> --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi > >>>> +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi > >>>> @@ -80,10 +80,10 @@ > >>>> gic: interrupt-controller@f9010000 { > >>>> compatible = "arm,gic-400", "arm,cortex-a15-gic"; > >>>> #interrupt-cells = <3>; > >>>> - reg = <0x0 0xf9010000 0x10000>, > >>>> - <0x0 0xf902f000 0x2000>, > >>>> + reg = <0x0 0xf9010000 0x1000>, > >>>> + <0x0 0xf9020000 0x20000>, > >>>> <0x0 0xf9040000 0x20000>, > >>>> - <0x0 0xf906f000 0x2000>; > >>>> + <0x0 0xf9060000 0x20000>; > >>> > >>> I'm confused. These sizes don't look right for GIC-400. Is this a custom > >>> GIC? > >> > >> Probably an implementation that obey the SBSA requirement of aliasing > >> the first 4kB of the CPU interface on a 64kB page, and the second one on > >> the following 64kB page. See the APM system for an example of such a > >> thing. I'm more concerned about the GICH region (3rd one), which has no > >> reason to be bigger than 4kB. > > > > Xilinx didn't publish the memory map yet (at least I didn't see it in the > > public docs), so, let me give some excerpts: > > > > GICD: > > GICD_CTLR 0xF9010000 32 rw 0x00000000 Distributor Control Register > > ... > > GICD_CIDR3 0xF9010FFC 32 ro 0x000000B1 Component ID3 Register > > > > GICC: > > GICC_CTLR 0xF9020000 32 rw 0x00000000 CPU Interface Control Register > > ... > > GICC_DIR 0xF9030000 32 wo x Deactivate Interrupt Register > > > > GICH: > > GICH_HCR 0xF9040000 32 rw 0x00000000 Hypervisor Control Register > > ... > > GICH_LR3_Alias7 0xF9050F0C 32 rw 0x00000000 List Register 3 > > > > GICV: > > GICV_CTLR 0xF9060000 32 rw 0x00000000 Virtual Machine Control Register > > ... > > GICV_DIR 0xF9070000 32 wo x VM Deactivate Interrupt Register > > > > > > Regarding the GICH area, it looks like it starts at 0xF9040000 and the > > alias blocks to access the other processor interfaces start at > > 0xF9050000. > > > >> > >>> Did this ever work wit hteh old offsets and sizes? > >> > >> It probably dies when trying to use EOImode==1. > > > > Without knowing what parts we really exercise, yes, the system comes up > > fine so far, but I recently found Linux boot hanging on QEMU and it > > seemed to be related to time not progressing (fast enough). > > I found a different DT using the values proposed here and that fixed the > > hang for me. > > We have discussed this here before with Rob > https://lkml.org/lkml/2015/2/24/371 > > Not sure if there is any fix. It is probably just broken QEMU not DTS > description in mainline. Do I understand this correctly?: The GIC IP has more configurable addresses than the DT binding/driver allow. Thus far people have worked around this by specifying some funky address in DT relying on the IP aliasing some addresses? Thanks, Sören -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/