Commit Graph

50 Commits

Author SHA1 Message Date
Gerwin Klein efe3eb8e7a github: use central CI workflows
Use GitHub workflow_call feature to reduce workflow duplication.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-03-17 11:29:01 +11:00
Kent McLeod 4705973e45 arm,cmake: Set compiler expected tls settings
Add the right TLS variable settings for the gnu-elf-abi used by our
compilers.

Signed-off-by: Kent McLeod <kent@kry10.com>
2025-02-28 16:29:36 +11:00
Gerwin Klein fbe1e0b300 github: pin Ubuntu 22.04 for deployment step
Python 3.12 in Ubuntu 24.04 has incompatible packages.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-12-19 17:43:29 +11:00
Gerwin Klein 638f767c7f github: bump actions to node20
GitHub has started issuing warnings for node16 actions.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-02-08 10:37:53 +11:00
Axel Heider 207f5cf8d5 cmake: remove unnecessary details
There is no need to explicitly set KernelARMPlatform, as these values
are used by default anyway.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2023-12-18 17:42:51 +00:00
Axel Heider 6f7ecb51a0 cmake: set KernelSel4Arch only form ARMv7
The build system's sanity checking has been improved, so this
misconfiguration is no longer accepted, but causes a build
failure. Fix the issue and set the proper configuration.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2023-12-18 17:42:51 +00:00
Gerwin Klein 3d52bdc937 github: additional build platforms
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-18 15:12:21 +11:00
Gerwin Klein 03387a913d github: build web server app on pull request
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-16 14:55:26 +11:00
Gerwin Klein af3968d861 github: webserver CI test + deployment action
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-16 14:55:26 +11:00
Gerwin Klein 5d6e068f3c README: spelling, markdown lint, and URL updates
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-15 09:15:40 +11:00
Gerwin Klein bbd538202a cmake: point to Arm VM
The Arm VM has been merged into the camkes-vm repo and is available
under a slightly different path there.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-15 08:29:58 +11:00
Gerwin Klein fe986b615f lighttpd: update pcre-8.43 URL
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-15 08:29:58 +11:00
Gerwin Klein 028faaabc6 run style formatter
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-28 11:00:51 +10:00
Gerwin Klein 5295c0774a Foundation setup and SPDX identifiers
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-28 11:00:51 +10:00
Kent McLeod 5f00925c3c cmake: Foreground long running tasks
Move long running tasks to foreground so that it doesn't appear that the
build has hung.

- Linux downloading takes a while for a git checkout
- The sel4-docsite project can hang while bundler asks for a sudo
  prompt.  There doesn't seem to be a way to dismiss this with a flag.

