From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web08.8715.1621943720907563220 for ; Tue, 25 May 2021 04:55:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=IK24Wzz5; spf=pass (domain: redhat.com, ip: 170.10.133.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1621943720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wyGH44TAZ0fECQ1Og8rznBX/NPwp/3s/qe8gU62UJpc=; b=IK24Wzz5/B4f+Z6g6ImDgliul72LlXL/ue8PwLFuwV9D64FiOAB9N9163ZlOGjdMyT2bAL vphM2NQVPY0ZintwPy0Hq0L+JHVTPl/Vkjg3k61iUjOvQVtFl/jWMLUT2yBzX5dDA9fCvB xXgRNobO6CKHladN+MUh7AxF5lv2pCw= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-30-QYQhOho4PHiq3_6mmN66WQ-1; Tue, 25 May 2021 07:55:16 -0400 X-MC-Unique: QYQhOho4PHiq3_6mmN66WQ-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2E057800D62; Tue, 25 May 2021 11:55:15 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-113-28.ams2.redhat.com [10.36.113.28]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 64E925D6AC; Tue, 25 May 2021 11:55:13 +0000 (UTC) Subject: Re: [edk2-devel] [edk2-devel202105 PATCH v2 1/1] ArmPkg/ArmGic: Fix maximum number of interrupts in GICv3 To: devel@edk2.groups.io, sami.mujawar@arm.com Cc: ardb@kernel.org, leif@nuviainc.com, Matteo.Carlini@arm.com, Andreas.Sandberg@arm.com, joey.gouly@arm.com, nd@arm.com References: <20210524130130.22280-1-sami.mujawar@arm.com> From: "Laszlo Ersek" Message-ID: Date: Tue, 25 May 2021 13:55:11 +0200 MIME-Version: 1.0 In-Reply-To: <20210524130130.22280-1-sami.mujawar@arm.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Hi Sami, On 05/24/21 15:01, Sami Mujawar wrote: > From: Andreas Sandberg > > Bugzilla: 3415 (https://bugzilla.tianocore.org/show_bug.cgi?id=3415) > > The GICv3 architecture supports up to 1020 ordinary interrupt > lines. The actual number of interrupts supported is described by the > ITLinesNumber field in the GICD_TYPER register. The total number of > implemented registers is normally calculated as > 32*(ITLinesNumber+1). However, maximum value (0x1f) is a special case > since that would indicate that 1024 interrupts are implemented. > > Add handling for this special case in ArmGicGetMaxNumInterrupts. > > Signed-off-by: Andreas Sandberg > Signed-off-by: Joey Gouly > Signed-off-by: Sami Mujawar > Reviewed-by: Ard Biesheuvel > --- > The changes can be seen at: > https://github.com/samimujawar/edk2/tree/1396_gic_max_num_intr_v2 > > Notes: > v2: > - Fix comment style. [Laszlo] > - Updated comment style. [Sami] > > ArmPkg/Drivers/ArmGic/ArmGicLib.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) I think this patch should be merged really soon, as long as Ard agrees. Thanks, Laszlo > > diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/ArmGicLib.c > index 6b01c88206ad8adef3100dd44c0d57660db77783..bd4b5edb903f3846f4f0e431f93e001f01cd9e7d 100644 > --- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c > +++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c > @@ -1,6 +1,6 @@ > /** @file > * > -* Copyright (c) 2011-2018, ARM Limited. All rights reserved. > +* Copyright (c) 2011-2021, Arm Limited. All rights reserved. > * > * SPDX-License-Identifier: BSD-2-Clause-Patent > * > @@ -120,7 +120,14 @@ ArmGicGetMaxNumInterrupts ( > IN INTN GicDistributorBase > ) > { > - return 32 * ((MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) & 0x1F) + 1); > + UINTN ItLines; > + > + ItLines = MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) & 0x1F; > + > + // > + // Interrupt ID 1020-1023 are reserved. > + // > + return (ItLines == 0x1f) ? 1020 : 32 * (ItLines + 1); > } > > VOID >