2021-09-06 14:11:16 -03:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2021, Nico Weber <thakis@chromium.org>
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
|
*/
|
|
|
|
|
|
2021-09-12 10:37:28 -03:00
|
|
|
#include <AK/Types.h>
|
2021-09-18 22:41:39 -03:00
|
|
|
#include <Kernel/Prekernel/Arch/aarch64/Mailbox.h>
|
2021-09-12 10:37:28 -03:00
|
|
|
|
2021-09-17 11:51:13 -03:00
|
|
|
extern "C" [[noreturn]] void halt();
|
|
|
|
|
|
2021-09-06 14:11:16 -03:00
|
|
|
extern "C" [[noreturn]] void init();
|
|
|
|
|
extern "C" [[noreturn]] void init()
|
|
|
|
|
{
|
2021-09-18 22:41:39 -03:00
|
|
|
[[maybe_unused]] u32 firmware_version = Prekernel::Mailbox::query_firmware_version();
|
2021-09-17 11:51:13 -03:00
|
|
|
halt();
|
2021-09-06 14:11:16 -03:00
|
|
|
}
|
2021-09-12 10:37:28 -03:00
|
|
|
|
|
|
|
|
// FIXME: Share this with the Intel Prekernel.
|
|
|
|
|
extern size_t __stack_chk_guard;
|
|
|
|
|
size_t __stack_chk_guard;
|
2021-09-17 11:44:28 -03:00
|
|
|
extern "C" [[noreturn]] void __stack_chk_fail();
|
|
|
|
|
|
2021-09-17 11:51:13 -03:00
|
|
|
[[noreturn]] void halt()
|
2021-09-17 11:44:28 -03:00
|
|
|
{
|
|
|
|
|
for (;;) {
|
|
|
|
|
asm volatile("wfi");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void __stack_chk_fail()
|
|
|
|
|
{
|
|
|
|
|
halt();
|
|
|
|
|
}
|