Signed-off-by: Kent McLeod <kent@kry10.com>
2021-07-07 09:29:53 +10:00
Gerwin Klein 365d69e527 update docs site URL
GitHub should be redirecting, but sometimes it doesn't.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-01 10:36:43 +10:00
Hugo V.C 6a98bdcb2b Update lighttpd.sh
Let's run udhcp in the background detached from the console so the user can work while udhcp tries to get an IP. Tested and works perfectly.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-06-11 08:36:48 +10:00
Hugo V.C 63c93433b7 Update README.md 2021-06-09 09:25:36 +10:00
hugusmaximus 2a574f2276 Update README.md
Added instructions to build and run it on qemu so there's no need to have an Odroid-XU4 board.
2021-06-09 09:25:36 +10:00
Chester Pang 75ee2b5e39
Add support to run tx2 2020-08-27 13:35:19 +10:00
Chester Pang 4fbcd093d6
Add support to run on odroidc2
Changed memcpy and printf in cgi-load-file.c to read/write byte
by byte to avoid memory alignment issue on aarch64
2020-07-17 14:26:31 +10:00
Kent McLeod 04a08d56ba lighttpd: Update git url to GitHub
The old url stopped resolving.
2020-04-22 11:50:32 +10:00
Kent McLeod 4cab1fa757 qemu-arm-virt: Use dtb_irqs in device.camkes
These are PCI device IRQs that can't currently be parsed by the DTB
connector. For now it should be sufficient to get it to allocate them
explicitly as they have been removed from the base VM component
upstream.
2020-04-08 00:10:46 +10:00
Kent McLeod b1e7f3774c Add logging fileserver component
This component is connected to a guest VM and serves files while logging
which files it serves out over a serial.
2020-04-08 00:10:44 +10:00
Kent McLeod a49509a6a7 Cross-vm-connectors: Use necessary kernel module
connection.ko transforms the cross vm connector connections into uio
devices that user programs in linux can access.
2020-04-07 18:17:02 +10:00
Kent McLeod 56109b9927 lighttpd: Enable cgi module
Call cgi-load-file for any files requested via /secure/* urls.
Calling site:3000/secure/test.html will call a cgi-load-file binary with
/test.html passed in via an environment variable
2020-04-07 18:16:58 +10:00
Kent McLeod 008ddd9848 CMakeLists.txt: Include settings.cmake first
settings.cmake must be included before the project command is run. This
is to allow the settings to set settings that the project command may
depend on.
2020-03-11 16:11:34 +11:00
Alison Felizzi 805cf914ae CMake: Set 'VmInitRdFile' in common place
Moved the setting of configuration option 'VmInitRdFile' into
a common place. Both platforms, qemu and exynos, use it.
2020-02-26 11:59:28 +11:00
Alison Felizzi edbe80a1f4 multi_main.camkes: A multi-vm webserver variant
Added a variant camkes application of the webserver. This
variant establishes multiple VM's, each running a webserver. In
addition there exists a VM with ethernet passthrough that in turn
faciliates and multiplexes external network access for the other
VM's. The VM with ethernet access provides a virtual network
interface to the other VM's so that they can access the external
network.
2020-02-26 11:58:32 +11:00
Alison Felizzi 7a41d7a4e2 docsite: Dereference variable in install macro
Updated the macro 'docsite_install_to_overlay' to dereference the
overlay variable. This would otherwise always add the files to an
overlay named 'overlay'.
2020-02-26 11:56:05 +11:00
Alison Felizzi b21f6f33a4 main.camkes: Added cnode and untyped pool size
The default values of cnode size bits and untyped pool have been
removed from the configuration file. Applications using the
configuration macros need to define the attributes themselves.
2020-02-26 11:56:05 +11:00
Alison Felizzi d30bee1d6f main.camkes: Removed definition of virt timer irq
We no longer passthrough this interrupt as its now reserved by the
kernel and passed to user level as a vcpu fault.
2020-02-26 11:56:05 +11:00
Alison Felizzi eeaf6d205e CMake: Disable 'KernelArmVtimerUpdateVOffset'
We disable 'KernelArmVtimerUpdateVOffset' as this has a negative
impact on Linux's ability to manage time.
2020-02-26 11:56:05 +11:00
Alison Felizzi 99209351bf CMake: Enabled 'KernelArmDisableWFIWFETraps'
We enable 'KernelArmDisableWFIWFETraps' as we need to resume a VMs
TCB/VCPU to receive the delivery of virtual timer PPI events. The
VM would otherwise hang as it would not receive any interrupts.
2020-02-26 11:56:05 +11:00
Alison Felizzi 8ad004d31d lighttpd: Disable building lighttpd with zlib
This library is not necessary as we don't compile in the module
that uses zlib (deflate-support for mod_compress). This
additionally simplifies the dependencies required to build
lighttpd.
2020-02-26 11:56:05 +11:00
Alison Felizzi 77524e9740 lighttpd: Patch lighttpd to compile lemon on host
Implemented a patch to the lighttpd CMake build system so that
it compiles the lemon binary with the hosts toolchain. This is
needed to ensure the host machine can execute the lemon
binary when building lighttpd. This would otherwise cause issues
when cross-compiling lighttpd, producing a lemon binary for a
different architecture.
2020-02-26 11:56:05 +11:00
Alison Felizzi 1f2c9a553e lighttpd: Patch lighttpd to use custom pcre lib
Implemented a patch to the lighttpd CMake build system so that
it can support a custom libprce config script. Prior the libpcre
config script would only be sourced from the sysroot that lighttpd
is being built on. This patch allows lighttpd to take an
externally provided pcre config and library that is not installed
in the users sysroot. Additionally updated the external project
to checkout lighttpd on a specific tag (so that the patch can
be reliably applied)
2020-02-26 11:56:05 +11:00
Alison Felizzi 5a0a6be51c lighttpd: Build libpcre as lighttpd dependency
Added a new external project build, libpcre. This is a dependency
used to build lighttpd. This step has been introduced in building
the lighttpd binary due to various difficulties that have been
encountered when installing the armel version of libpcre
(particularly on Debian and Ubuntu systems).
2020-02-26 11:55:59 +11:00
Sylvain Gauthier 974f941087 qemu-arm-virt: add net dev args to qemu simulation
Added extra args to qemu simulate script in order to emulate a net
device and bind it to the host tap0 interface, effectively allowing
connections from the host network.
2020-02-21 16:00:31 +11:00
Sylvain Gauthier 4f7e08dbdf Added support for qemu-arm-virt
Webserver can now run on the qemu 'virt' board.
2020-02-21 16:00:19 +11:00
Kent McLeod 76e371fea2 Disable LIB_USB config option
This option is enabled by default and causes some libraries to get
compilation errors.
2020-02-07 15:59:25 +11:00
Kent McLeod 01f99469dc Update camkes configuration for DTB generation
The DTB given to the guest can now be generated by passed through
devices and supplied linux command line arguments.
2020-02-07 15:58:45 +11:00
Kent McLeod 0d46af0443 Add README.md with docs about this project
This documentation contains information about the purpose of this
application as well as current status, future goals, setup instructions
and how to contribute.
2019-09-24 00:15:28 +10:00
Kent McLeod 3f7ef3a9f1 CMake: Add easy-settings.cmake
This file contains settings that can be configured by a user. Currently
this project doesn't provide more than one configuration.
2019-09-20 21:19:57 +10:00
Kent McLeod b2295a0705 Add docsite to vm
Add docsite to VM. Once the VM boots, the server will be started and
serve the website on port 3000 at an assigned ip address.
2019-09-20 19:52:30 +10:00
Kent McLeod 3b6f57bd04 Add docsite package
Add a CMake module that downloads, builds and packages a
docs.sel4.systems static website. It is intended for being served by the
lighttpd webserver added previously.
2019-09-20 19:51:52 +10:00
Kent McLeod ca1cf8238f add lighttpd to vm
Use the lighttpd module in the odroid-xu4 vm.
2019-09-20 19:51:34 +10:00
Kent McLeod 5440d73da2 Add lighttpd module
This module will build and install a static binary of the lighttpd
webserver into a VM overlay. It is currently configured to serve a
static site on port 3000 out of /run/site in the VM.
2019-09-20 19:50:23 +10:00
Kent McLeod 3992f43c0a Add initial vm project
This project currently builds an odroid-xu4 VM that runs linux and gets
some devices passed through to it.
2019-09-20 19:49:34 +10:00
Kent McLeod 6f212fc4bc Initial commit 2019-09-11 14:40:27 +10:00