Tim Newsome [Sun, 13 Mar 2016 22:39:08 +0000 (15:39 -0700)]
Implement reading of CSRs.
Tim Newsome [Sun, 13 Mar 2016 20:13:15 +0000 (13:13 -0700)]
Add some tests that pass and test something.
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.