Commit Graph

449 Commits

Author SHA1 Message Date
Christian Helmuth
f44edd407b run: fix import_from_depot for variable args
Apply the approach to join the argument list 'args' to pass a single
list argument to _collect_from_depot. Actually, this story teaches me to
shy away from {*} because of its special semantics, which are

  {*} makes each item in a list an individual argument of the current
  command (https://wiki.tcl.tk/17158)

This is a direct follow up to "run: let import_from_depot accept list
variables", which broke calling import_from_depot with a number of
individual arguments.

Issue #2619
2017-12-22 09:31:36 +01:00
Martin Stein
75df14f190 run: use XSD files from depots too
Fix #2619
2017-12-21 15:01:55 +01:00
Martin Stein
f01bdb9949 run: let import_from_depot accept list variables
When doing something like this in a run script ...

lappend arg X
lappend arg Y
lappend arg Z
import_from_depot arg

... the internals of import_from_depot do not treat $arg as list but as one
string and interprets it as malformed depot path. We can handle this by
applying {*} to $arg inside the procedure.

Issue #2619
2017-12-21 15:01:54 +01:00
Christian Prochaska
bd36933636 abi_symbols: annotate the size for 'R'-type symbols
Fixes #2622
2017-12-21 15:01:51 +01:00
Norman Feske
2f7217b29f depot: add REBUILD argument to create, build tools
Fixes #2617
2017-12-21 15:01:50 +01:00
Alexander Boettcher
892f51ab1c os: add app to transform kernel/core output to LOG
Issue #2207
2017-12-21 15:01:48 +01:00
Alexander Boettcher
30fd10933a okl4: support run script name containing "core"
Issue #2207
2017-12-21 15:01:46 +01:00
Norman Feske
17bf2564fa depot: improved args check in dependencies tool
This patch lets the dependencies tool give better feedback to the user
whenever an argument lacks the needed version information.
2017-12-21 15:01:45 +01:00
Norman Feske
a52541de18 depot: move versions to subdirectory
This patch changes the depot layout such that each archive is
represented as a directory that contains the versions of the archive as
subdirectories.

Issue #2610
2017-12-21 15:01:45 +01:00
Norman Feske
2d041f0e9c depot: switch from .tgz to .tar.xz
Issue #2610
2017-12-21 15:01:44 +01:00
Martin Stein
fb2398dbf2 run: target-specific config schemata
The run tool now by default checks configurations with target-specific
XML schemata. Each component may define a config schema file in its
target.mk via the CONFIG_XSD variable. When the run tool has checked an
configuration of an init instance, it additionally goes through the
start nodes of the config. For each start node it checks whether there
is an XSD file that matches. If so, the run tool also checks the config
of the start node (if existant). This is done recursively. I.e., also
the child configs of a sub-init of a sub-init of the top-level init
receive a config check.

Issue #2600
2017-12-21 15:01:36 +01:00
Christian Helmuth
18fcbbe1a1 depot: support path names including spaces
Related to #2582
2017-11-30 11:23:09 +01:00
Alexander Boettcher
858f5732ba hw: add mbi2 framebuffer support
Issue #2555
2017-11-30 11:23:09 +01:00
Alexander Boettcher
e1ac124a4d hw: evaluate also ACPI RSDP v1 with MBI2
Issue #2526
2017-11-30 11:23:09 +01:00
Alexander Boettcher
2b6ae514b5 sel4: add mbi2 framebuffer support
Issue #2555
2017-11-30 11:23:09 +01:00
Emery Hemingway
caba2d3021 Enforce use of a custom Nim compiler
Use a custom Nim compiler at '/usr/local/genode-nim' that can be built
with a makefile at 'tool/tool_chain_nim'.

Fix #2545
2017-11-30 11:23:06 +01:00
Alexander Boettcher
9646c17f2e bender: fix free memory calculation for Multiboot2
Fixes #2487
2017-11-30 11:23:04 +01:00
Martin Stein
054b8de67b tool/run/grub2: user-friendly missing message
Ref #2526
2017-11-30 11:23:03 +01:00
Martin Stein
f6dd1f9b9c tool/depot: user-friendly error on missing port
In general, make the message conform to the according message of the
common build system. Adds instruction how to fix the missing/outdated
port.

Fixes #2573
2017-11-30 11:23:03 +01:00
Alexander Boettcher
44adc3c404 tool: use grub2 instead of grub1 for iso boot
Fixes #2526
2017-11-30 11:23:01 +01:00
Alexander Boettcher
9672329772 fb_boot_drv: evaluate fb pitch
Fixes #2555
2017-11-24 09:02:04 +01:00
Christian Helmuth
65b2e63bb9 Ensure stable sorting order in tools
This eliminates certain surprises with port contents and depot hashes.
2017-11-06 13:57:25 +01:00
Stefan Kalkowski
7f5bec5c0d tool/run: link core with debug symbols optionally
If there is no debug/core-<kernel>.o library available, e.g., when
running a scenario in a fresh build directory where core is provided
via a depot package, the build_core_image step of the run tool was
canceled in the past, when trying to access the non-existing library.
This commit changes the semantic of build_core_image to link a core
binary with debug symbols only when the designated library is in place.

This fixup is related to issue #2339
2017-11-06 13:57:22 +01:00
Alexander Boettcher
0ac6f6159e tool: add unscoped_label to xml schema 2017-11-06 13:57:19 +01:00
Alexander Boettcher
1bbe34540f run: permit qemu 2.8.1 with seoul/virtualbox
Issue #1723
2017-10-19 13:46:14 +02:00
Stefan Kalkowski
ca60e24ad9 hw: run core threads in privileged mode
* introduce new syscall (core-only) to create privileged threads
* take the privilege level of the thread into account
  when doing a context switch
* map kernel segment as accessable for privileged code only

Ref #2091
2017-10-19 13:31:17 +02:00
Stefan Kalkowski
42db1e112b hw: introduce kernel/user address space split
* introduces central memory map for core/kernel
* on 32-bit platforms the kernel/core starts at 0x80000000
* on 64-bit platforms the kernel/core starts at 0xffffffc000000000
* mark kernel/core mappings as global ones (tagged TLB)
* move the exception vector to begin of core's binary,
  thereby bootstrap knows from where to map it appropriately
* do not map boot modules into core anymore
* constrain core's virtual heap memory area
* differentiate in between user's and core's main thread's UTCB,
  which now resides inside the kernel segment

Ref #2091
2017-10-19 13:31:17 +02:00
Alexander Boettcher
be753ee863 tool: add genode xml schema to xmllint check
Fixes #2513
2017-10-05 17:40:03 +02:00
Norman Feske
f04ef8ed40 run: align data after last boot module
In the image.elf file, the very last boot module is followed
by arbitrary other core-local data. Since those boot modules are
exported as page-granular dataspace to the outside of core via core's
ROM service, we need to ensure that the last page is padded with zeros.
2017-10-05 17:40:03 +02:00
Norman Feske
ab0b0ac3a0 run: compress image.elf in NOVA boot dir 2017-10-05 17:40:02 +02:00
Emery Hemingway
9bfc29e456 tool/run: Wake On Lan support
Fix #2509
2017-09-07 11:47:15 +02:00
Sebastian Sumpf
7113c17100 run: update RISC-V run script support
* fix build error for bbl upon intial build
* set memory to 128 MB in spike
* support 'forever' timeout

issue #2423
2017-08-30 09:59:59 +02:00
Emery Hemingway
812a0c9eed tool/ports: bare tarball support
Ref #2467
2017-08-30 09:59:57 +02:00
Christian Prochaska
ee352abc56 run: add Xen support
When building Genode on a Linux system running in a Xen Dom0, the 'xen'
run target can run a Genode scenario in a Xen DomU.

Usage: in build/x86_*/etc/build.conf, define:

RUN_OPT = --include boot_dir/$(KERNEL) --include image/iso --include power_on/xen --include log/xen --include power_off/xen

The Xen DomU runs in HVM mode and loads Genode from an ISO image. Serial
log output is printed to the console and graphical output is shown in an
SDL window.

The Xen DomU ist managed using the 'xl' command line tool and it is
possible to add configuration options in the 'xen_args' variable in a run
script. Common options are:

- disabling the graphical output:

  append xen_args { sdl="0" }

- configuring a network device:

  append xen_args { vif=\["model=e1000,mac=02:00:00:00:01:01,bridge=xenbr0"\] }

- configuring USB input devices:

  append xen_args { usbdevice=\["mouse","keyboard"\] }

Note: the 'xl' tool requires super-user permissions and interactive
password input can be troublesome in combination with 'expect' and is not
practical for automatic tests. For this reason, the current implementation
assumes that no password input is needed when running 'sudo xl', which can
be achieved by creating a file '/etc/sudoers.d/xl' with the content
'user ALL=(root) NOPASSWD: /usr/sbin/xl'
(where 'user' is the Linux user name).

Fixes #2504
2017-08-28 16:49:48 +02:00
Alexander Boettcher
4ac0bd514f sel4: add uefi boot support via mbi2
Multiboot2 provides the ACPI RSDP pointer from the GRUB2 bootloader.

Issue #2242
2017-08-28 16:49:47 +02:00
Alexander Boettcher
972031cbbc hw: add UEFI boot support
via grub2 using multiboot 2

Issue #2242
2017-08-28 16:49:44 +02:00
Norman Feske
3e8c4ebde2 run: concatenate 'install_config' args
This patch enables one to supply a list of arguments to
'install_config'. The arguments appear concatenated in the resulting
config file. This is useful for embedding dynamically generated content
into an otherwise static configuration. For example, in the following
config, the 'pkg' attribute of the '<query>' config node is defined by
the return value of the 'query_pkg' function:

  install_config {
  <config>
    ...
    <start name="depot_query">
      ...
      <config>
        <query pkg="genodelabs/pkg/} [query_pkg] {"/>
      </config>
    </start>
  </config>}
2017-08-28 16:49:38 +02:00
Norman Feske
5f4ca67cf9 run: add create_tar_from_depot_binaries function
This function can be used to mirror parts of the depot to be used at
runtime.
2017-08-28 16:49:37 +02:00
Norman Feske
3e95a42fae depot: remove bin/<arch>/<api-version> subdir
Fixes #2459
2017-08-28 16:49:37 +02:00
Martin Stein
abc80b7782 prepare_port sel4: check required python modules
This prevents undescriptive errors when building sel4.

Ref #2490
2017-08-28 16:49:36 +02:00
Alexander Senier
c1a46c29b0 run: use absolute path for symlinks in linux run dir
The relative path results in dangling symlinks if the run script
is located in a subdirectory below run/

Fixes #2478
2017-08-18 10:24:48 +02:00
Josef Söntgen
0dd9c6a018 run: add error checking to power on step 2017-08-17 11:04:24 +02:00
Alexander Boettcher
4cacc58cd2 tool: add bender with fixed multiboot2 end tag 2017-08-17 11:04:23 +02:00
Emery Hemingway
cfa1bec00d run template for block-backed VFS plugins
Repurpose the libc plugin test template libc_filesystem_test.inc into
libc_vfs_filesystem_test.inc.

Ref #2410
2017-08-17 11:04:22 +02:00
Emery Hemingway
f09fc4a5a2 Update FatFS port to version 0.13
- Update FatFS port from 0.07e to 0.13
- Multi-device support
- Basic test at run/fatfs
- Adaption of existing components

Note, ffat is now consistently renamed to fatfs.

Ref #2410
2017-08-17 11:04:22 +02:00
Alexander Boettcher
da5441292a sel4: add Wandboard Quad (iMX6) support
Issue #2451
2017-08-17 11:04:21 +02:00
Alexander Boettcher
66c0c7b6f1 sel4: add x86_64 support
Issue #2451
2017-08-17 11:04:20 +02:00
Alexander Boettcher
92db5d2c4e sel4: limit max relocation memory to 256M
relocation is required, to avoid overlapping phdr in the elf binaries, but
sel4 will fail to boot if bender relocates the images at the end of physical
memory. Limit the physical relocation address to a fixed 256M value, so that
sel4 will work.

Issue #2451
2017-08-17 11:04:19 +02:00
Alexander Boettcher
95329c82e2 sel4: update to 5.2.0
Issue #2451
2017-08-17 11:04:19 +02:00
Norman Feske
7d12d7a78f fs_report.run: replace test with dedicated program
The new version of the test exercises the combination of fs_report with
ram_fs and fs_rom as a more flexible alternative to report_rom.

It covers two corner cases that remained unaddressed by fs_rom and
ram_fs so far: First, the late installation of a ROM-update signal
handler at fs_rom right before the content of the file is modified.
Second, the case where the requested file is not present on the file
system at the creation time of the ROM session. Here, the ram_fs missed
to inform listeners for the compound directory about the later created
file.
2017-08-17 10:59:43 +02:00