1
0
Commit Graph

62 Commits

Author SHA1 Message Date
0fcacd37df RegFieldDesc: mark some more registers as volatile 2018-03-12 08:24:36 -07:00
7458378a4a RegFieldDesc: Update reg field descs to be more correct for devices. 2018-03-12 08:24:36 -07:00
d6e2c1a73f more != wire deprecations 2018-03-08 12:36:51 -08:00
4256d99a9b PLIC: priority/threshold are really WARL (RWSPECIAL). Explain why. 2018-03-05 16:10:05 -08:00
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
030c6f0206 subsystem: bus wrappers now in BaseSubsystem 2018-02-21 14:52:59 -08:00
3f436a7612 subsystem: new bus attachment api 2018-02-21 14:43:47 -08:00
8462ea3d5b coreplex => subsystem 2018-02-21 14:42:24 -08:00
62f9b84439 plic: get beatBytes from pbus, not XLen 2018-02-20 16:16:39 -08:00
52e22a1dd8 clint: get beatBytes from pbus, not XLen 2018-02-20 16:16:39 -08:00
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
7bf0121f07 PLIC: correct some descriptions 2018-02-12 08:31:29 -08:00
08acbe1a29 RegFieldDesc: Clean up both descriptions and JSON presentations 2018-02-11 23:57:57 -08:00
256f8ffc6b Clint: Annotate regmap with RegFieldDesc 2018-02-11 21:33:09 -08:00
718c88a8f9 PLIC: Annotate regmap with RegFieldDescs 2018-02-11 21:05:17 -08:00
9f6d586e8c Add PLIC covers (#1229)
* Add another FPU hazard cover

* Add some PLIC covers
2018-02-06 17:33:33 -08:00
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
18b8a61775 Error device: require explicit control of atomic and transfer sizes 2017-12-08 13:41:09 -08:00
6a0150aad7 Error device: mark executable to support testing erroneous I$ refill 2017-12-08 12:38:06 -08:00
8781d2b2e7 diplomacy: provide a val name for all LazyModule constructions 2017-12-01 11:28:21 -08:00
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
ec809483b0 BusBypass: assert fail if the widths of the two slaves do not match 2017-11-18 14:37:27 -08:00
c475c78c2f BusBlocker: don't provide an (incorrect) default value for width 2017-11-18 14:33:00 -08:00
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
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
a954f020a9 diplomacy: use new node style chaining 2017-10-28 11:34:16 -07:00
c6f95570df IntNodes: moved from tilelink to their own package 2017-10-25 16:56:51 -07:00
b64609bfe8 Merge pull request #1039 from freechipsproject/tile-crossing-params
Improvements wrt connecting RocketTiles to SystemBus
2017-10-11 17:12:03 -07:00
2dbe882e58 tilelink: add BasicBusBlocker device 2017-10-11 13:36:42 -07:00
9f8e3d8879 tilelink: BusBypass can be sent to DeadlockDevice 2017-10-11 12:45:36 -07:00
ec056535dc tilelink: add DeadlockDevice 2017-10-11 12:44:23 -07:00
b3bdf5eca6 RegField: default argument for .bytes 2017-10-10 19:49:35 -07:00
e094b94ce5 clint: use RegField.toBytes to save some work 2017-10-10 19:49:35 -07:00
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
feae216f05 clint: output interrupts in the correct direction 2017-09-27 15:18:42 -07:00
60614055e3 diplomacy: eliminate some wasted IdentityNodes using cross-module refs 2017-09-25 12:06:27 -07:00
b9a2e4c243 diplomacy: API beautification 2017-09-22 15:01:42 -07:00
9217baf9d4 diplomacy: change API to auto-create node bundles => cross-module refs 2017-09-22 15:01:39 -07:00
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
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
ed70b243bd plic: support a configurable number of interrupt register stages 2017-09-07 16:03:34 -07:00
9b55063de6 clint: support a configurable number of interrupt register stages 2017-09-07 16:03:34 -07:00
bf19440db5 SystemBus: use a full buffer on slaves 2017-08-26 02:47:04 -07:00
a9b1410f01 BusBlocker: parameterize page granularity 2017-08-08 17:10:01 -07:00
010ba94474 BusBlocker: rename a variable 2017-08-08 17:00:22 -07:00
6d6fc38787 BusBlocker: lock bit should affect the prior PMP address, not next 2017-08-08 17:00:12 -07:00
8f261adc6b BusBlocker: change default policy to deny 2017-08-08 14:19:59 -07:00
0d76e96b88 tilelink: PMP controlled BusBlocker prevents bus accesses 2017-08-08 13:28:01 -07:00
558fc7f293 maskrom: retain data for d channel is not ready 2017-08-07 12:17:10 -07:00
6ef8ee5d4d tilelink: add mask rom 2017-07-31 21:34:04 -07:00