1/*
2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7#include <devices_gen.h>
8
9#pragma once
10
11#define dev_get_smp(dev) ((struct elfloader_smp_ops *)(dev->drv->ops))
12
13struct elfloader_smp_ops {
14    const char *enable_method;
15    int (*cpu_on)(struct elfloader_device *smp_dev, struct elfloader_cpu *cpu, void *entry, void *stack);
16};
17
18struct smp_cpu_data {
19    void *entry;
20    void *stack;
21};
22
23extern struct smp_cpu_data secondary_data;
24void secondary_startup(void);
25void smp_register_handler(struct elfloader_device *dev);
26int plat_cpu_on(struct elfloader_cpu *cpu, void *entry, void *stack);
27