From 5e7e6514be925a8bd3694ef2cbb647f3a29dc583 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Wed, 28 Jun 2023 16:18:35 +0200 Subject: [PATCH] Remove i.MX6 platforms from base repositories Fix genodelabs/genode#4941 --- repos/base-hw/board/imx6q_sabrelite/arch | 1 - .../board/imx6q_sabrelite/image_link_address | 1 - repos/base-hw/board/nit6_solox/arch | 1 - .../board/nit6_solox/image_link_address | 1 - repos/base-hw/board/wand_quad/arch | 1 - .../board/wand_quad/image_link_address | 1 - .../arm_v7/bootstrap-hw-imx6q_sabrelite.mk | 8 - .../mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk | 8 - .../mk/spec/arm_v7/bootstrap-hw-wand_quad.mk | 8 - .../mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk | 16 - .../lib/mk/spec/arm_v7/core-hw-nit6_solox.mk | 16 - .../lib/mk/spec/arm_v7/core-hw-wand_quad.mk | 16 - .../src/base-hw-imx6q_sabrelite/content.mk | 1 - .../recipes/src/base-hw-imx6q_sabrelite/hash | 1 - .../src/base-hw-imx6q_sabrelite/used_apis | 2 - .../recipes/src/base-hw-nit6_solox/content.mk | 1 - .../recipes/src/base-hw-nit6_solox/hash | 1 - .../recipes/src/base-hw-nit6_solox/used_apis | 2 - .../bootstrap/board/imx6q_sabrelite/board.h | 222 -------------- .../src/bootstrap/board/nit6_solox/board.h | 282 ------------------ .../src/bootstrap/board/wand_quad/board.h | 258 ---------------- .../src/bootstrap/spec/arm/imx6_platform.cc | 79 ----- .../src/core/board/imx6q_sabrelite/board.h | 42 --- .../base-hw/src/core/board/nit6_solox/board.h | 42 --- .../base-hw/src/core/board/wand_quad/board.h | 43 --- .../hw/spec/arm/imx6q_sabrelite_board.h | 39 --- .../include/hw/spec/arm/nit6_solox_board.h | 39 --- .../src/include/hw/spec/arm/wand_quad_board.h | 39 --- repos/base/include/drivers/defs/imx6.h | 102 ------- .../include/drivers/defs/imx6q_sabrelite.h | 30 -- repos/base/include/drivers/defs/nit6_solox.h | 31 -- repos/base/include/drivers/defs/wand_quad.h | 34 --- repos/base/src/timer/epit/imx6/timer.cc | 13 +- 33 files changed, 8 insertions(+), 1373 deletions(-) delete mode 100644 repos/base-hw/board/imx6q_sabrelite/arch delete mode 100644 repos/base-hw/board/imx6q_sabrelite/image_link_address delete mode 100644 repos/base-hw/board/nit6_solox/arch delete mode 100644 repos/base-hw/board/nit6_solox/image_link_address delete mode 100644 repos/base-hw/board/wand_quad/arch delete mode 100644 repos/base-hw/board/wand_quad/image_link_address delete mode 100644 repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk delete mode 100644 repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk delete mode 100644 repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk delete mode 100644 repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk delete mode 100644 repos/base-hw/lib/mk/spec/arm_v7/core-hw-nit6_solox.mk delete mode 100644 repos/base-hw/lib/mk/spec/arm_v7/core-hw-wand_quad.mk delete mode 100644 repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/content.mk delete mode 100644 repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/hash delete mode 100644 repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/used_apis delete mode 100644 repos/base-hw/recipes/src/base-hw-nit6_solox/content.mk delete mode 100644 repos/base-hw/recipes/src/base-hw-nit6_solox/hash delete mode 100644 repos/base-hw/recipes/src/base-hw-nit6_solox/used_apis delete mode 100644 repos/base-hw/src/bootstrap/board/imx6q_sabrelite/board.h delete mode 100644 repos/base-hw/src/bootstrap/board/nit6_solox/board.h delete mode 100644 repos/base-hw/src/bootstrap/board/wand_quad/board.h delete mode 100644 repos/base-hw/src/bootstrap/spec/arm/imx6_platform.cc delete mode 100644 repos/base-hw/src/core/board/imx6q_sabrelite/board.h delete mode 100644 repos/base-hw/src/core/board/nit6_solox/board.h delete mode 100644 repos/base-hw/src/core/board/wand_quad/board.h delete mode 100644 repos/base-hw/src/include/hw/spec/arm/imx6q_sabrelite_board.h delete mode 100644 repos/base-hw/src/include/hw/spec/arm/nit6_solox_board.h delete mode 100644 repos/base-hw/src/include/hw/spec/arm/wand_quad_board.h delete mode 100644 repos/base/include/drivers/defs/imx6.h delete mode 100644 repos/base/include/drivers/defs/imx6q_sabrelite.h delete mode 100644 repos/base/include/drivers/defs/nit6_solox.h delete mode 100644 repos/base/include/drivers/defs/wand_quad.h diff --git a/repos/base-hw/board/imx6q_sabrelite/arch b/repos/base-hw/board/imx6q_sabrelite/arch deleted file mode 100644 index 16c61114d8..0000000000 --- a/repos/base-hw/board/imx6q_sabrelite/arch +++ /dev/null @@ -1 +0,0 @@ -arm_v7a diff --git a/repos/base-hw/board/imx6q_sabrelite/image_link_address b/repos/base-hw/board/imx6q_sabrelite/image_link_address deleted file mode 100644 index ea4b0394c0..0000000000 --- a/repos/base-hw/board/imx6q_sabrelite/image_link_address +++ /dev/null @@ -1 +0,0 @@ -0x10001000 diff --git a/repos/base-hw/board/nit6_solox/arch b/repos/base-hw/board/nit6_solox/arch deleted file mode 100644 index 16c61114d8..0000000000 --- a/repos/base-hw/board/nit6_solox/arch +++ /dev/null @@ -1 +0,0 @@ -arm_v7a diff --git a/repos/base-hw/board/nit6_solox/image_link_address b/repos/base-hw/board/nit6_solox/image_link_address deleted file mode 100644 index c6a2c50f36..0000000000 --- a/repos/base-hw/board/nit6_solox/image_link_address +++ /dev/null @@ -1 +0,0 @@ -0x88000000 diff --git a/repos/base-hw/board/wand_quad/arch b/repos/base-hw/board/wand_quad/arch deleted file mode 100644 index 16c61114d8..0000000000 --- a/repos/base-hw/board/wand_quad/arch +++ /dev/null @@ -1 +0,0 @@ -arm_v7a diff --git a/repos/base-hw/board/wand_quad/image_link_address b/repos/base-hw/board/wand_quad/image_link_address deleted file mode 100644 index ea4b0394c0..0000000000 --- a/repos/base-hw/board/wand_quad/image_link_address +++ /dev/null @@ -1 +0,0 @@ -0x10001000 diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk deleted file mode 100644 index 8a99962a81..0000000000 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk +++ /dev/null @@ -1,8 +0,0 @@ -REP_INC_DIR += src/bootstrap/board/imx6q_sabrelite - -SRC_CC += bootstrap/spec/arm/cpu.cc -SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc -SRC_CC += bootstrap/spec/arm/gicv2.cc -SRC_CC += bootstrap/spec/arm/imx6_platform.cc - -include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk deleted file mode 100644 index 9d66cb6293..0000000000 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk +++ /dev/null @@ -1,8 +0,0 @@ -REP_INC_DIR += src/bootstrap/board/nit6_solox - -SRC_CC += bootstrap/spec/arm/cpu.cc -SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc -SRC_CC += bootstrap/spec/arm/gicv2.cc -SRC_CC += bootstrap/spec/arm/imx6_platform.cc - -include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk deleted file mode 100644 index bf23fd3e53..0000000000 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk +++ /dev/null @@ -1,8 +0,0 @@ -REP_INC_DIR += src/bootstrap/board/wand_quad - -SRC_CC += bootstrap/spec/arm/cpu.cc -SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc -SRC_CC += bootstrap/spec/arm/gicv2.cc -SRC_CC += bootstrap/spec/arm/imx6_platform.cc - -include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk deleted file mode 100644 index 8f8f1f9581..0000000000 --- a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk +++ /dev/null @@ -1,16 +0,0 @@ -# -# \brief Build config for Genodes core process -# \author Stefan Kalkowski -# \author Josef Söntgen -# \author Martin Stein -# \date 2014-02-25 -# - -# add include paths -REP_INC_DIR += src/core/board/imx6q_sabrelite - -# add C++ sources -SRC_CC += platform_services.cc - -# include less specific configuration -include $(call select_from_repositories,lib/mk/spec/cortex_a9/core-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-nit6_solox.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-nit6_solox.mk deleted file mode 100644 index 34c095755c..0000000000 --- a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-nit6_solox.mk +++ /dev/null @@ -1,16 +0,0 @@ -# -# \brief Build config for Genodes core process -# \author Stefan Kalkowski -# \author Josef Söntgen -# \author Martin Stein -# \date 2014-02-25 -# - -# add include paths -REP_INC_DIR += src/core/board/nit6_solox - -# add C++ sources -SRC_CC += platform_services.cc - -# include less specific configuration -include $(call select_from_repositories,lib/mk/spec/cortex_a9/core-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-wand_quad.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-wand_quad.mk deleted file mode 100644 index 947634bd56..0000000000 --- a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-wand_quad.mk +++ /dev/null @@ -1,16 +0,0 @@ -# -# \brief Build config for Genodes core process -# \author Stefan Kalkowski -# \author Josef Söntgen -# \author Martin Stein -# \date 2014-02-25 -# - -# add include paths -REP_INC_DIR += src/core/board/wand_quad - -# add C++ sources -SRC_CC += platform_services.cc - -# include less specific configuration -include $(call select_from_repositories,lib/mk/spec/cortex_a9/core-hw.inc) diff --git a/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/content.mk b/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/content.mk deleted file mode 100644 index 31319dcaf1..0000000000 --- a/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/content.mk +++ /dev/null @@ -1 +0,0 @@ -include $(GENODE_DIR)/repos/base-hw/recipes/src/base-hw_content.inc diff --git a/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/hash b/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/hash deleted file mode 100644 index 51e7789cd7..0000000000 --- a/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/hash +++ /dev/null @@ -1 +0,0 @@ -2023-06-15 876e53e4d77920fe345b07bc623bf4d8bc9c3343 diff --git a/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/used_apis b/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/used_apis deleted file mode 100644 index ed9b772565..0000000000 --- a/repos/base-hw/recipes/src/base-hw-imx6q_sabrelite/used_apis +++ /dev/null @@ -1,2 +0,0 @@ -base-hw -base diff --git a/repos/base-hw/recipes/src/base-hw-nit6_solox/content.mk b/repos/base-hw/recipes/src/base-hw-nit6_solox/content.mk deleted file mode 100644 index 31319dcaf1..0000000000 --- a/repos/base-hw/recipes/src/base-hw-nit6_solox/content.mk +++ /dev/null @@ -1 +0,0 @@ -include $(GENODE_DIR)/repos/base-hw/recipes/src/base-hw_content.inc diff --git a/repos/base-hw/recipes/src/base-hw-nit6_solox/hash b/repos/base-hw/recipes/src/base-hw-nit6_solox/hash deleted file mode 100644 index cdfe158335..0000000000 --- a/repos/base-hw/recipes/src/base-hw-nit6_solox/hash +++ /dev/null @@ -1 +0,0 @@ -2023-06-15 fe7671e108c407f96c1c8319d93d09b94838c5b0 diff --git a/repos/base-hw/recipes/src/base-hw-nit6_solox/used_apis b/repos/base-hw/recipes/src/base-hw-nit6_solox/used_apis deleted file mode 100644 index ed9b772565..0000000000 --- a/repos/base-hw/recipes/src/base-hw-nit6_solox/used_apis +++ /dev/null @@ -1,2 +0,0 @@ -base-hw -base diff --git a/repos/base-hw/src/bootstrap/board/imx6q_sabrelite/board.h b/repos/base-hw/src/bootstrap/board/imx6q_sabrelite/board.h deleted file mode 100644 index 995b75149a..0000000000 --- a/repos/base-hw/src/bootstrap/board/imx6q_sabrelite/board.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - * \brief i.MX6Quad Sabrelite specific board definitions - * \author Stefan Kalkowski - * \date 2019-01-05 - */ - -/* - * Copyright (C) 2019 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _SRC__BOOTSTRAP__SPEC__IMX6Q_SABRELITE__BOARD_H_ -#define _SRC__BOOTSTRAP__SPEC__IMX6Q_SABRELITE__BOARD_H_ - -#include -#include -#include -#include -#include - -namespace Board { - - using namespace Hw::Imx6q_sabrelite_board; - using Pic = Hw::Gicv2; - struct L2_cache; - - static constexpr bool NON_SECURE = false; - - static volatile unsigned long initial_values[][2] { - // (IOMUX Controller) - { 0x20e0004, 0x48613005 }, - { 0x20e0008, 0x0 }, - { 0x20e000c, 0x1e00040 }, - { 0x20e0020, 0xfffd4000 }, - { 0x20e0030, 0xf004490 }, - { 0x20e0034, 0x593e4a4 }, - { 0x20e004c, 0x3 }, - { 0x20e0050, 0x3 }, - { 0x20e0054, 0x3 }, - { 0x20e015c, 0x0 }, - { 0x20e0160, 0x0 }, - { 0x20e0164, 0x0 }, - { 0x20e0168, 0x0 }, - { 0x20e0170, 0x0 }, - { 0x20e0174, 0x0 }, - { 0x20e0178, 0x0 }, - { 0x20e017c, 0x0 }, - { 0x20e0180, 0x0 }, - { 0x20e0184, 0x0 }, - { 0x20e0188, 0x0 }, - { 0x20e018c, 0x0 }, - { 0x20e0190, 0x0 }, - { 0x20e0194, 0x0 }, - { 0x20e0198, 0x0 }, - { 0x20e019c, 0x0 }, - { 0x20e01a0, 0x0 }, - { 0x20e01a4, 0x0 }, - { 0x20e01a8, 0x0 }, - { 0x20e01ac, 0x0 }, - { 0x20e01b0, 0x0 }, - { 0x20e01b4, 0x0 }, - { 0x20e01b8, 0x0 }, - { 0x20e01bc, 0x0 }, - { 0x20e01c0, 0x0 }, - { 0x20e01c4, 0x0 }, - { 0x20e01c8, 0x0 }, - { 0x20e01cc, 0x0 }, - { 0x20e0208, 0x2 }, - { 0x20e020c, 0x2 }, - { 0x20e0218, 0x2 }, - { 0x20e0220, 0x0 }, - { 0x20e0224, 0x3 }, - { 0x20e0230, 0x11 }, - { 0x20e02b8, 0x0 }, - { 0x20e02f4, 0x0 }, - { 0x20e033c, 0x2 }, - { 0x20e0344, 0x3 }, - { 0x20e0348, 0x2 }, - { 0x20e035c, 0x3 }, - { 0x20e0360, 0x130b0 }, - { 0x20e0364, 0x110b0 }, - { 0x20e0368, 0x130b0 }, - { 0x20e036c, 0x10030 }, - { 0x20e0370, 0x10030 }, - { 0x20e0374, 0x10030 }, - { 0x20e0378, 0x10030 }, - { 0x20e037c, 0x10030 }, - { 0x20e0388, 0x10030 }, - { 0x20e03b0, 0xb1 }, - { 0x20e03bc, 0xb0 }, - { 0x20e03c0, 0xb0 }, - { 0x20e0470, 0x10 }, - { 0x20e0474, 0x10 }, - { 0x20e0478, 0x10 }, - { 0x20e047c, 0x10 }, - { 0x20e0484, 0x10 }, - { 0x20e0488, 0x10 }, - { 0x20e048c, 0x10 }, - { 0x20e0490, 0x10 }, - { 0x20e0494, 0x10 }, - { 0x20e0498, 0x10 }, - { 0x20e049c, 0x10 }, - { 0x20e04a0, 0x10 }, - { 0x20e04a4, 0x10 }, - { 0x20e04a8, 0x10 }, - { 0x20e04ac, 0x10 }, - { 0x20e04b0, 0x10 }, - { 0x20e04b4, 0x10 }, - { 0x20e04b8, 0x10 }, - { 0x20e04bc, 0x10 }, - { 0x20e04c0, 0x10 }, - { 0x20e04c4, 0x10 }, - { 0x20e04c8, 0x10 }, - { 0x20e04cc, 0x10 }, - { 0x20e04d0, 0x10 }, - { 0x20e04d4, 0x10 }, - { 0x20e04d8, 0x10 }, - { 0x20e04dc, 0x10 }, - { 0x20e04e0, 0x10 }, - { 0x20e04e4, 0x100b0 }, - { 0x20e04e8, 0x100b0 }, - { 0x20e0508, 0x100b0 }, - { 0x20e05f0, 0x30b0 }, - { 0x20e05f4, 0x17059 }, - { 0x20e0600, 0xb1 }, - { 0x20e061c, 0x30b0 }, - { 0x20e069c, 0x1f0b0 }, - { 0x20e06a4, 0x10059 }, - { 0x20e06e0, 0x10059 }, - { 0x20e0724, 0x1b0b1 }, - { 0x20e072c, 0x1b0b1 }, - { 0x20e0730, 0x1b0b1 }, - { 0x20e0744, 0x130b0 }, - { 0x20e07c4, 0x1 }, - { 0x20e0944, 0x1 }, - // (Global Power Controller) - { 0x20dc008, 0x70f7f01b }, - { 0x20dc00c, 0xff79b60f }, - { 0x20dc010, 0xfffe0003 }, - { 0x20dc014, 0xfef7f9ff }, - // (Power Management Unit) - { 0x20c8140, 0x4c0013 }, - { 0x20c8150, 0x4010088 }, - { 0x20c8160, 0x8000040b }, - { 0x20c8170, 0xff672f67 }, - // (Clock Controller Module) - { 0x20c4018, 0x10204 }, - { 0x20c402c, 0x7348c1 }, - { 0x20c4030, 0x33e71f92 }, - { 0x20c4034, 0x12088 }, - { 0x20c4038, 0x12090 }, - { 0x20c4054, 0x78 }, - { 0x20c4060, 0x10e0101 }, - { 0x20c4064, 0x2fe62 }, - { 0x20c4068, 0xc03f0f }, - { 0x20c406c, 0x30fc00 }, - { 0x20c4070, 0x3ff0033 }, - { 0x20c4074, 0x3f3300c3 }, - { 0x20c4078, 0xc303 }, - { 0x20c4080, 0xf03 }, - { 0x20c8010, 0x80003040 }, - { 0x20c8070, 0x1006 }, - { 0x20c80a0, 0x1028 }, - { 0x20c80b0, 0x0 }, - { 0x20c80c0, 0xf4240 }, - { 0x20c80e0, 0x80182001 }, - { 0x20c80f0, 0xd3d150cc }, - { 0x20c8100, 0x5018d0db } - }; -} - - -struct Board::L2_cache : Hw::Pl310 -{ - L2_cache(Genode::addr_t mmio) : Hw::Pl310(mmio) - { - Aux::access_t aux = 0; - Aux::Full_line_of_zero::set(aux, true); - Aux::Associativity::set(aux, Aux::Associativity::WAY_16); - Aux::Way_size::set(aux, Aux::Way_size::KB_64); - Aux::Share_override::set(aux, true); - Aux::Replacement_policy::set(aux, Aux::Replacement_policy::PRAND); - Aux::Ns_lockdown::set(aux, true); - Aux::Data_prefetch::set(aux, true); - Aux::Inst_prefetch::set(aux, true); - Aux::Early_bresp::set(aux, true); - write(aux); - - Tag_ram::access_t tag_ram = 0; - Tag_ram::Setup_latency::set(tag_ram, 2); - Tag_ram::Read_latency::set(tag_ram, 3); - Tag_ram::Write_latency::set(tag_ram, 1); - write(tag_ram); - - Data_ram::access_t data_ram = 0; - Data_ram::Setup_latency::set(data_ram, 2); - Data_ram::Read_latency::set(data_ram, 3); - Data_ram::Write_latency::set(data_ram, 1); - write(data_ram); - - Prefetch_ctrl::access_t prefetch = 0; - Prefetch_ctrl::Data_prefetch::set(prefetch, 1); - Prefetch_ctrl::Inst_prefetch::set(prefetch, 1); - write(prefetch | 0xF); - } - - using Hw::Pl310::invalidate; - - void enable() - { - Pl310::mask_interrupts(); - write(1); - } - - void disable() { - write(0); - } -}; - -#endif /* _SRC__BOOTSTRAP__SPEC__IMX6Q_SABRELITE__BOARD_H_ */ diff --git a/repos/base-hw/src/bootstrap/board/nit6_solox/board.h b/repos/base-hw/src/bootstrap/board/nit6_solox/board.h deleted file mode 100644 index b6df2e5c1d..0000000000 --- a/repos/base-hw/src/bootstrap/board/nit6_solox/board.h +++ /dev/null @@ -1,282 +0,0 @@ -/* - * \brief Nit6 SOLOX specific board definitions - * \author Stefan Kalkowski - * \date 2017-10-18 - */ - -/* - * Copyright (C) 2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _SRC__BOOTSTRAP__SPEC__NIT6_SOLOX__BOARD_H_ -#define _SRC__BOOTSTRAP__SPEC__NIT6_SOLOX__BOARD_H_ - -#include -#include -#include -#include -#include - -namespace Board { - - using namespace Hw::Nit6_solox_board; - using Pic = Hw::Gicv2; - struct L2_cache; - - static constexpr bool NON_SECURE = false; - - static volatile unsigned long initial_values[][2] { - // (IOMUX Controller) - { 0x20E006C, 0x0}, - { 0x20E00CC, 0x10}, - { 0x20E00D0, 0x10}, - { 0x20E00D4, 0x10}, - { 0x20E00D8, 0x10}, - { 0x20E00DC, 0x10}, - { 0x20E00E0, 0x10}, - { 0x20E00E4, 0x10}, - { 0x20E00E8, 0x10}, - { 0x20E00EC, 0x10}, - { 0x20E00F0, 0x10}, - { 0x20E00F4, 0x10}, - { 0x20E00F8, 0x10}, - { 0x20E00FC, 0x10}, - { 0x20E0100, 0x10}, - { 0x20E0104, 0x10}, - { 0x20E0108, 0x10}, - { 0x20E010C, 0x10}, - { 0x20E0110, 0x10}, - { 0x20E0114, 0x10}, - { 0x20E0118, 0x10}, - { 0x20E011C, 0x10}, - { 0x20E0120, 0x10}, - { 0x20E0124, 0x10}, - { 0x20E0128, 0x10}, - { 0x20E012C, 0x10}, - { 0x20E0130, 0x10}, - { 0x20E0134, 0x10}, - { 0x20E0138, 0x15}, - { 0x20E013C, 0x10}, - { 0x20E0150, 0x5}, - { 0x20E0154, 0x5}, - { 0x20E0158, 0x5}, - { 0x20E0224, 0x5}, - { 0x20E0268, 0x5}, - { 0x20E026C, 0x5}, - { 0x20E0270, 0x3}, - { 0x20E0274, 0x3}, - { 0x20E035C, 0x1b8b1}, - { 0x20E0360, 0x1b8b1}, - { 0x20E0364, 0x1b8b1}, - { 0x20E0368, 0x1b8b1}, - { 0x20E0380, 0x1b0b0}, - { 0x20E0384, 0x170b1}, - { 0x20E0390, 0x110b0}, - { 0x20E0394, 0x110b0}, - { 0x20E0398, 0x110b0}, - { 0x20E039C, 0x110b0}, - { 0x20E03A0, 0x110b0}, - { 0x20E03A4, 0x110b0}, - { 0x20E03A8, 0x110b0}, - { 0x20E03AC, 0x110b0}, - { 0x20E03B0, 0x110b0}, - { 0x20E03B4, 0x110b0}, - { 0x20E03B8, 0x110b0}, - { 0x20E03BC, 0x110b0}, - { 0x20E03C0, 0x110b0}, - { 0x20E03D4, 0xb0b0}, - { 0x20E03D8, 0xb0b0}, - { 0x20E03DC, 0xb0b0}, - { 0x20E03E0, 0xb0b0}, - { 0x20E03E4, 0xb0b0}, - { 0x20E03E8, 0xb0b0}, - { 0x20E03FC, 0x1b8b1}, - { 0x20E0404, 0xb0b1}, - { 0x20E0408, 0x1b0b0}, - { 0x20E0410, 0x1b8b1}, - { 0x20E0414, 0x1b0b0}, - { 0x20E0418, 0x1b0b0}, - { 0x20E041C, 0x1b0b0}, - { 0x20E0420, 0x1b0b0}, - { 0x20E0424, 0x1b0b0}, - { 0x20E0428, 0x1b0b0}, - { 0x20E042C, 0x1b0b0}, - { 0x20E0430, 0x1b0b0}, - { 0x20E0434, 0x1b0b0}, - { 0x20E0438, 0x1b0b0}, - { 0x20E043C, 0x1b0b0}, - { 0x20E0440, 0x1b0b0}, - { 0x20E0444, 0x1b0b0}, - { 0x20E0448, 0x1b0b0}, - { 0x20E044C, 0x1b0b0}, - { 0x20E0450, 0x1b0b0}, - { 0x20E0454, 0x1b0b0}, - { 0x20E0458, 0x1b0b0}, - { 0x20E045C, 0x1b0b0}, - { 0x20E0460, 0x1b0b0}, - { 0x20E0464, 0x1b0b0}, - { 0x20E0468, 0x1b0b0}, - { 0x20E046C, 0x1b0b0}, - { 0x20E0470, 0x1b0b0}, - { 0x20E0474, 0x1b0b0}, - { 0x20E0478, 0x1b0b0}, - { 0x20E047C, 0x1b0b0}, - { 0x20E0480, 0x1b0b0}, - { 0x20E0484, 0x1b0b0}, - { 0x20E0488, 0xb0b0}, - { 0x20E0490, 0x30b0}, - { 0x20E0498, 0x30b1}, - { 0x20E049C, 0x30b0}, - { 0x20E04A0, 0x30b1}, - { 0x20E04A4, 0xb0b1}, - { 0x20E04AC, 0x30b0}, - { 0x20E04B0, 0x30b0}, - { 0x20E04B4, 0x30b0}, - { 0x20E04E0, 0xb0b0}, - { 0x20E04E8, 0xb0b0}, - { 0x20E04F0, 0xb0b0}, - { 0x20E04F4, 0xb0b0}, - { 0x20E0508, 0x3081}, - { 0x20E050C, 0x3081}, - { 0x20E0510, 0x3081}, - { 0x20E0514, 0x3081}, - { 0x20E0518, 0x3081}, - { 0x20E051C, 0x3081}, - { 0x20E0520, 0x30b1}, - { 0x20E0524, 0x30b1}, - { 0x20E0528, 0x30b1}, - { 0x20E052C, 0x30b1}, - { 0x20E0530, 0x30b1}, - { 0x20E0534, 0x30b1}, - { 0x20E0538, 0x3081}, - { 0x20E053C, 0x3081}, - { 0x20E0540, 0x3081}, - { 0x20E0544, 0x3081}, - { 0x20E0548, 0x3081}, - { 0x20E054C, 0x3081}, - { 0x20E0550, 0x30b1}, - { 0x20E0554, 0x30b1}, - { 0x20E0558, 0x30b1}, - { 0x20E055C, 0x30b1}, - { 0x20E0560, 0x30b1}, - { 0x20E0564, 0x30b1}, - { 0x20E056C, 0x30b0}, - { 0x20E0570, 0x1b0b0}, - { 0x20E0574, 0x1b0b0}, - { 0x20E0578, 0x1b0b0}, - { 0x20E057C, 0x1b0b0}, - { 0x20E0598, 0x10071}, - { 0x20E059C, 0x17071}, - { 0x20E05A0, 0x17071}, - { 0x20E05A4, 0x17071}, - { 0x20E05A8, 0x17071}, - { 0x20E05AC, 0x17071}, - { 0x20E05B0, 0x1b0b0}, - { 0x20E05B4, 0x1b0b0}, - { 0x20E05B8, 0x1b0b1}, - { 0x20E05BC, 0x1b0b1}, - { 0x20E05C0, 0x100f9}, - { 0x20E05C4, 0x170f9}, - { 0x20E05C8, 0x170f9}, - { 0x20E05CC, 0x170f9}, - { 0x20E05D0, 0x170f9}, - { 0x20E05D4, 0x170f9}, - { 0x20E05D8, 0x170f9}, - { 0x20E05DC, 0x170f9}, - { 0x20E05E0, 0x170f9}, - { 0x20E05E4, 0x170f9}, - { 0x20E05E8, 0x17071}, - { 0x20E083C, 0x2}, - // (Global Power Controller} - { 0x20DC000, 0x140000}, - { 0x20DC008, 0x2077fe0b}, - { 0x20DC00C, 0xff7db18f}, - { 0x20DC010, 0xfbfe0003}, - { 0x20DC014, 0xff2ff93f}, - // (Power Management Unit} - { 0x20C8120, 0x11775}, - { 0x20C8140, 0x4c0016}, - { 0x20C8160, 0x8003000a}, - // (Clock Controller Module} - { 0x20C4004, 0x20000}, - { 0x20C4018, 0x269114}, - { 0x20C401C, 0x4510a9c0}, - { 0x20C4020, 0x13212c06}, - { 0x20C4028, 0x0}, - { 0x20C402C, 0x4b600}, - { 0x20C4030, 0x30074792}, - { 0x20C4038, 0x12153}, - { 0x20C4054, 0x78}, - { 0x20C4060, 0x10e008e}, - { 0x20C4064, 0x2fe62}, - { 0x20C4068, 0xf0c03f0f}, - { 0x20C406C, 0x333c0c00}, - { 0x20C4070, 0x3fff003f}, - { 0x20C4074, 0xfff33ff3}, - { 0x20C4078, 0xc0c3fc}, - { 0x20C407C, 0xf030fff}, - { 0x20C4080, 0x3cfc33}, - { 0x20C8000, 0x80002053}, - { 0x20C8010, 0x80003040}, - { 0x20C8020, 0x3840}, - { 0x20C8070, 0x119006}, - { 0x20C80A0, 0x80002025}, - { 0x20C80B0, 0x13a74}, - { 0x20C80C0, 0xf4240}, - { 0x20C80E0, 0x8030200f}, - { 0x20C80F0, 0xd3d1d0cc}, - { 0x20C8100, 0x5258d0db} - }; -} - - -struct Board::L2_cache : Hw::Pl310 -{ - L2_cache(Genode::addr_t mmio) : Hw::Pl310(mmio) - { - Aux::access_t aux = 0; - Aux::Full_line_of_zero::set(aux, true); - Aux::Associativity::set(aux, Aux::Associativity::WAY_16); - Aux::Way_size::set(aux, Aux::Way_size::KB_16); - Aux::Replacement_policy::set(aux, Aux::Replacement_policy::PRAND); - Aux::Ns_lockdown::set(aux, true); - Aux::Data_prefetch::set(aux, true); - Aux::Inst_prefetch::set(aux, true); - Aux::Early_bresp::set(aux, true); - write(aux); - - Tag_ram::access_t tag_ram = 0; - Tag_ram::Setup_latency::set(tag_ram, 2); - Tag_ram::Read_latency::set(tag_ram, 3); - Tag_ram::Write_latency::set(tag_ram, 1); - write(tag_ram); - - Data_ram::access_t data_ram = 0; - Data_ram::Setup_latency::set(data_ram, 2); - Data_ram::Read_latency::set(data_ram, 3); - Data_ram::Write_latency::set(data_ram, 1); - write(data_ram); - - Prefetch_ctrl::access_t prefetch = read(); - Prefetch_ctrl::Data_prefetch::set(prefetch, 1); - Prefetch_ctrl::Inst_prefetch::set(prefetch, 1); - write(prefetch | 0xF); - } - - using Hw::Pl310::invalidate; - - void enable() - { - Pl310::mask_interrupts(); - write(1); - } - - void disable() { - write(0); - } -}; - -#endif /* _SRC__BOOTSTRAP__SPEC__NIT6_SOLOX__BOARD_H_ */ diff --git a/repos/base-hw/src/bootstrap/board/wand_quad/board.h b/repos/base-hw/src/bootstrap/board/wand_quad/board.h deleted file mode 100644 index c52d24e810..0000000000 --- a/repos/base-hw/src/bootstrap/board/wand_quad/board.h +++ /dev/null @@ -1,258 +0,0 @@ -/* - * \brief Pbxa9 specific board definitions - * \author Stefan Kalkowski - * \date 2017-02-20 - */ - -/* - * Copyright (C) 2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _SRC__BOOTSTRAP__SPEC__WAND_QUAD__BOARD_H_ -#define _SRC__BOOTSTRAP__SPEC__WAND_QUAD__BOARD_H_ - -#include -#include -#include -#include -#include - -namespace Board { - - using namespace Hw::Wand_quad_board; - - using Pic = Hw::Gicv2; - - struct L2_cache; - - static constexpr bool NON_SECURE = false; - - static volatile unsigned long initial_values[][2] { - // (IOMUX Controller) - { 0x20e0000, 0x1 }, - { 0x20e0004, 0x48643005 }, - { 0x20e0008, 0x221 }, - { 0x20e000c, 0x1e00040 }, - { 0x20e0034, 0x593e4a4 }, - { 0x20e004c, 0x0 }, - { 0x20e0050, 0x0 }, - { 0x20e0054, 0x0 }, - { 0x20e0090, 0x1 }, - { 0x20e0094, 0x1 }, - { 0x20e0098, 0x1 }, - { 0x20e00a4, 0x16 }, - { 0x20e00a8, 0x4 }, - { 0x20e00ac, 0x2 }, - { 0x20e00b0, 0x2 }, - { 0x20e00b4, 0x2 }, - { 0x20e00b8, 0x2 }, - { 0x20e00c4, 0x11 }, - { 0x20e015c, 0x0 }, - { 0x20e0160, 0x0 }, - { 0x20e0164, 0x0 }, - { 0x20e0168, 0x0 }, - { 0x20e016c, 0x0 }, - { 0x20e0170, 0x0 }, - { 0x20e0174, 0x0 }, - { 0x20e0178, 0x0 }, - { 0x20e017c, 0x0 }, - { 0x20e0180, 0x0 }, - { 0x20e0184, 0x0 }, - { 0x20e0188, 0x0 }, - { 0x20e018c, 0x0 }, - { 0x20e0190, 0x0 }, - { 0x20e0194, 0x0 }, - { 0x20e0198, 0x0 }, - { 0x20e019c, 0x0 }, - { 0x20e01a0, 0x0 }, - { 0x20e01a4, 0x0 }, - { 0x20e01a8, 0x0 }, - { 0x20e01ac, 0x0 }, - { 0x20e01b0, 0x0 }, - { 0x20e01b4, 0x0 }, - { 0x20e01b8, 0x0 }, - { 0x20e01bc, 0x0 }, - { 0x20e01c0, 0x0 }, - { 0x20e01c4, 0x0 }, - { 0x20e01c8, 0x0 }, - { 0x20e01cc, 0x0 }, - { 0x20e01d4, 0x1 }, - { 0x20e01e4, 0x3 }, - { 0x20e0220, 0x0 }, - { 0x20e0224, 0x3 }, - { 0x20e022c, 0x4 }, - { 0x20e023c, 0x16 }, - { 0x20e0248, 0x12 }, - { 0x20e0250, 0x5 }, - { 0x20e0264, 0x5 }, - { 0x20e0268, 0x4 }, - { 0x20e026c, 0x4 }, - { 0x20e0270, 0x4 }, - { 0x20e0274, 0x4 }, - { 0x20e02b8, 0x0 }, - { 0x20e0320, 0x2 }, - { 0x20e0348, 0x0 }, - { 0x20e0354, 0x0 }, - { 0x20e0358, 0x0 }, - { 0x20e035c, 0x0 }, - { 0x20e0360, 0x17059 }, - { 0x20e0364, 0x17059 }, - { 0x20e0368, 0x17059 }, - { 0x20e03a0, 0xf0b0 }, - { 0x20e03a4, 0x100b1 }, - { 0x20e03a8, 0x100b1 }, - { 0x20e03ac, 0x100b1 }, - { 0x20e03b8, 0x1b8b1 }, - { 0x20e03c0, 0x1b0b1 }, - { 0x20e03c4, 0x1b0b1 }, - { 0x20e03c8, 0x1b0b1 }, - { 0x20e03cc, 0x1b0b1 }, - { 0x20e03d8, 0x1b8b1 }, - { 0x20e0470, 0x10 }, - { 0x20e0474, 0x10 }, - { 0x20e0478, 0x10 }, - { 0x20e047c, 0x10 }, - { 0x20e0484, 0x10 }, - { 0x20e0488, 0x10 }, - { 0x20e048c, 0x10 }, - { 0x20e0490, 0x10 }, - { 0x20e0494, 0x10 }, - { 0x20e0498, 0x10 }, - { 0x20e049c, 0x10 }, - { 0x20e04a0, 0x10 }, - { 0x20e04a4, 0x10 }, - { 0x20e04a8, 0x10 }, - { 0x20e04ac, 0x10 }, - { 0x20e04b0, 0x10 }, - { 0x20e04b4, 0x10 }, - { 0x20e04b8, 0x10 }, - { 0x20e04bc, 0x10 }, - { 0x20e04c0, 0x10 }, - { 0x20e04c4, 0x10 }, - { 0x20e04c8, 0x10 }, - { 0x20e04cc, 0x10 }, - { 0x20e04d0, 0x10 }, - { 0x20e04d4, 0x10 }, - { 0x20e04d8, 0x10 }, - { 0x20e04dc, 0x10 }, - { 0x20e04e0, 0x10 }, - { 0x20e05e8, 0xb0 }, - { 0x20e05f0, 0xb0 }, - { 0x20e05f4, 0x17059 }, - { 0x20e05fc, 0xb0 }, - { 0x20e0600, 0xb0b0 }, - { 0x20e060c, 0x1b8b1 }, - { 0x20e0618, 0x1b0a8 }, - { 0x20e0638, 0x130b0 }, - { 0x20e063c, 0x110b0 }, - { 0x20e0640, 0x130b0 }, - { 0x20e0644, 0x130b0 }, - { 0x20e064c, 0x1b0b0 }, - { 0x20e06a4, 0x10059 }, - { 0x20e0704, 0x0 }, - { 0x20e0708, 0x1b0b1 }, - { 0x20e0738, 0x10059 }, - { 0x20e073c, 0x10059 }, - { 0x20e0740, 0x17059 }, - { 0x20e0744, 0x17059 }, - { 0x20e083c, 0x1 }, - { 0x20e0870, 0x0 }, - { 0x20e0874, 0x0 }, - { 0x20e08a8, 0x2 }, - { 0x20e08ac, 0x2 }, - { 0x20e092c, 0x1 }, - { 0x20e0930, 0x1 }, - - // (Global Power Controller) - { 0x20dc008, 0x6a23e613 }, - { 0x20dc00c, 0xff69b64f }, - { 0x20dc010, 0xfffe0003 }, - { 0x20dc014, 0xff30f7ff }, - - // (Power Management Unit) - { 0x20c8120, 0x11775 }, - { 0x20c8140, 0x580016 }, - { 0x20c8160, 0x8000000b }, - { 0x20c8170, 0xc0672f67 }, - - // (Clock Controller Module) - { 0x20c4018, 0x10204 }, - { 0x20c402c, 0x7312c1 }, - { 0x20c4030, 0x32271f92 }, - { 0x20c4034, 0x12680 }, - { 0x20c4038, 0x12090 }, - { 0x20c4054, 0x78 }, - { 0x20c4058, 0x41a0000 }, - { 0x20c4060, 0x10e0101 }, - { 0x20c4064, 0x2fe62 }, - { 0x20c4068, 0xc03f0f }, - { 0x20c406c, 0x30fc00 }, - { 0x20c4070, 0x3ff0033 }, - { 0x20c4074, 0x3ff3303f }, - { 0x20c4078, 0x30c300 }, - { 0x20c407c, 0xf0000f3 }, - { 0x20c4080, 0xc00 }, - { 0x20c8000, 0x80002053 }, - { 0x20c8020, 0x3040 }, - { 0x20c8070, 0x1006 }, - { 0x20c80a0, 0x80002031 }, - { 0x20c80b0, 0x7a120 }, - { 0x20c80c0, 0xf4240 }, - { 0x20c80e0, 0x80002003 }, - { 0x20c80f0, 0x9391508c }, - { 0x20c8100, 0x5058d01b } - }; -} - - -struct Board::L2_cache : Hw::Pl310 -{ - L2_cache(Genode::addr_t mmio) : Hw::Pl310(mmio) - { - Aux::access_t aux = 0; - Aux::Full_line_of_zero::set(aux, true); - Aux::Associativity::set(aux, Aux::Associativity::WAY_16); - Aux::Way_size::set(aux, Aux::Way_size::KB_64); - Aux::Share_override::set(aux, true); - Aux::Replacement_policy::set(aux, Aux::Replacement_policy::PRAND); - Aux::Ns_lockdown::set(aux, true); - Aux::Data_prefetch::set(aux, true); - Aux::Inst_prefetch::set(aux, true); - Aux::Early_bresp::set(aux, true); - write(aux); - - Tag_ram::access_t tag_ram = 0; - Tag_ram::Setup_latency::set(tag_ram, 2); - Tag_ram::Read_latency::set(tag_ram, 3); - Tag_ram::Write_latency::set(tag_ram, 1); - write(tag_ram); - - Data_ram::access_t data_ram = 0; - Data_ram::Setup_latency::set(data_ram, 2); - Data_ram::Read_latency::set(data_ram, 3); - Data_ram::Write_latency::set(data_ram, 1); - write(data_ram); - - Prefetch_ctrl::access_t prefetch = 0; - Prefetch_ctrl::Data_prefetch::set(prefetch, 1); - Prefetch_ctrl::Inst_prefetch::set(prefetch, 1); - write(prefetch | 0xF); - } - - using Hw::Pl310::invalidate; - - void enable() - { - Pl310::mask_interrupts(); - write(1); - } - - void disable() { - write(0); - } -}; - -#endif /* _SRC__BOOTSTRAP__SPEC__WAND_QUAD__BOARD_H_ */ diff --git a/repos/base-hw/src/bootstrap/spec/arm/imx6_platform.cc b/repos/base-hw/src/bootstrap/spec/arm/imx6_platform.cc deleted file mode 100644 index b77e33f5d9..0000000000 --- a/repos/base-hw/src/bootstrap/spec/arm/imx6_platform.cc +++ /dev/null @@ -1,79 +0,0 @@ -/* - * \brief Specific bootstrap implementations - * \author Stefan Kalkowski - * \author Josef Soentgen - * \author Martin Stein - * \date 2014-02-25 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#include -#include - -using namespace Board; - -Bootstrap::Platform::Board::Board() -: - early_ram_regions(Memory_region { RAM_BASE, RAM_SIZE }), - core_mmio(Memory_region { UART_BASE, - UART_SIZE }, - Memory_region { CORTEX_A9_PRIVATE_MEM_BASE, - CORTEX_A9_PRIVATE_MEM_SIZE }, - Memory_region { PL310_MMIO_BASE, - PL310_MMIO_SIZE }) -{ - Aipstz aipstz_1(AIPS_1_MMIO_BASE); - Aipstz aipstz_2(AIPS_2_MMIO_BASE); - - unsigned num_values = sizeof(initial_values) / (2*sizeof(unsigned long)); - for (unsigned i = 0; i < num_values; i++) - *((volatile unsigned long*)initial_values[i][0]) = initial_values[i][1]; -} - - -bool Board::Cpu::errata(Board::Cpu::Errata err) { - return (err == ARM_764369) ? true : false; } - - -void Board::Cpu::wake_up_all_cpus(void * const entry) -{ - struct Src : Genode::Mmio - { - struct Scr : Register<0x0, 32> - { - struct Core_1_reset : Bitfield<14,1> {}; - struct Core_2_reset : Bitfield<15,1> {}; - struct Core_3_reset : Bitfield<16,1> {}; - struct Core_1_enable : Bitfield<22,1> {}; - struct Core_2_enable : Bitfield<23,1> {}; - struct Core_3_enable : Bitfield<24,1> {}; - }; - struct Gpr1 : Register<0x20, 32> {}; /* ep core 0 */ - struct Gpr3 : Register<0x28, 32> {}; /* ep core 1 */ - struct Gpr5 : Register<0x30, 32> {}; /* ep core 2 */ - struct Gpr7 : Register<0x38, 32> {}; /* ep core 3 */ - - Src(void * const entry) : Genode::Mmio(SRC_MMIO_BASE) - { - write((Gpr3::access_t)entry); - write((Gpr5::access_t)entry); - write((Gpr7::access_t)entry); - Scr::access_t v = read(); - Scr::Core_1_enable::set(v,1); - Scr::Core_1_reset::set(v,1); - Scr::Core_2_enable::set(v,1); - Scr::Core_2_reset::set(v,1); - Scr::Core_3_enable::set(v,1); - Scr::Core_3_reset::set(v,1); - write(v); - } - }; - - Src src(entry); -} diff --git a/repos/base-hw/src/core/board/imx6q_sabrelite/board.h b/repos/base-hw/src/core/board/imx6q_sabrelite/board.h deleted file mode 100644 index 1fa42eb3f2..0000000000 --- a/repos/base-hw/src/core/board/imx6q_sabrelite/board.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * \brief Board driver - * \author Stefan Kalkowski - * \date 2019-01-05 - */ - -/* - * Copyright (C) 2019 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__IMX6Q_SABRELITE__BOARD_H_ -#define _CORE__SPEC__IMX6Q_SABRELITE__BOARD_H_ - -/* base-hw internal includes */ -#include -#include - -/* base-hw core includes */ -#include -#include - -namespace Board { - - using namespace Hw::Imx6q_sabrelite_board; - - class Global_interrupt_controller { public: void init() {} }; - class Pic : public Hw::Gicv2 { public: Pic(Global_interrupt_controller &) { } }; - - using L2_cache = Hw::Pl310; - - L2_cache & l2_cache(); - - enum { - CORTEX_A9_GLOBAL_TIMER_CLK = 396000000, /* timer clk runs half the CPU freq */ - CORTEX_A9_GLOBAL_TIMER_DIV = 100, - }; -} - -#endif /* _CORE__SPEC__WAND_QUAD__BOARD_H_ */ diff --git a/repos/base-hw/src/core/board/nit6_solox/board.h b/repos/base-hw/src/core/board/nit6_solox/board.h deleted file mode 100644 index b6ce29d5b9..0000000000 --- a/repos/base-hw/src/core/board/nit6_solox/board.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * \brief Board driver - * \author Stefan Kalkowski - * \date 2017-10-18 - */ - -/* - * Copyright (C) 2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__NIT6_SOLOX__BOARD_H_ -#define _CORE__SPEC__NIT6_SOLOX__BOARD_H_ - -/* base-hw internal includes */ -#include -#include - -/* base-hw core includes */ -#include -#include - -namespace Board { - - using namespace Hw::Nit6_solox_board; - - class Global_interrupt_controller { public: void init() {} }; - class Pic : public Hw::Gicv2 { public: Pic(Global_interrupt_controller &) { } }; - - using L2_cache = Hw::Pl310; - - L2_cache & l2_cache(); - - enum { - CORTEX_A9_GLOBAL_TIMER_CLK = 500000000, /* timer clk runs half the CPU freq */ - CORTEX_A9_GLOBAL_TIMER_DIV = 100, - }; -} - -#endif /* _CORE__SPEC__NIT6_SOLOX__BOARD_H_ */ diff --git a/repos/base-hw/src/core/board/wand_quad/board.h b/repos/base-hw/src/core/board/wand_quad/board.h deleted file mode 100644 index 149e115a20..0000000000 --- a/repos/base-hw/src/core/board/wand_quad/board.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * \brief Board driver - * \author Stefan Kalkowski - * \author Martin Stein - * \date 2014-02-25 - */ - -/* - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _CORE__SPEC__WAND_QUAD__BOARD_H_ -#define _CORE__SPEC__WAND_QUAD__BOARD_H_ - -/* base-hw internal includes */ -#include -#include - -/* base-hw core includes */ -#include -#include - -namespace Board { - - using namespace Hw::Wand_quad_board; - - using L2_cache = Hw::Pl310; - - class Global_interrupt_controller { public: void init() {} }; - class Pic : public Hw::Gicv2 { public: Pic(Global_interrupt_controller &) { } }; - - L2_cache & l2_cache(); - - enum { - CORTEX_A9_GLOBAL_TIMER_CLK = 500000000, /* timer clk runs half the CPU freq */ - CORTEX_A9_GLOBAL_TIMER_DIV = 100, - }; -} - -#endif /* _CORE__SPEC__WAND_QUAD__BOARD_H_ */ diff --git a/repos/base-hw/src/include/hw/spec/arm/imx6q_sabrelite_board.h b/repos/base-hw/src/include/hw/spec/arm/imx6q_sabrelite_board.h deleted file mode 100644 index 8b3e83c203..0000000000 --- a/repos/base-hw/src/include/hw/spec/arm/imx6q_sabrelite_board.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * \brief i.MX6Quad Sabrelite specific board definitions - * \author Stefan Kalkowski - * \date 2019-05-16 - */ - -/* - * Copyright (C) 2019 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _SRC__INCLUDE__HW__SPEC__ARM__IMX6Q_SABRELITE_BOARD_H_ -#define _SRC__INCLUDE__HW__SPEC__ARM__IMX6Q_SABRELITE_BOARD_H_ - -#include -#include -#include -#include -#include - -namespace Hw::Imx6q_sabrelite_board { - - using namespace Imx6q_sabrelite; - - using Cpu_mmio = Hw::Cortex_a9_mmio; - using Serial = Genode::Imx_uart; - - enum { - UART_BASE = UART_2_MMIO_BASE, - UART_SIZE = UART_2_MMIO_SIZE, - UART_CLOCK = 0, /* dummy value, not used */ - }; - - static constexpr Genode::size_t NR_OF_CPUS = 4; -} - -#endif /* _SRC__INCLUDE__HW__SPEC__ARM__IMX6Q_SABRELITE_BOARD_H_ */ diff --git a/repos/base-hw/src/include/hw/spec/arm/nit6_solox_board.h b/repos/base-hw/src/include/hw/spec/arm/nit6_solox_board.h deleted file mode 100644 index f1f9b5ed05..0000000000 --- a/repos/base-hw/src/include/hw/spec/arm/nit6_solox_board.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * \brief Nit6 SOLOX specific board definitions - * \author Stefan Kalkowski - * \date 2019-05-16 - */ - -/* - * Copyright (C) 2019 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _SRC__INCLUDE__HW__SPEC__ARM__NIT6_SOLOX_BOARD_H_ -#define _SRC__INCLUDE__HW__SPEC__ARM__NIT6_SOLOX_BOARD_H_ - -#include -#include -#include -#include -#include - -namespace Hw::Nit6_solox_board { - - using namespace Nit6_solox; - - using Cpu_mmio = Hw::Cortex_a9_mmio; - using Serial = Genode::Imx_uart; - - enum { - UART_BASE = UART_1_MMIO_BASE, - UART_SIZE = UART_1_MMIO_SIZE, - UART_CLOCK = 0, /* dummy value, not used */ - }; - - static constexpr Genode::size_t NR_OF_CPUS = 1; -} - -#endif /* _SRC__INCLUDE__HW__SPEC__ARM__NIT6_SOLOX_BOARD_H_ */ diff --git a/repos/base-hw/src/include/hw/spec/arm/wand_quad_board.h b/repos/base-hw/src/include/hw/spec/arm/wand_quad_board.h deleted file mode 100644 index c3077f5eb5..0000000000 --- a/repos/base-hw/src/include/hw/spec/arm/wand_quad_board.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * \brief Wandboard Quad specific definitions - * \author Stefan Kalkowski - * \date 2019-05-16 - */ - -/* - * Copyright (C) 2019 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _SRC__INCLUDE__HW__SPEC__ARM__WAND_QUAD_BOARD_H_ -#define _SRC__INCLUDE__HW__SPEC__ARM__WAND_QUAD_BOARD_H_ - -#include -#include -#include -#include -#include - -namespace Hw::Wand_quad_board { - - using namespace Wand_quad; - - using Cpu_mmio = Hw::Cortex_a9_mmio; - using Serial = Genode::Imx_uart; - - enum { - UART_BASE = UART_1_MMIO_BASE, - UART_SIZE = UART_1_MMIO_SIZE, - UART_CLOCK = 0, /* dummy value, not used */ - }; - - static constexpr Genode::size_t NR_OF_CPUS = 4; -} - -#endif /* _SRC__INCLUDE__HW__SPEC__ARM__WAND_QUAD_BOARD_H_ */ diff --git a/repos/base/include/drivers/defs/imx6.h b/repos/base/include/drivers/defs/imx6.h deleted file mode 100644 index 3d60934c72..0000000000 --- a/repos/base/include/drivers/defs/imx6.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * \brief MMIO and IRQ definitions common to i.MX6 SoC - * \author Nikolay Golikov - * \author Josef Soentgen - * \author Martin Stein - * \date 2017-06-20 - */ - -/* - * Copyright (C) 2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _INCLUDE__DRIVERS__DEFS__IMX6_H_ -#define _INCLUDE__DRIVERS__DEFS__IMX6_H_ - -namespace Imx6 { - enum { - /* device IO memory */ - MMIO_BASE = 0x00000000, - MMIO_SIZE = 0x10000000, - - UART_1_IRQ = 58, - UART_1_MMIO_BASE = 0x02020000, - UART_1_MMIO_SIZE = 0x00004000, - - UART_2_IRQ = 59, - UART_2_MMIO_BASE = 0x021e8000, - UART_2_MMIO_SIZE = 0x00004000, - - /* timer */ - EPIT_2_IRQ = 89, - EPIT_2_MMIO_BASE = 0x020d4000, - EPIT_2_MMIO_SIZE = 0x00004000, - - /* ARM IP Bus control */ - AIPS_1_MMIO_BASE = 0x0207c000, - AIPS_1_MMIO_SIZE = 0x00004000, - AIPS_2_MMIO_BASE = 0x0217c000, - AIPS_2_MMIO_SIZE = 0x00004000, - - /* CPU */ - CORTEX_A9_PRIVATE_MEM_BASE = 0x00a00000, - CORTEX_A9_PRIVATE_MEM_SIZE = 0x00002000, - - /* L2 cache controller */ - PL310_MMIO_BASE = 0x00a02000, - PL310_MMIO_SIZE = 0x00001000, - - /* System reset controller */ - SRC_MMIO_BASE = 0x20d8000, - - /* SD host controller */ - SDHC_1_IRQ = 54, - SDHC_1_MMIO_BASE = 0x02190000, - SDHC_1_MMIO_SIZE = 0x00004000, - SDHC_2_IRQ = 55, - SDHC_2_MMIO_BASE = 0x02194000, - SDHC_2_MMIO_SIZE = 0x00004000, - SDHC_3_IRQ = 56, - SDHC_3_MMIO_BASE = 0x02198000, - SDHC_3_MMIO_SIZE = 0x00004000, - SDHC_4_IRQ = 57, - SDHC_4_MMIO_BASE = 0x0219c000, - SDHC_4_MMIO_SIZE = 0x00004000, - - /* GPIO */ - GPIO1_MMIO_BASE = 0x0209c000, - GPIO1_MMIO_SIZE = 0x4000, - GPIO2_MMIO_BASE = 0x020a0000, - GPIO2_MMIO_SIZE = 0x4000, - GPIO3_MMIO_BASE = 0x020a4000, - GPIO3_MMIO_SIZE = 0x4000, - GPIO4_MMIO_BASE = 0x020a8000, - GPIO4_MMIO_SIZE = 0x4000, - GPIO5_MMIO_BASE = 0x020ac000, - GPIO5_MMIO_SIZE = 0x4000, - GPIO6_MMIO_BASE = 0x020b0000, - GPIO6_MMIO_SIZE = 0x4000, - GPIO7_MMIO_BASE = 0x020b4000, - GPIO7_MMIO_SIZE = 0x4000, - GPIO1_IRQL = 98, - GPIO1_IRQH = 99, - GPIO2_IRQL = 100, - GPIO2_IRQH = 101, - GPIO3_IRQL = 102, - GPIO3_IRQH = 103, - GPIO4_IRQL = 104, - GPIO4_IRQH = 105, - GPIO5_IRQL = 106, - GPIO5_IRQH = 107, - GPIO6_IRQL = 108, - GPIO6_IRQH = 109, - GPIO7_IRQL = 110, - GPIO7_IRQH = 111, - - }; -}; - -#endif /* _INCLUDE__DRIVERS__DEFS__IMX6_H_ */ diff --git a/repos/base/include/drivers/defs/imx6q_sabrelite.h b/repos/base/include/drivers/defs/imx6q_sabrelite.h deleted file mode 100644 index 9a2f96475d..0000000000 --- a/repos/base/include/drivers/defs/imx6q_sabrelite.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * \brief MMIO and IRQ definitions of the i.MX6Quad Sabrelite - * \author Stefan Kalkowski - * \date 2019-01-05 - */ - -/* - * Copyright (C) 2019 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _INCLUDE__DRIVERS__DEFS__IMX6Q_SABRELITE_H_ -#define _INCLUDE__DRIVERS__DEFS__IMX6Q_SABRELITE_H_ - -/* Genode includes */ -#include - -namespace Imx6q_sabrelite { - - using namespace Imx6; - - enum { - RAM_BASE = 0x10000000, - RAM_SIZE = 0x40000000, - }; -}; - -#endif /* _INCLUDE__DRIVERS__DEFS__IMX6Q_SABRELITE_H_ */ diff --git a/repos/base/include/drivers/defs/nit6_solox.h b/repos/base/include/drivers/defs/nit6_solox.h deleted file mode 100644 index 780123b4c7..0000000000 --- a/repos/base/include/drivers/defs/nit6_solox.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * \brief MMIO and IRQ definitions for Nit6 SOLOX board - * \author Stefan Kalkowski - * \date 2017-10-18 - */ - -/* - * Copyright (C) 2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _INCLUDE__DRIVERS__DEFS__NIT6_SOLOX_H_ -#define _INCLUDE__DRIVERS__DEFS__NIT6_SOLOX_H_ - -/* Genode includes */ -#include - -namespace Nit6_solox { - - using namespace Imx6; - - enum { - /* normal RAM */ - RAM_BASE = 0x80000000, - RAM_SIZE = 0x40000000, - }; -}; - -#endif /* _INCLUDE__DRIVERS__DEFS__NIT6_SOLOX_H_ */ diff --git a/repos/base/include/drivers/defs/wand_quad.h b/repos/base/include/drivers/defs/wand_quad.h deleted file mode 100644 index 76d091f027..0000000000 --- a/repos/base/include/drivers/defs/wand_quad.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * \brief MMIO and IRQ definitions of the Wandboard Quad - * \author Nikolay Golikov - * \author Josef Soentgen - * \author Martin Stein - * \date 2014-02-25 - */ - -/* - * Copyright (C) 2014-2016 Ksys Labs LLC - * Copyright (C) 2014-2017 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _INCLUDE__DRIVERS__DEFS__WAND_QUAD_H_ -#define _INCLUDE__DRIVERS__DEFS__WAND_QUAD_H_ - -/* Genode includes */ -#include - -namespace Wand_quad { - - using namespace Imx6; - - enum { - /* normal RAM */ - RAM_BASE = 0x10000000, - RAM_SIZE = 0x80000000, - }; -}; - -#endif /* _INCLUDE__DRIVERS__DEFS__WAND_QUAD_H_ */ diff --git a/repos/base/src/timer/epit/imx6/timer.cc b/repos/base/src/timer/epit/imx6/timer.cc index 39ff5e5e10..33beefc6c6 100644 --- a/repos/base/src/timer/epit/imx6/timer.cc +++ b/repos/base/src/timer/epit/imx6/timer.cc @@ -14,19 +14,22 @@ * under the terms of the GNU Affero General Public License version 3. */ -/* base include */ -#include - /* local include */ #include +enum { + EPIT_2_IRQ = 89, + EPIT_2_MMIO_BASE = 0x020d4000, + EPIT_2_MMIO_SIZE = 0x00004000 +}; + using namespace Genode; Timer::Time_source::Time_source(Env &env) : - Attached_mmio(env, Imx6::EPIT_2_MMIO_BASE, Imx6::EPIT_2_MMIO_SIZE), + Attached_mmio(env, EPIT_2_MMIO_BASE, EPIT_2_MMIO_SIZE), Signalled_time_source(env), - _timer_irq(env, unsigned(Imx6::EPIT_2_IRQ)) + _timer_irq(env, unsigned(EPIT_2_IRQ)) { _timer_irq.sigh(_signal_handler); while (read()) ;