Commit Graph

15 Commits

Author SHA1 Message Date
Alexandre Joannou
e4bdbfc98a Bump BlueStuff + add outter subordinate trafic as master to internal bus 2022-08-15 16:18:23 +00:00
Jessica Clarke
fb5339e9ca Adapt the PLIC instantiation and wiring to support multiple cores 2021-01-31 17:54:43 +00:00
Jessica Clarke
4a0c8fe7d2 PLIC: Update comment after previous commit 2020-12-21 13:37:01 +00:00
Jessica Clarke
ac6244181a PLIC: Allow multiple interrupts to be claimed but not completed
Whilst the current PLIC spec is hard to decipher, the older v1.9
privileged spec is clearer. The intent is that each interrupt is
independent and so claims and completions can be overlapped (e.g. as
done by FreeBSD if deferring an interrupt handler). This is
approximately expressed in the spec by:

  The PLIC can perform a claim at any time and the claim operation is
  not affected by the setting of the priority threshold register.

  ...

  The PLIC does not check whether the completion ID is the same as the
  last claim ID for that target. If the completion ID does not match an
  interrupt source that is currently enabled for the target, the
  completion is silently ignored.

Thost last two sentences make it sound like the completion ID not
matching the last claim ID is a thing to ignore, but in fact they are
entirely independent statements. This can be confirmed by reading the
source for the Rocket and QEMU PLICs, which have none of the stricter
requirements of the Bluespec PLIC implementation.

This should fix running FreeBSD after r362977, which started to
correctly delay the completion of interrupts until after deferred
handlers had completed (as opposed to after they had been queued).
2020-12-21 13:32:06 +00:00
Jessica Clarke
6b55d30a8e PLIC: Restore upstream whitespace 2020-12-21 13:32:06 +00:00
Jessica Clarke
e3f94224de Revert "Cause two surprising conditions to not throw slave errors as this is not"
This reverts commit 4131dcd073.
2020-12-21 13:03:13 +00:00
jon
4131dcd073 Cause two surprising conditions to not throw slave errors as this is not
specified and causes kernel panics.  Hopefully the details of what
should happen in these cases is correct, but we shall see...
2020-12-17 12:37:45 +00:00
Alexandre Joannou
98a9c076cd Update BlueStuff API and Bump BlueStuff and TagController 2020-12-01 14:22:12 +00:00
Peter Rugg
c406d357c9 Add CHERI+RVFI_DII grant codes and copyrights 2020-07-06 17:39:25 +01:00
Alexandre Joannou
b5b2b4fe5c Port AXI4 changes from Flute 2020-03-27 16:45:26 +00:00
Jonathan Woodruff
2aa902f61a Change tabs to 8 spaces, this time being careful to do this only in BSV files. 2020-03-23 14:44:39 +00:00
Jonathan Woodruff
a6e5a7bff0 Revert "Fix whitespace in src_Core directory."
This reverts commit a137a6ede7.
2020-03-23 14:40:02 +00:00
Jonathan Woodruff
a137a6ede7 Fix whitespace in src_Core directory.
Replace all tabs with 8 spaces.
2020-03-23 14:28:00 +00:00
rsnikhil
fafd99c983 Fixes reported by Joe Stoy: PLIC, MMIO_AXI4_Adapter and Core.bsv (details below)
PLIC: updated to latest version from Piccolo/Flute.

MMIO_AXI4_Adapter: added workaround for Xilinx IP problem on 64-bit
    AXI4 fabrics. Writes that specify 8-byte size, but only write in
    upper or lower word using strobes, are converted into 4-byte size.

Core.bsv: added a notification to the Debug Module re. CPU halt.
2020-03-08 15:39:57 -04:00
rsnikhil
ee24a93944 Initial load of files 2019-03-26 14:49:40 -04:00