Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

Unikraft

We are developing Unikraft, a fast, secure and opensource unikernel SDK for extreme specialization.
Collective - Host: opensource - https://opencollective.com/unikraft - Website: https://t.co/W6HHOLeiUN - Code: https://github.com/unikraft/unikraft

plat/common/bootinfo: Add `UEFI` System Tables address in `bootinfo`

Allow quick access to the `UEFI` System Tables through a field in
the `bootinfo` structure.

Sig...

github.com/unikraft/unikraft - 64a2dcf05788a0b6000754ec203405c909659a88 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86: Re-define ACPI structures

Redefine ACPI structures so that they comply with the coding style
and fix Local SAPIC's wrong d...

github.com/unikraft/unikraft - b9f222cda139246549534bc37512234231501e1e authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common/x86/acpi.c: Generalize checksum verification

Since all structures calculate their checksum in the same manner,
use only one general checksum ...

github.com/unikraft/unikraft - 70cb5d7b82186a514f9b2df4f54258b5f8148a55 authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts/mkukimg: Add support for `EFI` Disk images

Begin by taking the setting up of the `EFI System Partition` layout
from `mkukefiiso` into a sep...

github.com/unikraft/unikraft - c02390f17d7e5859c2dcbae99dcd0aa0698aae73 authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts/mkukimg: Add explicit `-o` option for output file

Resolve output file ambiguity by explicitly asking for it through
one of the command-line option...

github.com/unikraft/unikraft - 602552c0f709bec3ff68cc6ca1bad5162efcde35 authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts/mkukimg: Add `Devicetree Blob` option

Support adding a `Devicetree Blob` trough the `-d` option.

Signed-off-by: Sergiu Moga <sergiu.m...

github.com/unikraft/unikraft - d232a089d4fb775daf694c88d37ef8c536648530 authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts/mkgrubimg: Move `GRUB ISO` image making into method

Move the making of `GRUB ISO` images into its own method to make the
script more modular and mak...

github.com/unikraft/unikraft - 393027f8af0a7bc9ddf4079e028e1e3539dbcbb6 authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts: Allow building `UEFI` `ISO`'s

Give the script the ability to build `UEFI` bootable `ISO`'s.
The `FAT32` image contained within...

github.com/unikraft/unikraft - 0380fdcc10a8d4390d63264f923a02260f7bee51 authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts/mkgrubimg: Change command-line option to `-c`

Change command-line option to `-c` to make it more intuitive.

Furthermore, make it so that the ...

github.com/unikraft/unikraft - a8572d2bc6fd26c592e19992ccae068dd58f857a authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/shutdown.c: If on a `UEFI` system, rely on Runtime Services

Preferably, a UEFI system is also an ACPI system and thus these
functionalities should be implem...

github.com/unikraft/unikraft - 170a8a4fb242d908a3cb2c1ad58d36363dfa90ad authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Add UEFI entry stub

Implements the small ARM specific UEFI entry point which will call
the early self relocator, and...

github.com/unikraft/unikraft - 184de7dd4b677619f64b8d7ed1a78ae8558f9acb authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/efi.c: Add support for Devicetree Blob file

This enables the EFI stub to load a Devicetree Blob file from the
same filesystem that the Unikr...

github.com/unikraft/unikraft - 7cfb71160fc46d85bdc369cb13b7948565037db6 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Add architecture specific post-EFI stub

Implement a stub that comes after the architecture generic EFI stub
calls the routine that exits...

github.com/unikraft/unikraft - 5aeaeed359d7853e00b8e8993024a8aa212345aa authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Enable the Unikernel to be built as an UEFI application

If `CONFIG_EFI_STUB` is enabled, add to the build system the ARM UEFI
entry stub and the ARM spe...

github.com/unikraft/unikraft - 46d98734ca577da19459dd353567c8d1a66bec5a authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts: Add `python3` script to patch fake PE header

