riscv-isa-sim.git
7 years agoDocument attaching with gdb.
Tim Newsome [Sat, 19 Mar 2016 20:39:41 +0000 (13:39 -0700)]
Document attaching with gdb.

7 years agoAdd --gdb-port
Tim Newsome [Sat, 19 Mar 2016 20:33:58 +0000 (13:33 -0700)]
Add --gdb-port

It's necessary to be able to run multiple spikes at once on the same
box.

7 years agoDo a better job checking CSR functionality.
Tim Newsome [Thu, 17 Mar 2016 19:51:58 +0000 (12:51 -0700)]
Do a better job checking CSR functionality.

7 years agoRename gdbserver-smoke.py to gdbserver.py.
Tim Newsome [Wed, 16 Mar 2016 18:07:50 +0000 (11:07 -0700)]
Rename gdbserver-smoke.py to gdbserver.py.

It's not really a smoketest anymore.

7 years agoTest 'info registers all' as well as 'info all-registers'
Tim Newsome [Wed, 16 Mar 2016 18:02:52 +0000 (11:02 -0700)]
Test 'info registers all' as well as 'info all-registers'

7 years agoMinor cleanup.
Tim Newsome [Tue, 15 Mar 2016 23:15:53 +0000 (16:15 -0700)]
Minor cleanup.

7 years agoUpdate regnum handling to match gdb CSR changes.
Tim Newsome [Tue, 15 Mar 2016 20:50:17 +0000 (13:50 -0700)]
Update regnum handling to match gdb CSR changes.

7 years agoForgot to add this source.
Tim Newsome [Mon, 14 Mar 2016 20:39:47 +0000 (13:39 -0700)]
Forgot to add this source.

7 years agoTreat warnings as errors.
Tim Newsome [Mon, 14 Mar 2016 20:29:53 +0000 (13:29 -0700)]
Treat warnings as errors.

The code compiles cleanly right now. Let's keep it that way.

7 years agoImplement register writes.
Tim Newsome [Mon, 14 Mar 2016 18:54:29 +0000 (11:54 -0700)]
Implement register writes.

7 years agoProperly clean up spike.
Tim Newsome [Sun, 13 Mar 2016 23:23:59 +0000 (16:23 -0700)]
Properly clean up spike.

7 years agoImplement reading of CSRs.
Tim Newsome [Sun, 13 Mar 2016 22:39:08 +0000 (15:39 -0700)]
Implement reading of CSRs.

7 years agoAdd some tests that pass and test something.
Tim Newsome [Sun, 13 Mar 2016 20:13:15 +0000 (13:13 -0700)]
Add some tests that pass and test something.

7 years agoFlush icache when using swbps and report to gdb.
Tim Newsome [Sun, 13 Mar 2016 01:50:32 +0000 (17:50 -0800)]
Flush icache when using swbps and report to gdb.

7 years agoAdd very basic 'make check'.
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++.

7 years agoMake 'make check' not hang forever.
Tim Newsome [Fri, 11 Mar 2016 01:57:23 +0000 (17:57 -0800)]
Make 'make check' not hang forever.

7 years agoSoftware breakpoints seem to work.
Tim Newsome [Thu, 10 Mar 2016 20:29:29 +0000 (12:29 -0800)]
Software breakpoints seem to work.

7 years agoRewrite GPL'd code from OpenOCD.
Tim Newsome [Thu, 10 Mar 2016 18:04:04 +0000 (10:04 -0800)]
Rewrite GPL'd code from OpenOCD.

7 years agoLooks like single step works.
Tim Newsome [Thu, 10 Mar 2016 02:48:20 +0000 (18:48 -0800)]
Looks like single step works.

7 years agoAdd -H to start halted.
Tim Newsome [Thu, 10 Mar 2016 01:16:26 +0000 (17:16 -0800)]
Add -H to start halted.

7 years agoImplement binary memory write.
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.

7 years agoNow you can halt/continue from gdb.
Tim Newsome [Wed, 9 Mar 2016 05:56:31 +0000 (21:56 -0800)]
Now you can halt/continue from gdb.

