Andrew Scull | f0551c8 | 2018-12-15 20:38:47 +0000 | [diff] [blame] | 1 | /* |
Andrew Walbran | 692b325 | 2019-03-07 15:51:31 +0000 | [diff] [blame] | 2 | * Copyright 2018 The Hafnium Authors. |
Andrew Scull | f0551c8 | 2018-12-15 20:38:47 +0000 | [diff] [blame] | 3 | * |
Andrew Walbran | e959ec1 | 2020-06-17 15:01:09 +0100 | [diff] [blame] | 4 | * Use of this source code is governed by a BSD-style |
| 5 | * license that can be found in the LICENSE file or at |
| 6 | * https://opensource.org/licenses/BSD-3-Clause. |
Andrew Scull | f0551c8 | 2018-12-15 20:38:47 +0000 | [diff] [blame] | 7 | */ |
| 8 | |
| 9 | #include <stdalign.h> |
| 10 | #include <stdint.h> |
| 11 | |
Raghu Krishnamurthy | fffe761 | 2020-12-08 14:57:28 -0800 | [diff] [blame] | 12 | #include "hf/arch/vm/interrupts.h" |
| 13 | |
Andrew Walbran | 1e7c774 | 2019-12-13 17:10:02 +0000 | [diff] [blame] | 14 | #include "test/hftest.h" |
Raghu Krishnamurthy | 50af660 | 2021-12-12 15:23:09 -0800 | [diff] [blame^] | 15 | #include "test/hftest_impl.h" |
Andrew Scull | f0551c8 | 2018-12-15 20:38:47 +0000 | [diff] [blame] | 16 | |
| 17 | alignas(4096) uint8_t kstack[4096]; |
| 18 | |
Raghu Krishnamurthy | 50af660 | 2021-12-12 15:23:09 -0800 | [diff] [blame^] | 19 | extern void abort(void); |
Raghu Krishnamurthy | 1c264f3 | 2021-02-27 20:37:13 -0800 | [diff] [blame] | 20 | |
| 21 | noreturn void kmain(const void *fdt_ptr) |
| 22 | { |
| 23 | /* |
| 24 | * Initialize the stage-1 MMU and identity-map the entire address space. |
| 25 | */ |
| 26 | if (!hftest_mm_init()) { |
| 27 | HFTEST_LOG_FAILURE(); |
| 28 | HFTEST_LOG(HFTEST_LOG_INDENT "Memory initialization failed"); |
| 29 | abort(); |
| 30 | } |
| 31 | |
| 32 | /* Setup basic exception handling. */ |
| 33 | exception_setup(NULL, NULL); |
| 34 | |
| 35 | hftest_service_main(fdt_ptr); |
| 36 | } |