| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Common SBI related defines and macros to be used by RISC-V kernel, |
| * RISC-V KVM and userspace. |
| * |
| * Copyright (c) 2019 Western Digital Corporation or its affiliates. |
| */ |
| |
| #ifndef __RISCV_SBI_H__ |
| #define __RISCV_SBI_H__ |
| |
| enum sbi_ext_id { |
| SBI_EXT_0_1_SET_TIMER = 0x0, |
| SBI_EXT_0_1_CONSOLE_PUTCHAR = 0x1, |
| SBI_EXT_0_1_CONSOLE_GETCHAR = 0x2, |
| SBI_EXT_0_1_CLEAR_IPI = 0x3, |
| SBI_EXT_0_1_SEND_IPI = 0x4, |
| SBI_EXT_0_1_REMOTE_FENCE_I = 0x5, |
| SBI_EXT_0_1_REMOTE_SFENCE_VMA = 0x6, |
| SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID = 0x7, |
| SBI_EXT_0_1_SHUTDOWN = 0x8, |
| SBI_EXT_BASE = 0x10, |
| SBI_EXT_DBCN = 0x4442434E, |
| }; |
| |
| enum sbi_ext_base_fid { |
| SBI_BASE_GET_SPEC_VERSION = 0, |
| SBI_BASE_GET_IMP_ID, |
| SBI_BASE_GET_IMP_VERSION, |
| SBI_BASE_PROBE_EXT, |
| SBI_BASE_GET_MVENDORID, |
| SBI_BASE_GET_MARCHID, |
| SBI_BASE_GET_MIMPID, |
| }; |
| |
| enum sbi_ext_dbcn_fid { |
| SBI_EXT_DBCN_CONSOLE_WRITE = 0, |
| SBI_EXT_DBCN_CONSOLE_READ = 1, |
| SBI_EXT_DBCN_CONSOLE_WRITE_BYTE = 2, |
| }; |
| |
| #define SBI_SPEC_VERSION_DEFAULT 0x1 |
| #define SBI_SPEC_VERSION_MAJOR_OFFSET 24 |
| #define SBI_SPEC_VERSION_MAJOR_MASK 0x7f |
| #define SBI_SPEC_VERSION_MINOR_MASK 0xffffff |
| |
| /* SBI return error codes */ |
| #define SBI_SUCCESS 0 |
| #define SBI_ERR_FAILURE -1 |
| #define SBI_ERR_NOT_SUPPORTED -2 |
| #define SBI_ERR_INVALID_PARAM -3 |
| #define SBI_ERR_DENIED -4 |
| #define SBI_ERR_INVALID_ADDRESS -5 |
| #define SBI_ERR_ALREADY_AVAILABLE -6 |
| #define SBI_ERR_ALREADY_STARTED -7 |
| #define SBI_ERR_ALREADY_STOPPED -8 |
| |
| #endif |