7 years agoRegister read looks sane now.
Tim Newsome [Wed, 9 Mar 2016 05:13:55 +0000 (21:13 -0800)]
Register read looks sane now.

7 years agogdb can now read spike memory.
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.

7 years agoHack to the point where gdb reads a register.
Tim Newsome [Mon, 7 Mar 2016 04:59:26 +0000 (20:59 -0800)]
Hack to the point where gdb reads a register.

7 years agoListen on a socket for gdb to connect to.
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.

7 years agoAllow delegation of device interrupts
Andrew Waterman [Sun, 22 May 2016 09:35:33 +0000 (02:35 -0700)]
Allow delegation of device interrupts

7 years agohtif: catch proper store exception (#44)
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.

7 years agoSome bugfixes for CSR reading and setting FS for fflags updates (#43)
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.

7 years agoMerge pull request #42 from csail-csg/master
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

7 years agoRemoved 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

7 years agoAdded missing header files to riscv.mk.in
acw1251 [Mon, 16 May 2016 19:39:37 +0000 (15:39 -0400)]
Added missing header files to riscv.mk.in

Merges #40

8 years agoAdd back IPI support
Andrew Waterman [Mon, 2 May 2016 23:28:51 +0000 (16:28 -0700)]
Add back IPI support

8 years agoRemove MIPI; mip.MSIP bit is read-only
Andrew Waterman [Mon, 2 May 2016 22:11:25 +0000 (15:11 -0700)]
Remove MIPI; mip.MSIP bit is read-only

8 years agoRemove tohost/fromhost registers
Andrew Waterman [Mon, 2 May 2016 21:13:52 +0000 (14:13 -0700)]
Remove tohost/fromhost registers

8 years agoInitialize mtvec to DEFAULT_MTVEC
Andrew Waterman [Sun, 1 May 2016 03:43:00 +0000 (20:43 -0700)]
Initialize mtvec to DEFAULT_MTVEC

8 years agoRemove SCRs; add padding after config string
Andrew Waterman [Sun, 1 May 2016 00:48:07 +0000 (17:48 -0700)]
Remove SCRs; add padding after config string

8 years agoMove much closer to new platform-M memory map
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

8 years agoAdd --dump-config-string flag
Andrew Waterman [Thu, 28 Apr 2016 22:17:28 +0000 (15:17 -0700)]
Add --dump-config-string flag

8 years agoRemove MTIME[CMP]; add RTC device
Andrew Waterman [Thu, 28 Apr 2016 22:01:09 +0000 (15:01 -0700)]
Remove MTIME[CMP]; add RTC device

8 years agoSplit ERET into URET, SRET, HRET, MRET
Andrew Waterman [Wed, 20 Apr 2016 00:31:54 +0000 (17:31 -0700)]
Split ERET into URET, SRET, HRET, MRET

8 years agoRemove non-standard uarch CSRs
Andrew Waterman [Wed, 6 Apr 2016 17:20:24 +0000 (10:20 -0700)]
Remove non-standard uarch CSRs

8 years agoAllow configuration of default ISA with --with-isa
Andrew Waterman [Sun, 3 Apr 2016 00:32:23 +0000 (17:32 -0700)]
Allow configuration of default ISA with --with-isa

8 years agoUpdate definition of base field in misa register
Andrew Waterman [Thu, 17 Mar 2016 06:43:33 +0000 (23:43 -0700)]
Update definition of base field in misa register

8 years agoFix up interrupt delegation
Andrew Waterman [Fri, 4 Mar 2016 01:01:48 +0000 (17:01 -0800)]
Fix up interrupt delegation

8 years agoAdd counter-enable registers
Andrew Waterman [Tue, 1 Mar 2016 23:03:00 +0000 (15:03 -0800)]
Add counter-enable registers

8 years agoUse RV config string rather than FDT
Andrew Waterman [Tue, 1 Mar 2016 23:01:29 +0000 (15:01 -0800)]
Use RV config string rather than FDT

8 years agoWIP on priv spec v1.9
Andrew Waterman [Mon, 29 Feb 2016 07:51:53 +0000 (23:51 -0800)]
WIP on priv spec v1.9

8 years agoNew definitions of misa/marchid/mvendorid
Andrew Waterman [Mon, 29 Feb 2016 04:40:11 +0000 (20:40 -0800)]
New definitions of misa/marchid/mvendorid

8 years agoimplement PUM functionality
Andrew Waterman [Fri, 19 Feb 2016 21:06:57 +0000 (13:06 -0800)]
implement PUM functionality

8 years agosptbr now a holds a PPN, not an address
Andrew Waterman [Fri, 19 Feb 2016 21:05:50 +0000 (13:05 -0800)]
sptbr now a holds a PPN, not an address

8 years agoReturn to interactive mode after a trap
Andrew Waterman [Fri, 12 Feb 2016 18:59:46 +0000 (10:59 -0800)]
Return to interactive mode after a trap

8 years agoUse simpler MTVEC scheme
Andrew Waterman [Fri, 12 Feb 2016 18:59:34 +0000 (10:59 -0800)]
Use simpler MTVEC scheme

8 years agoFix ERET bug
Andrew Waterman [Fri, 12 Feb 2016 18:58:43 +0000 (10:58 -0800)]
Fix ERET bug

8 years agoZero-extend all CSR writes
Andrew Waterman [Tue, 9 Feb 2016 22:26:06 +0000 (14:26 -0800)]
Zero-extend all CSR writes

This fixes an RV32 HTIF issue.

8 years agoFix ERET serialization strategy
Andrew Waterman [Tue, 9 Feb 2016 07:29:41 +0000 (23:29 -0800)]
Fix ERET serialization strategy

It was screwing up the commit log.

8 years agoAdd autoconf check for little-endianness
Andrew Waterman [Mon, 8 Feb 2016 01:24:59 +0000 (17:24 -0800)]
Add autoconf check for little-endianness

8 years agoSet default RV32 RAM size to 4 GiB - 256 MiB
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.

8 years agoSerialize simulator on ERET
Andrew Waterman [Mon, 8 Feb 2016 01:04:28 +0000 (17:04 -0800)]
Serialize simulator on ERET

This guarantees interrupts will eventually be taken.

8 years agoWIP on priv spec v1.9
Andrew Waterman [Sat, 6 Feb 2016 02:18:06 +0000 (18:18 -0800)]
WIP on priv spec v1.9

8 years agoCompile debug symbols
Andrew Waterman [Sat, 6 Feb 2016 02:17:56 +0000 (18:17 -0800)]
Compile debug symbols

8 years agoMark SoftFloat routines static inline
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.

8 years agoUpgrade to latest SoftFloat
Andrew Waterman [Wed, 2 Mar 2016 00:24:05 +0000 (16:24 -0800)]
Upgrade to latest SoftFloat

8 years agoActually refill ITLB on ITLB miss
Andrew Waterman [Thu, 4 Feb 2016 07:38:29 +0000 (23:38 -0800)]
Actually refill ITLB on ITLB miss

oops.

8 years agoFix NaN propagation for fcvt
Andrew Waterman [Sat, 30 Jan 2016 01:54:20 +0000 (17:54 -0800)]
Fix NaN propagation for fcvt

8 years agoRemove hwacha support
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).

8 years agoUse new NaN discipline
Andrew Waterman [Wed, 13 Jan 2016 00:13:20 +0000 (16:13 -0800)]
Use new NaN discipline

8 years agodon't ignore data value when writing MIPI
Andrew Waterman [Wed, 13 Jan 2016 00:12:21 +0000 (16:12 -0800)]
don't ignore data value when writing MIPI

8 years agofix help message
Andrew Waterman [Tue, 5 Jan 2016 18:36:25 +0000 (10:36 -0800)]
fix help message

8 years agoanother osx clang compatability fix
Scott Beamer [Thu, 17 Dec 2015 20:27:07 +0000 (12:27 -0800)]
another osx clang compatability fix

8 years agoC.ADDIW is reserved for rd=0
Andrew Waterman [Fri, 20 Nov 2015 03:00:14 +0000 (19:00 -0800)]
C.ADDIW is reserved for rd=0

8 years agoGenerate device tree for target machine
Andrew Waterman [Fri, 13 Nov 2015 01:51:46 +0000 (17:51 -0800)]
Generate device tree for target machine

8 years agoAccess FP regs through a macro
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.

8 years agoMerge pull request #34 from zizztux/incorrect_int_reg_count
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.

8 years agoFix 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.

8 years agoFix histogram for RVC
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.

8 years agoUpdate to hopefully final RVC 1.9 encoding
Andrew Waterman [Tue, 20 Oct 2015 22:58:13 +0000 (15:58 -0700)]
Update to hopefully final RVC 1.9 encoding

8 years agoFix --dc flag
Andrew Waterman [Tue, 13 Oct 2015 16:42:36 +0000 (09:42 -0700)]
Fix --dc flag

Resolves #33.

8 years agoRVC encoding tweak
Andrew Waterman [Tue, 6 Oct 2015 07:51:27 +0000 (00:51 -0700)]
RVC encoding tweak

8 years agomore work towards RVC 1.8
Andrew Waterman [Tue, 6 Oct 2015 04:24:01 +0000 (21:24 -0700)]
more work towards RVC 1.8

8 years agowork towards rvc 1.8
Andrew Waterman [Fri, 2 Oct 2015 19:23:24 +0000 (12:23 -0700)]
work towards rvc 1.8

8 years agoclean up shift instruction implementation
Andrew Waterman [Fri, 2 Oct 2015 18:39:09 +0000 (11:39 -0700)]
clean up shift instruction implementation

8 years agoRefactor memory access code; add MMIO support
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.

8 years agoUse enum instead of two bools to denote memory access type
Andrew Waterman [Thu, 24 Sep 2015 21:40:40 +0000 (14:40 -0700)]
Use enum instead of two bools to denote memory access type

8 years agocommit log now correctly prints privilege
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

8 years agoZero-extend flw, fmv_s_x instructions
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.

8 years agoprint out current privilege level (if commit log enabled)
Scott Beamer [Sat, 12 Sep 2015 01:04:37 +0000 (18:04 -0700)]
print out current privilege level (if commit log enabled)

8 years agoprint out commit log (if enabled) for all privilege levels
Scott Beamer [Sat, 12 Sep 2015 01:01:11 +0000 (18:01 -0700)]
print out commit log (if enabled) for all privilege levels

8 years agoSimplify register_base_instructions
Andrew Waterman [Fri, 11 Sep 2015 22:13:52 +0000 (15:13 -0700)]
Simplify register_base_instructions

8 years agoInitialize mstatus.prv1/prv2 to U, not S
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.

8 years agoSupport 'G' in ISA strings
Andrew Waterman [Fri, 11 Sep 2015 22:13:08 +0000 (15:13 -0700)]
Support 'G' in ISA strings

It's the same as IMAFD.

8 years agoMerge pull request #32 from riscv/insn-list
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

8 years agoFix non-portable sed commands generating insn_list.h
Albert Ou [Fri, 11 Sep 2015 00:01:59 +0000 (17:01 -0700)]
Fix non-portable sed commands generating insn_list.h

8 years agoImprove instruction fetch
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)

8 years agoAdd facility to instrument specific opcodes
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.

8 years agoRefer to LICENSE in some newer source files
Andrew Waterman [Tue, 8 Sep 2015 22:03:03 +0000 (15:03 -0700)]
Refer to LICENSE in some newer source files

8 years agoMove towards RVC v1.8
Andrew Waterman [Fri, 4 Sep 2015 20:39:42 +0000 (13:39 -0700)]
Move towards RVC v1.8

8 years agoDon't automatically run autoconf
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.

8 years agoMerge pull request #29 from pmundkur/devel
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.

8 years agoAdd an option (-l) to display a log of execution 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.