# Bootelf vs elfloader with respect to SEL4

**URL:** <https://sel4.discourse.group/t/bootelf-vs-elfloader-with-respect-to-sel4/856>\
**Category:** seL4 kernel\
**Tags:** arm\
**Created:** [August 14, 2024, 9:24am UTC](https://sel4.discourse.group/t/bootelf-vs-elfloader-with-respect-to-sel4/856 "2024-08-14T09:24:22Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![andyb](https://avatars.discourse-cdn.com/v4/letter/a/96bed5/32.png) [@andyb](https://sel4.discourse.group/u/andyb)\
**Post date:** [August 22, 2024, 12:40am UTC](https://sel4.discourse.group/t/bootelf-vs-elfloader-with-respect-to-sel4/856/2 "2024-08-22T00:40:15Z")

</div>

This thread might give you some more insight: [Boot, ELF loading, and initial task](https://sel4.discourse.group/t/boot-elf-loading-and-initial-task/199)

But to answer your question, the elfloader isn’t a bootloader on ARM. Typically, the kernel (once booted from a bootloader) will handle platform initialization, booting CPU cores, and some general initialization work with physical memory. seL4 does not do this part, however, and this is the responsibility of the elfloader (RISCV and ARM).

So when you boot seL4, you’re booting the elfloader first, so that it can then handle control over to the kernel.

---

_[View the full topic](https://sel4.discourse.group/t/bootelf-vs-elfloader-with-respect-to-sel4/856)._
