Update Muen port

- Adjust Muen RUN_OPTs
- Update documentation
- Checkout required submodule
This commit is contained in:
Adrian-Ken Rueegsegger 2017-04-05 18:29:07 +02:00 committed by Christian Helmuth
parent d1b4fb1dff
commit 923fbc9e86
6 changed files with 35 additions and 17 deletions

View File

@ -44,19 +44,20 @@ are all set to their default values.
Muen systems are built for a specific hardware platform and by default the Muen systems are built for a specific hardware platform and by default the
system is built for the Lenovo T430s. All currently supported platforms have a system is built for the Lenovo T430s. All currently supported platforms have a
corresponding hardware specification which can be found in the Muen project corresponding hardware specification which can be found in the Muen project
directory under 'policy/platform'. Note that the Muen project directory can be directory under 'policy/hardware'. Note that the Muen project directory can be
found at '<genode_dir>/contrib/muen-*/src/kernel/muen'. found at '<genode_dir>/contrib/muen-*/src/kernel/muen'.
To get a list of all currently supported platforms issue the following command: To get a list of all currently supported hardware platforms issue the following
command:
! ls contrib/muen-*/src/kernel/muen/policy/platform/ | grep -v common ! ls contrib/muen-*/src/kernel/muen/policy/hardware/ | grep -v common
Set the '--image-muen-hardware' parameter to point to the hardware Set the '--image-muen-hardware' and '--image-muen-platform' parameters to point
configuration file of your intended hardware platform. Note that the specified to the configuration files of your intended hardware platform. Note that the
paths for both '--image-muen-hardware' and '--image-muen-system' must be either specified paths for both '--image-muen-hardware', '--image-muen-platform' and
relative to the Muen policy directory (e.g. 'platform/lenovo-t430s.xml' or '--image-muen-system' must be either relative to the Muen policy directory
'xml/genode-base_hw_simple.xml') or absolute paths. Also change the (e.g. 'platform/lenovo-t430s.xml' or 'xml/genode-base_hw_simple.xml') or
other parameters to match your environment. absolute paths. Also change the other parameters to match your environment.
If no hardware configuration for your specific hardware is available, refer to If no hardware configuration for your specific hardware is available, refer to
the README of the 'mugenhwcfg' tool the README of the 'mugenhwcfg' tool
@ -124,7 +125,8 @@ As a first step acquire the Muen sources by executing the following commands:
! git clone https://git.codelabs.ch/git/muen.git ! git clone https://git.codelabs.ch/git/muen.git
! cd muen ! cd muen
! git submodule update --init tools/mugenschedcfg ! git submodule update --init tools/mugenschedcfg
! make SYSTEM=xml/genode-base_hw_simple.xml COMPONENTS="libdebuglog libmutime dbgserver sm time" emulate ! git submodule update --init components/libxhcidbg
! make SYSTEM=xml/genode-base_hw_simple.xml COMPONENTS="libdebuglog libmutime libxhcidbg dbgserver sm time" emulate
This will build a Muen SK system and start it using the Bochs emulator. You This will build a Muen SK system and start it using the Bochs emulator. You
should get the following error: should get the following error:

View File

@ -1 +1 @@
dfbf501a757052d1a484e1379673534436dc3a6c 13c70f0751d96600723acdde3200745e93395717

View File

@ -3,7 +3,7 @@ VERSION := git
DOWNLOADS := muen.git DOWNLOADS := muen.git
URL(muen) := https://git.codelabs.ch/git/muen.git URL(muen) := https://git.codelabs.ch/git/muen.git
REV(muen) := 8592db3f6682387d4384120a0b13c347a84587e5 REV(muen) := 5d3b56c261804f318fb5c91a93799315c740f1a2
DIR(muen) := src/kernel/muen DIR(muen) := src/kernel/muen
$(call check_tool,git) $(call check_tool,git)

View File

