Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp9096052pxu; Mon, 28 Dec 2020 06:32:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJwbo9vvvxSmDnFZGOxZPfMyZSmdJY70IVpgBPmicuOWnHvFLHAngEledS/07IZUy4Wxs2F7 X-Received: by 2002:a17:906:3404:: with SMTP id c4mr42677847ejb.86.1609165947610; Mon, 28 Dec 2020 06:32:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609165947; cv=none; d=google.com; s=arc-20160816; b=D30VOHcfCRgGYpNpZ8kvJwaIju64uR3sb7zMM3Khx03AB+DIiAWklkM/ItJQr1KIaF XCYqGy6DnIs+w1pjr2+T9HO13/5sJk7z5BMM5hTguBr2lnYq667duN1XNM5M8AVyuEfK Y+f2CGwqNkWp0n62EHV3mdnmoXr5AECI5Mr7KeuCpiPK5xAwW1zYGlYZyrxukVxHdZRu q75UfCskerBK7oB2P0LsPT4MNwfVuZ2YWyr4UFSABXOIVwkqWkGZoo0kpQ/rLRUnw4pQ 5leuh5jUnRjdQ2vnNfE8Ai2ZYz1WDtMKvdKzEqgGmAB1wWDn6DcTFUQ9Z8mz8DVVPLHf SaJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6naAqe+3mmRF3LRj942USC/uEQgtmC4fUL1t6EpIvM8=; b=B7oego6AQyW9hb65wK20SXSRachWw1ZdzSXvrxai6JUcbAXueMFMXUYQrNmqjVQ2dK UQA7s3/p6nM0dYmif+EHZu2dNwREFhVkc4pDMMvtvlbH/q9HTKHhrZXfjJXTty2YhLiy 58Jt7kKiJjNcNOnwkSgnsB1gAm+nm20mPjeStbTnKM5HIASQm0fx6ie4TOQnCkKJzIra t/QXrx1BUltWnIHIfv4Z6MRvygT8KmPp0TJZefo4asw8RP21QxyI4LrPdhOU/EDpeRuc ggBjdcdMK74i0JQbgKwdp3P3TjW3SU9xNIDh7KMgmcSo/wWjAKrX65hX4MVhk164ZSh9 ZdUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qp70y4bX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g21si19743801edp.95.2020.12.28.06.32.05; Mon, 28 Dec 2020 06:32:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=qp70y4bX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503526AbgL1OaB (ORCPT + 99 others); Mon, 28 Dec 2020 09:30:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:38046 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2503479AbgL1O35 (ORCPT ); Mon, 28 Dec 2020 09:29:57 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id F048920715; Mon, 28 Dec 2020 14:29:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1609165756; bh=LO60mf2UALiMu1xO/Jw4nMzD7JclZyMfE+EJXbiWE5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qp70y4bX67FBRl6x38xHtP0Tmj6d9VylOrUGcqwT5kqXRsyU/SgMXahTe+JZ+i1IS nCpBqsXzz8RK8iKvQN8AORCRpARfFN50WFCZY9Ei4DTF+bJH+DI48JEGWkg6Q8rQlp CiKuxe1dd5edain4lkmF35evJbY/atBGMiLLz1yE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Christophe Leroy , Michael Ellerman Subject: [PATCH 5.10 613/717] powerpc/8xx: Fix early debug when SMC1 is relocated Date: Mon, 28 Dec 2020 13:50:11 +0100 Message-Id: <20201228125050.286785483@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201228125020.963311703@linuxfoundation.org> References: <20201228125020.963311703@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christophe Leroy commit 1e78f723d6a52966bfe3804209dbf404fdc9d3bb upstream. When SMC1 is relocated and early debug is selected, the board hangs is ppc_md.setup_arch(). This is because ones the microcode has been loaded and SMC1 relocated, early debug writes in the weed. To allow smooth continuation, the SMC1 parameter RAM set up by the bootloader have to be copied into the new location. Fixes: 43db76f41824 ("powerpc/8xx: Add microcode patch to move SMC parameter RAM.") Cc: stable@vger.kernel.org Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/b2f71f39eca543f1e4ec06596f09a8b12235c701.1607076683.git.christophe.leroy@csgroup.eu Signed-off-by: Greg Kroah-Hartman --- arch/powerpc/include/asm/cpm1.h | 1 + arch/powerpc/platforms/8xx/micropatch.c | 11 +++++++++++ 2 files changed, 12 insertions(+) --- a/arch/powerpc/include/asm/cpm1.h +++ b/arch/powerpc/include/asm/cpm1.h @@ -68,6 +68,7 @@ extern void cpm_reset(void); #define PROFF_SPI ((uint)0x0180) #define PROFF_SCC3 ((uint)0x0200) #define PROFF_SMC1 ((uint)0x0280) +#define PROFF_DSP1 ((uint)0x02c0) #define PROFF_SCC4 ((uint)0x0300) #define PROFF_SMC2 ((uint)0x0380) --- a/arch/powerpc/platforms/8xx/micropatch.c +++ b/arch/powerpc/platforms/8xx/micropatch.c @@ -360,6 +360,17 @@ void __init cpm_load_patch(cpm8xx_t *cp) if (IS_ENABLED(CONFIG_SMC_UCODE_PATCH)) { smc_uart_t *smp; + if (IS_ENABLED(CONFIG_PPC_EARLY_DEBUG_CPM)) { + int i; + + for (i = 0; i < sizeof(*smp); i += 4) { + u32 __iomem *src = (u32 __iomem *)&cp->cp_dparam[PROFF_SMC1 + i]; + u32 __iomem *dst = (u32 __iomem *)&cp->cp_dparam[PROFF_DSP1 + i]; + + out_be32(dst, in_be32(src)); + } + } + smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC1]; out_be16(&smp->smc_rpbase, 0x1ec0); smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC2];