From nobody Mon Jul 15 12:38:11 2024 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WN1vR6NPJz5QrMR; Mon, 15 Jul 2024 12:38:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WN1vR5PdNz4HQl; Mon, 15 Jul 2024 12:38:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1721047091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+tZkwyENoozXfhGQAu11ydNEqix4MtuT4vDVyu4w1Vk=; b=fqcKfK6wsStrzhO8JaDKNG6dgpxbZtn+qOsyLo2pFQkfdOcy/A9Jg+LTz1FmtnnZ3PTdvL MovVFfyHdiHvxiyRbastinwiXzwbNQ+Xj6fzN5EgBmRt/Gd16g7UD7AZtluL9NqmNJuVn2 ygkeJNpE+9DoyvCeJtp/fyasNKKFvmv46O1P6YnRJJhVyURoLttjwBCk2x1tuPvRkjWNST WViMAqnIyOIyTvlhOC2sGaXFrrYkPpCNE39Ct5lMpC0bUimOMY/qpXhEIKLPTsl1QqOxhA zr5aCgw5bUDYnrizpX7kSRuTi65NU3tQ/hB6TMaLZsrQY223dz8ui6u116VB/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1721047091; a=rsa-sha256; cv=none; b=nzDGAX5n2jHE1N0Y2mUGJghwlL2Ge4e5eKnd8mSfHhZxhPqp8r/gyC8sT0NQhKRSooxOlu yRnNgib9eU2dOC67wqmaJ53yZP9E2FgmvOIw0Y/o+fwxn1MdJkX7DIt0rpST3lHJzkn6rR GtJctsYAr0M+ePCj7wPBN6sz3CsbEUcSMNhanZzTRaYnRhNODPG3fNUaZNk+AzbgYP1fOP fyupNMxOopgwhTa6zwX+2XK5HCjD1HahGvoZsmZKiQVucZN6QPNW9FJdla1ce/ZctyLG6i ip0R37FHixneqdpHWkOBNAiKhTzyA2skWJQKIXFND4fqmM5sjznKC+Gg6ndEVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1721047091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+tZkwyENoozXfhGQAu11ydNEqix4MtuT4vDVyu4w1Vk=; b=rLI3SJKVsnlYuNvCvJPnR93MkrzvhwxTc8BMCgHZJmHe+0zi+g+uhT1z3RPrTxA7yN/z0M pFiVCzBci1rkeSsofKSDwk+/s7BWKxujIQlyCVOQEvg2PnGhj2vikTBDBPTITyucqoxlG7 L4IKWb82a1dZqOkmmt285JpGsK9GpThk9oKSYMIYLG/yOmqS2yaADThqQURmnz0jkbwua+ /ltdjPpwu/BLgJJhMk9M/3XGRuukoZh1P08wlsPNSLvGSSTC7Ad2DWj162WQsy1q9PCA84 iw+EHsiNegBY9trSIipi5Niw+zLrrQXvUPHdpyycJY/RKVHYLxWUd1SdQ9zC1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WN1vR51b8zsrr; Mon, 15 Jul 2024 12:38:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 46FCcBsi060128; Mon, 15 Jul 2024 12:38:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 46FCcBos060125; Mon, 15 Jul 2024 12:38:11 GMT (envelope-from git) Date: Mon, 15 Jul 2024 12:38:11 GMT Message-Id: <202407151238.46FCcBos060125@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: d08d4bb18f6c - stable/13 - arm64: Add EL1 hardware breakpoint exceptions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d08d4bb18f6ce0476a48646e13b24b8f6b06044e Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d08d4bb18f6ce0476a48646e13b24b8f6b06044e commit d08d4bb18f6ce0476a48646e13b24b8f6b06044e Author: Andrew Turner AuthorDate: 2024-03-12 16:50:04 +0000 Commit: Andrew Turner CommitDate: 2024-07-15 12:34:28 +0000 arm64: Add EL1 hardware breakpoint exceptions Reviewed by: jhb Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44353 (cherry picked from commit c802b486ddfd796ea35b770148af9a5b0cd0ee64) --- sys/arm64/arm64/gdb_machdep.c | 1 + sys/arm64/arm64/trap.c | 2 ++ sys/arm64/include/armreg.h | 1 + sys/arm64/include/db_machdep.h | 4 +++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/gdb_machdep.c b/sys/arm64/arm64/gdb_machdep.c index 14af8b256e5d..8a29875caa4e 100644 --- a/sys/arm64/arm64/gdb_machdep.c +++ b/sys/arm64/arm64/gdb_machdep.c @@ -110,6 +110,7 @@ gdb_cpu_signal(int type, int code __unused) switch (type) { case EXCP_WATCHPT_EL1: case EXCP_SOFTSTP_EL1: + case EXCP_BRKPT_EL1: case EXCP_BRK: return (SIGTRAP); } diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c index 4a659e9d5538..8d9e4abd8b3f 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -469,6 +469,7 @@ do_el1h_sync(struct thread *td, struct trapframe *frame) */ switch (exception) { case EXCP_BRK: + case EXCP_BRKPT_EL1: case EXCP_WATCHPT_EL1: case EXCP_SOFTSTP_EL1: break; @@ -521,6 +522,7 @@ do_el1h_sync(struct thread *td, struct trapframe *frame) panic("No debugger in kernel."); #endif break; + case EXCP_BRKPT_EL1: case EXCP_WATCHPT_EL1: case EXCP_SOFTSTP_EL1: #ifdef KDB diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index ffe19a5cc0ef..9add7515967a 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -442,6 +442,7 @@ #define EXCP_TRAP_FP 0x2c /* Trapped FP exception */ #define EXCP_SERROR 0x2f /* SError interrupt */ #define EXCP_BRKPT_EL0 0x30 /* Hardware breakpoint, from same EL */ +#define EXCP_BRKPT_EL1 0x31 /* Hardware breakpoint, from same EL */ #define EXCP_SOFTSTP_EL0 0x32 /* Software Step, from lower EL */ #define EXCP_SOFTSTP_EL1 0x33 /* Software Step, from same EL */ #define EXCP_WATCHPT_EL0 0x34 /* Watchpoint, from lower EL */ diff --git a/sys/arm64/include/db_machdep.h b/sys/arm64/include/db_machdep.h index 67747b8eba05..d88a0c908c86 100644 --- a/sys/arm64/include/db_machdep.h +++ b/sys/arm64/include/db_machdep.h @@ -36,6 +36,7 @@ #include #define T_BREAKPOINT (EXCP_BRK) +#define T_HW_BREAKPOINT (EXCP_BRKPT_EL1) #define T_SINGLESTEP (EXCP_SOFTSTP_EL1) #define T_WATCHPOINT (EXCP_WATCHPT_EL1) @@ -56,7 +57,8 @@ typedef long db_expr_t; #define db_clear_single_step kdb_cpu_clear_singlestep #define db_set_single_step kdb_cpu_set_singlestep -#define IS_BREAKPOINT_TRAP(type, code) (type == T_BREAKPOINT) +#define IS_BREAKPOINT_TRAP(type, code) \ + (type == T_BREAKPOINT || type == T_HW_BREAKPOINT) #define IS_SSTEP_TRAP(type, code) (type == T_SINGLESTEP) #define IS_WATCHPOINT_TRAP(type, code) (type == T_WATCHPOINT)