Skip to main content

7 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.

7.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 7 below.

Table 7. IPI Send Errors

Error codeDescription
SBI_SUCCESSIPI was sent to all the targeted harts successfully.
SBI_ERR_INVALID_PARAMAt 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_FAILEDThe request failed for unspecified or unknown other reasons.

7.2 Function Listing

Table 8. IPI Function List

Function NameSBI VersionFIDEID
sbi_send_ipi0.200x735049