mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
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:
parent
a416a34793
commit
1a2ae08528
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user