Megan Wachs
0fcacd37df
RegFieldDesc: mark some more registers as volatile
2018-03-12 08:24:36 -07:00
Megan Wachs
7458378a4a
RegFieldDesc: Update reg field descs to be more correct for devices.
2018-03-12 08:24:36 -07:00
Henry Cook
d6e2c1a73f
more != wire deprecations
2018-03-08 12:36:51 -08:00
Megan Wachs
4256d99a9b
PLIC: priority/threshold are really WARL (RWSPECIAL). Explain why.
2018-03-05 16:10:05 -08:00
Megan Wachs
41d1a62713
PLIC: Update RegFieldDesc to reflect the fact that source 0 isn't like all the others
2018-03-05 15:29:14 -08:00
Henry Cook
030c6f0206
subsystem: bus wrappers now in BaseSubsystem
2018-02-21 14:52:59 -08:00
Henry Cook
3f436a7612
subsystem: new bus attachment api
2018-02-21 14:43:47 -08:00
Henry Cook
8462ea3d5b
coreplex => subsystem
2018-02-21 14:42:24 -08:00
Andrew Waterman
62f9b84439
plic: get beatBytes from pbus, not XLen
2018-02-20 16:16:39 -08:00
Andrew Waterman
52e22a1dd8
clint: get beatBytes from pbus, not XLen
2018-02-20 16:16:39 -08:00
Wesley W. Terpstra
fa412246b3
Error: don't be an exception wrt. caching
...
Prior to this PR, the error device was allowed to be cached by
multiple actors despite never probing any of them. This is a
pretty unusual set of properties that has caused us trouble
several times now in the past.
Let's instead put the Error device into one of two very well
established categories: a straight-up MMIO device or a tracked
memory region.
2018-02-14 23:02:55 -08:00
Megan Wachs
7bf0121f07
PLIC: correct some descriptions
2018-02-12 08:31:29 -08:00
Megan Wachs
08acbe1a29
RegFieldDesc: Clean up both descriptions and JSON presentations
2018-02-11 23:57:57 -08:00
Megan Wachs
256f8ffc6b
Clint: Annotate regmap with RegFieldDesc
2018-02-11 21:33:09 -08:00
Megan Wachs
718c88a8f9
PLIC: Annotate regmap with RegFieldDescs
2018-02-11 21:05:17 -08:00
Andrew Waterman
9f6d586e8c
Add PLIC covers ( #1229 )
...
* Add another FPU hazard cover
* Add some PLIC covers
2018-02-06 17:33:33 -08:00
Andrew Waterman
000cde2f8a
Make ErrorDevice UNCACHEABLE instead of UNCACHED
...
...even though it still supports Acquire. This avoids needing to flush
the D$ on FENCE.I because of the presence of the ErrorDevice.
2018-01-05 14:00:42 -08:00
Wesley W. Terpstra
18b8a61775
Error device: require explicit control of atomic and transfer sizes
2017-12-08 13:41:09 -08:00
Wesley W. Terpstra
6a0150aad7
Error device: mark executable to support testing erroneous I$ refill
2017-12-08 12:38:06 -08:00
Wesley W. Terpstra
8781d2b2e7
diplomacy: provide a val name for all LazyModule constructions
2017-12-01 11:28:21 -08:00
Wesley W. Terpstra
e489c4226e
diplomacy: remove node arity and allow empty Nexus nodes (Xbars)
...
This removes the mostly obsolete 'numIn/Out' range restrictions on nodes.
It also makes it possible to connect optional crossbars that disappear.
val x = TLXbar()
x := master
slave := x
val y = TLXbar()
x :=* y // only connect y if it gets used
This will create crossbar x, but crossbar y will disappear.
2017-12-01 11:26:59 -08:00
Wesley W. Terpstra
ec809483b0
BusBypass: assert fail if the widths of the two slaves do not match
2017-11-18 14:37:27 -08:00
Wesley W. Terpstra
c475c78c2f
BusBlocker: don't provide an (incorrect) default value for width
2017-11-18 14:33:00 -08:00
Henry Cook
b625e68360
tile: put a BasicBusBlocker inside RocketTile ( #1115 )
...
...instead of on the master side of the system bus.
People inheriting from HasTileMasterPort might need to add
`masterNode := tileBus.node` to their Tile child class.
2017-11-17 17:26:48 -08:00
Wesley W. Terpstra
dcf67b49fa
BusBypass: only stall A once the last beat is accepted ( #1090 )
...
When switching ports, the bypass stalls new messages until all
outstanding messages have received their responses. However, this
stall must NOT stop the remaining beats of a partially sent request.
2017-11-06 11:13:15 -08:00
Wesley W. Terpstra
a954f020a9
diplomacy: use new node style chaining
2017-10-28 11:34:16 -07:00
Wesley W. Terpstra
c6f95570df
IntNodes: moved from tilelink to their own package
2017-10-25 16:56:51 -07:00
Henry Cook
b64609bfe8
Merge pull request #1039 from freechipsproject/tile-crossing-params
...
Improvements wrt connecting RocketTiles to SystemBus
2017-10-11 17:12:03 -07:00
Henry Cook
2dbe882e58
tilelink: add BasicBusBlocker device
2017-10-11 13:36:42 -07:00
Henry Cook
9f8e3d8879
tilelink: BusBypass can be sent to DeadlockDevice
2017-10-11 12:45:36 -07:00
Henry Cook
ec056535dc
tilelink: add DeadlockDevice
2017-10-11 12:44:23 -07:00
Wesley W. Terpstra
b3bdf5eca6
RegField: default argument for .bytes
2017-10-10 19:49:35 -07:00
Wesley W. Terpstra
e094b94ce5
clint: use RegField.toBytes to save some work
2017-10-10 19:49:35 -07:00
Wesley W. Terpstra
a2dc13669a
Error grants ( #1025 )
...
* CacheCork: an error Grant still says 'toT' even though it is transient
Grants with errors must be handled by a client as though no actual
permissions were obtained, so that two clients do not both end up believing
that they own a block which is only temporarily offline. However, the
Grant MESSAGE should still match the request; ie. if you did Acquire.NtoT,
the response must be Grant.toT, even though the 'error' bit signals that
the Grant actually grants no permissions.
This keeps the implementation of request-response tracking in interstitial
adapters and FSMs simple, consistent with the way multibeat errors must
include all their beats.
* Error: handle permissions properly
2017-10-02 14:49:25 -07:00
Wesley W. Terpstra
feae216f05
clint: output interrupts in the correct direction
2017-09-27 15:18:42 -07:00
Wesley W. Terpstra
60614055e3
diplomacy: eliminate some wasted IdentityNodes using cross-module refs
2017-09-25 12:06:27 -07:00
Wesley W. Terpstra
b9a2e4c243
diplomacy: API beautification
2017-09-22 15:01:42 -07:00
Wesley W. Terpstra
9217baf9d4
diplomacy: change API to auto-create node bundles => cross-module refs
2017-09-22 15:01:39 -07:00
Henry Cook
b86f4b9bb7
config: use Field defaults over Config defaults
...
Also rename some keys that had the same class name as their value's class name.
2017-09-13 11:25:42 -07:00
Henry Cook
9c0bfbd500
tile: remove global Field ResetVectorBits
...
Reset vector width is determined by systemBus.busView.
Also move some defs from HasCoreParameters to HasTileParameters.
2017-09-08 14:50:59 -07:00
Wesley W. Terpstra
ed70b243bd
plic: support a configurable number of interrupt register stages
2017-09-07 16:03:34 -07:00
Wesley W. Terpstra
9b55063de6
clint: support a configurable number of interrupt register stages
2017-09-07 16:03:34 -07:00
Wesley W. Terpstra
bf19440db5
SystemBus: use a full buffer on slaves
2017-08-26 02:47:04 -07:00
Wesley W. Terpstra
a9b1410f01
BusBlocker: parameterize page granularity
2017-08-08 17:10:01 -07:00
Wesley W. Terpstra
010ba94474
BusBlocker: rename a variable
2017-08-08 17:00:22 -07:00
Wesley W. Terpstra
6d6fc38787
BusBlocker: lock bit should affect the prior PMP address, not next
2017-08-08 17:00:12 -07:00
Wesley W. Terpstra
8f261adc6b
BusBlocker: change default policy to deny
2017-08-08 14:19:59 -07:00
Wesley W. Terpstra
0d76e96b88
tilelink: PMP controlled BusBlocker prevents bus accesses
2017-08-08 13:28:01 -07:00
Yunsup Lee
558fc7f293
maskrom: retain data for d channel is not ready
2017-08-07 12:17:10 -07:00
Yunsup Lee
6ef8ee5d4d
tilelink: add mask rom
2017-07-31 21:34:04 -07:00