foc: remove obsolete features (ref #2405)

Removes the following Fiasco.OC specific features:
* GDB extensions for Fiasco.OC
* i.MX53 support for Fiasco.OC
* Kernel debugger terminal driver
* Obsolete interface Native_pd
* Obsolete function of interface Native_cpu
This commit is contained in:
Stefan Kalkowski
2017-05-08 13:08:52 +02:00
committed by Christian Helmuth
parent 9e3fc9414f
commit 10e2e223cd
28 changed files with 15 additions and 959 deletions

View File

@@ -1,83 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
#
# Target configuration
#
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
CONFIG_PF_IMX=y
# CONFIG_PF_REALVIEW is not set
# CONFIG_PF_S3C2410 is not set
# CONFIG_PF_TEGRA is not set
# CONFIG_PF_OMAP is not set
# CONFIG_PF_SA1100 is not set
# CONFIG_PF_XSCALE is not set
# CONFIG_PF_EXYNOS is not set
# CONFIG_PF_KIRKWOOD is not set
# CONFIG_PF_INTEGRATOR is not set
# CONFIG_PF_BCM2835 is not set
CONFIG_BSP_NAME="imx"
# CONFIG_PF_IMX_21 is not set
# CONFIG_PF_IMX_35 is not set
# CONFIG_PF_IMX_51 is not set
# CONFIG_PF_IMX_6 is not set
CONFIG_PF_IMX_53=y
CONFIG_PF_IMX_RAM_PHYS_BASE=0x70000000
CONFIG_ABI_VF=y
CONFIG_CAN_ARM_CPU_CORTEX_A8=y
CONFIG_ARM_CORTEX_A8=y
# CONFIG_ARM_ALIGNMENT_CHECK is not set
CONFIG_ARM_EM_STD=y
# CONFIG_ARM_EM_NS is not set
# CONFIG_ARM_EM_TZ is not set
# CONFIG_FPU is not set
# CONFIG_ARM_CPU_ERRATA is not set
#
# Kernel options
#
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
CONFIG_VIRT_OBJ_SPACE=y
#
# Debugging
#
CONFIG_INLINE=y
# CONFIG_NDEBUG is not set
# CONFIG_NO_FRAME_PTR is not set
# CONFIG_STACK_DEPTH is not set
# CONFIG_LIST_ALLOC_SANITY is not set
CONFIG_SERIAL=y
CONFIG_JDB=y
# CONFIG_JDB_LOGGING is not set
# CONFIG_JDB_DISASM is not set
# CONFIG_JDB_GZIP is not set
# CONFIG_VMEM_ALLOC_TEST is not set
# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
#
# Compiling
#
CONFIG_CC="gcc"
CONFIG_CXX="g++"
CONFIG_HOST_CC="gcc"
CONFIG_HOST_CXX="g++"
# CONFIG_MAINTAINER_MODE is not set
CONFIG_LABEL=""
# CONFIG_EXPERIMENTAL is not set
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
CONFIG_ARM_V7=y
CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"

View File

@@ -1,70 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
# CONFIG_BUILD_ARCH_x86 is not set
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
CONFIG_BUILD_ARCH="arm"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV4 is not set
# CONFIG_CPU_ARM_ARMV4T is not set
# CONFIG_CPU_ARM_ARMV5 is not set
# CONFIG_CPU_ARM_ARMV5T is not set
# CONFIG_CPU_ARM_ARMV5TE is not set
# CONFIG_CPU_ARM_ARMV6 is not set
# CONFIG_CPU_ARM_ARMV6T2 is not set
# CONFIG_CPU_ARM_ARMV6ZK is not set
CONFIG_CPU_ARM_ARMV7A=y
# CONFIG_CPU_ARM_ARMV7R is not set
CONFIG_CPU_ARMV6KPLUS=y
CONFIG_CPU_ARMV6PLUS=y
CONFIG_PLATFORM_TYPE_imx53=y
# CONFIG_PLATFORM_TYPE_imx35 is not set
# CONFIG_PLATFORM_TYPE_rv_pbx is not set
# CONFIG_PLATFORM_TYPE_exynos5 is not set
# CONFIG_PLATFORM_TYPE_rv is not set
# CONFIG_PLATFORM_TYPE_kirkwood is not set
# CONFIG_PLATFORM_TYPE_pandaboard is not set
# CONFIG_PLATFORM_TYPE_tegra3 is not set
# CONFIG_PLATFORM_TYPE_tegra2 is not set
# CONFIG_PLATFORM_TYPE_imx6 is not set
# CONFIG_PLATFORM_TYPE_exynos4 is not set
# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
# CONFIG_PLATFORM_TYPE_rpi_b is not set
# CONFIG_PLATFORM_TYPE_rv_vexpress_a15 is not set
# CONFIG_PLATFORM_TYPE_imx51 is not set
# CONFIG_PLATFORM_TYPE_omap3evm is not set
# CONFIG_PLATFORM_TYPE_beagleboard is not set
# CONFIG_PLATFORM_TYPE_imx21 is not set
# CONFIG_PLATFORM_TYPE_rv_vexpress is not set
# CONFIG_PLATFORM_TYPE_rpi_a is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="imx53"
# CONFIG_USE_DROPS_STDDIR is not set
# CONFIG_USE_DICE is not set
CONFIG_DROPS_STDDIR="/path/to/l4re"
CONFIG_DROPS_INSTDIR="/path/to/l4re"
CONFIG_BID_COLORED_PHASES=y
#
# Building
#
CONFIG_YACC="yacc"
CONFIG_LEX="flex"
CONFIG_CTAGS="ctags"
CONFIG_ETAGS="etags"
CONFIG_HAVE_LDSO=y
CONFIG_INT_CPP_NAME_SWITCH=y
CONFIG_INT_LD_NAME_SWITCH=y
# CONFIG_BID_STRIP_PROGS is not set
# CONFIG_BID_GCC_OMIT_FP is not set
# CONFIG_BID_GENERATE_MAPFILE is not set
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""

View File

@@ -26,15 +26,9 @@ struct Genode::Foc_native_cpu_client : Rpc_client<Foc_native_cpu>
explicit Foc_native_cpu_client(Capability<Native_cpu> cap)
: Rpc_client<Foc_native_cpu>(static_cap_cast<Foc_native_cpu>(cap)) { }
void enable_vcpu(Thread_capability cap, addr_t vcpu_state) override {
call<Rpc_enable_vcpu>(cap, vcpu_state); }
Native_capability native_cap(Thread_capability cap) override {
return call<Rpc_native_cap>(cap); }
Native_capability alloc_irq() override {
return call<Rpc_alloc_irq>(); }
Foc_thread_state thread_state(Thread_capability cap) override {
return call<Rpc_thread_state>(cap); }
};