This script allows patching of the architecture specific fake PE
headers. It only fills in the f...

github.com/unikraft/unikraft - 28e0e371215baaacd984dfec50ae2f966b1c7a63 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Enable the Unikernel to be built as an UEFI application

If `CONFIG_EFI_STUB` is enabled, add to the build system the fake PE
header, the architecture ge...

github.com/unikraft/unikraft - 1f23f4c30608d2179795d12890e6393661ee6184 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Add architecture specific post-EFI stub

Implement a stub that comes after the architecture generic EFI stub
calls the routine that exits...

github.com/unikraft/unikraft - 71c0b36fa885ef0f14f11f6773b2d03827746076 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Add initial UEFI definitions

Define initial subset of UEFI specification structures and
definitions.

Signed-off-by: Sergiu M...

github.com/unikraft/unikraft - 809d09cfa5305a14502a9c06fa32a9acec6d1717 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/efi.c: Add support for initial RAM disk file

This enables the EFI stub to load an initial RAM disk file from the
same filesystem that the Uni...

github.com/unikraft/unikraft - 618a71d9668bc44ac5cc95e2c9001863f9dec070 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/efi.c: Add command-line arguments support

Implement support to pass command-line arguments through Unikraft's
`struct ukplat_bootinfo`.

T...

github.com/unikraft/unikraft - 99e3389f3d6bc745f33b9018cbf6643669c8e4e5 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/efi.h: Add EFI File I/O protocols related definitions

Define the minimum subset of EFI definitions required to be able to
do file I/O in an UEFI envir...

github.com/unikraft/unikraft - 34703310e819a768cda46fab8dc0e7ebd71f0930 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Implement architecture generic EFI stub

Add an architecture generic EFI stub that sets up a
`struct ukplat_bootinfo`'s memory region des...

github.com/unikraft/unikraft - 25bd8e84516f9b2500f541213194107213f0c267 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Expand `KVM_BOOT_PROTO_LXBOOT` configuration entry

Add a description and proper dependencies for the
`KVM_BOOT_PROTO_LXBOOT` configuration entry. S...

github.com/unikraft/unikraft - cfd6cca893c6a1b54b92e3f801180db1cc9a393b authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Expand `KVM_BOOT_PROTO_MULTIBOOT` configuration entry

Add a description and proper dependencies for the
`KVM_BOOT_PROTO_MULTIBOOT` configuration entry...

github.com/unikraft/unikraft - c184b343cbb7d5986ba2690a56e2b2690a42e408 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Add `EFI_STUB` configuration entry

Add a configuration option to build the Unikernel as a valid,
loadable UEFI application. Make it...

github.com/unikraft/unikraft - 0ae49d13ff3f186105038c251831709d40407528 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Add UEFI entry stub

Implements the small x86 specific UEFI entry point which will call
the early self relocator, adj...

github.com/unikraft/unikraft - 1eefc342d29121bd1e8f97ce7f4f62c083ecc26f authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common/efi: Add support for `TCG`'s `Reset Attack Mitigation`

Add `Trusted Computing Group`'s `Reset Attack Mitigation` mechanism.
Whenever a machine shuts do...

github.com/unikraft/unikraft - 26313ec58d27a96c8f6427cf6e90a7b385ff9790 authored over 1 year ago by Sergiu Moga <[email protected]>
build: Print actual build directory name with `properclean`

