Commit Graph

7379 Commits

Author SHA1 Message Date
Palmer Dabbelt 4af702c9c4 stw 2017-04-14 19:55:32 -07:00
Palmer Dabbelt 763e5cb44c memoize 2017-04-14 17:44:47 -07:00
Palmer Dabbelt 6c74c1c6f3 runs hart0 2017-04-14 17:25:50 -07:00
Palmer Dabbelt 79fb51fe7b read byte 2017-04-14 16:23:29 -07:00
Palmer Dabbelt 9a04773c75 endian 2017-04-14 16:23:16 -07:00
Palmer Dabbelt 62659905ca regaddr 2017-04-14 16:22:56 -07:00
Palmer Dabbelt 02012f2604 fence.i 2017-04-14 14:34:01 -07:00
Palmer Dabbelt 747f769f7d unhalt 2017-04-14 14:19:40 -07:00
Palmer Dabbelt 57d08889ce later 2017-04-14 14:17:27 -07:00
Palmer Dabbelt d652e6ea16 off by one 2017-04-13 22:11:07 -07:00
Palmer Dabbelt 22d102e3c1 Fix a buffer overflow 2017-04-13 18:52:11 -07:00
Palmer Dabbelt 98df29b8d1 Check for step 2017-04-13 17:22:59 -07:00
Palmer Dabbelt e481524362 Replace the 0.13-specific "program_t" with a generic one
This new version changes how we handle temporary registers: rather than
tracking them by hand (like in the old code), they're now tracked as
part of assembling programs.  The register save/restore assertion that
used to fire all the time no longer exists.
2017-04-13 14:37:20 -07:00
mwachs5 0e54044ac7 Remove Off By 1 FIXME because HW is fixed 2017-04-10 14:24:02 -07:00
Palmer Dabbelt 3c5cb81a09 Implement the "vCont" GDB packet 2017-04-07 18:32:54 -07:00
Megan Wachs ad157ec0f6 typo in comment 2017-04-07 15:43:23 -07:00
Palmer Dabbelt a4d3a8d415 Determine the trigger count dynamically 2017-04-07 15:26:24 -07:00
Palmer Dabbelt dd4677c3df Determine the hart count dynamically
This assumes that v0.11 targets have one hart, and that v0.13 targets
have harts IDs that start at 0 and are concecutive.
2017-04-07 15:26:17 -07:00
Palmer Dabbelt 74095335dc Call riscv_xlen() to support 32-bit FESPI targets 2017-04-06 15:23:45 -07:00
Palmer Dabbelt d0fcbc9b51 Add a RISC-V RTOS, which natievly supports multiple harts
This is a work in progress, but it's at the point where you can actually
debug multi-hart programs now.
2017-04-06 15:23:40 -07:00
Megan Wachs 7203102c25 Merge pull request #28 from sifive/readmem_autoexec
Readmem autoexec
2017-04-04 22:27:52 -07:00
Megan Wachs 14e26040b8 riscv: move value read to after autoexec is cleared. 2017-04-04 16:33:17 -07:00
Megan Wachs 9c1f6ea28b riscv: Correct the autoexec in read_mem 2017-04-04 16:22:55 -07:00
Palmer Dabbelt 69a8273da5 Merge pull request #23 from sifive/w1-to-clear-cmderr
riscv: Use write-1-to-clear for CMDERR, not write 0 to clear.
2017-03-30 15:10:56 -07:00
Megan Wachs eb90a5e05e riscv: Use write-1-to-clear for CMDERR, not write 0 to clear. 2017-03-30 14:27:28 -07:00
Palmer Dabbelt 7df6804934 Revert "(WIP) Force algorithms to 64 bit"
This reverts commit 466b7b4881.
2017-03-23 19:46:54 -07:00
Palmer Dabbelt 466b7b4881 (WIP) Force algorithms to 64 bit 2017-03-23 19:21:02 -07:00
Palmer Dabbelt ae51b92480 some device 2017-03-23 14:51:30 -07:00
Palmer Dabbelt 03fa9d22c4 Don't set abstractauto at the start 2017-03-23 14:50:40 -07:00
Palmer Dabbelt 84fa7aa916 Merge pull request #21 from sifive/read_memory_retry
Read memory retry
2017-03-22 18:00:44 -07:00
Megan Wachs a7499161e0 Merge remote-tracking branch 'origin/riscv' into read_memory_retry 2017-03-22 17:53:23 -07:00
Megan Wachs c61b3efe9a riscv: Retry failed memory reads 2017-03-22 17:51:46 -07:00
Palmer Dabbelt 5f9cc2ce5f Turn off autoexec after read_memory() 2017-03-22 14:28:39 -07:00
Megan Wachs 98420e377a riscv: add missing variable declaration. 2017-03-21 23:47:21 -07:00
Palmer Dabbelt 09da0c812f Clear autoexec correctly 2017-03-21 17:20:11 -07:00
Palmer Dabbelt 6033850415 Wrong autoexec 2017-03-21 17:20:11 -07:00
Palmer Dabbelt 0c790d385d Builds 2017-03-21 17:20:11 -07:00
Megan Wachs c09ccbcc7c Merge pull request #20 from sifive/delay_after_autoexec
riscv-v13: wait for idle in read_memory
2017-03-21 13:18:26 -07:00
Megan Wachs a70e628620 riscv-v13: wait for idle in read_memory
read_memory was doing autoexec-initialized commands, but wasn't using
ac_busy_delay to add delay or wait between the commands. This isn't the optimal
solution, but the whole read_memory sequence needs to be made more efficient
anyway, so this was the quick and dirty solution.
2017-03-15 17:23:21 -07:00
Tim Newsome bb39d3b17e Remove more cruft.
Change-Id: I24d545cc259927301851fad446f812e95fd1c557
2017-02-27 20:27:07 -08:00
Tim Newsome 8785b256cb Merge pull request #18 from sifive/halt_correctly
riscv: Ensure that hart is halted before attempting to examine it.
2017-02-27 20:17:42 -08:00
Megan Wachs 7f13e90505 riscv: Ensure that hart is halted before attempting to examine it. 2017-02-27 18:53:50 -08:00
Tim Newsome b4d38d0997 Remove cruft.
Change-Id: I3a370aa3a478ab84c9b2afff7b3f581bd7dc5e06
2017-02-25 10:40:56 -08:00
Tim Newsome 6f1a498ab9 Use DCSR constants from the debug spec.
Replace the constants with the ones from the ISA spec, since those are
not updated as often.

