[bootloader] Added dual boot

This commit is contained in:
M4x1m3
2022-02-27 00:05:30 +01:00
parent 85ef57f7ed
commit 5a7b076ebe
13 changed files with 226 additions and 32 deletions

View File

@@ -1,13 +1,7 @@
#include <bootloader/kernel_header.h>
extern "C" void jump_to_firmware(const uint32_t* stackPtr, const void(*startPtr)(void));
namespace Bootloader {
const KernelHeader* s_kernelHeaderA = reinterpret_cast<const struct KernelHeader*>(0x90000000);
const KernelHeader* s_kernelHeaderB = reinterpret_cast<const struct KernelHeader*>(0x90400000);
const char * KernelHeader::version() const {
return m_version;
}
@@ -20,10 +14,12 @@ const bool KernelHeader::isValid() const {
return m_header == Magic && m_footer == Magic;
}
[[ noreturn ]] void KernelHeader::boot() const {
jump_to_firmware(m_stackPointer, m_startPointer);
for(;;);
const uint32_t* KernelHeader::stackPointer() const {
return m_stackPointer;
}
const void(*KernelHeader::startPointer() const)() {
return m_startPointer;
}
}