From patchwork Sun Feb 28 15:33:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 589546 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id BB2C6140770 for ; Mon, 29 Feb 2016 02:33:47 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=beSrKg3r; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E68F3A75BA; Sun, 28 Feb 2016 16:33:43 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CDIh-q_9OV8y; Sun, 28 Feb 2016 16:33:43 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 14921A7516; Sun, 28 Feb 2016 16:33:43 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7E182A7516 for ; Sun, 28 Feb 2016 16:33:40 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lzSKLregZ4vV for ; Sun, 28 Feb 2016 16:33:40 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-qg0-f48.google.com (mail-qg0-f48.google.com [209.85.192.48]) by theia.denx.de (Postfix) with ESMTPS id 1688AA7498 for ; Sun, 28 Feb 2016 16:33:37 +0100 (CET) Received: by mail-qg0-f48.google.com with SMTP id y9so100452262qgd.3 for ; Sun, 28 Feb 2016 07:33:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=RfvJLiDtXXWemnVN2daeHjef2UwwBr9N638LO9xST/o=; b=beSrKg3rWFTcHUxldtjzTUFR2gfLLzaFT1+6NFbAElpmMYCP4XzKeO5I1bnZ0vjFXm 6z54jxA4Z+cqtRCf3o0Vf3e3AlxM4ll4aXexgJR3yU7JcXco31IUnXuRou7aXfpB9ygT zkbMyHoCRQOWFKBxT49/GnrqWFqsQHLbfxKapPeQiz9lykALCsdOFEsRj0fz+d7egOCW vNI969E3M5a0+2dypxVQIDWCMbFPJg+FVNq8H4RxabTcfZkg7Qg2bQ7/qFCoLXrl69zR joJvyw6JsZPESrX8XL65vRuon4bCJCsQkJHLSHUuU1JEl929NocTb+leEJ4jERF70B6d iLXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=RfvJLiDtXXWemnVN2daeHjef2UwwBr9N638LO9xST/o=; b=gcME6PmoGWyPYM99w2l/tExSmTYjfihBuOBPjErovmxu4nmH+YRxz9l4TVCw8I3Fsi gQRVXCbNq18y2HNOp7JDhm8MtD+qx9lB0Wk2lODmKb7L9GIXztpmVPdouHtsyRRP1TQ7 w1WVYQKtXYeeYVKDdxLT49aFe9PgVq5/8gvw5f6j0YWd4+TDSwcR5Ysae6pmSYJWVWcQ i2lC8WFvevnDIQJzvEapkxsojYM1+XhgZmmVCKBcQWm+AykNYDO/wP2ekKTwWEmTFvOT dN0fZFboC/Q7ys1XrUs9FyzeAZ+sphfcDsJCwF8ctRLvbRWJaXcCes5KGud+9OiqivuM 8vsg== X-Gm-Message-State: AD7BkJJyU529Hrd/Mxnlv/dK1iVwFxwm6aVotwAkRnVCew3gRnB1UsKJQbxBh4R/IqRdtQ== X-Received: by 10.140.233.85 with SMTP id e82mr14180057qhc.86.1456673615560; Sun, 28 Feb 2016 07:33:35 -0800 (PST) Received: from localhost.localdomain ([187.180.186.88]) by smtp.gmail.com with ESMTPSA id b6sm9250822qkh.12.2016.02.28.07.33.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 28 Feb 2016 07:33:35 -0800 (PST) From: Fabio Estevam To: sbabic@denx.de Date: Sun, 28 Feb 2016 12:33:17 -0300 Message-Id: <1456673597-3207-1-git-send-email-festevam@gmail.com> X-Mailer: git-send-email 1.9.1 Cc: Fabio Estevam , u-boot@lists.denx.de Subject: [U-Boot] [PATCH] mx7: Distinguish between dual and solo versions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Fabio Estevam Read the number of cores in the fuses to distinguish between the dual and solo versions. Tested on a mx7d sabresd and on a mx7solo warp7. Signed-off-by: Fabio Estevam Reviewed-by: Peng Fan --- arch/arm/cpu/armv7/mx7/soc.c | 18 ++++++++++++++++++ arch/arm/imx-common/cpu.c | 2 ++ arch/arm/include/asm/arch-imx/cpu.h | 1 + 3 files changed, 21 insertions(+) diff --git a/arch/arm/cpu/armv7/mx7/soc.c b/arch/arm/cpu/armv7/mx7/soc.c index ba6cfb9..073bbc6 100644 --- a/arch/arm/cpu/armv7/mx7/soc.c +++ b/arch/arm/cpu/armv7/mx7/soc.c @@ -165,6 +165,21 @@ u32 get_cpu_temp_grade(int *minc, int *maxc) return val; } +static bool is_mx7d(void) +{ + struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR; + struct fuse_bank *bank = &ocotp->bank[1]; + struct fuse_bank1_regs *fuse = + (struct fuse_bank1_regs *)bank->fuse_regs; + int val; + + val = readl(&fuse->tester4); + if (val & 1) + return false; + else + return true; +} + u32 get_cpu_rev(void) { struct mxc_ccm_anatop_reg *ccm_anatop = (struct mxc_ccm_anatop_reg *) @@ -172,6 +187,9 @@ u32 get_cpu_rev(void) u32 reg = readl(&ccm_anatop->digprog); u32 type = (reg >> 16) & 0xff; + if (!is_mx7d()) + type = MXC_CPU_MX7S; + reg &= 0xff; return (type << 12) | reg; } diff --git a/arch/arm/imx-common/cpu.c b/arch/arm/imx-common/cpu.c index 656bb60..5fb3ed8 100644 --- a/arch/arm/imx-common/cpu.c +++ b/arch/arm/imx-common/cpu.c @@ -137,6 +137,8 @@ unsigned imx_ddr_size(void) const char *get_imx_type(u32 imxtype) { switch (imxtype) { + case MXC_CPU_MX7S: + return "7SOLO"; /* Single-core version of the mx7 */ case MXC_CPU_MX7D: return "7D"; /* Dual-core version of the mx7 */ case MXC_CPU_MX6QP: diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h index 8a75902..7c63c13 100644 --- a/arch/arm/include/asm/arch-imx/cpu.h +++ b/arch/arm/include/asm/arch-imx/cpu.h @@ -21,6 +21,7 @@ #define MXC_CPU_MX6D 0x67 #define MXC_CPU_MX6DP 0x68 #define MXC_CPU_MX6QP 0x69 +#define MXC_CPU_MX7S 0x71 /* dummy ID */ #define MXC_CPU_MX7D 0x72 #define MXC_CPU_VF610 0xF6 /* dummy ID */