From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: [PATCH v4 1/8] ARM: trusted_foundations: Implement L2 cache initialization callback Date: Mon, 18 Feb 2019 03:17:19 +0300 Message-ID: <20190218001726.16785-2-digetx@gmail.com> References: <20190218001726.16785-1-digetx@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20190218001726.16785-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 6786CC4151A for ; Mon, 18 Feb 2019 00:19:55 +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 22695218CD for ; Mon, 18 Feb 2019 00:19:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="j8O+e6+Z"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="c8/B3ioT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 22695218CD 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=j8O+e6+ZxY/Tg8 geCkVC1Y3Z9ek4WazCPxdfSbClhRPU0OkGWrWICiGb+CqFJa4cZAOPeWiQQBv2JUwBEwMUYuQK+u4 j4usmLqHC7hNqIHpSPdFytYhwjU+bMuvpDvbbA5ghwPfj0XlJx/Gajc1DlndynmdqZ9ExPr/f+3S7 73biuOvWD9RSFNnTushPi+bGzCkzc3g8YXvFQaC6R/A+aOeYeFvKJ4uFEdH8HuGqZLuqYOFm4+aML cAiAxE3tA0vHbiHilDiucirIowebIdF3snulUGO14j08E4fxNBN4X0VcpTqhZQhfc/nTC+egx9o7c ZC630+KQJOcQtrKntzxw==; 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 1gvWey-0001oH-JK; Mon, 18 Feb 2019 00:19:48 +0000 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gvWec-0001Iu-LJ for linux-arm-kernel@lists.infradead.org; Mon, 18 Feb 2019 00:19:28 +0000 Received: by mail-pl1-x642.google.com with SMTP id r14so7805758pls.12 for ; Sun, 17 Feb 2019 16:19:26 -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=c8/B3ioT16kwbIY57ldLRWsLeuksRs6DL7eObvDSD7CIYQDr4mo1jA7eC5a5IYos3J CK0e+wFmVeDzvYhZK7uh6rbtvbTJacNO7x6DTfNaKUWFNTAfPGbgM0t53hhtwG7ZMy/G 46RNrn08ANjrWs4C5f7snzDtFGMG9Wo9mJnuUCWv87EDlD3EjDquDVKR9+z9I+ONElHP eoO1lrEja2TA4omz13wup+lnnHi5QYNoZjxOw53v35otFUdlidKkpuBmS4RdcDLQDspA gMms3I5BrWgB0rEwsahmHQu/TKGsNqIa/YtFVVMPAO9mwXQOL5fWzdjW2qXXybvyfh0D 9EKg== 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=NtmZvZen3QXzueIo7IiFyDXrSj19Dq/w33iHkMrt7nUgj/gzl3qoFbiBshmQX3K2y6 r7T9pDLCwLKnAc9fvoTQG7l/fS1Pshddui4r0+NvCHMwPddP3BqpFPM2GTnM7CuKdR81 +9Tf5ySalV3/+W7EotKMndzLKlOn0xnq1rpkpYB+AavTq4pj2AjNU/deDyiKQps680T+ wCo0OuWyE00w3RiZ/O2MkNcXvvjuB5pT27GCDc4paLEESUJAGgkLA9kU7B0RcLrB+Bg4 4dukkSTht9LyXrbkimkrfmloMkG4B+aF++5tWBR87GIwVmP/soa/ZQzzbzeTN8zacCMp 3E8Q== X-Gm-Message-State: AHQUAuagO6W1F3ZAN2HPUpeizpyYNRaIYfNa5kGwgF6x1oazcwOX9otM DIAQTUVY0VaKE+x8GA1glAw= X-Google-Smtp-Source: AHgI3IavcXNoo+tvv02/VjCX7nswKHG9gUmWMgJhu/m3mD9L83zn/gjNjqRlZOm/3F0YEj2sNtbjDw== X-Received: by 2002:a17:902:29ab:: with SMTP id h40mr22405596plb.238.1550449166237; Sun, 17 Feb 2019 16:19:26 -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 s73sm31518071pfi.124.2019.02.17.16.19.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 16:19:25 -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 v4 1/8] ARM: trusted_foundations: Implement L2 cache initialization callback Date: Mon, 18 Feb 2019 03:17:19 +0300 Message-Id: <20190218001726.16785-2-digetx@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190218001726.16785-1-digetx@gmail.com> References: <20190218001726.16785-1-digetx@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190217_161926_700443_5CE601E0 X-CRM114-Status: GOOD ( 14.93 ) 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=