Commit Graph

102 Commits

Author SHA1 Message Date
Christian Prochaska
84ee970e9b run: look for platform boot string at beginning of line
When running the same kernel in a VM as on the host system and the
kernel boot message from the VM appears on the log output, the run tool
assumes that the host machine has rebooted unexpectedly. With this
commit, an unexpected reboot is assumed only if the kernel boot message
appears at the beginning of a line. On base-hw, we enforce a line feed
at the beginning of the boot message as the SPIKE emulator log starts
with the first message of the kernel lacking a line feed.

Fixes #2041
2016-08-10 11:07:48 +02:00
Josef Söntgen
783da4ee1d tool: remove WSMAN URL parameters 2016-05-26 15:54:16 +02:00
Christian Helmuth
958bf4d903 run: successful-boot detection string for sel4 2016-03-07 12:34:43 +01:00
Reto Buerki
f1d2d7251d hw_x86_64_muen: Include static ACPI report ROM
Enable the ACPI functionality in the platform_drv on hw_x86_64_muen and
provide a simple generated XML report as ROM session in order to make
the PCI configuration space available.

This is a requirement to implement support for MSI on hw_x86_64_muen.
2016-02-26 11:36:53 +01:00
Sebastian Sumpf
ac70dfd9fe riscv: run tool support for spike
issue #1880
2016-02-26 11:36:51 +01:00
Alexander Boettcher
bc70d67ee7 run: check for mis-configured Intel ME/AMT SOL
and show hint about how to enable it.

Fixes #1876
2016-02-05 10:49:30 +01:00
Adrian-Ken Rueegsegger
316134caf8 run: Add iPXE support to hw 2016-01-08 14:37:57 +01:00
Adrian-Ken Rueegsegger
bffddd7e15 tool: Extend hw boot_dir script to support Muen SK build 2016-01-08 14:37:56 +01:00
Adrian-Ken Rueegsegger
aefacc9310 run: Add image/muen script to support Muen SK build
The script takes the following RUN_OPT parameters:

--image-muen-external-build  Muen system is built automatically or externally
--image-muen-system          Muen system policy
--image-muen-components      Muen system components
--image-muen-hardware        Muen hardware platform
--image-muen-gnat-path       Path to GNAT toolchain
--image-muen-spark-path      Path to SPARK toolchain
2016-01-08 14:37:56 +01:00
Adrian-Ken Rueegsegger
a98b94f80e run: Pass AMT log password via environment variable
This avoids exposing the cleartext AMT password in the log output.
2015-12-21 09:35:23 +01:00
Adrian-Ken Rueegsegger
184bffbce3 run: Add filter support to AMT log
Add --log-amt-filter option which allows to sanitize the AMT log output by
piping it through a filter.
2015-12-21 09:35:23 +01:00
Alexander Boettcher
826c81ac18 hw_x86: discover all physical memory in core
Fixes #1741
2015-11-04 14:09:28 +01:00
Christian Prochaska
b26ac3c4fb run: fix Qemu boot timeout
Fixes #1758
2015-11-03 17:02:19 +01:00
Alexander Boettcher
115a605658 run: try to detect reboots of platform 2015-10-28 15:06:24 +01:00
Alexander Boettcher
6d0936ca98 okl4: increase available physical memory
required by noux_tool_chain_auto
2015-10-28 15:06:23 +01:00
Alexander Boettcher
24e65e2e39 nova: don't unzip images with grub
Causes trouble if a gz image is loaded via grub and later used as initrd for a
Linux VM (e.g. with Seoul VMM)

Discovered during Turmvilla scenario #1552 and issue #1733.
2015-10-09 16:38:47 +02:00
Norman Feske
aaea28ae85 Fix build and execution of test/sel4 2015-10-06 12:18:56 +02:00
Norman Feske
ffd48e3f83 run: strip NOVA kernel 2015-10-06 12:18:51 +02:00
Adrian-Ken Rueegsegger
8eec092851 Add support for ipxe load (nova, foc, fiasco)
This makes use of the iPXE sanboot command [1] which downloads and
boots an ISO image directly via HTTP. Therefore, your RUN_OPT needs
both

  --include image/iso   and
  --include load/ipxe

NOTE: The webserver serving the ISO image must support ranged requests,
      see [2].

[1] - http://ipxe.org/cmd/sanboot
[2] - http://forum.ipxe.org/showthread.php?tid=7295&pid=10482#pid10482
2015-09-30 12:20:40 +02:00
Adrian-Ken Rueegsegger
94afc1a340 run: support loading images via iPXE/HTTP
iPXE is an open source network boot firmware which supports booting from
a web server via HTTP [1].

