From patchwork Mon Aug 19 09:43:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1149177 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="Mg/IiVU8"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46Bq610MxKz9sMr for ; Mon, 19 Aug 2019 19:54:48 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 9F3B7C21F5B; Mon, 19 Aug 2019 09:50:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 19A2DC21F29; Mon, 19 Aug 2019 09:46:36 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 551A7C21EFF; Mon, 19 Aug 2019 09:43:13 +0000 (UTC) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140074.outbound.protection.outlook.com [40.107.14.74]) by lists.denx.de (Postfix) with ESMTPS id 21628C21E57 for ; Mon, 19 Aug 2019 09:43:11 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oMd6pkaM7lM0R7VBY8DJDcSjBty6Ill2QbTgoiBShCknmJNsCzDR5Yim21dksMdEYD7leZPOQLXgy3VV5uKLbhvJc546MTGdzn5KqLnZnOBslFh9Hq4zrQuVfUKLovk2Fe0DShhi/0mW+P2ryjCe0vNaRs9tS6jBDziBd02vSjaumCDxMovNV4jY0YWouPbCnqXS4mdk3A6XfxwqZbnwdndJCr0Kowlv/mPg6L6QpPOqKptVTz09vxsteWk0/DdxIkBzg5HMO7R3nm+hwveqwyPNzV8k3iL3PuUKh0g8wpLRAsndm/DvhHMbLA7q3l2TAkeLb/HWfhsl6xwY1a2EXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=39HxL64cGf0shvuYad0o+pIxt0m0BzaIxJNztCu5+uU=; b=h72+t7OWDaXQKdEAkzsN2cuqlXyjf2Ai+/cjmODSVySIyn2LJlDv3pPiKgx+z7t1jsfYzUnVQ9DZOWJ8z8Zuw88eddUGNIHVQXNiGHeqwCxfBFFSo0hVaHe0TMDOvcQkYdWfIlbC4qfM0FeHZn8c0omz0+OcdLWx41pIi8GluvO+trXZV7bPerFL8Vi01MYganN9/aJA861rHzQ1YWyeQcOje2uAOcBm2gl3UgKyS/jcIMCAGALn69LonKI2gHGByd8A5pWMxixLp6V/a1APVn1YSnLnCnQPHQOZmxf1BJubHdrE/ztIToK0zEL2QmXHT8y4KrXggL7azFEMlvp/qA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=39HxL64cGf0shvuYad0o+pIxt0m0BzaIxJNztCu5+uU=; b=Mg/IiVU8q6sXDQlDDspFkbGLmjlCuEa5qIbEYIzKmR1LR1utrAV881MDvgFFPiob89Cp+I5hS+XfAsuXI/lel7ij2eZqNGiWyVlEAoLs3+eoykE/ucnbMGwGfFAqdl4YbLVmdZ2PY7l1v9QqdsMDsxylByv1gfkC5kVuBuIbsFw= Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB4354.eurprd04.prod.outlook.com (52.134.90.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.18; Mon, 19 Aug 2019 09:43:10 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4%4]) with mapi id 15.20.2178.018; Mon, 19 Aug 2019 09:43:10 +0000 From: Peng Fan To: "sbabic@denx.de" , "festevam@gmail.com" , "lukma@denx.de" Thread-Topic: [PATCH v2 14/26] imx8m: Fix MMU table issue for OPTEE memory Thread-Index: AQHVVnKCcHkznmOlW0aSo+Fg4fF6IQ== Date: Mon, 19 Aug 2019 09:43:10 +0000 Message-ID: <20190819095817.22107-15-peng.fan@nxp.com> References: <20190819095817.22107-1-peng.fan@nxp.com> In-Reply-To: <20190819095817.22107-1-peng.fan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.16.4 x-clientproxiedby: HK2PR02CA0205.apcprd02.prod.outlook.com (2603:1096:201:20::17) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0909fabf-ad8a-4704-b8e9-08d72489a552 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR04MB4354; x-ms-traffictypediagnostic: AM0PR04MB4354: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5516; x-forefront-prvs: 0134AD334F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(39860400002)(376002)(346002)(366004)(136003)(189003)(199004)(50226002)(2201001)(81156014)(8936002)(102836004)(86362001)(6506007)(14454004)(66556008)(64756008)(66946007)(316002)(66446008)(81166006)(5660300002)(66066001)(36756003)(71200400001)(478600001)(71190400001)(11346002)(446003)(476003)(186003)(52116002)(26005)(44832011)(6116002)(3846002)(76176011)(2616005)(2501003)(486006)(2906002)(386003)(25786009)(4326008)(14444005)(6436002)(256004)(99286004)(8676002)(6512007)(6486002)(1076003)(7736002)(53936002)(54906003)(110136005)(305945005)(66476007)(32563001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4354; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: mI46TilLCZVmKvmu2U72x1leGcPyafwehsBQCZoQIs2M16/nITo7dYjpf5ztT4OCSABORymF9WgYRixPNRlPSFZzDGvRqK7jEc4eQuBfpXzXbIisSwfQzc+FZuA2ro2+1MfRkydr+5AbH42AdBgc59TvcVrTe4xeDh3Ki8vdIZACYkF3pPH4XcmS4li/R62PgBWipY2idHNcfX0dUT7znBmqK2kY8iZLOjENWU+AVSWfiGyU/KuH5lm0yYLTDbkhZi/vApCnVpnOVR2KywXxu0f6HdqYhER6EJhQK6NRJ5WtzGXXWKuVn81AQWR5W9QepcGUFuuDOkRH4WXpEo5uCK1DZnve//FqpTL8qLTonmuwxgPdaRkUd/xUv9Y0cHvIUHXyslpOWLhpmDHo0oY8YAZfut2whsdhbDCaut6bon4= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0909fabf-ad8a-4704-b8e9-08d72489a552 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2019 09:43:10.2973 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Pwbdt5IZjQ3OyWBNup9EdUnHpOJzFhJLOATShQhigY+OLWmp9+HXh0NXv7UWoFiiCBBcAiOV8QoUcTU+llFWgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4354 Cc: "u-boot@lists.denx.de" , dl-uboot-imx Subject: [U-Boot] [PATCH v2 14/26] imx8m: Fix MMU table issue for OPTEE memory X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" When running with OPTEE, the MMU table in u-boot does not remove the OPTEE memory from its settings. So ARM speculative prefetch in u-boot may access that OPTEE memory. Due to trust zone is enabled by OPTEE and that memory is set to secure access, then the speculative prefetch will fail and cause various memory issue in u-boot. The fail address register and int_status register in trustzone has logged that speculative access from u-boot. Signed-off-by: Peng Fan --- arch/arm/mach-imx/imx8m/soc.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index 5115471eff..dd393b581b 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -112,16 +112,18 @@ static struct mm_region imx8m_mem_map[] = { /* DRAM1 */ .virt = 0x40000000UL, .phys = 0x40000000UL, - .size = 0xC0000000UL, + .size = PHYS_SDRAM_SIZE, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_OUTER_SHARE +#ifdef PHYS_SDRAM_2_SIZE }, { /* DRAM2 */ .virt = 0x100000000UL, .phys = 0x100000000UL, - .size = 0x040000000UL, + .size = PHYS_SDRAM_2_SIZE, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_OUTER_SHARE +#endif }, { /* List terminator */ 0, @@ -130,6 +132,20 @@ static struct mm_region imx8m_mem_map[] = { struct mm_region *mem_map = imx8m_mem_map; +void enable_caches(void) +{ + /* + * If OPTEE runs, remove OPTEE memory from MMU table to + * avoid speculative prefetch. OPTEE runs at the top of + * the first memory bank + */ + if (rom_pointer[1]) + imx8m_mem_map[5].size -= rom_pointer[1]; + + icache_enable(); + dcache_enable(); +} + static u32 get_cpu_variant_type(u32 type) { struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;