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)
Fri, Jan 3, 1:45 PM
Unknown Object (File)
Thu, Jan 2, 3:31 PM
Unknown Object (File)
Nov 22 2024, 3:45 PM
Unknown Object (File)
Nov 17 2024, 10:28 AM
Unknown Object (File)
Nov 17 2024, 6:23 AM
Unknown Object (File)
Nov 13 2024, 10:01 PM
Unknown Object (File)
Nov 12 2024, 5:28 AM
Unknown Object (File)
Oct 26 2024, 4:10 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).Mon, Dec 23, 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.