From nobody Thu Mar 21 10:13:51 2024 X-Original-To: dev-commits-src-all@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 4V0hBV1lHvz5FkRt; Thu, 21 Mar 2024 10:13:54 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4V0hBV05f8z44t3; Thu, 21 Mar 2024 10:13:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711016034; 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=aIHstsVxCfn0DKIZsVU7fR9OuSRPWqemneMw3O717kQ=; b=gAZp8DNWCqBNHPimQtxtrBKVIl0tVhKqn8zGGkVytx1A2c+6Wet+mydDsDaPZp4VTUYr38 pYrszGifLS+1E1T5SKPU7re5B4G6JqBHsGCADhuYiORnEGxjYZ6tEZF43f+EKxjVAgtf1D zN0VBu/PAYH1LBFwsugGKl20TgKW1p3nkvvAvIiieWdBfG+utUE0hfxvPA8ACij1HJp//Q AbdkIs4FYeTBAgK8noO7oYnyg8T5dyjXLOrCDuOXzk8bHssLkQIsggciLx9DTqamvxo3lo g2sSR8BKVOCn/c6YV7WLf74pdsRKRjlQpCjOJJH5QAENxOc56oPyeaznMNXBxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711016034; a=rsa-sha256; cv=none; b=NlOktwyat/tWmz0XHi0mRtjSvE2NExEG+eoFFOXYLcUREjlC+9mrj0l47tUF02RmR2Ox2j H282U16y+ZkCqJbxy7EhgS2+QWPBiUejUOVys6jVZbnINquC6BD/BiguTDIR2q+SFoAyTm p++55yreKmDAoVZp3iK6usCE60To+5phNjifsmdUnxpgVVBiULriH1oG16Hcjl8OhWOVKJ hAGZyeSQf6uAhGUJOacAFER6FPhUU7Kl4jgQngmax/13mHBrSWLQQzec9FijHqj+j3HMql yk9LbOBt/u2yH4YdILOg7HXMju4zS3IPcaRl/cj5cc1ib+GXRruwi96l6YxVtQ== 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=1711016034; 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=aIHstsVxCfn0DKIZsVU7fR9OuSRPWqemneMw3O717kQ=; b=CJdLX35uFm6UF/FuQ2OdulMXqkd1qZR6hpMULj8q4XNj7AH4vyWEyJyA11UD6gRlGLERRl ZnW7h8/ZqMR5lmwqHGNGNU3r53bIMwvNevlaaMlbkMjCD86VfRctdzOFsdiil09VGcmPCn FZZm1aw6MG29jsnePWk3+6XfZOwd7zZxdxsztoPYlgQIFh5ko0GQ4/fdI9YyXpbKC3/DYF x3db0EIpCh1kleKGd/zzvNgo38wPds36U8/z6SlUPc7pzCARHrBbkXJsSsaVokREZiwuFW eaH9Sc9gat80WRxBg3ZMrNpbkwf9KeKWjGeiKUcD8pkO6UHrLaO0VGyONehmfA== 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 4V0hBR35ByzXBR; Thu, 21 Mar 2024 10:13:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 42LADpOc032566; Thu, 21 Mar 2024 10:13:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 42LADp2B032563; Thu, 21 Mar 2024 10:13:51 GMT (envelope-from git) Date: Thu, 21 Mar 2024 10:13:51 GMT Message-Id: <202403211013.42LADp2B032563@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: c802b486ddfd - main - arm64: Add EL1 hardware breakpoint exceptions List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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/main X-Git-Reftype: branch X-Git-Commit: c802b486ddfd796ea35b770148af9a5b0cd0ee64 Auto-Submitted: auto-generated The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=c802b486ddfd796ea35b770148af9a5b0cd0ee64 commit c802b486ddfd796ea35b770148af9a5b0cd0ee64 Author: Andrew Turner AuthorDate: 2024-03-12 16:50:04 +0000 Commit: Andrew Turner CommitDate: 2024-03-21 10:13:24 +0000 arm64: Add EL1 hardware breakpoint exceptions Reviewed by: jhb Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44353 --- 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 dcfc91b33eb7..7b21675ea927 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 ec4598c5356f..6cc1933095c8 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -500,6 +500,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; @@ -551,6 +552,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 41ab55a49c76..9391b1e2c1b7 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -439,6 +439,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 f1f638a7882c..45b97443aec5 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)