Tim Newsome [Sun, 13 Mar 2016 01:50:32 +0000 (17:50 -0800)]
Flush icache when using swbps and report to gdb.
Tim Newsome [Fri, 11 Mar 2016 02:14:31 +0000 (18:14 -0800)]
Add very basic 'make check'.
The existing stuff all assumes you're writing your tests in C++.
Tim Newsome [Fri, 11 Mar 2016 01:57:23 +0000 (17:57 -0800)]
Make 'make check' not hang forever.
Tim Newsome [Thu, 10 Mar 2016 20:29:29 +0000 (12:29 -0800)]
Software breakpoints seem to work.
Tim Newsome [Thu, 10 Mar 2016 18:04:04 +0000 (10:04 -0800)]
Rewrite GPL'd code from OpenOCD.
Tim Newsome [Thu, 10 Mar 2016 02:48:20 +0000 (18:48 -0800)]
Looks like single step works.
Tim Newsome [Thu, 10 Mar 2016 01:16:26 +0000 (17:16 -0800)]
Add -H to start halted.
Tim Newsome [Wed, 9 Mar 2016 18:31:51 +0000 (10:31 -0800)]
Implement binary memory write.
Also set the simulation running again when gdb disconnects.
Tim Newsome [Wed, 9 Mar 2016 05:56:31 +0000 (21:56 -0800)]
Now you can halt/continue from gdb.
Tim Newsome [Wed, 9 Mar 2016 05:13:55 +0000 (21:13 -0800)]
Register read looks sane now.
Tim Newsome [Mon, 7 Mar 2016 23:44:20 +0000 (15:44 -0800)]
gdb can now read spike memory.
The endianness is wrong, but I think it might be that gdb doesn't have
it right. Need to investigate what architecture gdb thinks it's
debugging.
Tim Newsome [Mon, 7 Mar 2016 04:59:26 +0000 (20:59 -0800)]
Hack to the point where gdb reads a register.
Tim Newsome [Sun, 6 Mar 2016 01:35:06 +0000 (17:35 -0800)]
Listen on a socket for gdb to connect to.
So far it just listens, and gdb times out because it's not getting any
messages back.
Receive packets and verify their checksum.
Andrew Waterman [Sun, 22 May 2016 09:35:33 +0000 (02:35 -0700)]
Allow delegation of device interrupts
Garret Kelly [Sat, 21 May 2016 22:41:28 +0000 (18:41 -0400)]
htif: catch proper store exception (#44)
The sim's debug_mmu will generate a trap_load_access_fault if the load
fails, not a trap_store_access_fault. This doesn't materially affect
exection, but results in a nicer log message.
Andy Wright [Sat, 21 May 2016 20:39:21 +0000 (16:39 -0400)]
Some bugfixes for CSR reading and setting FS for fflags updates (#43)
* csrrc[i] and csrrs[i] don't write CSRs if rs/zimm == 0
* Dirty fp state when setting new fp exceptions
* Set FS to dirty for all non-zero fflags writes.
Tim Newsome [Thu, 19 May 2016 23:34:21 +0000 (16:34 -0700)]
Merge pull request #42 from csail-csg/master
Removed devicetree.h from riscv.mk.in since it no longer exists
acw1251 [Thu, 19 May 2016 20:17:57 +0000 (16:17 -0400)]
Removed devicetree.h from riscv.mk.in since it no longer exists
acw1251 [Mon, 16 May 2016 19:39:37 +0000 (15:39 -0400)]
Added missing header files to riscv.mk.in
Merges #40
Andrew Waterman [Mon, 2 May 2016 23:28:51 +0000 (16:28 -0700)]
Add back IPI support
Andrew Waterman [Mon, 2 May 2016 22:11:25 +0000 (15:11 -0700)]
Remove MIPI; mip.MSIP bit is read-only
Andrew Waterman [Mon, 2 May 2016 21:13:52 +0000 (14:13 -0700)]
Remove tohost/fromhost registers
Andrew Waterman [Sun, 1 May 2016 03:43:00 +0000 (20:43 -0700)]
Initialize mtvec to DEFAULT_MTVEC
Andrew Waterman [Sun, 1 May 2016 00:48:07 +0000 (17:48 -0700)]
Remove SCRs; add padding after config string
Andrew Waterman [Fri, 29 Apr 2016 20:48:56 +0000 (13:48 -0700)]
Move much closer to new platform-M memory map
Reset vector is at 0x1000; below that is reserved for debug
Memory is at 0x80000000
Andrew Waterman [Thu, 28 Apr 2016 22:17:28 +0000 (15:17 -0700)]
Add --dump-config-string flag
Andrew Waterman [Thu, 28 Apr 2016 22:01:09 +0000 (15:01 -0700)]
Remove MTIME[CMP]; add RTC device
Andrew Waterman [Wed, 20 Apr 2016 00:31:54 +0000 (17:31 -0700)]
Split ERET into URET, SRET, HRET, MRET
Andrew Waterman [Wed, 6 Apr 2016 17:20:24 +0000 (10:20 -0700)]
Remove non-standard uarch CSRs
Andrew Waterman [Sun, 3 Apr 2016 00:32:23 +0000 (17:32 -0700)]
Allow configuration of default ISA with --with-isa
Andrew Waterman [Thu, 17 Mar 2016 06:43:33 +0000 (23:43 -0700)]
Update definition of base field in misa register
Andrew Waterman [Fri, 4 Mar 2016 01:01:48 +0000 (17:01 -0800)]
Fix up interrupt delegation
Andrew Waterman [Tue, 1 Mar 2016 23:03:00 +0000 (15:03 -0800)]
Add counter-enable registers
Andrew Waterman [Tue, 1 Mar 2016 23:01:29 +0000 (15:01 -0800)]
Use RV config string rather than FDT
Andrew Waterman [Mon, 29 Feb 2016 07:51:53 +0000 (23:51 -0800)]
WIP on priv spec v1.9
Andrew Waterman [Mon, 29 Feb 2016 04:40:11 +0000 (20:40 -0800)]
New definitions of misa/marchid/mvendorid
Andrew Waterman [Fri, 19 Feb 2016 21:06:57 +0000 (13:06 -0800)]
implement PUM functionality
Andrew Waterman [Fri, 19 Feb 2016 21:05:50 +0000 (13:05 -0800)]
sptbr now a holds a PPN, not an address
Andrew Waterman [Fri, 12 Feb 2016 18:59:46 +0000 (10:59 -0800)]
Return to interactive mode after a trap
Andrew Waterman [Fri, 12 Feb 2016 18:59:34 +0000 (10:59 -0800)]
Use simpler MTVEC scheme
Andrew Waterman [Fri, 12 Feb 2016 18:58:43 +0000 (10:58 -0800)]
Fix ERET bug
Andrew Waterman [Tue, 9 Feb 2016 22:26:06 +0000 (14:26 -0800)]
Zero-extend all CSR writes
This fixes an RV32 HTIF issue.
Andrew Waterman [Tue, 9 Feb 2016 07:29:41 +0000 (23:29 -0800)]
Fix ERET serialization strategy
It was screwing up the commit log.
Andrew Waterman [Mon, 8 Feb 2016 01:24:59 +0000 (17:24 -0800)]
Add autoconf check for little-endianness
Andrew Waterman [Mon, 8 Feb 2016 01:05:21 +0000 (17:05 -0800)]
Set default RV32 RAM size to 4 GiB - 256 MiB
This allows, by default, 256 MiB of addressable I/O space.
Andrew Waterman [Mon, 8 Feb 2016 01:04:28 +0000 (17:04 -0800)]
Serialize simulator on ERET
This guarantees interrupts will eventually be taken.
Andrew Waterman [Sat, 6 Feb 2016 02:18:06 +0000 (18:18 -0800)]
WIP on priv spec v1.9
Andrew Waterman [Sat, 6 Feb 2016 02:17:56 +0000 (18:17 -0800)]
Compile debug symbols
Andrew Waterman [Wed, 2 Mar 2016 20:13:55 +0000 (12:13 -0800)]
Mark SoftFloat routines static inline
This avoids duplicate definitions on some platforms.
Andrew Waterman [Wed, 2 Mar 2016 00:24:05 +0000 (16:24 -0800)]
Upgrade to latest SoftFloat
Andrew Waterman [Thu, 4 Feb 2016 07:38:29 +0000 (23:38 -0800)]
Actually refill ITLB on ITLB miss
oops.
Andrew Waterman [Sat, 30 Jan 2016 01:54:20 +0000 (17:54 -0800)]
Fix NaN propagation for fcvt
Andrew Waterman [Sun, 24 Jan 2016 08:01:04 +0000 (00:01 -0800)]
Remove hwacha support
Support for hwacha will continue on the ESP branch (see
https://github.com/ucb-bar/esp-isa-sim).
Andrew Waterman [Wed, 13 Jan 2016 00:13:20 +0000 (16:13 -0800)]
Use new NaN discipline
Andrew Waterman [Wed, 13 Jan 2016 00:12:21 +0000 (16:12 -0800)]
don't ignore data value when writing MIPI
Andrew Waterman [Tue, 5 Jan 2016 18:36:25 +0000 (10:36 -0800)]
fix help message
Scott Beamer [Thu, 17 Dec 2015 20:27:07 +0000 (12:27 -0800)]
another osx clang compatability fix
Andrew Waterman [Fri, 20 Nov 2015 03:00:14 +0000 (19:00 -0800)]
C.ADDIW is reserved for rd=0
Andrew Waterman [Fri, 13 Nov 2015 01:51:46 +0000 (17:51 -0800)]
Generate device tree for target machine
Andrew Waterman [Thu, 29 Oct 2015 20:08:32 +0000 (13:08 -0700)]
Access FP regs through a macro
This makes it easier to hook into them.
Andrew Waterman [Thu, 5 Nov 2015 08:27:42 +0000 (00:27 -0800)]
Merge pull request #34 from zizztux/incorrect_int_reg_count
Fix incorrect upper limit for loop on interactive int register display.
SeungRyeol Lee [Wed, 28 Oct 2015 06:59:10 +0000 (15:59 +0900)]
Fix incorrect upper limit for loop on interactive int register display.
Andrew Waterman [Mon, 26 Oct 2015 20:07:30 +0000 (13:07 -0700)]
Fix histogram for RVC
No need to right-shift PC by 2. It's a map, so this is a false economy.
Andrew Waterman [Tue, 20 Oct 2015 22:58:13 +0000 (15:58 -0700)]
Update to hopefully final RVC 1.9 encoding
Andrew Waterman [Tue, 13 Oct 2015 16:42:36 +0000 (09:42 -0700)]
Fix --dc flag
Resolves #33.
Andrew Waterman [Tue, 6 Oct 2015 07:51:27 +0000 (00:51 -0700)]
RVC encoding tweak
Andrew Waterman [Tue, 6 Oct 2015 04:24:01 +0000 (21:24 -0700)]
more work towards RVC 1.8
Andrew Waterman [Fri, 2 Oct 2015 19:23:24 +0000 (12:23 -0700)]
work towards rvc 1.8
Andrew Waterman [Fri, 2 Oct 2015 18:39:09 +0000 (11:39 -0700)]
clean up shift instruction implementation
Andrew Waterman [Fri, 25 Sep 2015 01:09:26 +0000 (18:09 -0700)]
Refactor memory access code; add MMIO support
Of course, it doesn't do anything yet.
Andrew Waterman [Thu, 24 Sep 2015 21:40:40 +0000 (14:40 -0700)]
Use enum instead of two bools to denote memory access type
Scott Beamer [Wed, 16 Sep 2015 00:43:37 +0000 (17:43 -0700)]
commit log now correctly prints privilege
adopting convention of privilege at time of commit, not after commit
Christopher Celio [Tue, 15 Sep 2015 22:05:11 +0000 (15:05 -0700)]
Zero-extend flw, fmv_s_x instructions
- This makes Spike more consistent with its zero-extending behavior
regarding other SP operations when placed into the 64b f-registers.
Scott Beamer [Sat, 12 Sep 2015 01:04:37 +0000 (18:04 -0700)]
print out current privilege level (if commit log enabled)
Scott Beamer [Sat, 12 Sep 2015 01:01:11 +0000 (18:01 -0700)]
print out commit log (if enabled) for all privilege levels
Andrew Waterman [Fri, 11 Sep 2015 22:13:52 +0000 (15:13 -0700)]
Simplify register_base_instructions
Andrew Waterman [Fri, 11 Sep 2015 22:13:26 +0000 (15:13 -0700)]
Initialize mstatus.prv1/prv2 to U, not S
This doesn't really matter, but it matches Rocket.
Andrew Waterman [Fri, 11 Sep 2015 22:13:08 +0000 (15:13 -0700)]
Support 'G' in ISA strings
It's the same as IMAFD.
Andrew Waterman [Fri, 11 Sep 2015 22:05:32 +0000 (15:05 -0700)]
Merge pull request #32 from riscv/insn-list
Eliminate non-portable sed usage
Albert Ou [Fri, 11 Sep 2015 00:01:59 +0000 (17:01 -0700)]
Fix non-portable sed commands generating insn_list.h
Andrew Waterman [Tue, 8 Sep 2015 22:09:23 +0000 (15:09 -0700)]
Improve instruction fetch
- Performance for variable-length instructions is much better
- Refill is simpler and faster
- Support for instructions with overlapping opcodes (e.g. C.ADD + C.JALR)
Andrew Waterman [Tue, 8 Sep 2015 22:05:31 +0000 (15:05 -0700)]
Add facility to instrument specific opcodes
It's not ideal, because it requires modifying tracer.h. A more general
facility would allow overriding the instruction execution function for
a given opcode dynamically.
Andrew Waterman [Tue, 8 Sep 2015 22:03:03 +0000 (15:03 -0700)]
Refer to LICENSE in some newer source files
Andrew Waterman [Fri, 4 Sep 2015 20:39:42 +0000 (13:39 -0700)]
Move towards RVC v1.8
Andrew Waterman [Wed, 2 Sep 2015 20:36:10 +0000 (13:36 -0700)]
Don't automatically run autoconf
Run it yourself if you modify configure.ac, and commit the configure script.
Andrew Waterman [Thu, 6 Aug 2015 22:59:08 +0000 (15:59 -0700)]
Merge pull request #29 from pmundkur/devel
Enable execution log generation in non-interactive mode.
Prashanth Mundkur [Thu, 6 Aug 2015 21:57:07 +0000 (14:57 -0700)]
Add an option (-l) to display a log of execution in non-interactive mode.
Interactive (-d) mode overrides this option when both are specified.
Christopher Celio [Thu, 30 Jul 2015 20:08:46 +0000 (13:08 -0700)]
Added error message when trying to use histogram
Christopher Celio [Tue, 21 Jul 2015 19:45:17 +0000 (12:45 -0700)]
Update README.md for freg info
Andrew Waterman [Wed, 15 Jul 2015 17:57:11 +0000 (12:57 -0500)]
Merge pull request #28 from sbeamer/master
fixes clang warning (#26)
Scott Beamer [Mon, 13 Jul 2015 23:17:13 +0000 (16:17 -0700)]
simplified default case and added comments
Andrew Waterman [Sat, 11 Jul 2015 03:16:34 +0000 (22:16 -0500)]
Merge pull request #27 from sbeamer/master
fix clang compile error
Scott Beamer [Sat, 11 Jul 2015 02:38:22 +0000 (19:38 -0700)]
fix clang compile error
Andrew Waterman [Sun, 5 Jul 2015 23:47:20 +0000 (16:47 -0700)]
New machine-mode timer facility
Andrew Waterman [Sat, 6 Jun 2015 02:00:16 +0000 (19:00 -0700)]
Merge pull request #25 from vapier/master
few more interactive cleanups and more functionality
Mike Frysinger [Fri, 5 Jun 2015 13:17:19 +0000 (21:17 +0800)]
allow interactive "reg" command to dump all registers
It you want to scan all the registers at once (or at least a few), having
to dump them one by one is kind of a pain. Change the behavior so that if
the register number is omitted, it'll dump all of them.
Mike Frysinger [Fri, 5 Jun 2015 13:13:04 +0000 (21:13 +0800)]
add an interactive "pc" command
This lets you show the current pc quickly. Sometimes when displaying
different state you can lose track of what the pc was. Add a simple
command that plumbs in the existing functions to the user interface.
Mike Frysinger [Fri, 5 Jun 2015 13:06:52 +0000 (21:06 +0800)]
unify interactive core processing
Different functions in here process the core argument in different ways.
Unify all of them with a utility function.
Andrew Waterman [Thu, 4 Jun 2015 23:06:47 +0000 (16:06 -0700)]
Merge pull request #24 from vapier/master
improve interactive behavior a bit more
Mike Frysinger [Thu, 4 Jun 2015 16:04:52 +0000 (00:04 +0800)]
add aliases for common interactive functions
Rather than using one letter commands everywhere, add support for "run"
and "quit" and "help" as aliases to "r" and "q" and "h" respectively.
This makes it a little inconsistent when some commands are one letters
but others are full words.