###############################################################################
+include $(srcdir)/Modules.generic
-SUBSYSTEMS := ABI LIBAMM KERNEL LIBK DRIVERS MINILIBC \
+SUBSYSTEMS := ABI KERNEL LIBK DRIVERS MINILIBC \
CXXLIB VERSION JABI TCBOFFSET CRT0
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
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)
#
#
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
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
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 \
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),)
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), \
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)