Andrew Waterman 
							
						 
					 
					
						
						
							
						
						026fa14bf8 
					 
					
						
						
							
							Rename trace.addr -> iaddr  
						
						
						
						
					 
					
						2017-09-20 14:32:41 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						5b2f458214 
					 
					
						
						
							
							Merge branch 'master' into ma-fetch  
						
						
						
						
					 
					
						2017-09-20 12:18:03 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						f1a506476b 
					 
					
						
						
							
							Merge pull request  #994  from freechipsproject/beu  
						
						... 
						
						
						
						Add L1 bus-error unit 
						
						
					 
					
						2017-09-20 12:17:08 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						f5bd639863 
					 
					
						
						
							
							Don't write badaddr on misaligned fetch exceptions  
						
						... 
						
						
						
						It's optional, and we were doing it wrong before, so just don't do it. 
						
						
					 
					
						2017-09-20 10:52:41 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						db57e943f3 
					 
					
						
						
							
							Report TL errors into D$  
						
						
						
						
					 
					
						2017-09-20 00:05:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						aaad73f019 
					 
					
						
						
							
							Add an intra-tile xbar  
						
						
						
						
					 
					
						2017-09-20 00:05:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						afad25fceb 
					 
					
						
						
							
							Integrate L1 BusErrorUnit  
						
						
						
						
					 
					
						2017-09-20 00:05:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						79dab487fc 
					 
					
						
						
							
							Implement bus error unit  
						
						
						
						
					 
					
						2017-09-20 00:05:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						ed18acaae0 
					 
					
						
						
							
							Report D$ errors  
						
						
						
						
					 
					
						2017-09-20 00:05:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						034ea722f4 
					 
					
						
						
							
							Report I$ errors  
						
						
						
						
					 
					
						2017-09-20 00:05:07 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						4d6d6ff641 
					 
					
						
						
							
							Add instruction-trace port  
						
						
						
						
					 
					
						2017-09-19 22:59:57 -07:00 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						57e8fe0a6b 
					 
					
						
						
							
							Merge pull request  #1000  from freechipsproject/name-seqmems  
						
						... 
						
						
						
						try to give seqmems clearer names for use with external tools 
						
						
					 
					
						2017-09-19 17:59:00 -07:00 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						8db5bbbae0 
					 
					
						
						
							
							try to give seqmems clearer names  
						
						
						
						
					 
					
						2017-09-19 13:41:11 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						d93d7b9fa4 
					 
					
						
						
							
							Only merge stores that aren't yet pending  
						
						... 
						
						
						
						This fixes a deadlock (and possibly memory corruption, though that is
unconfirmed).  The following sequence manifests it, assuming t0
is 32-byte aligned:
    sw t0, 0(t0)
    sw t0, 16(t0)
    lw t1, 4(t0)
    lw t2, 4(t0) 
						
						
					 
					
						2017-09-17 15:01:07 -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 
							
						 
					 
					
						
						
							
						
						063ca0ed4a 
					 
					
						
						
							
							Merge pull request  #983  from freechipsproject/kill-paddrbits  
						
						... 
						
						
						
						Remove global fields PAddrBits and ResetVectorBits 
						
						
					 
					
						2017-09-11 12:51:10 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						1f606d924f 
					 
					
						
						
							
							Don't perform in-place correction if there was a recent store ( #988 )  
						
						... 
						
						
						
						Since the correction updates the entire word, the WAW hazard detection
