Commit Graph

6482 Commits

Author SHA1 Message Date
Wesley W. Terpstra e007c813c7 TLToAHB: add direct support for Hints
As AHB does not support PutPartial and often connects to devices
which have side effects on Gets, the HintHandler cannot provide
Hint support for AHB slaves. Therefore, support Hints directly.
2018-10-03 22:49:00 -07:00
Wesley W. Terpstra ca22c209cb HintHandler: add support for Get translation as well 2018-10-03 21:11:14 -07:00
Wesley W. Terpstra 79b392377d HintHandler: rewrite for simpler hardware 2018-10-03 21:11:09 -07:00
Wesley W. Terpstra d898b3662e tilelink: enhance trivial arbiters to reduce to nothing 2018-10-03 21:11:02 -07:00
Andrew Waterman d3bc1341aa
Merge pull request #1648 from freechipsproject/clock-gating
More Rocket clock gating
2018-10-03 19:49:13 -07:00
Andrew Waterman afd93df40e Fix CLINT MSIP register addressing
This finishes the work started in 1d95fcc882
2018-10-03 17:25:51 -07:00
Andrew Waterman 696955394a Fix an I$ clock-gating bug 2018-10-03 12:52:02 -07:00
Andrew Waterman 0569672039 Add SCIE to HasCoreParameters 2018-10-03 12:52:02 -07:00
Andrew Waterman dbe65d79e7 clock-gate the pipeline during D$ misses 2018-10-03 12:52:02 -07:00
Andrew Waterman c30c89b798 Use Vec instead of Seq for better naming 2018-10-03 12:52:02 -07:00
Andrew Waterman 3b8674dde7 Clock the cycle counter while opportunistically clock gated
...but not during WFI.
2018-10-03 12:52:02 -07:00
Andrew Waterman 123cb0ae15 clock gate the fetch unit 2018-10-03 12:52:02 -07:00
Andrew Waterman 180e19223f Clock gate FPU when no FP instructions are in the pipeline 2018-10-03 12:52:02 -07:00
Andrew Waterman 5186119e5b Clock gate Rocket core during WFI and I$ misses 2018-10-03 12:52:02 -07:00
Andrew Waterman 00ba2ff8ad Make the boot ROM mask interrupts before WFIing 2018-10-03 12:52:02 -07:00
Andrew Waterman 9a30c4ba06 Revert "Merge pull request #1650 from freechipsproject/error-devices"
This reverts commit 8d4aa8287d, reversing
changes made to b688dc7164.
2018-10-03 12:51:14 -07:00
Andrew Waterman ff722d83b0 Revert "Merge pull request #1654 from freechipsproject/better-hints"
This reverts commit c9f5f417b9, reversing
changes made to 1d95fcc882.
2018-10-03 12:50:57 -07:00
Henry Cook c9f5f417b9
Merge pull request #1654 from freechipsproject/better-hints
Better HintHandler
2018-10-03 11:07:15 -07:00
Wesley W. Terpstra 72d55465ac HintHandler: add support for Get translation as well 2018-10-02 22:46:24 -07:00
Wesley W. Terpstra cde972dbc3 HintHandler: rewrite for simpler hardware 2018-10-02 17:24:38 -07:00
Wesley W. Terpstra 19439d6f96 tilelink: enhance trivial arbiters to reduce to nothing 2018-10-02 12:52:27 -07:00
Murali Vijayaraghavan 1d95fcc882
changed ipiWidth to 1 to make both CLIC_address and CLINT_address for MSIP byte-addressable (#1651) 2018-10-02 11:26:23 -07:00
Andrew Waterman 8d4aa8287d
Merge pull request #1650 from freechipsproject/error-devices
Refactor DevNullDevices and provide some within TLBusWrappers
2018-09-30 21:30:43 -07:00
Henry Cook 001572ca74 tilelink: more detailed fragmenter requirements 2018-09-30 01:19:55 -07:00
Henry Cook 1121226259 diplomacyL LazyScope toString 2018-09-30 01:17:53 -07:00
Henry Cook 4d6d00022a tilelink: refactor error devices 2018-09-30 01:17:23 -07:00
Andrew Waterman b688dc7164
Merge pull request #1649 from freechipsproject/scie
Add Simple Custom Instruction Extension
2018-09-30 01:07:35 -07:00
Andrew Waterman fcfedefc09 Add Simple Custom Instruction Extension
This enables adding custom instructions that operate on the x-registers
(i.e., no additional architectural state).

This version on supports combinational units (which fit in the pipeline in
the same place as the integer ALU), but it can be extended to support 2-stage
pipelines, or multi-cycle operations.
2018-09-29 16:02:36 -07:00
Henry Cook 8b27d1832d tlzero: responds to atomics with 0 2018-09-27 13:36:39 -07:00
Henry Cook ef62d93743
registerrouter: require pow2 size (#1646) 2018-09-27 08:55:57 -07:00
Brendan Sweeney d587ae4f4c Adding no exclude fire() to DecoupledHelper (#1645)
Adding a no-argument fire() to DecoupledHelper that doesn't exclude anything. The previous way of doing this, which was fire(false.B), was broken by the previous change of requiring all excluded to be included, and forced a further hack of adding a dummy value. Since excluding false.B was a hack in itself, this avoids the issue entirely by providing a straightforward and safe way of excluding nothing.
2018-09-26 16:04:26 -07:00
David Biancolin 50bb13d788
Merge pull request #1643 from freechipsproject/update-run-recipes
Improve generated run-* recipes
2018-09-25 17:51:41 -07:00
David Biancolin 896f9f78c6 Improve generated run-* recipes
Or reduce failures and print more failure causes.
2018-09-25 14:31:25 -07:00
Andrew Waterman 9112e6cd28
Merge pull request #1642 from freechipsproject/custom-csr
Custom CSR enhancements
2018-09-25 12:40:05 -07:00
Andrew Waterman eb7c319c53 Add chicken-bit CSR; use it for D$ clock gate
The reset value is conservative (don't clock gate).
2018-09-24 23:01:35 -07:00
Andrew Waterman cd5e116741 Refactor CustomCSRs for extensibility beyond Rocket 2018-09-24 19:26:24 -07:00
Andrew Waterman 7038875bc4 Fix whitespace 2018-09-24 19:09:14 -07:00
Andrew Waterman 83540637ba Set marchid to 1, which means "Rocket" 2018-09-24 16:59:50 -07:00
Andrew Waterman 58c2b41712 Factor out rocket-specific aspects of CustomCSRs 2018-09-24 16:59:10 -07:00
albertchen-sifive aedb7ca882 firrtl now does not remove BlackBoxes with no ports by default (#1630) 2018-09-24 12:55:50 -07:00
Andrew Waterman fe116541a6 Change coarse-grained NAPOT PMPs to match spec
There was a flaw in the spec and the current proposed fix is cb4515bbd5
2018-09-23 17:20:31 -07:00
Andrew Waterman 17f3d9bdba
Merge pull request #1638 from freechipsproject/dcache-clock-gate
D$ improvements
2018-09-22 19:50:03 -07:00
Andrew Waterman 2983a867ce Optionally clock-gate the PTW 2018-09-22 17:46:45 -07:00
Andrew Waterman 75ee5f01df Fix another LR/SC starvation case 2018-09-22 17:45:42 -07:00
Andrew Waterman 88f5fe93e3 Separate PTW arbitration request from valid signal
This gets rid of a critical path.
2018-09-22 17:17:52 -07:00
Andrew Waterman 8f1e1be817 Refactor D$ clock gating to make it totally local 2018-09-22 17:17:52 -07:00
Andrew Waterman a67271804b Make HellaCache implementation overridable 2018-09-22 17:17:52 -07:00
Andrew Waterman 7ebb55cf2c Support overriding the indexing functions in DCache 2018-09-22 17:17:52 -07:00
Andrew Waterman 06eb72008e Add some more UInt helpers 2018-09-22 17:17:52 -07:00
Andrew Waterman 981c628195 Automatically clock-gate the D$ when it's idle 2018-09-21 22:58:21 -07:00