forked from Mirrors/opensbi

As-per the SBI specification, the lower 24bits of the SBI vendor extension id is same as lower 24bits of the mvendorid CSR. We update the SBI vendor extension id checking based on above. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
38 lines
1.2 KiB
C
38 lines
1.2 KiB
C
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2020 Western Digital Corporation or its affiliates.
|
|
*
|
|
* Authors:
|
|
* Anup Patel <anup.patel@wdc.com>
|
|
*/
|
|
|
|
#ifndef __PLATFORM_OVERRIDE_H__
|
|
#define __PLATFORM_OVERRIDE_H__
|
|
|
|
#include <sbi/sbi_hart.h>
|
|
#include <sbi/sbi_types.h>
|
|
#include <sbi/sbi_trap.h>
|
|
|
|
struct platform_override {
|
|
const struct fdt_match *match_table;
|
|
u64 (*features)(const struct fdt_match *match);
|
|
u64 (*tlbr_flush_limit)(const struct fdt_match *match);
|
|
bool (*cold_boot_allowed)(u32 hartid, const struct fdt_match *match);
|
|
int (*early_init)(bool cold_boot, const struct fdt_match *match);
|
|
int (*final_init)(bool cold_boot, const struct fdt_match *match);
|
|
void (*early_exit)(const struct fdt_match *match);
|
|
void (*final_exit)(const struct fdt_match *match);
|
|
int (*fdt_fixup)(void *fdt, const struct fdt_match *match);
|
|
int (*extensions_init)(const struct fdt_match *match,
|
|
struct sbi_hart_features *hfeatures);
|
|
void (*fw_init)(void *fdt, const struct fdt_match *match);
|
|
int (*vendor_ext_provider)(long extid, long funcid,
|
|
const struct sbi_trap_regs *regs,
|
|
unsigned long *out_value,
|
|
struct sbi_trap_info *out_trap,
|
|
const struct fdt_match *match);
|
|
};
|
|
|
|
#endif
|