Commit Graph

6482 Commits

Author SHA1 Message Date
Paul Rigge 0f0798a374
Make rocket publish a single jar.
This puts macros + hardfloat in a single jar instead of being published
as separate jars.
2019-03-12 20:41:52 -07:00
Paul Rigge 79e58d4faa Bump hardfloat, clean up build. (#1865)
Hardfloat used to require Chisel 2 for testing, which is only published
for Scala 2.11. Rocket uses Scala 2.12, which meant the build system
needed a workaround to make hardfloat use Scala 2.12 when being used as
a part of rocket.

Hardfloat's tests have been updated to use Chisel 3, so the workaround
is no longer needed. This commit bumps the hardfloat submodule and
cleans up build.sbt to use Scala 2.12 only and Makefrag to not use
++2.12.4.
2019-03-09 10:35:02 -08:00
Andrew Waterman 2e5268f4a2
Merge pull request #1866 from freechipsproject/fix-cflush-line
Further fix per-line cache flushing
2019-03-07 23:37:58 -08:00
Andrew Waterman 1dd1cac14b Further fix CFLUSH.D.L1 with rs1 != x0
Don't engage release state machine when release is outstanding

Partially revert 3f962e9a3d,
which was a hacky way of nacking the subsequent requests
2019-03-06 18:34:37 -08:00
Andrew Waterman 4c2c15e138
Merge pull request #1862 from freechipsproject/flush-line-fix
For per-address cache flushing, don't evict same line twice
2019-03-05 14:29:01 -08:00
Andrew Waterman fbb9aae8a4 Fail misaligned PMP checks in M-mode, even if they don't apply
This doesn't actually affect any correct M-mode software, but
is technically necessary for spec compliance.
2019-03-05 02:59:13 -08:00
Paul Rigge cf9d8e11a2 Add flag for rocket to conditionally use maven deps (#1835)
Conditionally depend on chisel
* By default, depend on subproject in directory "chisel3"
* If environment variable "ROCKET_USE_MAVEN" is defined, use maven dependency
2019-03-04 22:17:26 -06:00
Andrew Waterman 3f962e9a3d For per-address cache flushing, don't evict same line twice 2019-03-04 15:55:20 -08:00
Derek Pappas 44138e3417
adding rangefilter to the getOMMemoryRegions gating expression (#1859)
* adding rangefilter to the getOMMemoryRegions gating expression
2019-03-01 21:48:04 -08:00
Srivatsa Yogendra ac8cb040c8
Changing riscv-tools hash to the latest master (#1858) 2019-02-28 20:40:50 -08:00
Andrew Waterman 0ba94f4f66
Merge pull request #1857 from freechipsproject/mmio-corrupt
Permit execution past corrupt uncached D-responses
2019-02-27 14:15:55 -08:00
Udit Khanna e356db51bc
Merge pull request #1852 from freechipsproject/omecc-fix
Object model: Make OMECC an OMEnum type
2019-02-27 11:43:18 -08:00
Derek Pappas 642830db1b
Add new RegField apply function (#1856)
* adding Option[RegFieldDesc]
2019-02-26 18:41:43 -08:00
Andrew Waterman 4784c3f405 Permit execution past corrupt uncached D-responses 2019-02-26 15:16:01 -08:00
Derek Pappas d2e96b7c6a
fix (#1855) 2019-02-23 19:16:16 -08:00
Andrew Waterman cf67a65d42
Merge pull request #1854 from freechipsproject/mimpid-parameter
Make the mimpid CSR value a parameter
2019-02-23 18:46:47 -08:00
Andrew Waterman d1403b0a2e D$: don't allow CFLUSH to retire until release acks are collected
This isn't a bug fix, but will eventually help with powering off the cache.
2019-02-22 15:32:26 -08:00
Andrew Waterman 8b79991c8f Make the mimpid CSR value a parameter 2019-02-22 15:09:30 -08:00
Udit Khanna bc5eeea38a OM: Make OMECC an OMEnum type 2019-02-21 17:08:15 -08:00
Andrew Waterman d29c1ac9b6
Merge pull request #1849 from freechipsproject/fpu-clock-gate
Move FPU load pipeline register into ungated clock domain
2019-02-20 17:04:54 -08:00
Andrew Waterman bb5cae70d8 Move FPU load pipeline register into ungated clock domain
This avoids having to clock the FPU during MMIO loads, right up until
the load comes back.
2019-02-20 12:05:37 -08:00
Andrew Waterman a05728c4fa
Merge pull request #1846 from freechipsproject/frontend-clock-gate-improvement
Increase the number of situations in which frontend can be clock gated
2019-02-16 19:43:55 -08:00
Derek Pappas af5dbd5de0
Add external global interrupts (#1845)
Add external global interrupts
2019-02-15 18:00:55 -08:00
Andrew Waterman c569908857 Increase the number of situations in which frontend can be clock gated
The fetch queue needs to fill up, which currently is only possible with
certain code sequences.  This PR makes the fetch queue flow control exact
rather than conservative, removing the software constraint.
2019-02-15 15:50:04 -08:00
Derek Pappas 105780efe8
fix (#1844) 2019-02-14 19:26:25 -08:00
Henry Cook a9be0e7334
Merge pull request #1843 from freechipsproject/bump-firrtl
Bump firrtl
2019-02-14 18:21:20 -08:00
Jack Koenig 3f3aa35469 Bump firrtl
Summary of changes:
* Async Reset Register support
* Minor improvements to constant propagation and code generation
* Minor performance improvements
* Add "mverilog" compiler with minimal optimizations
2019-02-14 15:17:07 -08:00
Gleb Gagarin b7ff1b5dd3
Merge pull request #1842 from freechipsproject/clocked_core_monitors
Extend CoreMonitorBundle with Clocked trait.
2019-02-13 19:30:07 -08:00
Gleb Gagarin 15b4354392 Extend CoreMonitorBundle with Clocked trait. 2019-02-13 11:22:28 -08:00
Erik Danie 313cd1ff7e Vivado bram fix (#1838)
* testing fix to correctly generate brams in vivado

* added case of no maskpid

* fixed typo
2019-02-12 20:10:20 -08:00
Megan Wachs c3e03be0f5 BusBlocker: add RegFieldDescs to the control port (#1839) 2019-02-12 20:08:06 -08:00
Henry Cook f924d1cff3
tile: add unifyManagers to BaseTile (#1837) 2019-02-12 20:07:34 -08:00
Derek Pappas e6aaca28b7
OMISA user fix (#1836) 2019-02-12 16:27:33 -08:00
Henry Cook f58f8c96b2
axi4: add HasAXI4ControlRegMap (#1833) 2019-02-12 10:49:15 -08:00
Derek Pappas 91e8bab27d
Global om (#1824)
* adding global storage of components not in the logical tree
2019-02-12 01:03:03 -08:00
gsomlo 53dc5d2b8b Ports.scala: add comment re. capping test-harness MMIO to 4KB (#1831)
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
2019-02-11 18:16:40 -08:00
Gleb Gagarin 3753ede1a6
DTM: Don't accept DMI response when busy (#1829)
* Don't accept DMI response when DMI Busy error bit is set.
* DebugTransport code cleanup
2019-02-09 15:53:32 -08:00
Andrew Waterman 75f8ab8240
Merge pull request #1830 from freechipsproject/cflush-addr
Support CFLUSH.D.L1 rs1 address argument
2019-02-09 15:49:05 -08:00
Andrew Waterman 4680989714 Support CFLUSH.D.L1 rs1 address argument
When rs1 = x0, it flushes the whole cache.

When rs1 != x0, it flushes the line containing the address in rs1.
2019-02-08 23:57:58 -08:00
Andrew Waterman 4c1292f96b Check for write permissions on CFLUSH.D.L1 addresses 2019-02-08 23:57:34 -08:00
Andrew Waterman 8eca7c49f9 Add per-line flush support to D$ 2019-02-08 23:57:14 -08:00
Albert Chen e59b2844bc
Merge pull request #1820 from freechipsproject/fix-generator
generator: support the no rocket tiles case
2019-02-08 10:31:17 -08:00
Ernie Edgar 1565563285
Added ExportDisableDebug flag to expose optional disableDebug input (#1823) 2019-02-08 09:34:58 -07:00
Andrew Waterman 6f4f14b86c
Merge pull request #1821 from freechipsproject/l2-tlb-qor
Get L2 TLB parity check off the critical path
2019-02-08 00:56:04 -08:00
edwardcwang 441d7f6862
Avoid import from chisel3.core (#1827)
Close #1817
2019-02-07 18:15:16 -08:00
Jack Koenig c0333f8de6
Add utility groupByIntoSeq and use instead of groupBy for determinism (#1825) 2019-02-07 14:10:26 -08:00
Derek Pappas e831ca3151
name fix for TIM's (#1822) 2019-02-06 16:12:59 -08:00
Ernie Edgar 8ce3887c78
Debug: Added halt groups. (#1744) 2019-02-06 13:38:35 -07:00
Andrew Waterman 2727c8e73b Get L2 TLB parity check off the critical path 2019-02-05 19:09:35 -08:00
Derek Pappas 5a84844360
divminlatency = 2 (#1819) 2019-02-05 13:08:18 -08:00