Also delete a bunch of old code.

Change-Id: I9201b1455d64a9d2d203bb362fefaa68cbf35aeb
2017-02-25 10:34:46 -08:00
Tim Newsome 8f6ddc92e8 Update bits to latest spec.
Change-Id: Ib09e1da81c6c0e7c9c6b69e9fe31eda20e3cd6e0
2017-02-25 10:17:27 -08:00
Tim Newsome 3bd661b679 Speed things up by ignoring return values.
The remote bitbang implementation is really slow when reading back data.
During many operations, like writing a block of memory, we don't need to
see the return data. By communicating this to the lower layers, we get
huge speedups. Downloads to spike now are 295KB/s.

That means the gdbserver.py download test now runs to completion,
unfortunately it fails. Everything else is still passing, though, so I'm
committing this change.

Change-Id: I44cc9db1ade0908c1a12d09b23fc8e529a802d88
2017-02-22 16:04:36 -08:00
Tim Newsome f9168b09d0 Optimize memory write code, used in download.
To spike now we download at 5KB/s. But in real hardware performance
should be pretty OK now.

Change-Id: Ie6086cf156c9a00ac55400870346e27b28e3c755
2017-02-21 20:31:50 -08:00
Tim Newsome 4e8cf4aeb5 Better error checking in memory access.
Change-Id: I985afa433a09f833137f2e244b7eaad2630f6b1a
2017-02-20 17:53:18 -08:00
Tim Newsome aba0c0973d Properly restore s0 and s1 on resume.
Now 33/39 of the gdbserver tests pass!

Change-Id: I0cb38fbbcdc2c037ff0ec77229e79f24fa021663
2017-02-20 15:47:31 -08:00
Tim Newsome 3173314f28 Fix access FPU registers again.
Not a great fix. There's still a problem with accessing 64-bit floating
point registers on 32-bit cores.
24 of the gdbserver.py tests pass now.

Change-Id: I69a88ef5fd5581e2c7bf1d78057fd474ae86ff93
2017-02-17 19:03:32 -08:00