View File

@@ -24,9 +24,7 @@ namespace Genode { struct Foc_native_cpu; }
struct Genode::Foc_native_cpu : Cpu_session::Native_cpu
{
virtual void enable_vcpu(Thread_capability cap, addr_t vcpu_state) = 0;
virtual Native_capability native_cap(Thread_capability) = 0;
virtual Native_capability alloc_irq() = 0;
virtual Foc_thread_state thread_state(Thread_capability) = 0;
@@ -34,12 +32,10 @@ struct Genode::Foc_native_cpu : Cpu_session::Native_cpu
** RPC declaration **
*********************/
GENODE_RPC(Rpc_enable_vcpu, void, enable_vcpu, Thread_capability, addr_t);
GENODE_RPC(Rpc_native_cap, Native_capability, native_cap, Thread_capability);
GENODE_RPC(Rpc_alloc_irq, Native_capability, alloc_irq);
GENODE_RPC(Rpc_thread_state, Foc_thread_state, thread_state, Thread_capability);
GENODE_RPC_INTERFACE(Rpc_enable_vcpu, Rpc_native_cap, Rpc_alloc_irq, Rpc_thread_state);
GENODE_RPC_INTERFACE(Rpc_native_cap, Rpc_thread_state);
};
#endif /* _INCLUDE__FOC_NATIVE_CPU__FOC_NATIVE_CPU_H_ */

View File

@@ -1,32 +0,0 @@
/*
* \brief Client-side Fiasco.OC specific PD session interface
* \author Stefan Kalkowski
* \author Norman Feske
* \date 2011-04-14
*/
/*
* Copyright (C) 2011-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__FOC_NATIVE_PD__CLIENT_H_
#define _INCLUDE__FOC_NATIVE_PD__CLIENT_H_
#include <foc_native_pd/foc_native_pd.h>
#include <base/rpc_client.h>
namespace Genode { struct Foc_native_pd_client; }
struct Genode::Foc_native_pd_client : Rpc_client<Foc_native_pd>
{
explicit Foc_native_pd_client(Capability<Native_pd> cap)
: Rpc_client<Foc_native_pd>(static_cap_cast<Foc_native_pd>(cap)) { }
Native_capability task_cap() { return call<Rpc_task_cap>(); }
};
#endif /* _INCLUDE__FOC_NATIVE_PD__CLIENT_H_ */

View File

@@ -1,33 +0,0 @@
/*
* \brief Fiasco.OC-specific part of the PD session interface
* \author Stefan Kalkowski
* \author Norman Feske
* \date 2011-04-14
*/
/*
* Copyright (C) 2011-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__FOC_NATIVE_PD__FOC_NATIVE_PD_H_
#define _INCLUDE__FOC_NATIVE_PD__FOC_NATIVE_PD_H_
#include <base/capability.h>
#include <base/rpc.h>
#include <pd_session/pd_session.h>
namespace Genode { struct Foc_native_pd; }
struct Genode::Foc_native_pd : Pd_session::Native_pd
{
virtual Native_capability task_cap() = 0;
GENODE_RPC(Rpc_task_cap, Native_capability, task_cap);
GENODE_RPC_INTERFACE(Rpc_task_cap);
};
#endif /* _INCLUDE__FOC_NATIVE_PD__FOC_NATIVE_PD_H_ */

