1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2019 Fraunhofer AISEC, 4 * Lukas Auer <lukas.auer@aisec.fraunhofer.de> 5 */ 6 7 #include <asm/encoding.h> 8 #include <asm/sbi.h> 9 riscv_init_ipi(void)10int riscv_init_ipi(void) 11 { 12 return 0; 13 } 14 riscv_send_ipi(int hart)15int riscv_send_ipi(int hart) 16 { 17 ulong mask; 18 19 mask = 1UL << hart; 20 sbi_send_ipi(&mask); 21 22 return 0; 23 } 24 riscv_clear_ipi(int hart)25int riscv_clear_ipi(int hart) 26 { 27 csr_clear(CSR_SIP, SIP_SSIP); 28 29 return 0; 30 } 31 riscv_get_ipi(int hart,int * pending)32int riscv_get_ipi(int hart, int *pending) 33 { 34 /* 35 * The SBI does not support reading the IPI status. We always return 0 36 * to indicate that no IPI is pending. 37 */ 38 *pending = 0; 39 40 return 0; 41 } 42