From nobody Wed Apr 16 14:12:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1641576733; cv=none; d=zohomail.com; s=zohoarc; b=H9+77TfUyXuOXBa8wHnVosutMw39JzAuySrlvu0OLfj064cd/Ql/kpF/YIpxaQpS14cjwMZFuJdqrMi+wKX75v4bdywocJetaHJzRKNUs3JBbhto+rL6g4Y1D4N1kN89ruf91pBwrrIMujhfeWY6Y2r1zX8DBXF34b3aw01kTfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641576733; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9ONi2g/IZ5sSRQKd44Qd5XV4aNl9CKkjHv/QJp0hkkE=; b=euldIQPPfYKMZX0yYkxn1/RqAWcUwOAc5tpRLD1SzP3g5Y+CFt/H1IgxTRZuOYNUh95PBzEWRx5n+58xIrmrubNT/u0Hqzy+PgQ8OFqVCmq4wlQTNx+dvgy5fJgPakX5NYtZHcG824EM5fSCeCeCqk9JZjsWwslS7FPSpMFFY0o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1641576733274874.4093907849817; Fri, 7 Jan 2022 09:32:13 -0800 (PST) Received: from localhost ([::1]:60864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n5t63-0003DS-4T for importer@patchew.org; Fri, 07 Jan 2022 12:32:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49052) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n5sw6-00057m-Bl for qemu-devel@nongnu.org; Fri, 07 Jan 2022 12:21:55 -0500 Received: from [2a00:1450:4864:20::433] (port=37726 helo=mail-wr1-x433.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n5sw4-0007u0-NS for qemu-devel@nongnu.org; Fri, 07 Jan 2022 12:21:54 -0500 Received: by mail-wr1-x433.google.com with SMTP id t28so5580218wrb.4 for ; Fri, 07 Jan 2022 09:21:52 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id i6sm6060219wrf.79.2022.01.07.09.21.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jan 2022 09:21:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=9ONi2g/IZ5sSRQKd44Qd5XV4aNl9CKkjHv/QJp0hkkE=; b=r+CklIvi3CtCtH+a6EUZPMUwmuBGTQMhvod/J3S2OyAj9qJ/pyMzwODKAZ5uxCSrJ4 0UFd3ZhXIGBg/NEauZv72HGb5B5YHjBfFrK+kfTjRv/5tWmHuA8oWTVHpIGEULqE0gPU IibU3VL14sbdgKtUM9suO0Lz5HLlhBqOR7csDmAfl7tEO9djKLLoYZHnT/KSWwvwuTpO Lc/6uJtEl1sO1AtlrzZq5Djq30i82stgCi7v2ToIB/g1DkNffd+XGlXNpB29hdYN9mzm 4H0+1uInlDzJfBsRd4OkwfcPVixaLnvCoGDjHunZ4qnxNA49Xe3h3cmQlcpgusHFGaQq WhBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9ONi2g/IZ5sSRQKd44Qd5XV4aNl9CKkjHv/QJp0hkkE=; b=yW1bWc+oPW6ndieohk0iadpwwrl7sF6r1dazw5ponCWO/A2qY24xcume/1rCKBwEhk vCQCvVdsnJV4LrfPo+lBZ6OHb+AyBwmB0a2hMcqdcdRlI1y/k7W9pIEmzQHuwCHBK02i SSSh0mruLOcwBf7+FuaBN0Bj8p+dvpkvNc/yCFZLt9JaeOirMzukTlUfAG+pxU0TSUWE Fkg2a6r+UO5YU6ux441IUPHx+uBQgDbTO1kVFM2z9z+CPrbejuhkcZ3ZOQxIj1vNsGuY NUrWVXXS5QmaclYYf/4o4fDwK5nmOO8PAhzk/NyRSldCbmlGn6SKVyURT4deYih620B/ chRg== X-Gm-Message-State: AOAM531xxzZz20HqNLg/idjWkV/vAqPhANKGwXnMknwnHSKcHNZD/Byr E3mTDk3EfeXfjuGoLlUCzJDcqnWIjq+HuQ== X-Google-Smtp-Source: ABdhPJzT7fRhonJLkTUvQMGmyv3rwEln6MXAXjsH/ip45CzNbJ8FIr7xaoilB7wbqQn1UixvzK8KLA== X-Received: by 2002:adf:f6ca:: with SMTP id y10mr3053828wrp.80.1641576110948; Fri, 07 Jan 2022 09:21:50 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 11/19] hw/intc/arm_gicv3_its: Use FIELD macros for DTEs Date: Fri, 7 Jan 2022 17:21:34 +0000 Message-Id: <20220107172142.2651911-12-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220107172142.2651911-1-peter.maydell@linaro.org> References: <20220107172142.2651911-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::433 (failed) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x433.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1641576735314100001 Currently the ITS code that reads and writes DTEs uses open-coded shift-and-mask to assemble the various fields into the 64-bit DTE word. The names of the macros used for mask and shift values are also somewhat inconsistent, and don't follow our usual convention that a MASK macro should specify the bits in their place in the word. Replace all these with use of the FIELD macro. Signed-off-by: Peter Maydell Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- hw/intc/gicv3_internal.h | 7 ++++--- hw/intc/arm_gicv3_its.c | 20 +++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/hw/intc/gicv3_internal.h b/hw/intc/gicv3_internal.h index 5a63e9ed5ce..6a3b145f377 100644 --- a/hw/intc/gicv3_internal.h +++ b/hw/intc/gicv3_internal.h @@ -393,9 +393,10 @@ FIELD(ITE_H, VPEID, 16, 16) * Valid =3D 1 bit,ITTAddr =3D 44 bits,Size =3D 5 bits */ #define GITS_DTE_SIZE (0x8ULL) -#define GITS_DTE_ITTADDR_SHIFT 6 -#define GITS_DTE_ITTADDR_MASK MAKE_64BIT_MASK(GITS_DTE_ITTADDR_SHI= FT, \ - ITTADDR_LENGTH) + +FIELD(DTE, VALID, 0, 1) +FIELD(DTE, SIZE, 1, 5) +FIELD(DTE, ITTADDR, 6, 44) =20 /* * 8 bytes Collection Table Entry size diff --git a/hw/intc/arm_gicv3_its.c b/hw/intc/arm_gicv3_its.c index 6f21c56fba2..7a217b00f89 100644 --- a/hw/intc/arm_gicv3_its.c +++ b/hw/intc/arm_gicv3_its.c @@ -114,7 +114,7 @@ static bool update_ite(GICv3ITSState *s, uint32_t event= id, uint64_t dte, uint64_t itt_addr; MemTxResult res =3D MEMTX_OK; =20 - itt_addr =3D (dte & GITS_DTE_ITTADDR_MASK) >> GITS_DTE_ITTADDR_SHIFT; + itt_addr =3D FIELD_EX64(dte, DTE, ITTADDR); itt_addr <<=3D ITTADDR_SHIFT; /* 256 byte aligned */ =20 address_space_stq_le(as, itt_addr + (eventid * (sizeof(uint64_t) + @@ -141,7 +141,7 @@ static bool get_ite(GICv3ITSState *s, uint32_t eventid,= uint64_t dte, bool status =3D false; IteEntry ite =3D {}; =20 - itt_addr =3D (dte & GITS_DTE_ITTADDR_MASK) >> GITS_DTE_ITTADDR_SHIFT; + itt_addr =3D FIELD_EX64(dte, DTE, ITTADDR); itt_addr <<=3D ITTADDR_SHIFT; /* 256 byte aligned */ =20 ite.itel =3D address_space_ldq_le(as, itt_addr + @@ -255,10 +255,10 @@ static bool process_its_cmd(GICv3ITSState *s, uint64_= t value, uint32_t offset, if (res !=3D MEMTX_OK) { return result; } - dte_valid =3D dte & TABLE_ENTRY_VALID_MASK; + dte_valid =3D FIELD_EX64(dte, DTE, VALID); =20 if (dte_valid) { - max_eventid =3D (1UL << (((dte >> 1U) & SIZE_MASK) + 1)); + max_eventid =3D 1UL << (FIELD_EX64(dte, DTE, SIZE) + 1); =20 ite_valid =3D get_ite(s, eventid, dte, &icid, &pIntid, &res); =20 @@ -375,10 +375,8 @@ static bool process_mapti(GICv3ITSState *s, uint64_t v= alue, uint32_t offset, if (res !=3D MEMTX_OK) { return result; } - dte_valid =3D dte & TABLE_ENTRY_VALID_MASK; - - max_eventid =3D (1UL << (((dte >> 1U) & SIZE_MASK) + 1)); - + dte_valid =3D FIELD_EX64(dte, DTE, VALID); + max_eventid =3D 1UL << (FIELD_EX64(dte, DTE, SIZE) + 1); max_Intid =3D (1ULL << (GICD_TYPER_IDBITS + 1)) - 1; =20 if ((devid > s->dt.max_ids) || (icid > s->ct.max_ids) @@ -529,9 +527,9 @@ static bool update_dte(GICv3ITSState *s, uint32_t devid= , bool valid, if (s->dt.valid) { if (valid) { /* add mapping entry to device table */ - dte =3D (valid & TABLE_ENTRY_VALID_MASK) | - ((size & SIZE_MASK) << 1U) | - (itt_addr << GITS_DTE_ITTADDR_SHIFT); + dte =3D FIELD_DP64(dte, DTE, VALID, 1); + dte =3D FIELD_DP64(dte, DTE, SIZE, size); + dte =3D FIELD_DP64(dte, DTE, ITTADDR, itt_addr); } } else { return true; --=20 2.25.1