This commit corrects the output of the `properclean` make target. Instead
of just outputting `RM...

github.com/unikraft/unikraft - 0c6f0837adf88835ce09d910cb188b9c5fedd5a1 authored over 1 year ago by Simon Kuenzer <[email protected]>
support/qemu-guest: Remove SGA bios parameter and warning

Starting with QEMU version 8.0, the `-device sga` parameter is removed from
the command line bec...

github.com/unikraft/unikraft - f56629ab93747efcd815b4e14cefabf8a98bc0b7 authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Adopt cross-compile prefixes for Darwin

This commit adopts the preconfigured cross-compile prefixes for
Darwin (MacOS). It is assumed th...

github.com/unikraft/unikraft - 36e8f67e93247175690a56cdc1c94b71a0232f67 authored over 1 year ago by Simon Kuenzer <[email protected]>
support/qemu-guest: Darwin support

This commit introduces native support for QEMU installations on
Darwin (MacOS). Apple's hypervis...

github.com/unikraft/unikraft - 89cf8276392f83aeaa0f2a4f377f9e20b0a70b88 authored over 1 year ago by Simon Kuenzer <[email protected]>
build/config-submenu.sh: Replace scripts/uk_build_configure.sh

This commit introduces a replacement for `build/config-submenu.sh`. The
main reason for the rewr...

github.com/unikraft/unikraft - 624cfe67907c14f0ef804b1ad28ba51ab04a257a authored over 1 year ago by Simon Kuenzer <[email protected]>
support/qemu-guest: Enable X2APIC for TCG mode

Enables X2APIC when TCG mode is selected. As soon as QEMU is available,
this should enable runni...

github.com/unikraft/unikraft - 13c141dafd8428683a70ae14855a662b10a98aff authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Set `python3` as default

This commit sets `python3` as the default command for `python` scripts. It
is made available wit...

github.com/unikraft/unikraft - b1566a90fb203eb62f96a49ba6ca75348125044a authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Detect host environment

This commit intorduces thwe build variable $(HOSTOSENV) which contains the
host environmenrt (e....

github.com/unikraft/unikraft - 9254951bfac4756ea713bba37ee73db340c1a8ca authored over 1 year ago by Simon Kuenzer <[email protected]>
build/kconfiglib: Update Kconfiglib to v14.1.0 (061e71f)

This commit updates our internal copy of Kconfiglib to the latest version
from upstream: https:/...

github.com/unikraft/unikraft - bdba4942d18873d5a678f5b63697e55be6677a13 authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Use kconfiglib on non-Linux environments (e.g., Darwin)

This commit enables `kconfiglib` for configuration targets on non-Linux
host environments. Only ...

github.com/unikraft/unikraft - e4688beca69492f8601cd998ec84e576911f6a6c authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Robust version checking helpers with `printf`

This commit updates the compiler version checking helpers so that they also
work under environme...

github.com/unikraft/unikraft - ab47fa3a80df34049340fcbfdb97075a2e000344 authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Hint about GNU make with `gmake` on Darwin

Add a hint on Darwin how to install a newer GNU make version if the
detected make version is too...

github.com/unikraft/unikraft - e1c7f73ab7a8d5ab4f9b027f6d46ec51a3915946 authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Create minimal build folder structure earlier

This commit creates the build folder substructure ealier, except that a
target was called that d...

github.com/unikraft/unikraft - 68cb42dc81657b6c2ec9112836fb523c696a8be2 authored over 1 year ago by Simon Kuenzer <[email protected]>
build: Use gsed on Darwin (MacOS)

The build system depends on the GNU version of `sed`. Since this is
typically installed with `gs...

github.com/unikraft/unikraft - 9a2eabacf48b74bcd72781885794725a4193de65 authored over 1 year ago by Simon Kuenzer <[email protected]>
plat/common: Track index in `ukplat_memregion_list_insert_split_phys`