The following two parameters can be used to specify the iPXE/HTTP setup:

--load-ipxe-base-dir
  This parameter specifies the base directory of the HTTP server from
  which the target machine downloads the files.

--load-ipxe-boot-dir
  The directory relative to iPXE base dir which contains the iPXE
  chainload configuration and all necessary files.

The target machine is expected to request the following iPXE
configuration via HTTP:

http://${HOST_URL}/${ipxe-boot-dir}/boot.cfg

This can be achieved by building iPXE with the following embedded
script:

  #!ipxe
  dhcp
  chain http://${HOST_URL}/${ipxe-boot-dir}/boot.cfg

See also [2] for additional information.

[1] - http://ipxe.org/
[2] - http://ipxe.org/howto/chainloading#breaking_the_loop_with_an_embedded_script

Fixes #1708
2015-09-30 12:20:40 +02:00
Stefan Kalkowski
ed52d5a211 Introduce 'spec' subdirectories to outline aspects
Instead of holding SPEC-variable dependent files and directories inline
within the repository structure, move them into 'spec' subdirectories
at the corresponding levels, e.g.:

  repos/base/include/spec
  repos/base/mk/spec
  repos/base/lib/mk/spec
  repos/base/src/core/spec
  ...

Moreover, this commit removes the 'platform' directories. That term was
used in an overloaded sense. All SPEC-relative 'platform' directories are
now named 'spec'. Other files, like for instance those related to the
kernel/architecture specific startup library, where moved from 'platform'
directories to explicit, more meaningful places like e.g.: 'src/lib/startup'.

Fix #1673
2015-09-16 13:58:50 +02:00
Christian Helmuth
ebd0796fc0 run: plugin for Gembird EnerGenie powerplug
The plugin works just like the netio plugin and uses the following
parameters

  --power-off-energenie-host       network address of device
  --power-off-energenie-password   password for device
  --power-off-energenie-port       target port of device
2015-09-09 15:14:30 +02:00
Christian Helmuth
539e5212ab run: rename powerplug to netio
The run plugin is not generic and works for NETIO4/NETIO230 powerplugs
only. Further, this opens the path for other vendor-specific powerplug
plugins.

Note, the plugin parameter for the addressed powerplug was renamed to

  --power-on-netio-host  resp.
  --power-off-netio-host
