1/* 2 * Copyright (c) 2016, ETH Zurich. All rights reserved. 3 * 4 * This file is distributed under the terms in the attached LICENSE file. If 5 * you do not find this file, copies can be found by writing to: ETH Zurich 6 * D-INFK, CAB F.78, Universitaetstrasse 6, CH-8092 Zurich, Attn: Systems Group. 7 */ 8 9#ifndef __ARMV7_BOOT_PROTOCOL_H 10#define __ARMV7_BOOT_PROTOCOL_H 11 12/* Inter-core boot protocol for ARMv7 CPUs. */ 13 14#include <kernel.h> 15 16#include <barrelfish_kpi/spinlocks_arch.h> 17 18struct armv7_boot_record { 19 /* Several cores may share this record. */ 20 spinlock_t lock; 21 22 /* The kernel-virtual address of the core data structure. */ 23 lvaddr_t core_data; 24 25 /* Completion notification from the APP core. */ 26 uint32_t done; 27 28 /* The MPID value (hardware core ID) of the core to boot. */ 29 hwid_t target_mpid; 30}; 31 32void plat_advance_aps(void); 33errval_t boot_aps(hwid_t target, genpaddr_t gen_entry, genpaddr_t context); 34 35#endif /* __ARMV7_BOOT_PROTOCOL_H */ 36