Make use of `ukplat_memregion_list_insert_at_idx` in order to make
insertion faster in `ukplat_m...

github.com/unikraft/unikraft - 9a6582cf0dd231db7e0504a23f4b72a52e00f6f1 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/linuxu: Drop no longer used `liblinuxuplat_opts` structure

Now that we rely on `ukplat_memregion` generic API's, we have no
more need for linuxu configurat...

github.com/unikraft/unikraft - d93289b63db52c0bf8b29414063094a8f9c95c02 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Insert legacy regions in linux boot entry

We use this region to write to the VGA console and Firecracker also
keeps this area clear. This ...

github.com/unikraft/unikraft - 94f4b947752cc36143cd946dcf4fa75dc2d6d588 authored over 1 year ago by Marco Schlumpp <[email protected]>
plat/common/paging.c: Flush TLB only if we are modifying current PT

Flushing the TLB introduces an unnecessary performance penalty if we
are modifying a page table ...

github.com/unikraft/unikraft - c44fd99484c2c3c64d262cf987944f614f0aaa7b authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Make sure we allocate the `SIPI Vector` as reserved

Now that we can dynamically decide the `SIPI Vector`, make sure
we do this allocation when all t...

github.com/unikraft/unikraft - 6ba8ae5db78393913ce673ada111f846988eb592 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Make sure we have the legacy x86 high memory reserved

Since there is a chance that the previous boot phase did not mark
this area as reserved through ...

github.com/unikraft/unikraft - 4b65ef9e42a3fd1a73e1879a6469267c0fb6e58b authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Keep `Multiboot1` memory regions below `1 MiB`

Keep the `e820` enries below `1 MiB` that we were passed through
`Multiboot1` and rely on the un...

github.com/unikraft/unikraft - b46d9871725421a0ae854498d12e7c2e65769fa6 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Drop no longer used `libkvmplat_cfg` structure

Now that we rely on `ukplat_memregion` generic API's, we have no
more need for KVM configuration...

github.com/unikraft/unikraft - 3393594386155f98651072d4b1614e2841e81b1c authored over 1 year ago by Sergiu Moga <[email protected]>
plat: Integrate `ukplat_memregion` API's into `ARM64` builds

Rely on the generic `ukplat_memregion` API's for memory region
management and drop `_libkvmplat_...

github.com/unikraft/unikraft - 439868bd0b8d6bb97a40323e9a9df548e080507a authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Implement method to dynamically assign `SIPI Vector`

Add an inline function that simply allocates a reserved memory region
meant for the `SIPI Vector...

github.com/unikraft/unikraft - ac1292cac9f254fb55351bd9741ae679922d4b0a authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Hardcode a memory region descriptor for unmappings

Add a memory region descriptor to indicate the range we are meant to
unmap when paging is initia...

github.com/unikraft/unikraft - f61e245b4003f73a95b5749ba09a9bac2a33d676 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common/paging.c: Do not ignore `EEXIST` errors while mapping

Commit f0ae44de725f ("plat/kvm/x86: Workaround re-mapping low-mem areas")
introduced this check ...

github.com/unikraft/unikraft - 7bdedf193830908e9943fc6046a26e1d6ff21bf5 authored over 1 year ago by Sergiu Moga <[email protected]>
plat: Generalize memory initialization

Re-define `mem_init` into `ukplat_mem_init` that does the same thing,
but does not assume what r...

github.com/unikraft/unikraft - 9f5f450b2f9d4f032e4fa850b02e0d8b57de314b authored over 1 year ago by Sergiu Moga <[email protected]>
plat: Move paging initialization to a platform common location

Since the `paging_init` function of the x86 KVM subsystem is written
in a generic manner, it can...

github.com/unikraft/unikraft - fd740a8aa02b7c0d4d547b48686e1f3fcf4a8888 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/xen/x86: Add `bpt_unmap_mrd` empty memory region descriptor

In order not to generate undefined references when building and
not to unmap anything, add an em...

github.com/unikraft/unikraft - 90374ad414c6bc309f16663d18e3ead2527ee5d8 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/linuxu: Add empty `bpt_unmap_mrd` memory region descriptors

In order not to generate undefined references when building and
not to unmap anything, add an em...

github.com/unikraft/unikraft - de9989a3c71a770ea7800c047dba4c38c49b14c2 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Hardcode a memory region descriptor for unmappings

Add a memory region descriptor to indicate the range we are meant to
unmap when paging is initia...

github.com/unikraft/unikraft - 2d0b784c7e6b3530c73d3a5fb70e28ffca6e7be8 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Implement insert method for the legacy x86 high memory

Write a short inline function to insert the x86 legacy high memory
area right below the first 1M...

github.com/unikraft/unikraft - e40c372c6e91a360c380aab1efae0a8ebc79b459 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common/paging.c: For `ARM64`, don't map outside unmap region

Since on `ARM64` we map all of the peripherals' I/O space statically,
make sure that we do not m...

github.com/unikraft/unikraft - 9fac716a99bffa47b9ed2a6a1d3751394b8f80d0 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Make the earliest bootstack be part of the image

In order to make it easier for the paging API to not invalidate the
stack, make it part of the i...

github.com/unikraft/unikraft - 280c69559f68ae8329b935f0374acee0ff994902 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Fix `bootmemory_palloc` keeping empty memory region

Whenever a memory region allocation request done through
`bootmemory_palloc` would require a len...

github.com/unikraft/unikraft - 7403eff68ce0dc227ff6ed72427b54ddd23a0b6a authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Introduce `ukplat_memregion_list_insert_at_idx`

Implement the equivalent of `ukplat_memregion_list_insert` but one
that is aware of the index wh...

github.com/unikraft/unikraft - 4e2188dc235fd67fc1af42697484db8c5d8ca04f authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Generalize `bootmemory_palloc`

Since `bootmemory_palloc` can be used by any platform and
architecture and can come in handy whe...

github.com/unikraft/unikraft - b84857187aa5209dc048fe954afd7540d1dbcedc authored over 1 year ago by Sergiu Moga <[email protected]>
plat/linuxu: Move `initrd` and `heap` initialization to `setup.c`

Initialize the `heap` and `initrd` as soon as possible and move the
respective functions to `set...