logic is not sufficient to prevent overwriting a recent store.  So,
re-read the word after all pending stores have drained. 
						
						
					 
					
						2017-09-08 16:26:54 -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 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						3133c321b7 
					 
					
						
						
							
							scratchpad: remove dependency on HasCoreParameters  
						
						
						
						
					 
					
						2017-09-08 13:55:40 -07:00 
						 
				 
			
				
					
						
							
							
								Henry Cook 
							
						 
					 
					
						
						
							
						
						e46aeb7342 
					 
					
						
						
							
							tile: remove PAddrBits in favor of SharedMemoryTLEdge  
						
						
						
						
					 
					
						2017-09-08 13:53:36 -07:00 
						 
				 
			
				
					
						
							
							
								Wesley W. Terpstra 
							
						 
					 
					
						
						
							
						
						e7de7f3e82 
					 
					
						
						
							
							Merge pull request  #985  from freechipsproject/flop-interrupts  
						
						... 
						
						
						
						Add Parameters to diplomatic edges 
						
						
					 
					
						2017-09-08 13:16:11 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						53dfc5e9be 
					 
					
						
						
							
							Remove overzealous assertion ( #987 )  
						
						... 
						
						
						
						This assertion made sure the D$ controller was able to write the tag RAM
when a cache line was refilled.  However, it is benign if it fails to do
so: the metadata is invalid at this point, so the miss will simply happen
a second time.
This happens when resolving a tag ECC error during hit-under-miss. 
						
						
					 
					
						2017-09-07 18:17:56 -07:00 
						 
				 
			
				
					
						
							
							
								Wesley W. Terpstra 
							
						 
					 
					
						
						
							
						
						1365c5f90c 
					 
					
						
						
							
							diplomacy: implement DisableMonitors scope  
						
						
						
						
					 
					
						2017-09-07 16:03:35 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						8087a205cc 
					 
					
						
						
							
							Remove redundant check in interrupt priority encoding  
						
						... 
						
						
						
						chooseInterrupts already sorts M interrupts above S interrupts. 
						
						
					 
					
						2017-08-17 22:23:42 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						cbe7c51b50 
					 
					
						
						
							
							Respect ISA requirements on interrupt priority order  
						
						... 
						
						
						
						a62e76cb16 
					
						2017-08-17 21:27:08 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						e945f6e265 
					 
					
						
						
							
							Merge pull request  #955  from freechipsproject/fix-acquire-before-release  
						
						... 
						
						
						
						Fix acquire before release 
						
						
					 
					
						2017-08-13 18:29:58 -07:00 
						 
				 
			
				
					
						
							
							
								Megan Wachs 
							
						 
					 
					
						
						
							
						
						88332bd885 
					 
					
						
						
							
							max-core-cycles: Add a +max-core-cycles PlusArg  
						
						
						
						
					 
					
						2017-08-13 15:47:14 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						3cbc5262ec 
					 
					
						
						
							
							Don't permit new acquires until the release queue is drained  
						
						... 
						
						
						
						If the queue is not empty before a dirty miss, C could block D.
I haven't seen this in the wild, but it could happen because of
dirty probe responses backed up in the queue. 
						
						
					 
					
						2017-08-13 13:18:45 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						0190724492 
					 
					
						
						
							
							Actually use the C-channel acquire-before-release queue  
						
						... 
						
						
						
						oops... 
						
						
					 
					
						2017-08-13 13:03:35 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						7387f2a93a 
					 
					
						
						
							
							Don't block D-channel when handling a probe  
						
						... 
						
						
						
						This is an acquire-before-release regression. 
						
						
					 
					
						2017-08-12 16:13:24 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						604abd5b07 
					 
					
						
						
							
							Only report ECC errors when the RAM was actually read  
						
						
						
						
					 
					
						2017-08-12 15:28:03 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						18fb052fc9 
					 
					
						
						
							
							DRY  
						
						
						
						
					 
					
						2017-08-12 15:27:30 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						176110b6d3 
					 
					
						
						
							
							Don't trigger ECC writebacks when a release is in flight  
						
						
						
						
					 
					
						2017-08-12 15:23:57 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						0a591c5b5b 
					 
					
						
						
							
							Roll back use of UIntToOH1 ( #946 )  
						
						... 
						
						
						
						These appear to be equivalent, but the old one seems to fail in Vivado and
this one seems to pass.  This is not yet conclusive. 
						
						
					 
					
						2017-08-09 18:39:47 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						721770244e 
					 
					
						
						
							
							Fix IBuf bug  
						
						... 
						
						
						
						Don't examine a packet's xcpt signal if it might be invalid.  In this case,
the correct fix is to not examine xcpt at all; the deleted code was vestigial.
(Note, the other use of xcpt(j+1) in this code is indeed safe.) 
						
						
					 
					
						2017-08-09 09:47:51 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						809c7e8551 
					 
					
						
						
							
							Don't merge stores that manifest WAW hazards  
						
						... 
						
						
						
						The following sequence would drop the first store when eccBytes=4:
    sb x0, 0(t0)
    nop
    sb x0, 4(t0)
    nop
    sb x0, 1(t0)
Because the first and second store are to different ECC granules, the
hazard check correctly allowed the second one to proceed, but the third
was merged with the second, even though it conflicted with the first.
So, don't allow the third to be merged with the second, since the second
stored to a different ECC granule. 
						
						
					 
					
						2017-08-08 15:19:05 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						82e13443b2 
					 
					
						
						
							
							Merge pull request  #937  from freechipsproject/critical-paths  
						
						... 
						
						
						
						Perform tag error detectoin/correction in same cycle as RAM 
						
						
					 
					
						2017-08-08 15:03:28 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						7935c61c19 
					 
					
						
						
							
							Don't report to the DTIM that data is cacheable  
						
						... 
						
						
						
						Otherwise, it will attempt to perform AMOs where they're unsupported! 
						
						
					 
					
						2017-08-08 11:55:04 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						74d309c18e 
					 
					
						
						
							
							Make I vs. D a static property of TLB, not an input pin  
						
						... 
						
						
						
						The microarchitecture doesn't really support unified TLBs, so don't fake it. 
						
						
					 
					
						2017-08-08 11:54:47 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						e92981b0bd 
					 
					
						
						
							
							DRY  
						
						
						
						
					 
					
						2017-08-08 11:46:38 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						62ccba304c 
					 
					
						
						
							
							Perform tag error detectoin/correction in same cycle as RAM  
						
						... 
						
						
						
						The tag RAMs tend to be fast, so take up some of the slack.
This makes s2_nack faster. 
						
						
					 
					
						2017-08-08 10:21:30 -07:00 
						 
				 
			
				
					
						
							
							
								Palmer Dabbelt 
							
						 
					 
					
						
						
							
						
						6d1d285464 
					 
					
						
						
							
							Merge pull request  #933  from freechipsproject/cinst  
						
						... 
						
						
						
						Print out the compressed instruction when executing one 
						
						
					 
					
						2017-08-07 21:40:10 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						402907990c 
					 
					
						
						
							
							Revert "Remove one gate from D$ ECC check"  
						
						... 
						
						
						
						This reverts commit 7d94074b05 
						
						
					 
					
						2017-08-07 17:33:20 -07:00 
						 
				 
			
				
					
						
							
							
								Palmer Dabbelt 
							
						 
					 
					
						
						
							
						
						fc0d5fcf98 
					 
					
						
						
							
							Print out the compressed instruction when executing one  
						
						
						
						
					 
					
						2017-08-07 17:21:53 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						658e36f98b 
					 
					
						
						
							
							Reduce fanout on frontend io.cpu.req.valid signal  
						
						
						
						
					 
					
						2017-08-06 17:38:51 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						7d94074b05 
					 
					
						
						
							
							Remove one gate from D$ ECC check  
						
						... 
						
						
						
						The D$ corrects via writeback, so which word the error was in doesn't
matter, as the entire line is corrected. 
						
						
					 
					
						2017-08-06 17:36:53 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						83875e3a0c 
					 
					
						
						
							
							Only flush D$ on FENCE.I if it won't always be probed on I$ miss  
						
						
						
						
					 
					
						2017-08-05 14:22:40 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						991e16de92 
					 
					
						
						
							
							Remove probe address mux from TLB response path  
						
						
						
						
					 
					
						2017-08-05 12:57:38 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						b9b4142bb4 
					 
					
						
						
							
							Get s2_nack off the critical path  
						
						... 
						
						
						
						We were using it to compute the next PC on flush vs. replay (which require
PC+4 and PC, respectively).  This fix gets rid of the adder altogether by
reusing the M-stage PC in the flush case, which by construction holds PC+4. 
						
						
					 
					
						2017-08-05 00:30:36 -07:00 
						 
				 
			
				
					
						
							
							
								Andrew Waterman 
							
						 
					 
					
						
						
							
						
						6112adfbb0 
					 
					
						
						
							
							Get L2 TLB tag/parity check off the D$ arbitration path  
						
						
						
						
					 
					
						2017-08-04 17:01:51 -07:00