Page MenuHomeFreeBSD

riscv: Introduce support for Incoming MSI Controller (IMSIC)
Needs ReviewPublic

Authored by himanshu_thechauhan.dev on Jan 14 2024, 6:40 AM.
Tags
Referenced Files
Unknown Object (File)
Sun, Apr 20, 7:59 AM
Unknown Object (File)
Sun, Apr 20, 5:28 AM
Unknown Object (File)
Sat, Apr 19, 10:30 PM
Unknown Object (File)
Sat, Apr 19, 6:30 PM
Unknown Object (File)
Mon, Apr 14, 6:46 PM
Unknown Object (File)
Thu, Apr 10, 1:16 AM
Unknown Object (File)
Mar 11 2025, 5:47 AM
Unknown Object (File)
Mar 11 2025, 1:05 AM
Subscribers

Details

Reviewers
mhorne
jrtc27
br
Summary

This patch adds support for IMSIC on RISCV architecture.
The following features are supported:

  • Interrupt delivery with aplic-imsic
  • Sending IPIs between HARTS without ecall
  • IPIs are sent IMSIC-to-IMSIC

Whats not supported:

  • MSI interrupts from devices.

MSI chosen for IPI is 1 as it has the highest priority.

IPIs over IMSIC can be disabled by "aia.imsic.ipi_disabled=1" kernel parameter.

Test Plan
  • Tested SMP boot with aplic-imsic and aplic-only.
  • Tested from 1 CPU to 16 CPUs

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Hi Himanshu what is status of this? could you regenerate for the latest HEAD ?

In D43452#1055467, @br wrote:

Hi Himanshu what is status of this? could you regenerate for the latest HEAD ?

Hi Ruslan,

This patch (and the latest one I have) depend on D40474 for the correct ordering of initialisation. Do we have any idea on how to close D40474?
I can generate the patch on current HEAD, no problem.

himanshu_thechauhan.dev retitled this revision from [RFC] riscv: Introduce support for Incoming MSI Controller (IMSIC) to riscv: Introduce support for Incoming MSI Controller (IMSIC).Dec 23 2024, 5:50 PM
himanshu_thechauhan.dev edited the summary of this revision. (Show Details)
himanshu_thechauhan.dev edited the test plan for this revision. (Show Details)
  • Refactor aplic code into common init and aplic/imsic specific code.
  • Add support for IMSIC.