github.com/unikraft/unikraft - 025b8c88449a594fcbfa2d6280a1749db4792240 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Implement `ukplat_bootinfo_fdt_setup`

Add a method that updates the `ukplat_bootinfo` structure with
relevant information extracted fr...

github.com/unikraft/unikraft - 1afb42342524ffdce124bcc7b7051f107deb5c78 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/linuxu: Integrate `bootinfo` into `linuxu` builds

Add into the build process the sources required for integrating
the `struct ukplat_bootinfo` str...

github.com/unikraft/unikraft - a096180d714cd1230e8bb56c83949d647681ec46 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common/arm: Make `lcpu_arch_jump_to` not SMP dependent

Since `lcpu_arch_jump_to` can be used with and without
`CONFIG_HAVE_SMP`, move it to a place whe...

github.com/unikraft/unikraft - b5f9b32af34438b5af7ce480df7cde8d982bb45f authored over 1 year ago by Sergiu Moga <[email protected]>
plat/xen: Manage memory regions through `ukplat_memregion` API's

Switch to using the generic `ukplat_memregion` API's since they are
more dynamic and flexible.

...

github.com/unikraft/unikraft - f7b9ff80f1d17d75e1ba7449b80e96169c55a8d0 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/linuxu: Manage memory regions through `ukplat_memregion` API's

Switch to using the generic `ukplat_memregion` API's since they are
more dynamic and flexible.

...

github.com/unikraft/unikraft - f66e471d7e72ff3476f1d0006de593e1c0a00875 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Add `flags` field to `ukplat_memregion_alloc`

Increase `ukplat_memregion_alloc`'s memory region allocation
flexibility by giving the caller th...

github.com/unikraft/unikraft - fa2d2394954cb941bb544b39f92b73aca4ee76f2 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Mark the thrashed command-line as a kernel resource

Since this buffer is only meant for `ukplat_entry_argp`, which will
thrash it as a result of par...

github.com/unikraft/unikraft - 8e7c5c97f3b487d442042d0a1825266d31cd134d authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Coalesce the memory region descriptor list