2015-09-09 15:14:30 +02:00
Stefan Kalkowski
acc46f70b7 codezero: remove support from Genode (fix #1668) 2015-09-09 15:14:29 +02:00
Johannes Schlatow
40b31876d2 base-hw: Add basic Zynq-7000 support (QEMU)
Ref #1599
2015-09-09 15:14:28 +02:00
Stefan Kalkowski
9f1beaa036 hw_x86_64: use 'muen' SPEC to implement aspect 2015-08-31 09:09:22 +02:00
Reto Buerki
11bfbb3532 run: Use raw binary object for base-hw on Muen 2015-08-27 13:48:25 +02:00
Martin Stein
b60f28bee9 run/load/tftp: detect bad directory
If a user has e.g. /tftpboot/x86 as directory and configures
base_dir=/tftboot and offset_dir=/x86, this leads to bad behavior
as the load module creates a symlink

/tftpboot/x86/<builddir> -> <absolut_builddir>

in this case instead of the desired

/tftpboot/x86 -> <absolut_builddir>

Furthermore, the module works on

/tftpboot/x86/config-00-00-00-00-00-00

and

/tftpboot/x86/<builddir>/config-00-00-00-00-00-00

afterwards, which looks bad too. As there is no warning at all, this can
be hard to debug. The commit adds an appropriate check with error message and
exit -1 on an existing directory.

Fixes #1630
2015-07-21 09:38:10 +02:00
Christian Helmuth
ce43ed4c17 hw: load bender before kernel on grub too 2015-07-21 09:30:11 +02:00
Alexy Gallardo Segura
c14fe7e6c7 foc: Odroid-X2 basic support
Fix #1597
2015-07-21 09:28:25 +02:00
Reinier Millo Sánchez
c60d65150e base-foc: support for Raspberry Pi
Fixes #1596
2015-07-06 12:22:26 +02:00
Alexander Boettcher
e131235521 hw: support booting via tftp on x86
Fixes #1580
2015-07-01 15:04:35 +02:00
Alexander Boettcher
6f6fb69dc9 hw: keep config file in run directory
Issue #1580
2015-07-01 15:04:35 +02:00
Norman Feske
f19f454ae5 sel4: move core to a libaray, add boot_modules.s 2015-05-26 09:39:59 +02:00
Norman Feske
b8c107ceb2 sel4: let run tool support core and non-core tests 2015-05-26 09:39:57 +02:00
Norman Feske
456d81f517 New base-sel4 repository 2015-05-26 09:39:53 +02:00
Reto Buerki
f02c92598b run: Use -m 512 for hw_x86_64 on qemu
The base-hw kernel on x86_64 currently assumes 254 MiB of RAM. The RAM
region is subtracted from the I/O mem allocator and therefore this range
is not available for device I/O.

If qemu is started with -m 128, the region for (emulated) PCI config
space access lies within this region and I/O mem allocation in the
pci_drv will fail. Giving qemu more RAM moves the PCI config space out
of the 254 MiB region, making the run/libc_ffat scenario with acpi work.
2015-05-26 09:39:50 +02:00
Alexander Boettcher
1f4c8ae92d run: support specifying on/off of softreset tool
With it all relays can be geared.

Fixes #1516
2015-05-26 09:39:48 +02:00
Alexander Boettcher
93c1ef0309 run: build nova kernel on every run invocation
Compared to some other kernels checking the nova source and building is way
faster - so we can spend on each run/* invocation the extra time.
2015-05-26 09:39:48 +02:00
Norman Feske
33c2bc8ad0 Fix comment 2015-05-26 09:39:46 +02:00
Christian Helmuth
ae61e520d7 run: fail if boot_dir module was not declared 2015-05-06 10:55:17 +02:00
Martin Stein
de9d69a6d7 hw: re-enable kernel tests with the new run env
The new run env doesn't pass the "core_type" parameter at one point
which is why we have to pass it through a global HW-specific variable.

Ref #1464
2015-04-23 16:51:33 +02:00
Adrian-Ken Rueegsegger
8c9b79fab0 hw: Use properly sized asm type in boot_modules.s
The boot modules assembled by the generated boot_modules.s file is
accessed from core using struct Bm_header. Unfortunately the assembler
.long directive is synonym to .int [1] and thus has the same size as the
C++ int type and *not* long. Use the matching assembly type .quad in
boot_modules.s when generating the file for 64-bit platforms such as
x86_64.

[1] - https://sourceware.org/binutils/docs/as/Long.html
2015-03-27 11:53:16 +01:00
Norman Feske
a974726e26 hw: skeleton for building on x86_64
This patch contains the initial code needed to build and bootstrap the
base-hw kernel on x86 64-bit platforms. It gets stuck earlier
because the binary contains 64-bit instructions, but it is started in
32-bit mode. The initial setup of page tables and switch to long mode is
still missing from the crt0 code.
2015-03-27 11:53:16 +01:00
Norman Feske
cc00af85bf Add hw_x86_64 to create_builddir tool 2015-03-27 11:53:16 +01:00
Josef Söntgen
e6cf426d72 run: always append to output buffer
On each execution the output buffer is overriden when run_genode_until
is executed multiple times. Run scripts, that depend on extracting
information after several execution steps, e.g. noux_net_netcat, will
fail to do so. Therefore, we append the newly captured log output to
the old output buffer.

Issue #1327.
2015-03-27 11:53:15 +01:00
Christian Helmuth
da21a3c338 create_grub2: ext2 default parameters for image
The mkfs.ext2 heuristics select the "small" ext2 usage type, which does
not fit well with GiB-sized pen drives. For example, the block size is
just 1024 bytes compared to 4096 for "default". Therefore, we enforce
the default usage type as this fits our use case of dumping the image to
USB sticks better.
2015-03-13 12:17:26 +01:00
Sebastian Sumpf
e4194b4f44 base-foc: Remove 'modaddr' from bootstrap
Let bender relocate the boot modules. Skip relocation strep in bootstrap (only
the kernel, sigma0, and roottask will be loaded).
2015-02-27 11:48:05 +01:00
Josef Söntgen
0f47ac958b log/serial: handle spurious EOF
While booting up, some devices send garbage over the serial connection.
This can result in an unexpected EOF event within expect(1). A filter
program may be specified with '--log-serial-filter' to circumvent this
problem. Then, the output of the serial program is piped through
the filter, which may sanitize the character stream.

Fixes #1395.
2015-02-17 16:01:37 +01:00
Alexander Boettcher
467eee07a6 run: increase tcl buffer for run_genode_until
and move it close to run_genode_until implementation.
Somehow the "match_max -d" gets ignored if it is to far away and some
our run scripts fails because the buffer contains not all information
(seen for affinity.run on a 8 core machine)
2015-02-17 14:18:16 +01:00