Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp8400250imu; Fri, 28 Dec 2018 17:34:43 -0800 (PST) X-Google-Smtp-Source: AFSGD/Wd4jyr+VhC5BtculuIeHgcqrt7h/aNoqeNsjyLSp1RPCTgaxCruzTnRGDJCZSB1zjOl3XL X-Received: by 2002:a62:46d0:: with SMTP id o77mr30432436pfi.172.1546047283785; Fri, 28 Dec 2018 17:34:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546047283; cv=none; d=google.com; s=arc-20160816; b=KyWW7n8qZGwmBcHehHyydD6b9jfygY/muQ8Au/O+plOdLGcWPPyTXKgRXUqUagN5bQ 8DIZadFBqD2Ta/3ws/ZkxYeLr2vqCkp8H98lJZ1PbPbroIjvRUX1y5q+pllz+HK/sz96 HkvfReUqK9NarsD7j1lgFU1lRdR5LaGx2/2CD0LjtRU0s0zzOuPhP+jRNruRtYrAEMf9 /MPJeVcUAuaBFmyxZs+DslHaJwV3/sHQqW9pKybdqglDEQ75R/RtTjyjTwTf6/ytQkOR U3ibjvR88YX0d+ShkaGcM0Phny6IKF05vBYBN4bkRSJijsyVXmeRgCf7jKBXn618QL7K Oh/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=lf5fjvSp8qq6gXyEBXkaACVu4R+ITRyinySIuUWUm7w=; b=cITz7Ttn+TghMk7nhm+rwx6d/pNuNIlylTUo5AQLSBmR4kQSgaSfT2doyW/JY7JklX 3kn2Q9uWVei7DLTcYKeNBncQ41XiX6gqwf73JHgH8TU2sVwR7OnELvQk9aDCI4T6rIpF /AeK+MPcP8n4tp3yl1Kjxe6LR7NWQ8+wYE0GB9jTPwcnYVM4FDK4Ut0+8cuvEgejOnic 537q68a006CeEGrcQleonQii0+oL2iaucNViInG0dFbSsG5P02MgAk5HScBgFmnUVXic EWWv40Ge52z1NxYYC9nLWlcZ1XYTIf8eVNESAkULvWGxdgz4XyyqDH6rkx92HkWBam64 EKxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b="D/ik45k1"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q10si37784153pll.221.2018.12.28.17.34.28; Fri, 28 Dec 2018 17:34:43 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b="D/ik45k1"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733289AbeL1Qo4 (ORCPT + 99 others); Fri, 28 Dec 2018 11:44:56 -0500 Received: from smtprelay.synopsys.com ([198.182.47.9]:54234 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729038AbeL1Qo4 (ORCPT ); Fri, 28 Dec 2018 11:44:56 -0500 Received: from mailhost.synopsys.com (mailhost2.synopsys.com [10.13.184.66]) by smtprelay.synopsys.com (Postfix) with ESMTP id 4444D24E10BE; Fri, 28 Dec 2018 08:44:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1546015496; bh=Tog/g5/fknCUgJEdC2kZb5YmtmjeT94ifEw7Fx+8MpM=; h=From:To:Cc:Subject:Date:From; b=D/ik45k1QfGL39OpV1TqKHrzRXCDqiZ92MPBxW1xtZGULZMxy9mMZI4br8CNoYtvs 4ETsbQLdYm8XNeJOT0u7xM5vG/JFE2l71vQ+hy2jRLp/mZjlMoUPKb/kciHyNuYN1D 2kYslbb41ylOKXznhWfIIikLY7Z01PdqMVnC0uD3B9uWk/BGYBAXrCW4m9Sp93Wrk2 il2oTvadb5V8j8doP1Y4hHBZvvukTpS3Dth6kTept4CvXeWvfvMSn6s3y44RJEzrX5 Qyp7HYVuSJh/k7DgYP8DlaAUmJcgDmT5JAfOvrq/hDP+5BYsXlRrGKHLth974L95e/ ilxZ2XBjbHJmQ== Received: from paltsev-e7480.internal.synopsys.com (paltsev-e7480.internal.synopsys.com [10.121.3.66]) by mailhost.synopsys.com (Postfix) with ESMTP id B520639B1; Fri, 28 Dec 2018 08:44:53 -0800 (PST) From: Eugeniy Paltsev To: linux-snps-arc@lists.infradead.org, Vineet Gupta Cc: linux-kernel@vger.kernel.org, Alexey Brodkin , Eugeniy Paltsev Subject: [PATCH] ARC: show detaled ActionPoint configuration in mumbojumbo Date: Fri, 28 Dec 2018 19:44:44 +0300 Message-Id: <20181228164444.11241-1-Eugeniy.Paltsev@synopsys.com> X-Mailer: git-send-email 2.14.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information about ActionPointis number and supported set of targets (minimum / full). Signed-off-by: Eugeniy Paltsev --- arch/arc/include/asm/arcregs.h | 8 +++++++ arch/arc/kernel/setup.c | 53 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 56 insertions(+), 5 deletions(-) diff --git a/arch/arc/include/asm/arcregs.h b/arch/arc/include/asm/arcregs.h index 49bfbd879caa..aa673e27add5 100644 --- a/arch/arc/include/asm/arcregs.h +++ b/arch/arc/include/asm/arcregs.h @@ -216,6 +216,14 @@ struct bcr_fp_arcv2 { #endif }; +struct bcr_actionpoint { +#ifdef CONFIG_CPU_BIG_ENDIAN + unsigned int pad:20, type:4, ver:8; +#else + unsigned int ver:8, type:4, pad:20; +#endif +}; + #include struct bcr_bpu_arcompact { diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c index b2cae79a25d7..c8d67f9cd40d 100644 --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c @@ -115,6 +115,47 @@ static void read_decode_ccm_bcr(struct cpuinfo_arc *cpu) } } +static bool actionpoints_exists(void) +{ + struct bcr_actionpoint bcr; + + READ_BCR(ARC_REG_AP_BCR, bcr); + return !!bcr.ver; +} + +static const char *actionpoints_configuration(void) +{ + struct bcr_actionpoint bcr; + + READ_BCR(ARC_REG_AP_BCR, bcr); + switch (bcr.type) { + case 0x0: + return "2, full"; + case 0x1: + return "4, full"; + case 0x2: + return "8, full"; + case 0x4: + return "2, minimum"; + case 0x5: + return "4, minimum"; + case 0x6: + return "8, minimum"; + + default: + return "unknown"; + } +} + +static int actionpoints_mumbojumbo(char *buf, int len) +{ + if (!actionpoints_exists()) + return 0; + + return scnprintf(buf, len, "ActionPoint (%s set)", + actionpoints_configuration()); +} + static void read_arc_build_cfg_regs(void) { struct bcr_timer timer; @@ -206,8 +247,7 @@ static void read_arc_build_cfg_regs(void) } } - READ_BCR(ARC_REG_AP_BCR, bcr); - cpu->extn.ap = bcr.ver ? 1 : 0; + cpu->extn.ap = actionpoints_exists(); READ_BCR(ARC_REG_SMART_BCR, bcr); cpu->extn.smart = bcr.ver ? 1 : 0; @@ -332,12 +372,15 @@ static char *arc_extn_mumbojumbo(int cpu_id, char *buf, int len) IS_AVAIL1(cpu->extn.fpu_sp, "SP "), IS_AVAIL1(cpu->extn.fpu_dp, "DP ")); - if (cpu->extn.debug) - n += scnprintf(buf + n, len - n, "DEBUG\t\t: %s%s%s\n", - IS_AVAIL1(cpu->extn.ap, "ActionPoint "), + if (cpu->extn.debug) { + n += scnprintf(buf + n, len - n, "DEBUG\t\t: %s%s", IS_AVAIL1(cpu->extn.smart, "smaRT "), IS_AVAIL1(cpu->extn.rtt, "RTT ")); + n += actionpoints_mumbojumbo(buf + n, len - n); + n += scnprintf(buf + n, len - n, "\n"); + } + if (cpu->dccm.sz || cpu->iccm.sz) n += scnprintf(buf + n, len - n, "Extn [CCM]\t: DCCM @ %x, %d KB / ICCM: @ %x, %d KB\n", cpu->dccm.base_addr, TO_KB(cpu->dccm.sz), -- 2.14.5