On Mon, Jun 19, 2017 at 1:17 PM, Andreas Fritiofson <
andreas.fritiof...@gmail.com> wrote:
Hi!
>
> On Mon, Jun 19, 2017 at 7:50 PM, Tim Newsome <t...@sifive.com> wrote:
>
>> I'm finally looking at this again. :-)
>>
>> SMP isn't quite the behavior I would like. Specifically, it would be nice
>> to halt/resume different cores independently, and hardware breakpoints are
>> also unique per core.
>>
>> To recap the problem:
>> On RISC-V multiple core use the same JTAG TAP. These cores will all be
>> RISC-V, but otherwise can vary arbitrarily (eg. one can be 32-bit, another
>> can be 64-bit, and they may even have different views of RAM).
>>
>
> That sounds more like a regular multi-target setup than one multi-core
> target. This would normally be handled with one target defined per core,
> one gdb server per core etc. They are all completely independent of each
> other, separate breakpoints and everything.
>
> Is there any reason you'd want to treat it as a single SMP target?
>
It comes down to user experience when using gdb. If different cores are
running different code, it feels natural to have different gdb sessions. If
they’re running the same executable, it feels more natural to have one gdb
session, and have each core exposed in a way that is similar to threads.
(I’d love info cores, core 2 commands in gdb.)
I’m looking at adding support for SMP, since that seems to be (code-wise)
the best-supported method within OpenOCD. Is there a description of the
scheme somewhere? I’m mostly curious about target->gdb_service->target,
what it contains and why it is sometimes set to NULL.
Thank you,
Tim
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel