linux-riscv.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Vincent Chen <vincent.chen@sifive.com>
To: paul.walmsley@sifive.com, palmer@dabbelt.com
Cc: Vincent Chen <vincent.chen@sifive.com>, linux-riscv@lists.infradead.org
Subject: [PATCH 0/5] riscv: Add KGDB and KDB support
Date: Tue,  3 Mar 2020 16:44:36 +0800	[thread overview]
Message-ID: <1583225076-25979-1-git-send-email-vincent.chen@sifive.com> (raw)

This patch set implements required ports to enable RISC-V kernel to support
KGDB and KDB features. Because there is no immediate value in the RISC-V
trap instruction, the kernel cannot identify the purpose of each trap
exception through the opcode. This makes the existing identification
schemes in other architecture unsuitable for the RISC-V kernel. In order
to solve this problem, this patch adds the kgdb_has_hit_break() to kgdb.c
to help the RISC-V kernel identify the KGDB trap exception. In addition,
the XML target description was introduced in this patch set to enable KGDB
to report the contents of the status, cause and steal registers.
 
This patchset has passed the kgdbts test suite provided by Linux kernel on
HiFive unleashed board and QEMU.

Vincent Chen (5):
  kgdb: Add kgdb_has_hit_break function
  riscv: Add KGDB support
  kgdb: enable arch to handle more query packets
  riscv: Use the XML target descriptions to support system registers
    report
  riscv: Add SW single-step support for KDB

 arch/riscv/Kconfig               |   1 +
 arch/riscv/include/asm/Kbuild    |   1 -
 arch/riscv/include/asm/gdb_xml.h |  60 +++++
 arch/riscv/include/asm/kdebug.h  |  12 +
 arch/riscv/include/asm/kgdb.h    |  74 +++++++
 arch/riscv/kernel/Makefile       |   1 +
 arch/riscv/kernel/kgdb.c         | 467 +++++++++++++++++++++++++++++++++++++++
 arch/riscv/kernel/traps.c        |   5 +
 include/linux/kgdb.h             |  10 +
 kernel/debug/debug_core.c        |  12 +
 kernel/debug/gdbstub.c           |   6 +
 11 files changed, 648 insertions(+), 1 deletion(-)
 create mode 100644 arch/riscv/include/asm/gdb_xml.h
 create mode 100644 arch/riscv/include/asm/kdebug.h
 create mode 100644 arch/riscv/include/asm/kgdb.h
 create mode 100644 arch/riscv/kernel/kgdb.c

-- 
2.7.4



                 reply	other threads:[~2020-03-03  8:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1583225076-25979-1-git-send-email-vincent.chen@sifive.com \
    --to=vincent.chen@sifive.com \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).