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>
This commit is contained in:
Nick Chan 2026-09-19 00:47:03 +08:00 committed by Sven Peter
parent a416a34793
commit 1a2ae08528

View File

@ -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,