genode/ports/src/vancouver/target.mk
Alexander Boettcher a7235d2411 NOVA: Use Genode interfaces to bootstrap Vancouver
Since no kernel objects can be created anymore outside Genode::core,
the Vancouver port must be adjusted to use solely the Genode interfaces.

The Vcpu_dispatcher creates all portals via the cpu_session interface and
uses the feature to setup a specific receive window during a IPC (the
cap_session::alloc IPC) to place to be received/to be mapped capability
(virtualization exception portal) at the designed indexes.

The actual vCPU thread extends from a normal Genode::Thread and extends it
by specific vCPU requirements, which are a larger exception base window and
the need by Vancouver to place the SM and EC cap at indexes next to each other.

Fixes #316
2012-08-09 11:09:42 +02:00

42 lines
1.1 KiB
Makefile

TARGET = vancouver
CONTRIB_DIR = $(REP_DIR)/contrib/vancouver-0.4
VANCOUVER_DIR = $(CONTRIB_DIR)/vancouver
NOVA_INCLUDE_DIR = $(REP_DIR)/contrib/vancouver-0.4/base/include
REQUIRES = nova x86_32
ifeq ($(wildcard $(VANCOUVER_DIR)),)
REQUIRES += prepare_ports_vancouver
endif
LIBS += cxx env thread server
SRC_CC = main.cc nova_user_env.cc device_model_registry.cc
#
# '82576vfmmio.inc' is apparently missing from the NOVA userland distribution.
# So let's skip building the 82576vf device model for now.
#
FILTER_OUT = model/82576vf.cc
MODEL_SRC_CC += $(notdir $(wildcard $(VANCOUVER_DIR)/model/*.cc))
EXECUTOR_SRC_CC += $(notdir $(wildcard $(VANCOUVER_DIR)/executor/*.cc))
SERVICE_SRC_CC += hostsink.cc
SRC_CC += $(filter-out $(FILTER_OUT),$(addprefix model/,$(MODEL_SRC_CC)))
SRC_CC += $(filter-out $(FILTER_OUT),$(addprefix executor/,$(EXECUTOR_SRC_CC)))
SRC_CC += base/service/hostsink.cc
INC_DIR += $(PRG_DIR)
INC_DIR += $(VANCOUVER_DIR)/model
INC_DIR += $(VANCOUVER_DIR)/executor
INC_DIR += $(VANCOUVER_DIR)/include
INC_DIR += $(NOVA_INCLUDE_DIR)
CC_WARN += -Wno-parentheses
LD_TEXT_ADDR = 0x50000000
vpath %.cc $(VANCOUVER_DIR)
vpath %.cc $(CONTRIB_DIR)