8.1. IPI Extension (EID #0x735049 "sPI: s-mode IPI")

This extension replaces the legacy extension (EID #0x04). The other IPI related legacy extension(0x3) is deprecated now. All the functions in this extension follow the hart_mask as defined in the binary encoding section.

8.1.1. Function: Send IPI (FID #0)

struct sbiret sbi_send_ipi(unsigned long hart_mask,
                           unsigned long hart_mask_base)

Send an inter-processor interrupt to all the harts defined in hart_mask. Interprocessor interrupts manifest at the receiving harts as the supervisor software interrupts.

The possible error codes returned in sbiret.error are shown in the Table 6 below.

Table 6. IPI Send Errors
Error code Description

SBI_SUCCESS

IPI was sent to all the targeted harts successfully.

SBI_ERR_INVALID_PARAM

At least one hartid constructed from hart_mask_base and hart_mask, is not valid, i.e. either the hartid is not enabled by the platform or is not available to the supervisor.

SBI_ERR_FAILED

The request failed for unspecified or unknown other reasons.

8.1.2. Function Listing

Table 7. IPI Function List
Function Name SBI Version FID EID

sbi_send_ipi

0.2

0

0x735049