aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Grohmann <davide.grohmann@arm.com>2022-08-22 09:54:42 +0200
committerDavide Grohmann <davide.grohmann@arm.com>2022-08-25 11:36:20 +0200
commit43e7dc41eb7f0701951ac84d82f877be37338d41 (patch)
tree3940b2de8bdf3f799d088ee8b2e30f7a5327ae37
parent53fd03d0b8d02fa0be0aa9db4dce8766be459031 (diff)
downloadethos-u-linux-driver-stack-43e7dc41eb7f0701951ac84d82f877be37338d41.tar.gz
Remove sgm775 support
That platform has been replaced by Corstone-1000 Change-Id: I2dd6e190cbbc84c02f101bd6214c802585d8ca25
-rw-r--r--remoteproc/CMakeLists.txt2
-rw-r--r--remoteproc/Kbuild1
-rw-r--r--remoteproc/Kconfig9
-rw-r--r--remoteproc/ethosu_bridge_reset.c157
-rw-r--r--remoteproc/remoteproc.dtsi46
5 files changed, 1 insertions, 214 deletions
diff --git a/remoteproc/CMakeLists.txt b/remoteproc/CMakeLists.txt
index af5f1d1..86cef2c 100644
--- a/remoteproc/CMakeLists.txt
+++ b/remoteproc/CMakeLists.txt
@@ -36,7 +36,7 @@ file(GLOB_RECURSE OBJ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c")
list(TRANSFORM OBJ REPLACE "^(.*)[.]c" "\\1.o")
list(TRANSFORM OBJ PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
-set(MODULES CONFIG_ARM_ETHOSU_RPROC=m CONFIG_ARM_SGM775_ETHOSU_RESET=m CONFIG_ARM_JUNO_FPGA_RESET=m CONFIG_ARM_CORSTONE1000_ES_RESET=m)
+set(MODULES CONFIG_ARM_ETHOSU_RPROC=m CONFIG_ARM_JUNO_FPGA_RESET=m CONFIG_ARM_CORSTONE1000_ES_RESET=m)
# Build the kernel module
add_custom_target(ethosu-remoteproc-module ALL
diff --git a/remoteproc/Kbuild b/remoteproc/Kbuild
index 23b9c8e..8c4a967 100644
--- a/remoteproc/Kbuild
+++ b/remoteproc/Kbuild
@@ -18,7 +18,6 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-obj-$(CONFIG_ARM_SGM775_ETHOSU_RESET) += ethosu_bridge_reset.o
obj-$(CONFIG_ARM_JUNO_FPGA_RESET) += juno_fpga_reset.o
obj-$(CONFIG_ARM_ETHOSU_RPROC) += ethosu_remoteproc.o
obj-$(CONFIG_ARM_CORSTONE1000_ES_RESET) += corstone1000_es_reset.o
diff --git a/remoteproc/Kconfig b/remoteproc/Kconfig
index 8c7b6c7..972530c 100644
--- a/remoteproc/Kconfig
+++ b/remoteproc/Kconfig
@@ -18,14 +18,6 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-config ARM_SGM775_ETHOSU_RESET
- tristate "Arm Ethos-U SGM775 Reset"
- depends on RESET_CONTROLLER
- help
- Say Y here if you want to build the Arm Ethos-U reset controller
- reference module for controlling the reset of Cortex-M CPU on
- the Ethos-U subsystem.
-
config ARM_JUNO_FPGA_RESET
tristate "Arm Juno FPGA Reset"
depends on RESET_CONTROLLER
@@ -47,4 +39,3 @@ config ARM_CORSTONE1000_ES_RESET
help
Say Y here if you want to build the reset driver for the external
systems on Corstone1000.
-
diff --git a/remoteproc/ethosu_bridge_reset.c b/remoteproc/ethosu_bridge_reset.c
deleted file mode 100644
index 7f73ee7..0000000
--- a/remoteproc/ethosu_bridge_reset.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2021 Arm Limited. All rights reserved.
- *
- * This program is free software and is provided to you under the terms of the
- * GNU General Public License version 2 as published by the Free Software
- * Foundation, and any use by you of this program is subject to the terms
- * of such GNU licence.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, you can access it online at
- * http://www.gnu.org/licenses/gpl-2.0.html.
- *
- * SPDX-License-Identifier: GPL-2.0-only
- */
-
-#include <linux/io.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
-#include <linux/platform_device.h>
-#include <linux/reset-controller.h>
-
-#define ETHOSU_BRIDGE_RESET_DRIVER_VERSION "0.0.1"
-
-struct ethosu_reset {
- struct reset_controller_dev rst;
- struct device *dev;
- void __iomem *base;
-};
-
-#define ETHOSU_BRIDGE_ID(base) (base)
-#define ETHOSU_BRIDGE_CTRL(base) ((base) + 0x100)
-
-#define ETHOSU_BRIDGE_WAIT_ENABLE (0x2)
-#define ETHOSU_BRIDGE_RESET (0x1)
-
-static void __iomem *bridge_verify_and_remap(struct device *dev,
- struct resource *res)
-{
- void __iomem *base = devm_ioremap_resource(dev, res);
- u32 id;
- u16 magic;
- u8 minor;
- u8 major;
-
- if (IS_ERR(base))
- return base;
-
- id = readl(ETHOSU_BRIDGE_ID(base));
- magic = id & 0x0000ffff;
- minor = (id & 0x00ff0000) >> 16;
- major = (id & 0xff000000) >> 24;
-
- dev_dbg(dev, "verifying bridge %d.%d", major, minor);
-
- if (magic != 0xBD9E)
- return IOMEM_ERR_PTR(-EINVAL);
-
- return base;
-}
-
-int ethosu_bridge_assert(struct reset_controller_dev *rcdev,
- unsigned long id)
-{
- struct ethosu_reset *ethosu = container_of(rcdev, struct ethosu_reset,
- rst);
-
- /* pull reset */
- dev_dbg(ethosu->dev, "Asserting reset");
-
- /* set wait and reset */
- writel(ETHOSU_BRIDGE_WAIT_ENABLE | ETHOSU_BRIDGE_RESET,
- ETHOSU_BRIDGE_CTRL(ethosu->base));
-
- return 0;
-}
-
-int ethosu_bridge_deassert(struct reset_controller_dev *rcdev,
- unsigned long id)
-{
- struct ethosu_reset *ethosu = container_of(rcdev, struct ethosu_reset,
- rst);
-
- /* release reset */
- dev_dbg(ethosu->dev, "Deasserting reset");
- writel(~ETHOSU_BRIDGE_WAIT_ENABLE & ETHOSU_BRIDGE_RESET,
- ETHOSU_BRIDGE_CTRL(ethosu->base));
-
- return 0;
-}
-
-static struct reset_control_ops ethosu_reset_bridge_ops = {
- .assert = ethosu_bridge_assert,
- .deassert = ethosu_bridge_deassert,
-};
-
-static const struct of_device_id ethosu_reset_match[] = {
- { .compatible = "arm,ethosu-bridge-reset", .data = 0 },
- { /* sentinel */ },
-};
-
-static int ethosu_bridge_reset_probe(struct platform_device *pdev)
-{
- struct device *dev = &pdev->dev;
- struct ethosu_reset *ethosu;
- struct resource *res;
-
- ethosu = devm_kzalloc(&pdev->dev, sizeof(*ethosu), GFP_KERNEL);
- if (!ethosu)
- return -ENOMEM;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-
- ethosu->base = bridge_verify_and_remap(dev, res);
- ethosu->dev = dev;
-
- if (IS_ERR(ethosu->base))
- return PTR_ERR(ethosu->base);
-
- platform_set_drvdata(pdev, ethosu);
-
- ethosu->rst.owner = THIS_MODULE;
- ethosu->rst.nr_resets = 1;
- ethosu->rst.ops = &ethosu_reset_bridge_ops;
- ethosu->rst.of_node = pdev->dev.of_node;
-
- dev_dbg(dev, "registering to reset controller core");
-
- return devm_reset_controller_register(dev, &ethosu->rst);
-}
-
-static int ethosu_bridge_reset_remove(struct platform_device *pdev)
-{
- return 0;
-}
-
-static struct platform_driver ethosu_reset_driver = {
- .probe = ethosu_bridge_reset_probe,
- .remove = ethosu_bridge_reset_remove,
- .driver = {
- .name = "ethosu-bridge-reset",
- .of_match_table = of_match_ptr(ethosu_reset_match),
- },
-};
-
-module_platform_driver(ethosu_reset_driver);
-
-MODULE_LICENSE("GPL v2");
-MODULE_AUTHOR("Arm Ltd");
-MODULE_DESCRIPTION("Arm Ethos-U NPU Bridge Reset Driver");
-MODULE_VERSION(ETHOSU_BRIDGE_RESET_DRIVER_VERSION);
diff --git a/remoteproc/remoteproc.dtsi b/remoteproc/remoteproc.dtsi
deleted file mode 100644
index a267912..0000000
--- a/remoteproc/remoteproc.dtsi
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2021 Arm Limited. All rights reserved.
- *
- * This program is free software and is provided to you under the terms of the
- * GNU General Public License version 2 as published by the Free Software
- * Foundation, and any use by you of this program is subject to the terms
- * of such GNU licence.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, you can access it online at
- * http://www.gnu.org/licenses/gpl-2.0.html.
- *
- * SPDX-License-Identifier: GPL-2.0-only
- */
-
-
-/{
- /* Example for using reset driver dts entries for Ethos-U */
- ethosu_reset: sgm775_ethosu_bridge@0x500f0000 {
- compatible ="arm,ethosu-bridge-reset";
- #reset-cells = <1>;
- reg = <0x0 0x500f0000 0x0 0x00001000>;
- };
-
- /* configuration for the remote proc driver. */
- ethosu_cpu {
- #address-cells = <2>;
- #size-cells = <2>;
- range;
- compatible ="arm,ethosu-rproc";
- reg = <0x0 0x50100000 0x0 0x00100000>,
- <0x0 0x84000000 0x0 0x00100000>;
- reg-names = "rom", "shared";
- resets = <&ethosu_reset 0>;
- #ethosu,rproc-address-cells = <1>;
- ethosu,rproc-ranges = <0x0 0x50100000 0x00000000 0x0 0x00100000
- 0x0 0x84000000 0x64000000 0x0 0x00100000>;
- ethosu,rproc-names = "rom", "shared";
- };
-};
-