From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: [PATCH v5 1/8] ARM: trusted_foundations: Implement L2 cache initialization callback Date: Fri, 22 Feb 2019 20:59:19 +0300 Message-ID: <20190222175926.23366-2-digetx@gmail.com> References: <20190222175926.23366-1-digetx@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20190222175926.23366-1-digetx@gmail.com> Sender: linux-kernel-owner@vger.kernel.org To: Russell King , Thierry Reding , Jonathan Hunter , Robert Yang , =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= Cc: linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-tegra@vger.kernel.org Implement L2 cache initialization firmware callback that should be invoked early during boot in order to set up the required outer cache driver's callbacks. Partially based on work done by Michał Mirosław [1]. [1] https://www.spinics.net/lists/arm-kernel/msg594765.html Signed-off-by: Dmitry Osipenko --- arch/arm/firmware/trusted_foundations.c | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/arm/firmware/trusted_foundations.c b/arch/arm/firmware/trusted_foundations.c index 689e6565abfc..3bf61a5933b9 100644 --- a/arch/arm/firmware/trusted_foundations.c +++ b/arch/arm/firmware/trusted_foundations.c @@ -18,8 +18,15 @@ #include #include #include +#include +#include #include +#define TF_CACHE_MAINT 0xfffff100 + +#define TF_CACHE_ENABLE 1 +#define TF_CACHE_DISABLE 2 + #define TF_SET_CPU_BOOT_ADDR_SMC 0xfffff200 #define TF_CPU_PM 0xfffffffc @@ -67,9 +74,48 @@ static int tf_prepare_idle(void) return 0; } +#ifdef CONFIG_CACHE_L2X0 +static void tf_cache_write_sec(unsigned long val, unsigned int reg) +{ + static u32 l2x0_way_mask = 0xff; + static u32 l2x0_aux_ctrl = 0; + + switch (reg) { + case L2X0_AUX_CTRL: + l2x0_aux_ctrl = val; + + if (l2x0_aux_ctrl & BIT(16)) + l2x0_way_mask = 0xffff; + break; + + case L2X0_CTRL: + if (val == L2X0_CTRL_EN) + tf_generic_smc(TF_CACHE_MAINT, TF_CACHE_ENABLE, + l2x0_aux_ctrl); + else + tf_generic_smc(TF_CACHE_MAINT, TF_CACHE_DISABLE, + l2x0_way_mask); + break; + + default: + break; + } +} + +static int tf_init_cache(void) +{ + outer_cache.write_sec = tf_cache_write_sec; + + return 0; +} +#endif /* CONFIG_CACHE_L2X0 */ + static const struct firmware_ops trusted_foundations_ops = { .set_cpu_boot_addr = tf_set_cpu_boot_addr, .prepare_idle = tf_prepare_idle, +#ifdef CONFIG_CACHE_L2X0 + .l2x0_init = tf_init_cache, +#endif }; void register_trusted_foundations(struct trusted_foundations_platform_data *pd) -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 94995C4360F for ; Fri, 22 Feb 2019 18:05:07 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 68FA52075C for ; Fri, 22 Feb 2019 18:05:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="t49lm/In"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cZbgRusd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 68FA52075C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FatyJJmGQZO1i9dvN+dnWT3eWFTgH755QezZJrlCb+Y=; b=t49lm/InClJYQG aNP5o7sC37xOdIYDDnMyKEqt4kbjsB3y3KhRNkB+1mSKS3QcKMJw4DEMfrihSFZTTKPwV/iHOc+QS 1aAGiArcRF+4ftM7l/+vhgdQfWoO4Xut5V631ogP/5QiNyPYmH6rYk+xr7tbVhVMmIns5gehizAFp YR7GQPTysGuRVd8EHIbhExfjDnwHbl1JfBo4Dlfm+1XkkXkqEhAMy9FvVVmsywjYnnSA5VWqHhgoK GvmrMIxGc/WDCLYCyuvi1/8OYI3WBz2vCh6tlBLbdjltu0K6xfwc3cplkD35uELev5qlbekqL9WEC AJpwVtYW3v47+uisUWcQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gxFBy-0007EW-W4; Fri, 22 Feb 2019 18:04:59 +0000 Received: from mail-lf1-x144.google.com ([2a00:1450:4864:20::144]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gxFBY-0006jH-Nq for linux-arm-kernel@lists.infradead.org; Fri, 22 Feb 2019 18:04:35 +0000 Received: by mail-lf1-x144.google.com with SMTP id j1so2374819lfb.10 for ; Fri, 22 Feb 2019 10:04:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ef/pjs0sC4GxqdxxxUgy0sbHhpRnX1Oqj7kTNWdGqgw=; b=cZbgRusd72a50mwccguM+uOvw3Sh1jFcugmBmVOvqcHFb5L4VIL5dGYibZUnzArU/G QD/ZyCmle0YjHRq1HeIaWbcSLLin0BaAcMmdnXXNWpvsJTd2/ItBw1KbbSnzdSX6Ori5 e3uLRt9+xrocHbXJhDSyo58n0KWO8DPqi0Jf/PA9HMQ6+VOZlRzcC/syIuEAR7JlHI4M n/ADzEfAX7CfgUmJ2w1KQO2aQ2L9LwLtU6eTvm0VhfP9OAwjz+srAHvq7LNY8i4AeE15 E8KftaYB0MvtbW9WEzHDR1ogWYXhN52F1G8bbGYgQ3GIjoPdOq98Fs7cgFplR43hV9ET Xyeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ef/pjs0sC4GxqdxxxUgy0sbHhpRnX1Oqj7kTNWdGqgw=; b=hhDzZfBfjTN9jqO/Um8qTedSHYHj5O00rbEpsVrY0iMdNrc2zr04QGUhiTHVncH/aj pQ4rdWYGLf9CZPboGao18I/9cL0ntYyIyyjr6lj1DoIDAk4ykw9NLfOwiIwOL4Ix/5r2 ZVhi96KS23cntUmpxWw9tk9IyR8Rzcw9XM/5SM3LrRmuADlUHzzsGwOVVHoEB5vNdmGB SEbKWYb4b9t89F8wjId/DIrmjG29CJ1FrZNoedhY84oEWzYgSZ+0yufI/2K9Hn2lhclC 7+t5i4p84VMcHc32f7qFGX9qJqICvzet2MO1BLNVn8QEk2SEhO81HAgKyXFWBi9m/vNP WPdg== X-Gm-Message-State: AHQUAuYky3TvvaeOeyNrShMsSJiM3F1CGqXnhPs4F29AZyuY5WZ988KK RCizgkev5fbIW6BdScVE8qU= X-Google-Smtp-Source: AHgI3IYnQ6oD50qOsv9TnBC67tgizIQXZFjPCspSSkQrz6HVU+af+EDGWwunpKr/XgULKo3ALiXkaA== X-Received: by 2002:a19:ae0b:: with SMTP id f11mr3399373lfc.104.1550858670524; Fri, 22 Feb 2019 10:04:30 -0800 (PST) Received: from localhost.localdomain (ppp91-79-175-49.pppoe.mtu-net.ru. [91.79.175.49]) by smtp.gmail.com with ESMTPSA id j12sm721202lfg.47.2019.02.22.10.04.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 10:04:29 -0800 (PST) From: Dmitry Osipenko To: Russell King , Thierry Reding , Jonathan Hunter , Robert Yang , =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= Subject: [PATCH v5 1/8] ARM: trusted_foundations: Implement L2 cache initialization callback Date: Fri, 22 Feb 2019 20:59:19 +0300 Message-Id: <20190222175926.23366-2-digetx@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190222175926.23366-1-digetx@gmail.com> References: <20190222175926.23366-1-digetx@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190222_100432_770702_48E9A128 X-CRM114-Status: GOOD ( 14.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SW1wbGVtZW50IEwyIGNhY2hlIGluaXRpYWxpemF0aW9uIGZpcm13YXJlIGNhbGxiYWNrIHRoYXQg c2hvdWxkIGJlCmludm9rZWQgZWFybHkgZHVyaW5nIGJvb3QgaW4gb3JkZXIgdG8gc2V0IHVwIHRo ZSByZXF1aXJlZCBvdXRlciBjYWNoZQpkcml2ZXIncyBjYWxsYmFja3MuCgpQYXJ0aWFsbHkgYmFz ZWQgb24gd29yayBkb25lIGJ5IE1pY2hhxYIgTWlyb3PFgmF3IFsxXS4KClsxXSBodHRwczovL3d3 dy5zcGluaWNzLm5ldC9saXN0cy9hcm0ta2VybmVsL21zZzU5NDc2NS5odG1sCgpTaWduZWQtb2Zm LWJ5OiBEbWl0cnkgT3NpcGVua28gPGRpZ2V0eEBnbWFpbC5jb20+Ci0tLQogYXJjaC9hcm0vZmly bXdhcmUvdHJ1c3RlZF9mb3VuZGF0aW9ucy5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9maXJtd2FyZS90cnVzdGVkX2ZvdW5kYXRpb25zLmMgYi9hcmNoL2FybS9maXJtd2FyZS90cnVz dGVkX2ZvdW5kYXRpb25zLmMKaW5kZXggNjg5ZTY1NjVhYmZjLi4zYmY2MWE1OTMzYjkgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtL2Zpcm13YXJlL3RydXN0ZWRfZm91bmRhdGlvbnMuYworKysgYi9hcmNo L2FybS9maXJtd2FyZS90cnVzdGVkX2ZvdW5kYXRpb25zLmMKQEAgLTE4LDggKzE4LDE1IEBACiAj aW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8 YXNtL2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2NhY2hlLWwyeDAuaD4KKyNp bmNsdWRlIDxhc20vb3V0ZXJjYWNoZS5oPgogI2luY2x1ZGUgPGFzbS90cnVzdGVkX2ZvdW5kYXRp b25zLmg+CiAKKyNkZWZpbmUgVEZfQ0FDSEVfTUFJTlQJCTB4ZmZmZmYxMDAKKworI2RlZmluZSBU Rl9DQUNIRV9FTkFCTEUJCTEKKyNkZWZpbmUgVEZfQ0FDSEVfRElTQUJMRQkyCisKICNkZWZpbmUg VEZfU0VUX0NQVV9CT09UX0FERFJfU01DIDB4ZmZmZmYyMDAKIAogI2RlZmluZSBURl9DUFVfUE0J CTB4ZmZmZmZmZmMKQEAgLTY3LDkgKzc0LDQ4IEBAIHN0YXRpYyBpbnQgdGZfcHJlcGFyZV9pZGxl KHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBDT05GSUdfQ0FDSEVfTDJYMAorc3RhdGlj IHZvaWQgdGZfY2FjaGVfd3JpdGVfc2VjKHVuc2lnbmVkIGxvbmcgdmFsLCB1bnNpZ25lZCBpbnQg cmVnKQoreworCXN0YXRpYyB1MzIgbDJ4MF93YXlfbWFzayA9IDB4ZmY7CisJc3RhdGljIHUzMiBs MngwX2F1eF9jdHJsID0gMDsKKworCXN3aXRjaCAocmVnKSB7CisJY2FzZSBMMlgwX0FVWF9DVFJM OgorCQlsMngwX2F1eF9jdHJsID0gdmFsOworCisJCWlmIChsMngwX2F1eF9jdHJsICYgQklUKDE2 KSkKKwkJCWwyeDBfd2F5X21hc2sgPSAweGZmZmY7CisJCWJyZWFrOworCisJY2FzZSBMMlgwX0NU Ukw6CisJCWlmICh2YWwgPT0gTDJYMF9DVFJMX0VOKQorCQkJdGZfZ2VuZXJpY19zbWMoVEZfQ0FD SEVfTUFJTlQsIFRGX0NBQ0hFX0VOQUJMRSwKKwkJCQkgICAgICAgbDJ4MF9hdXhfY3RybCk7CisJ CWVsc2UKKwkJCXRmX2dlbmVyaWNfc21jKFRGX0NBQ0hFX01BSU5ULCBURl9DQUNIRV9ESVNBQkxF LAorCQkJCSAgICAgICBsMngwX3dheV9tYXNrKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQli cmVhazsKKwl9Cit9CisKK3N0YXRpYyBpbnQgdGZfaW5pdF9jYWNoZSh2b2lkKQoreworCW91dGVy X2NhY2hlLndyaXRlX3NlYyA9IHRmX2NhY2hlX3dyaXRlX3NlYzsKKworCXJldHVybiAwOworfQor I2VuZGlmIC8qIENPTkZJR19DQUNIRV9MMlgwICovCisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmly bXdhcmVfb3BzIHRydXN0ZWRfZm91bmRhdGlvbnNfb3BzID0gewogCS5zZXRfY3B1X2Jvb3RfYWRk ciA9IHRmX3NldF9jcHVfYm9vdF9hZGRyLAogCS5wcmVwYXJlX2lkbGUgPSB0Zl9wcmVwYXJlX2lk bGUsCisjaWZkZWYgQ09ORklHX0NBQ0hFX0wyWDAKKwkubDJ4MF9pbml0ID0gdGZfaW5pdF9jYWNo ZSwKKyNlbmRpZgogfTsKIAogdm9pZCByZWdpc3Rlcl90cnVzdGVkX2ZvdW5kYXRpb25zKHN0cnVj dCB0cnVzdGVkX2ZvdW5kYXRpb25zX3BsYXRmb3JtX2RhdGEgKnBkKQotLSAKMi4yMC4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=