From patchwork Tue Feb 2 13:36:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 374673 Delivered-To: patch@linaro.org Received: by 2002:a02:b18a:0:0:0:0:0 with SMTP id t10csp517747jah; Tue, 2 Feb 2021 12:08:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJyQGG8WXRGcrTu5wAKCz3DmQ401z/f3MuafX7GLtLFY/xQG+d9WMloaZ5UYbZXfozhwkHMr X-Received: by 2002:a17:907:35d1:: with SMTP id ap17mr16415621ejc.79.1612296536358; Tue, 02 Feb 2021 12:08:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612296536; cv=none; d=google.com; s=arc-20160816; b=rkxwlPmXIayp5vgGWuoyASom+vZ7s92jazhqzJxMbk6cKK/0jbCa/cjL1GH0yMTSNy k5KwAYkDSYm96M0V7+feJ7HL1VDPoLLrtr7JHUXHv67TDs6BsgdXKd29Q443reQGjrTG xsKvVIygNMQ0NzMtFKPZ2WKkHwFmO1ciL1X6jWVE7bk7lh4M2mtFwWCLiyJiJ/9vjwXE +cqq7KfE4N+tJP+46A4gwMeykIWjU5p8dMT+tE0DpNZ06rfOrHddJeDztJhD85NbNdgf sTM4An+5IM1fAxBMq0WKwnTiEv+vJxe9dQZNl5RjBZNHsf/M19UmPloNdd457KOnHfuM byCw== 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=+nFrbg0Fv8l1nPl7c7NxCWFbzdd1KEAGsz0ZWsM1WOk=; b=THYy5XSmv6O9BNZ7g2uuiUfL1Rnxwa/sjss/mcEhvHng6fz21/oVhJU3RnqtWNh3mE HKxfBUm8YalO5zUjYAZXS2L91RWy/tvEeMHh7zk/iSBKFDfiUQ0Vq0dqN51h/n483G4F IsudJBobebysgQ4yfiVodN45nECR4n63vgZMdCptx4Ij15/SB9nl0SByk3RcGIB36QGe LLMteMgXf9hNXK9mm79iFo+MX2m0LwbJVqTtjv38arLsYKEnfEaad3SlSizvPbQDv2hA 88fNMtfabNt5EvSZxfVAVklK+yQxpOZBs09zc6kUZmPZ87aOiPZIy2ppnxoiFgBkHNkI TIOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0GAGWarO; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 cm5si5948865edb.479.2021.02.02.12.08.55; Tue, 02 Feb 2021 12:08:56 -0800 (PST) Received-SPF: pass (google.com: domain of stable-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=0GAGWarO; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 S240395AbhBBUHj (ORCPT + 13 others); Tue, 2 Feb 2021 15:07:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:36408 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232834AbhBBNm7 (ORCPT ); Tue, 2 Feb 2021 08:42:59 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id ACAD564DDA; Tue, 2 Feb 2021 13:39:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1612273197; bh=20MW/Pd87sXwNLbTJZKX1ylHRg4J+gcxkPxchjcdi84=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0GAGWarOuBeq05eyKiZqidalh8EaRcvtRIZSmTPiR6IKvoq+E64EzlXJEpw3lJ0+v qqF6BvzGfxQXXbP1KfL/gJrImev+1EGlz/oJHlnEx1H6LQzotcJ2Bdpeq3qnLqTQm8 85PVkSX2PORbFZWwnUBZ+DTUNFShJwz2mIR2mkgg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Linus Walleij , David Hildenbrand , Arnd Bergmann Subject: [PATCH 5.10 017/142] ARM: dts: ux500: Reserve memory carveouts Date: Tue, 2 Feb 2021 14:36:20 +0100 Message-Id: <20210202132958.420202817@linuxfoundation.org> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210202132957.692094111@linuxfoundation.org> References: <20210202132957.692094111@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Linus Walleij commit 8a996b2d8a03beae3cb6adfc12673778c192085d upstream. The Ux500 platforms have some memory carveouts set aside for communicating with the modem and for the initial secure software (ISSW). These areas are protected by the memory controller and will result in an external abort if accessed like common read/write memory. On the legacy boot loaders, these were set aside by using cmdline arguments such as this: mem=96M@0 mem_mtrace=15M@96M mem_mshared=1M@111M mem_modem=16M@112M mali.mali_mem=32M@128M mem=96M@160M hwmem=127M@256M mem_issw=1M@383M mem_ram_console=1M@384M mem=638M@385M Reserve the relevant areas in the device tree instead. The "mali", "hwmem", "mem_ram_console" and the trailing 1MB at the end of the memory reservations in the list are not relevant for the upstream kernel as these are nowadays replaced with upstream technologies such as CMA. The modem and ISSW reservations are necessary. This was manifested in a bug that surfaced in response to commit 7fef431be9c9 ("mm/page_alloc: place pages to tail in __free_pages_core()") which changes the behaviour of memory allocations in such a way that the platform will sooner run into these dangerous areas, with "Unhandled fault: imprecise external abort (0xc06) at 0xb6fd83dc" or similar: the real reason turns out to be that the PTE is pointing right into one of the reserved memory areas. We were just lucky until now. We need to augment the DB8500 and DB8520 SoCs similarly and also create a new include for the DB9500 used in the Snowball since this does not have a modem and thus does not need the modem memory reservation, albeit it needs the ISSW reservation. Signed-off-by: Linus Walleij Cc: stable@vger.kernel.org Cc: David Hildenbrand Link: https://lore.kernel.org/r/20201213225517.3838501-1-linus.walleij@linaro.org' Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman --- arch/arm/boot/dts/ste-db8500.dtsi | 38 +++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/ste-db8520.dtsi | 38 +++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/ste-db9500.dtsi | 35 ++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/ste-snowball.dts | 2 - 4 files changed, 112 insertions(+), 1 deletion(-) --- a/arch/arm/boot/dts/ste-db8500.dtsi +++ b/arch/arm/boot/dts/ste-db8500.dtsi @@ -12,4 +12,42 @@ 200000 0>; }; }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + /* Modem trace memory */ + ram@06000000 { + reg = <0x06000000 0x00f00000>; + no-map; + }; + + /* Modem shared memory */ + ram@06f00000 { + reg = <0x06f00000 0x00100000>; + no-map; + }; + + /* Modem private memory */ + ram@07000000 { + reg = <0x07000000 0x01000000>; + no-map; + }; + + /* + * Initial Secure Software ISSW memory + * + * This is probably only used if the kernel tries + * to actually call into trustzone to run secure + * applications, which the mainline kernel probably + * will not do on this old chipset. But you can never + * be too careful, so reserve this memory anyway. + */ + ram@17f00000 { + reg = <0x17f00000 0x00100000>; + no-map; + }; + }; }; --- a/arch/arm/boot/dts/ste-db8520.dtsi +++ b/arch/arm/boot/dts/ste-db8520.dtsi @@ -12,4 +12,42 @@ 200000 0>; }; }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + /* Modem trace memory */ + ram@06000000 { + reg = <0x06000000 0x00f00000>; + no-map; + }; + + /* Modem shared memory */ + ram@06f00000 { + reg = <0x06f00000 0x00100000>; + no-map; + }; + + /* Modem private memory */ + ram@07000000 { + reg = <0x07000000 0x01000000>; + no-map; + }; + + /* + * Initial Secure Software ISSW memory + * + * This is probably only used if the kernel tries + * to actually call into trustzone to run secure + * applications, which the mainline kernel probably + * will not do on this old chipset. But you can never + * be too careful, so reserve this memory anyway. + */ + ram@17f00000 { + reg = <0x17f00000 0x00100000>; + no-map; + }; + }; }; --- /dev/null +++ b/arch/arm/boot/dts/ste-db9500.dtsi @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "ste-dbx5x0.dtsi" + +/ { + cpus { + cpu@300 { + /* cpufreq controls */ + operating-points = <1152000 0 + 800000 0 + 400000 0 + 200000 0>; + }; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + /* + * Initial Secure Software ISSW memory + * + * This is probably only used if the kernel tries + * to actually call into trustzone to run secure + * applications, which the mainline kernel probably + * will not do on this old chipset. But you can never + * be too careful, so reserve this memory anyway. + */ + ram@17f00000 { + reg = <0x17f00000 0x00100000>; + no-map; + }; + }; +}; --- a/arch/arm/boot/dts/ste-snowball.dts +++ b/arch/arm/boot/dts/ste-snowball.dts @@ -4,7 +4,7 @@ */ /dts-v1/; -#include "ste-db8500.dtsi" +#include "ste-db9500.dtsi" #include "ste-href-ab8500.dtsi" #include "ste-href-family-pinctrl.dtsi"