Ensure that there are no overlapping memory regions in the memory
region descriptor list by coal...

github.com/unikraft/unikraft - 7a68340f4d24f7ca7ea3bf56d456df4e4eafcfc4 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Add `dtb` field `bootinfo` structure

Add a pointer to the devicetree blob's address. Since it is a
frequently accessed resource, it c...

github.com/unikraft/unikraft - e20e7b6e1daafef85c5f26b99308c2985d7a4d57 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Add a memory region descriptor coalescing method

Implement a function that, given a list of memory region descriptors,
coalesces them based on a ...

github.com/unikraft/unikraft - dcb047ec858d5b20e8f4b88f226179fbff0ffb3f authored over 1 year ago by Sergiu Moga <[email protected]>
plat: Move `build_bootinfo` to a platform common place

Since `build_bootinfo` can be used for other platforms as well, move
it to a more platform agnos...

github.com/unikraft/unikraft - e7e1693ec0093153b4dbc9fc925311580065aeff authored over 1 year ago by Sergiu Moga <[email protected]>
plat/xen: Integrate `bootinfo` into `xen` builds

Add into the build process the sources required for integrating
the `struct ukplat_bootinfo` str...

github.com/unikraft/unikraft - 68d4bfeb88432e7346b728497ed138481febe350 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Make the amount of Memory Region Descriptors configurable

Sice `bootinfo` statically allocates space in the final image to store
Memory Region Descriptors...

github.com/unikraft/unikraft - ddb7bf7dfcb197ff73a59b33c12e64a052b5a79c authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Move `ukplat_memregion` API's to platform common location

