Received: by 2002:a05:7412:b130:b0:e2:908c:2ebd with SMTP id az48csp372065rdb; Fri, 17 Nov 2023 00:51:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IGXTUnYOhYQ4cjC3SPSae10w0dxv319JsJqjRf7+Vv70/P2uHpZ44BWA7ztemPe/HuBFrYv X-Received: by 2002:a17:902:d505:b0:1cc:b315:3415 with SMTP id b5-20020a170902d50500b001ccb3153415mr14621365plg.61.1700211094039; Fri, 17 Nov 2023 00:51:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700211094; cv=none; d=google.com; s=arc-20160816; b=F1DSaKGUf7ruKBepGpMDeoDMcuZbwwejA344K/4uMPFJQQN5lnlhmz/rRaWb8MZMee QZG9DBpzjnZWooPtcKregXU7MFdi25QbnrNfMw7WgGkuddGurSliGMV2U3gqy2hwticB eONgi+eatp5j1t7jYQckwLfXW+1HQfoiZipMSdtpAhpDJjiO+8EhsCLbDp/HO7fwINCy WP22WB/Yx6i/U8RELtA0gKCgzOkaf/pJ5s3c+DsosIg6/ZeI0YHmbEH8AL91osSiryk1 BigRoHCGHfkJKCfRreUv7NTCLwijgkwKI2SU0Kldwyo4JJgOEuEHQrRM8DaHPiAUbZ6O CZ+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=BMjYq8KIiIVaTPNF6OfRzBg75TE8YFMdh3udmnKItcQ=; fh=8CdK/QvRmWJN5sVP/9JB6m+ciGEeknms3js3Jc2cCe8=; b=Fbx0DZ6zvWkcf8E8G0pjwxxrrTH4YtIZhtiAOv86/reklmpLIs+bmB/5ZCfnRfsu9J empP8luMWKb5mI8Wx41te9G93yI4TkHEUT+DxglTmG0EwFR5JYhT5pzDcr5mfoDki7hz lQ811ebDLfedmbBdbJAt0NfgO16uesvWUSzs3Sq85HU+7zHfwv1Uczt51BRNhi1bEEZI s8SsJy4WR/Qm+ZxTNfQ7h6C3ZYb8BiWp3i04wS736NIde+O/GxT+8z+xLcXbDZpetnpY sCsyog62axRzJiQ2VTXP/9p4x0rPO9sdua78XGRyKMx9KIDPcqfjJ6Ap2boRWXq2+YZ7 n8qA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=J+XqX4Jm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id w13-20020a170902e88d00b001cc76bea504si1409284plg.345.2023.11.17.00.51.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Nov 2023 00:51:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=J+XqX4Jm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id AFF328092157; Fri, 17 Nov 2023 00:51:30 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345719AbjKQIvS (ORCPT + 99 others); Fri, 17 Nov 2023 03:51:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60914 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345715AbjKQIvR (ORCPT ); Fri, 17 Nov 2023 03:51:17 -0500 Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com [IPv6:2001:4860:4864:20::34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 188891A1 for ; Fri, 17 Nov 2023 00:51:14 -0800 (PST) Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-1ea98ad294cso784497fac.3 for ; Fri, 17 Nov 2023 00:51:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700211073; x=1700815873; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BMjYq8KIiIVaTPNF6OfRzBg75TE8YFMdh3udmnKItcQ=; b=J+XqX4JmLZvHTpQOD2tNHYQHlS7BnakQyROnhs3SLKMPD+6HjVsio5p/kJj/xBVlIt /U8v2dHJGnm3Rh7GAc2R835me3LsnYd7+zYxPbWrGD/ocDrGqqruc0q3B90Y+CGaR92P Xk5Rly8G0QwDHJxCJnm8Ot+/BXAdZxe0SHCj3ZT6zCsYjrsBtQ0zMahKtrRbY0LU9EpO zVKOwznk0kFDHXutvUyJyNl+R+u+2g9j/hBKZ6LXGzXIvyJk6Dw6TgibhQm/448K6Diu ijGCgPkfKrKYUu/cqEEEJlKZDg6NMzz4itZWCLdF04LII/Pvk5RVYLtV8Jl4ImOYQdQj HlKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700211073; x=1700815873; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BMjYq8KIiIVaTPNF6OfRzBg75TE8YFMdh3udmnKItcQ=; b=fX1VrnwarR/VMmApoG9fJLTR0kFUvtzEPHwaFriEajHMm+ukl7Cr8vj1Uo4Wj9LZRI xRf8EzVnsbOvil9tHwf0acjFeHI4hXmvyVOs1iemw9QuhqjEw6UJpnNPJ8/NLGO6yDSg UnTK76mIWOu4wWrjbwVKC8JqeeDh/UQF4OrpQ0XUT009YUmOswh+6sDdVApbXkAMZfyE 9+yCfb4HspWVgn96wwUolMOY58mN0Vn+w4nWuX7PglfkyoB81EUKhfMuW1Zne9FyYNn+ cYKl+YmOuZ4/oh8V3Qv+VezcrrrbtvsJIUj9u43+j9aWE8Sg9eVYheNIIK9HtvkMbaz1 tERg== X-Gm-Message-State: AOJu0Yz5gMmKaIMiqSYK3/0otskxIJeSc8f8xwjpun3BKjj8if61ZNAB Pg0QI5mNrHAxsGruJT6Ui3hkT7Eq1HTsBgnJWPg= X-Received: by 2002:a05:6870:eca1:b0:1e9:bc79:9fa6 with SMTP id eo33-20020a056870eca100b001e9bc799fa6mr20244496oab.50.1700211073311; Fri, 17 Nov 2023 00:51:13 -0800 (PST) MIME-Version: 1.0 References: <20231116140910.1613508-1-tomeu@tomeuvizoso.net> In-Reply-To: <20231116140910.1613508-1-tomeu@tomeuvizoso.net> From: Christian Gmeiner Date: Fri, 17 Nov 2023 09:51:02 +0100 Message-ID: Subject: Re: [PATCH] drm/etnaviv: Expose a few more chipspecs to userspace To: Tomeu Vizoso Cc: Lucas Stach , Russell King , David Airlie , Daniel Vetter , etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Fri, 17 Nov 2023 00:51:30 -0800 (PST) Hi Tomeu > > These ones will be needed to make use fo the NN and TP units in the NPUs > based on Vivante IP. > > Also fix the number of NN cores in the VIPNano-qi. > > Signed-off-by: Tomeu Vizoso > --- > drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 20 ++++++++++++++++++++ > drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 12 ++++++++++++ > drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 22 +++++++++++++++++++++- > include/uapi/drm/etnaviv_drm.h | 5 +++++ > 4 files changed, 58 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > index 5f96e7b1a9ec..9a18b5431975 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c > @@ -164,6 +164,26 @@ int etnaviv_gpu_get_param(struct etnaviv_gpu *gpu, u32 param, u64 *value) > *value = gpu->identity.eco_id; > break; > > + case ETNAVIV_PARAM_GPU_NN_CORE_COUNT: > + *value = gpu->identity.nn_core_count; > + break; > + > + case ETNAVIV_PARAM_GPU_NN_MAD_PER_CORE: > + *value = gpu->identity.nn_mad_per_core; > + break; > + > + case ETNAVIV_PARAM_GPU_TP_CORE_COUNT: > + *value = gpu->identity.tp_core_count; > + break; > + > + case ETNAVIV_PARAM_GPU_ON_CHIP_SRAM_SIZE: > + *value = gpu->identity.on_chip_sram_size; > + break; > + > + case ETNAVIV_PARAM_GPU_AXI_SRAM_SIZE: > + *value = gpu->identity.axi_sram_size; > + break; > + > default: > DBG("%s: invalid param: %u", dev_name(gpu->dev), param); > return -EINVAL; > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h > index c8f3ad2031ce..83ef3c06da5d 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h > +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h > @@ -53,6 +53,18 @@ struct etnaviv_chip_identity { > /* Number of Neural Network cores. */ > u32 nn_core_count; > > + /* Number of MAD units per Neural Network core. */ > + u32 nn_mad_per_core; > + > + /* Number of Tensor Processing cores. */ > + u32 tp_core_count; > + > + /* Size in bytes of the SRAM inside the NPU. */ > + u32 on_chip_sram_size; > + > + /* Size in bytes of the SRAM across the AXI bus. */ > + u32 axi_sram_size; > + > /* Size of the vertex cache. */ > u32 vertex_cache_size; > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c > index 0cb5aacaf384..93f15cce6d22 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c > @@ -17,6 +17,10 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = { > .thread_count = 128, > .shader_core_count = 1, > .nn_core_count = 0, > + .nn_mad_per_core = 0, > + .tp_core_count = 0, > + .on_chip_sram_size = 0, > + .axi_sram_size = 0, > .vertex_cache_size = 8, > .vertex_output_buffer_size = 1024, > .pixel_pipes = 1, > @@ -49,6 +53,10 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = { > .thread_count = 512, > .shader_core_count = 2, > .nn_core_count = 0, > + .nn_mad_per_core = 0, > + .tp_core_count = 0, > + .on_chip_sram_size = 0, > + .axi_sram_size = 0, > .vertex_cache_size = 16, > .vertex_output_buffer_size = 1024, > .pixel_pipes = 1, > @@ -81,6 +89,10 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = { > .thread_count = 512, > .shader_core_count = 2, > .nn_core_count = 0, > + .nn_mad_per_core = 0, > + .tp_core_count = 0, > + .on_chip_sram_size = 0, > + .axi_sram_size = 0, > .vertex_cache_size = 16, > .vertex_output_buffer_size = 1024, > .pixel_pipes = 1, > @@ -113,6 +125,10 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = { > .thread_count = 1024, > .shader_core_count = 4, > .nn_core_count = 0, > + .nn_mad_per_core = 0, > + .tp_core_count = 0, > + .on_chip_sram_size = 0, > + .axi_sram_size = 0, > .vertex_cache_size = 16, > .vertex_output_buffer_size = 1024, > .pixel_pipes = 2, > @@ -144,7 +160,11 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = { > .register_max = 64, > .thread_count = 256, > .shader_core_count = 1, > - .nn_core_count = 1, > + .nn_core_count = 8, > + .nn_mad_per_core = 64, > + .tp_core_count = 4, > + .on_chip_sram_size = 524288, > + .axi_sram_size = 1048576, > .vertex_cache_size = 16, > .vertex_output_buffer_size = 1024, > .pixel_pipes = 1, I am counting 8 entries in the etnaviv_chip_identities array and you are just updating 5 of them. > diff --git a/include/uapi/drm/etnaviv_drm.h b/include/uapi/drm/etnaviv_drm.h > index af024d90453d..d87410a8443a 100644 > --- a/include/uapi/drm/etnaviv_drm.h > +++ b/include/uapi/drm/etnaviv_drm.h > @@ -77,6 +77,11 @@ struct drm_etnaviv_timespec { > #define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c > #define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d > #define ETNAVIV_PARAM_GPU_ECO_ID 0x1e > +#define ETNAVIV_PARAM_GPU_NN_CORE_COUNT 0x1f > +#define ETNAVIV_PARAM_GPU_NN_MAD_PER_CORE 0x20 > +#define ETNAVIV_PARAM_GPU_TP_CORE_COUNT 0x21 > +#define ETNAVIV_PARAM_GPU_ON_CHIP_SRAM_SIZE 0x22 > +#define ETNAVIV_PARAM_GPU_AXI_SRAM_SIZE 0x23 > > #define ETNA_MAX_PIPES 4 > > -- > 2.41.0 > -- greets -- Christian Gmeiner, MSc https://christian-gmeiner.info/privacypolicy