View File

@@ -22,7 +22,6 @@ SRC_CC += stack_area.cc \
pd_session_component.cc \
pd_assign_pci.cc \
pd_upgrade_ram_quota.cc \
native_pd_component.cc \
native_cpu_component.cc \
rpc_cap_factory.cc \
platform.cc \

View File

@@ -1,3 +0,0 @@
KERNEL_CONFIG := $(REP_DIR)/config/imx53.kernel
include $(REP_DIR)/lib/mk/kernel-foc.inc

View File

@@ -1,5 +0,0 @@
L4_CONFIG := $(call select_from_repositories,config/imx53.user)
L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc

View File

@@ -38,9 +38,7 @@ class Genode::Native_cpu_component : public Rpc_object<Foc_native_cpu,
Native_cpu_component(Cpu_session_component &, char const *);
~Native_cpu_component();
void enable_vcpu(Thread_capability, addr_t) override;
Native_capability native_cap(Thread_capability) override;
Native_capability alloc_irq() override;
Foc_thread_state thread_state(Thread_capability) override;
};

View File

@@ -1,45 +0,0 @@
/*
* \brief Kernel-specific part of the PD-session interface
* \author Norman Feske
* \date 2016-01-19
*/
/*
* Copyright (C) 2016-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__INCLUDE__NATIVE_PD_COMPONENT_H_
#define _CORE__INCLUDE__NATIVE_PD_COMPONENT_H_
/* Genode includes */
#include <foc_native_pd/foc_native_pd.h>
/* core-local includes */
#include <rpc_cap_factory.h>
namespace Genode {
class Pd_session_component;
class Native_pd_component;
}
class Genode::Native_pd_component : public Rpc_object<Foc_native_pd>
{
private:
Pd_session_component &_pd_session;
public:
Native_capability task_cap() override;
Native_pd_component(Pd_session_component &pd, char const *args);
~Native_pd_component();
};
#endif /* _CORE__INCLUDE__NATIVE_PD_COMPONENT_H_ */

View File

@@ -25,28 +25,6 @@ namespace Fiasco {
#include <l4/sys/factory.h>
}
static Genode::Avl_tree<Genode::Cpu_session_irqs> _irq_tree;
void Genode::Native_cpu_component::enable_vcpu(Genode::Thread_capability thread_cap,
Genode::addr_t vcpu_state)
{
using namespace Genode;
using namespace Fiasco;
auto lambda = [&] (Cpu_thread_component *thread) {
if (!thread) return;
l4_cap_idx_t tid = thread->platform_thread().thread().local.data()->kcap();
l4_msgtag_t tag = l4_thread_vcpu_control(tid, vcpu_state);
if (l4_msgtag_has_error(tag))
warning("l4_thread_vcpu_control failed");
};
_thread_ep.apply(thread_cap, lambda);
}
Genode::Native_capability
Genode::Native_cpu_component::native_cap(Genode::Thread_capability cap)
@@ -61,36 +39,6 @@ Genode::Native_cpu_component::native_cap(Genode::Thread_capability cap)
}
Genode::Native_capability Genode::Native_cpu_component::alloc_irq()
{
using namespace Fiasco;
using namespace Genode;
/* find irq object container of this cpu-session */
Cpu_session_irqs* node = _irq_tree.first();
if (node)
node = node->find_by_session(&_cpu_session);
/* if not found, we've to create one */
if (!node) {
node = new (&_cpu_session._md_alloc) Cpu_session_irqs(&_cpu_session);
_irq_tree.insert(node);
}
/* construct irq kernel-object */
Cap_index* i = cap_map()->insert(platform_specific()->cap_id_alloc()->alloc());
l4_msgtag_t res = l4_factory_create_irq(L4_BASE_FACTORY_CAP, i->kcap());
if (l4_error(res)) {
warning("Allocation of irq object failed!");
return Genode::Native_capability();
}
/* construct cap and hold a reference in the irq container object */
Genode::Native_capability cap(*i);
return (node->add(cap)) ? cap : Genode::Native_capability();
}
Genode::Foc_thread_state
Genode::Native_cpu_component::thread_state(Genode::Thread_capability cap)
{

View File

@@ -1,40 +0,0 @@
/*
* \brief Kernel-specific part of the PD-session interface
* \author Norman Feske
* \date 2016-01-19
*/
/*
* Copyright (C) 2016-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 <pd_session_component.h>
#include <native_pd_component.h>
using namespace Genode;
Native_capability Native_pd_component::task_cap()
{
return Native_capability(_pd_session._pd.native_task());
}
Native_pd_component::Native_pd_component(Pd_session_component &pd_session,
char const *args)
:
_pd_session(pd_session)
{
_pd_session._ep.manage(this);
}
Native_pd_component::~Native_pd_component()
{
_pd_session._ep.dissolve(this);
}