]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/Modules.arm
update
[l4.git] / kernel / fiasco / src / Modules.arm
index a441cf36cbe500468e97b7f8f2e7de05fb2ade8c..5ff3c9136cf2a2a470a204a840d7197d4902a18e 100644 (file)
@@ -2,8 +2,9 @@
 
 ###############################################################################
 
+include $(srcdir)/Modules.generic
 
-SUBSYSTEMS :=  ABI LIBAMM KERNEL LIBK DRIVERS MINILIBC \
+SUBSYSTEMS :=  ABI KERNEL LIBK DRIVERS MINILIBC \
                CXXLIB VERSION JABI TCBOFFSET CRT0
 
 
@@ -23,6 +24,7 @@ PREPROCESS_PARTS-$(CONFIG_ARM_926)                  += armv5 926 vcache
 PREPROCESS_PARTS-$(CONFIG_ARM_V6PLUS)               += armv6plus
 PREPROCESS_PARTS-$(CONFIG_ARM_V6)                   += armv6
 PREPROCESS_PARTS-$(CONFIG_ARM_V7)                   += armv7
+PREPROCESS_PARTS-$(CONFIG_ARM_1136)                 += arm1136
 PREPROCESS_PARTS-$(CONFIG_ARM_1176)                 += arm1176
 PREPROCESS_PARTS-$(CONFIG_ARM_MPCORE)               += mpcore
 PREPROCESS_PARTS-$(CONFIG_ARM_CORTEX_A8)            += armca8
@@ -95,18 +97,6 @@ ASSRC_MINILIBC       := setjmp.S
 NOOPT          += $(patsubst %.o, %, $(OBJ_MINILIBC))
 
 
-#
-# LIBAMM subsystem
-#
-LIBAMM         := libamm.a
-VPATH          += lib/amm
-PRIVATE_INCDIR += lib/amm
-CSRC_LIBAMM    := amm_alloc_entry.c amm_allocate.c amm_deallocate.c amm_destroy.c \
-                  amm_dump.c amm_find_addr.c amm_find_gen.c amm_free_entry.c \
-                  amm_init.c amm_init_gen.c amm_iterate.c amm_iterate_gen.c \
-                  amm_join.c amm_modify.c amm_protect.c amm_reserve.c \
-                  amm_select.c amm_split.c
-
 #
 # LIBGZIP subsystem (only for Jdb)
 #
@@ -148,39 +138,13 @@ kip_IMPL  := kip kip-debug kip-arm
 #
 KERNEL                 := fiasco
 KERNEL_EXTRA   := Symbols
-VPATH          += kern/$(CONFIG_XARCH) kern kern/shared
+VPATH          += kern/$(CONFIG_XARCH) kern
 VPATH          += jdb/arm jdb
-PRIVATE_INCDIR         += kern/$(CONFIG_XARCH) kern kern/shared
-
-INTERFACES_KERNEL :=   kmem boot_info pages __main globals config \
-                       main cache kobject_mapdb dbg_page_info \
-                       bitmap kernel_uart pagetable mem_layout \
-                       mapped_alloc kmem_alloc kip_init kmem_space \
-                       queue_item queue cpu_mask rcupdate irq_pin \
-                       mem_unit boot_uart_init kernel_console cpu mem_region \
-                       thread kobject_helper icu_helper \
-                       syscalls paging vmem_alloc kdb_ke terminate \
-                       cpu_lock irq sender startup per_cpu_data \
-                       per_cpu_data_alloc ptab_base ref_obj ref_ptr \
-                       entry_frame irq_chip helping_lock switch_lock \
-                       kmem_slab_simple region kmem_slab slab_cache_anon \
-                       thread_state context mp_lock sched_context fpu \
-                       fpu_state kobject_dbg kobject l4_buf_iter continuation \
-                       mapping mappable mapping_tree \
-                       mapdb map_util mem_space mem_space_sigma0    \
-                       space task thread_lock irq_chip_generic \
-                       receiver timer factory ipc_gate vcpu \
-                       timeout ipc_timeout ipc_sender \
-                       timeslice_timeout spin_lock \
-                       dirq fpu_alloc kernel_thread pic cmdline \
-                       buddy_alloc trap_state warn \
-                       bootstrap virq vkey kern_lib_page \
-                       watchdog perf_cnt jdb_extensions kernel_task \
-                       ram_quota lock irq_controller \
-                       obj_space vlog outer_cache \
-                       utcb_init utcb_support prio_list sys_call_page \
-                       app_cpu_thread ipi scheduler \
-                        clock ready_queue_wfq ready_queue_fp
+PRIVATE_INCDIR         += kern/$(CONFIG_XARCH) kern
+
+INTERFACES_KERNEL +=   __main mem_op pagetable kmem_space boot_uart_init     \
+                       irq_chip_generic bootstrap kern_lib_page              \
+                       jdb_extensions outer_cache utcb_support
 
 PREPROCESS_PARTS       += ulock
 INTERFACES_KERNEL      += u_semaphore