Since these API's can be used on any platform and any architecture
subsystem that integrates `st...

github.com/unikraft/unikraft - c6ae1ff1db38399083c6c4c99e765370f8926a27 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/common: Make `ukplat_memregion_alloc` aware of memory holes

In case we are somehow able to allocate memory from an in-image
memory hole, make sure we do not...

github.com/unikraft/unikraft - 8d4051b4fab850c5cc1aad9ae8c5f388e323483b authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukvmem: Add dependency on `CONFIG_PAGING`

Since you cannot use `ukvmem` without the paging API's, it makes
sense to add a dependency on th...

github.com/unikraft/unikraft - 8c52852a50932fec7953f8147673feab15b759b3 authored over 1 year ago by Sergiu Moga <[email protected]>
include/arch/arm/arm64: Add page fault error bits

Define the bits required to tell whether a page fault was generated
due to a read, write or exec...

github.com/unikraft/unikraft - 0923ea983f5db408e489c6628fdc5f8c073ffd4a authored over 1 year ago by Sergiu Moga <[email protected]>
include/arch/arm/arm64: Add PT_Lx_PTE_SET_PADDR()

Implement `Add PT_Lx_PTE_SET_PADDR()`, which allows to set the
physical address in a page table ...

github.com/unikraft/unikraft - 2c377a03cc2cf3f89a536dc9ca8d47823a6a6bf7 authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukvmem: Add `AArch64` equivalent page fault intermediary handler

Implement the equivalent page fault intermediary handler of the x86
one, by using the `AArch64` ...

github.com/unikraft/unikraft - c05d2a6ba17304cdd33d265a10d4ee99657834fa authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/arm: Make the Unikernel position independent

Replace the static page table entries with relocatable ones through
the `ur_pte` macro. Thus, we...

github.com/unikraft/unikraft - a04b0b420682a233425062920cd28e7db09e1260 authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukreloc: Add ld script for sections required for a relocatable image

Add a separate Linker Script containing all the required sections
to achieve positional independ...

github.com/unikraft/unikraft - b285e1b5caa0fb2cfe6e3acb29ee91e221dbf448 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Make the Unikernel position independent

Replace all `mov`'s and data declarations (`.long`, `.quad` etc.) that
use absolute symbol refer...

github.com/unikraft/unikraft - d9bee3f82ff05e477224ab5f26207fbe5f831b79 authored over 1 year ago by Sergiu Moga <[email protected]>
plat: Add `_base_addr` symbol to represent the reference base address

Export a linker script symbol called `_base_addr` to represent the exact
reference value used by...

github.com/unikraft/unikraft - 8604228a940408461f675739e8d29fa7adb0938a authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukreloc: Implement a `struct uk_reloc` based self relocator

Add `do_uk_reloc` a method that parses the `.uk_reloc` section and
applies the relocations accor...

github.com/unikraft/unikraft - 2850403b9bf36d189bed4a03006b2cee670d632a authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukreloc/arch/arm64: Add position independent `ldr` macro

Create a custom `ur_ldr` macro to replace the `ldr` instruction in
places where references to ab...

github.com/unikraft/unikraft - fdf9f831aeb2671efa17345a55611adea532d982 authored over 1 year ago by Sergiu Moga <[email protected]>
build: Add configuration option to build the Unikernel as a static PIE

Add compiler and linker options to properly build the Unikernel as a
static PIE. For now, only K...

github.com/unikraft/unikraft - 27dce2f044483695fb12b254cb0ec8b00a2cbc1b authored over 1 year ago by Sergiu Moga <[email protected]>
lib: Introduce `libukreloc`

In order to start supporting positional independence we need to be able
to self relocate. Thus, ...

github.com/unikraft/unikraft - e572ef1575d2927c18bf9e309c2c9946eb076b17 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Drop `elf32-i386` output target linker flag

Remove the `elf32-i386` linker flag that forces the final Unikernel
binary output as a 32-bit ke...

github.com/unikraft/unikraft - 66ef697e1fc823df6f3a1cbf1740416c6029b4dc authored over 1 year ago by Sergiu Moga <[email protected]>
support/scripts/mkbootinfo.py: Ensure Program Headers are sorted

Due to the placements of the `tls` and `tls_load` Program Headers,
The last two memory regions i...

github.com/unikraft/unikraft - c6a8bb4b3425d5d3d334501e3fcdfc6ac8eeb118 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm: Compute `ukplat_bootinfo` structure on the final binary

Since it is the final binary that is loaded and executed, make sure
that `build_bootinfo` is cal...

github.com/unikraft/unikraft - 98076f08236f3f762122a5f0f44a1aef8f685e82 authored over 1 year ago by Sergiu Moga <[email protected]>
plat: Group common linker script discards into one common macro

Add a macro-definition to contain all of the common sections that are
to be discarded and edit t...

github.com/unikraft/unikraft - 402972f9bbf5dda7e02105498bdf87967e4375b8 authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukreloc/arch/x86_64: Add 32-bit assembly self relocator

Similarly to the 64-bit C code `do_uk_reloc` self relocator,
`do_uk_reloc32` is a macro that tak...

github.com/unikraft/unikraft - 831109d605f345a74c12b10a9be05d3b5672af33 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Move `x86_start16_addr` out of `.data.boot`

Since `.data.boot` is meant mainly for boot specific data such as
a Multiboot header, move this ...

github.com/unikraft/unikraft - 7fff7028044e04560260004bb47c02d932545754 authored over 1 year ago by Sergiu Moga <[email protected]>
lib/ukreloc: Implement `do_uk_reloc_kmrds` to relocate Kernel segments

Pull this functionality out of `do_uk_reloc` so that other code has
access to the ability to rel...

github.com/unikraft/unikraft - f0fb152dafb6b4efaa4dfd01f935f9656227bf43 authored over 1 year ago by Sergiu Moga <[email protected]>
plat/kvm/x86: Make SMP init code resolve its own `start16` relocations

Before waking up the secondary cores, the SMP initialization code copies
the, now position indep...

github.com/unikraft/unikraft - cf8cc65cb0ae62f3f590f292f332d00c3d2c8836 authored over 1 year ago by Sergiu Moga <[email protected]>