summaryrefslogtreecommitdiff
path: root/drivers/soc
diff options
context:
space:
mode:
authorNick Chan <towinchenmi@gmail.com>2026-09-19 00:47:03 +0800
committerSven Peter <sven@kernel.org>2026-09-27 18:48:47 +0200
commit1a2ae085282a99332dc8f46fe29e0cf820f19ba5 (patch)
treea03341786fc1d532bdfb626e2330200723f55bb3 /drivers/soc
parenta416a347931fec0591795b4f3ab6b2df9ff37dd5 (diff)
downloadlinux-next-1a2ae085282a99332dc8f46fe29e0cf820f19ba5.tar.gz
linux-next-1a2ae085282a99332dc8f46fe29e0cf820f19ba5.zip
soc: apple: rtkit-crashlog: rename 'Crg8' section from regs to aarch64
This section contains AArch64 CPU state of the IOP when the exception occurred, including register information. Rename this section to be clear about the CPU architecture as support for crashlog section with AArch32 CPU state will be added. Signed-off-by: Nick Chan <towinchenmi@gmail.com> Link: https://patch.msgid.link/20260919-rtkit-armv7-crashlog-v1-1-f4a671ea453c@gmail.com Signed-off-by: Sven Peter <sven@kernel.org>
Diffstat (limited to 'drivers/soc')
-rw-r--r--drivers/soc/apple/rtkit-crashlog.c43
1 files changed, 22 insertions, 21 deletions
diff --git a/drivers/soc/apple/rtkit-crashlog.c b/drivers/soc/apple/rtkit-crashlog.c
index 8319e365110b..6a8273e81e61 100644
--- a/drivers/soc/apple/rtkit-crashlog.c
+++ b/drivers/soc/apple/rtkit-crashlog.c
@@ -13,7 +13,7 @@
#define APPLE_RTKIT_CRASHLOG_VERSION FOURCC('C', 'v', 'e', 'r')
#define APPLE_RTKIT_CRASHLOG_MBOX FOURCC('C', 'm', 'b', 'x')
#define APPLE_RTKIT_CRASHLOG_TIME FOURCC('C', 't', 'i', 'm')
-#define APPLE_RTKIT_CRASHLOG_REGS FOURCC('C', 'r', 'g', '8')
+#define APPLE_RTKIT_CRASHLOG_AARCH64 FOURCC('C', 'r', 'g', '8')
/* For COMPILE_TEST on non-ARM64 architectures */
#ifndef PSR_MODE_EL0t
@@ -42,7 +42,7 @@ struct apple_rtkit_crashlog_mbox_entry {
};
static_assert(sizeof(struct apple_rtkit_crashlog_mbox_entry) == 0x18);
-struct apple_rtkit_crashlog_regs {
+struct apple_rtkit_crashlog_aarch64 {
u32 unk_0;
u32 unk_4;
u64 regs[31];
@@ -58,7 +58,7 @@ struct apple_rtkit_crashlog_regs {
u64 esr;
u64 unk_Z;
} __packed;
-static_assert(sizeof(struct apple_rtkit_crashlog_regs) == 0x350);
+static_assert(sizeof(struct apple_rtkit_crashlog_aarch64) == 0x350);
static void apple_rtkit_crashlog_dump_str(struct apple_rtkit *rtk, u8 *bfr,
size_t size)
@@ -123,21 +123,22 @@ static void apple_rtkit_crashlog_dump_mailbox(struct apple_rtkit *rtk, u8 *bfr,
}
}
-static void apple_rtkit_crashlog_dump_regs(struct apple_rtkit *rtk, u8 *bfr,
- size_t size)
+static void apple_rtkit_crashlog_dump_aarch64(struct apple_rtkit *rtk, u8 *bfr,
+ size_t size)
{
- struct apple_rtkit_crashlog_regs *regs;
+ struct apple_rtkit_crashlog_aarch64 *state;
const char *el;
int i;
- if (size < sizeof(*regs)) {
- dev_warn(rtk->dev, "RTKit: Regs section too small: 0x%zx", size);
+ if (size < sizeof(*state)) {
+ dev_warn(rtk->dev, "RTKit: AArch64 section too small: 0x%zx",
+ size);
return;
}
- regs = (struct apple_rtkit_crashlog_regs *)bfr;
+ state = (struct apple_rtkit_crashlog_aarch64 *)bfr;
- switch (regs->psr & PSR_MODE_MASK) {
+ switch (state->psr & PSR_MODE_MASK) {
case PSR_MODE_EL0t:
el = "EL0t";
break;
@@ -160,11 +161,11 @@ static void apple_rtkit_crashlog_dump_regs(struct apple_rtkit *rtk, u8 *bfr,
dev_warn(rtk->dev, "RTKit: Exception dump:");
dev_warn(rtk->dev, " == Exception taken from %s ==", el);
- dev_warn(rtk->dev, " PSR = 0x%llx", regs->psr);
- dev_warn(rtk->dev, " PC = 0x%llx\n", regs->pc);
- dev_warn(rtk->dev, " ESR = 0x%llx\n", regs->esr);
- dev_warn(rtk->dev, " FAR = 0x%llx\n", regs->far);
- dev_warn(rtk->dev, " SP = 0x%llx\n", regs->sp);
+ dev_warn(rtk->dev, " PSR = 0x%llx", state->psr);
+ dev_warn(rtk->dev, " PC = 0x%llx\n", state->pc);
+ dev_warn(rtk->dev, " ESR = 0x%llx\n", state->esr);
+ dev_warn(rtk->dev, " FAR = 0x%llx\n", state->far);
+ dev_warn(rtk->dev, " SP = 0x%llx\n", state->sp);
dev_warn(rtk->dev, "\n");
for (i = 0; i < 31; i += 4) {
@@ -172,12 +173,12 @@ static void apple_rtkit_crashlog_dump_regs(struct apple_rtkit *rtk, u8 *bfr,
dev_warn(rtk->dev,
" x%02d-x%02d = %016llx %016llx %016llx %016llx\n",
i, i + 3,
- regs->regs[i], regs->regs[i + 1],
- regs->regs[i + 2], regs->regs[i + 3]);
+ state->regs[i], state->regs[i + 1],
+ state->regs[i + 2], state->regs[i + 3]);
else
dev_warn(rtk->dev,
" x%02d-x%02d = %016llx %016llx %016llx\n", i, i + 3,
- regs->regs[i], regs->regs[i + 1], regs->regs[i + 2]);
+ state->regs[i], state->regs[i + 1], state->regs[i + 2]);
}
dev_warn(rtk->dev, "\n");
@@ -229,9 +230,9 @@ void apple_rtkit_crashlog_dump(struct apple_rtkit *rtk, u8 *bfr, size_t size)
apple_rtkit_crashlog_dump_time(rtk, bfr + offset + 16,
section_size);
break;
- case APPLE_RTKIT_CRASHLOG_REGS:
- apple_rtkit_crashlog_dump_regs(rtk, bfr + offset + 16,
- section_size);
+ case APPLE_RTKIT_CRASHLOG_AARCH64:
+ apple_rtkit_crashlog_dump_aarch64(rtk, bfr + offset + 16,
+ section_size);
break;
default:
dev_warn(rtk->dev,