@ -8,12 +8,13 @@ MUEN_LOG = $(MUEN_BUILD_DIR)/build.log
MUEN_SYSTEM = $(shell sed -n "/^SYSTEM/s/^.*=\\s*//p" ${MUEN_CONF_FILE}) MUEN_SYSTEM = $(shell sed -n "/^SYSTEM/s/^.*=\\s*//p" ${MUEN_CONF_FILE})
MUEN_HARDWARE = $(shell sed -n "/^HARDWARE/s/^.*=\\s*//p" ${MUEN_CONF_FILE}) MUEN_HARDWARE = $(shell sed -n "/^HARDWARE/s/^.*=\\s*//p" ${MUEN_CONF_FILE})
MUEN_PLATFORM = $(shell sed -n "/^PLATFORM/s/^.*=\\s*//p" ${MUEN_CONF_FILE})
MUEN_COMPONENTS = $(shell sed -n "/^COMPONENTS/s/^.*=\\s*//p" ${MUEN_CONF_FILE}) MUEN_COMPONENTS = $(shell sed -n "/^COMPONENTS/s/^.*=\\s*//p" ${MUEN_CONF_FILE})
GNAT_PATH = $(shell sed -n "/^GNAT_PATH/s/^.*=\\s*//p" ${MUEN_CONF_FILE}) GNAT_PATH = $(shell sed -n "/^GNAT_PATH/s/^.*=\\s*//p" ${MUEN_CONF_FILE})
SPARK_PATH = $(shell sed -n "/^SPARK_PATH/s/^.*=\\s*//p" ${MUEN_CONF_FILE}) SPARK_PATH = $(shell sed -n "/^SPARK_PATH/s/^.*=\\s*//p" ${MUEN_CONF_FILE})
BUILD_ENV = PATH=$(GNAT_PATH)/bin:$(SPARK_PATH)/bin:$$PATH BUILD_ENV = PATH=$(GNAT_PATH)/bin:$(SPARK_PATH)/bin:$$PATH
BUILD_OPTS = SYSTEM=$(MUEN_SYSTEM) HARDWARE=$(MUEN_HARDWARE) NO_PROOF=true BUILD_OPTS = SYSTEM=$(MUEN_SYSTEM) HARDWARE=$(MUEN_HARDWARE) PLATFORM=$(MUEN_PLATFORM) NO_PROOF=true
ifneq ($(filter muen, $(SPECS)),) ifneq ($(filter muen, $(SPECS)),)
$(TARGET): $(MUEN_DST_DIR) $(TARGET): $(MUEN_DST_DIR)
@ -34,6 +35,7 @@ $(MUEN_DST_DIR): download_contrib
download_contrib: $(MUEN_SRC_DIR) download_contrib: $(MUEN_SRC_DIR)
$(MSG_BUILD)Muen contrib $(MSG_BUILD)Muen contrib
$(VERBOSE)cd $(MUEN_SRC_DIR) && git submodule update --init tools/mugenschedcfg > $(MUEN_LOG) 2>&1 $(VERBOSE)cd $(MUEN_SRC_DIR) && git submodule update --init tools/mugenschedcfg > $(MUEN_LOG) 2>&1
$(VERBOSE)cd $(MUEN_SRC_DIR) && git submodule update --init components/libxhcidbg > $(MUEN_LOG) 2>&1
$(VERBOSE)$(BUILD_ENV) $(MAKE) -C $(MUEN_SRC_DIR)/contrib \ $(VERBOSE)$(BUILD_ENV) $(MAKE) -C $(MUEN_SRC_DIR)/contrib \
QUIET=true download >> $(MUEN_LOG) 2>&1 QUIET=true download >> $(MUEN_LOG) 2>&1

View File

@ -11,7 +11,15 @@ RUN_OPT = --include boot_dir/hw --include image/muen
# The specified file must be relative to the Muen policy directory or an # The specified file must be relative to the Muen policy directory or an
# absolute path. # absolute path.
# #
RUN_OPT += --image-muen-hardware platform/lenovo-t430s.xml RUN_OPT += --image-muen-hardware hardware/lenovo-t430s.xml
#
# Muen platform configuration
#
# The specified file must be relative to the Muen policy directory or an
# absolute path.
#
RUN_OPT += --image-muen-platform platform/lenovo-t430s.xml
# #
# Directory, where the GNAT toolchain is installed # Directory, where the GNAT toolchain is installed
@ -36,7 +44,7 @@ RUN_OPT += --image-muen-system xml/genode-base_hw.xml
# #
# Available components are located in the Muen project directory 'components/'. # Available components are located in the Muen project directory 'components/'.
# #
RUN_OPT += --image-muen-components 'libdebuglog libmutime dbgserver sm time' RUN_OPT += --image-muen-components 'libdebuglog libmutime libxhcidbg dbgserver sm time'
# #
# External Muen build # External Muen build

View File

@ -4,7 +4,8 @@
# \param --image-muen-external-build Muen system is built automatically or externally # \param --image-muen-external-build Muen system is built automatically or externally
# \param --image-muen-system Muen system policy # \param --image-muen-system Muen system policy
# \param --image-muen-components Muen system components # \param --image-muen-components Muen system components
# \param --image-muen-hardware Muen hardware platform # \param --image-muen-hardware Muen hardware specification
# \param --image-muen-platform Muen platform specification
# \param --image-muen-gnat-path Path to GNAT toolchain # \param --image-muen-gnat-path Path to GNAT toolchain
# \param --image-muen-spark-path Path to SPARK toolchain # \param --image-muen-spark-path Path to SPARK toolchain
# #
@ -24,6 +25,10 @@ proc muen_hardware { } {
return [get_cmd_arg --image-muen-hardware ""] return [get_cmd_arg --image-muen-hardware ""]
} }
proc muen_platform { } {
return [get_cmd_arg --image-muen-platform ""]
}
proc muen_gnat_path { } { proc muen_gnat_path { } {
return [get_cmd_arg --image-muen-gnat-path "/usr/gnat"] return [get_cmd_arg --image-muen-gnat-path "/usr/gnat"]
} }
@ -58,6 +63,7 @@ proc run_image {elf_img} {
puts $fh "SYSTEM = [muen_system]" puts $fh "SYSTEM = [muen_system]"
puts $fh "COMPONENTS = \"[muen_components]\"" puts $fh "COMPONENTS = \"[muen_components]\""
puts $fh "HARDWARE = [muen_hardware]" puts $fh "HARDWARE = [muen_hardware]"
puts $fh "PLATFORM = [muen_platform]"
close $fh close $fh
# #
@ -76,6 +82,6 @@ proc run_image {elf_img} {
# Package Muen system image # Package Muen system image
# #
exec cp $bin_img "kernel/muen/policy/obj/base_hw" exec cp $bin_img "kernel/muen/policy/obj/base_hw"
exec make -C kernel/muen/pack SYSTEM=[muen_system] HARDWARE=[muen_hardware] exec make -C kernel/muen/pack SYSTEM=[muen_system] HARDWARE=[muen_hardware] PLATFORM=[muen_platform]
exec cp kernel/muen/pack/obj/muen.img "[run_dir]/image.bin" exec cp kernel/muen/pack/obj/muen.img "[run_dir]/image.bin"
} }