@@ -226,7 +190,7 @@ spin_lock_IMPL              := spin_lock spin_lock-arm
 startup_IMPL           := startup startup-arm
 sys_call_page_IMPL     := sys_call_page sys_call_page-arm
 task_IMPL              := task task-arm
-thread_IMPL            := thread thread-list thread-arm \
+thread_IMPL            := thread thread-arm \
                           thread-jdb thread-ipc \
                           thread-pagefault  thread-log \
                           thread-ulock thread-vcpu
@@ -235,30 +199,30 @@ utcb_support_IMPL       := utcb_support utcb_support-arm
 vmem_alloc_IMPL                := vmem_alloc vmem_alloc-arch
 tb_entry_IMPL          := tb_entry tb_entry-arm
 
-JDB_INTERFACES         := jdb_handler_queue jdb_module jdb_pic            \
+
+ifeq ("$(CONFIG_JDB)","y")
+JDB                    := jdb_compound.o
+SUBSYSTEMS             += JDB
+INTERFACES_JDB         := jdb_handler_queue jdb_module jdb_pic            \
                           jdb jdb_core jdb_prompt_ext jdb_list            \
                            jdb_prompt_module jdb_exit_module jdb_kern_info \
                           jdb_tcb jdb_screen jdb_thread_list jdb_input    \
                           jdb_symbol jdb_lines push_console               \
                           jdb_timeout jdb_dump jdb_ptab                   \
                           jdb_attach_irq jdb_table                        \
-                          jdb_kern_info_kmem_alloc jdb_kern_info_region   \
+                          jdb_kern_info_kmem_alloc                        \
                           jdb_kern_info_kip jdb_mapdb kern_cnt            \
-                          jdb_trace jdb_trace_set jdb_entry_frame         \
+                          jdb_trace_set jdb_entry_frame                   \
                           jdb_kobject jdb_kobject_names                   \
                           jdb_util jdb_space jdb_utcb                     \
                           jdb_trap_state jdb_ipi jdb_rcupdate             \
                           jdb_ipc_gate jdb_obj_space jdb_log jdb_factory  \
                           jdb_semaphore jdb_thread jdb_scheduler jdb_sender_list\
-                          jdb_perf jdb_vm jdb_regex jdb_disasm
-
-JDB_TBUF_IFS           := jdb_tbuf jdb_tbuf_init jdb_tbuf_output          \
-                          jdb_tbuf_show                                   \
-                          tb_entry tb_entry_output
+                          jdb_perf jdb_vm jdb_regex jdb_disasm jdb_bp \
+                          jdb_tbuf_output jdb_tbuf_show tb_entry_output
 
 
-ifeq ("$(CONFIG_JDB)","y")
-INTERFACES_KERNEL      += $(JDB_INTERFACES) $(JDB_TBUF_IFS) $(DBG_INTERFACES)
+INTERFACES_KERNEL      += jdb_tbuf jdb_tbuf_init tb_entry jdb_trace
 jdb_IMPL               := jdb jdb-arm jdb-ansi jdb-thread
 jdb_kern_info_IMPL     := jdb_kern_info jdb_kern_info-arm \
                           jdb_kern_info-bench jdb_kern_info-bench-arm \
@@ -268,6 +232,7 @@ jdb_tcb_IMPL                := jdb_tcb jdb_tcb-arm
 jdb_ptab_IMPL          := jdb_ptab jdb_ptab-ia32-ux-arm jdb_ptab-arm
 jdb_entry_frame_IMPL   := jdb_entry_frame-arm
 jdb_trace_set_IMPL     := jdb_trace_set jdb_trace_set-arm
+jdb_bp                 := jdb_bp
 thread_IMPL            += thread-debug 
 
 ifneq ($(CONFIG_JDB_GZIP),)
@@ -277,13 +242,13 @@ ifneq ($(CONFIG_JDB_GZIP),)
   INTERFACES_KERNEL    += jdb_gzip
  endif
 endif
+
+INTERFACES_JDB         += $(INTERFACES_JDB-y)
 endif
 
 CXXSRC_KERNEL          := kernel_panic.cc libc_backend_lock.cc
-ASSRC_KERNEL           := ivt.S
-ifeq ($(CONFIG_MP),y)
-ASSRC_KERNEL           += tramp-mp.S
-endif
+ASSRC_KERNEL           := ivt.S $(if $(CONFIG_MP),tramp-mp.S)
+CPPFLAGS                += $(if $(CONFIG_MP),-DMPCORE_PHYS_BASE=$(MPCORE_PHYS_BASE))
 
 NOOPT                  += $(filter jdb%,\
                             $(foreach in,$(INTERFACES_KERNEL), \
@@ -367,4 +332,10 @@ ifeq ("$(filter LIBUART, $(SUBSYSTEMS))","LIBUART")
   LIBUART                      := uart/libuart.a
 endif
 
+ifneq ($(CONFIG_MP),)
+ifeq ($(MPCORE_PHYS_BASE),)
+$(error $(MODULES_FILE_BSP) needs to set MPCORE_PHYS_BASE variable)
+endif
+endif
+
 MODULES_FILES = $(MODULES_FILE) $(MODULES_FILE_BSP)