You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
777 B
32 lines
777 B
/* Copyright(c) 2022 Intel Corporation. All rights reserved. |
|
* SPDX-License-Identifier: Apache-2.0 |
|
*/ |
|
|
|
#include <zephyr/arch/xtensa/arch.h> |
|
#include <zephyr/device.h> |
|
#include <zephyr/devicetree.h> |
|
#include <zephyr/init.h> |
|
#include <errno.h> |
|
#include <zephyr/cache.h> |
|
|
|
#include <mem_window.h> |
|
|
|
int boot_complete(void) |
|
{ |
|
uint32_t *win; |
|
const struct mem_win_config *config; |
|
const struct device *dev = DEVICE_DT_GET(DT_NODELABEL(mem_window0)); |
|
|
|
if (!device_is_ready(dev)) { |
|
return -ENODEV; |
|
} |
|
config = dev->config; |
|
|
|
win = sys_cache_uncached_ptr_get((__sparse_force void __sparse_cache *)config->mem_base); |
|
/* Software protocol: "firmware entered" has the value 5 */ |
|
win[0] = 5; |
|
|
|
return 0; |
|
} |
|
|
|
SYS_INIT(boot_complete, PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE);
|
|
|