From 7c01b29f1ee7da878c7cc9cb4565f3f3cf516a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciro=20Santilli=20=E5=85=AD=E5=9B=9B=E4=BA=8B=E4=BB=B6=20?= =?UTF-8?q?=E6=B3=95=E8=BD=AE=E5=8A=9F?= Date: Fri, 5 Jun 2020 04:00:03 +0000 Subject: [PATCH] dump_regs: id_isar6_el1 --- lkmc.h | 3 +++ lkmc/aarch64_dump_regs.h | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/lkmc.h b/lkmc.h index 3570d9e..6ccf8f6 100644 --- a/lkmc.h +++ b/lkmc.h @@ -47,6 +47,9 @@ void lkmc_assert_memcmp(const void *s1, const void *s2, size_t n, uint32_t line) #define LKMC_CONCAT_EVAL(a,b) a ## b #define LKMC_CONCAT(a,b) LKMC_CONCAT_EVAL(a, b) +#define LKMC_STRINGIFY_DO(x) #x +#define LKMC_STRINGIFY(x) LKMC_STRINGIFY_DO(x) + #define LKMC_GLOBAL(name) \ .global name; \ name: diff --git a/lkmc/aarch64_dump_regs.h b/lkmc/aarch64_dump_regs.h index 2126ea4..5afe380 100644 --- a/lkmc/aarch64_dump_regs.h +++ b/lkmc/aarch64_dump_regs.h @@ -1,6 +1,8 @@ #ifndef LKMC_AARCH64_DUMP_REGS_H #define LKMC_AARCH64_DUMP_REGS_H +#include + /* https://cirosantilli.com/linux-kernel-module-cheat#dump-regs */ #ifndef LKMC_DUMP_SYSTEM_REGS_PRINTF @@ -30,6 +32,14 @@ void lkmc_dump_system_regs() { LKMC_DUMP_SYSTEM_REGS_PRINTF("ID_AA64ISAR1_EL1 0x%" PRIX64 "\n", id_aa64isar1_el1); LKMC_DUMP_SYSTEM_REGS_PRINTF("ID_AA64ISAR1_EL1.JSCVT 0x%" PRIX64 "\n", (id_aa64isar1_el1 >> 12) & 0xF); + uint32_t id_isar0_el1; + __asm__ ("mrs %0, id_isar0_el1" : "=r" (id_isar0_el1) : :); + LKMC_DUMP_SYSTEM_REGS_PRINTF("ID_ISAR0_EL1 0x%" PRIX32 "\n", id_isar0_el1); + + uint32_t id_isar6_el1; + __asm__ ("mrs %0, s3_0_c0_c2_7" : "=r" (id_isar6_el1) : :); + LKMC_DUMP_SYSTEM_REGS_PRINTF("ID_ISAR6_EL1 0x%" PRIX32 "\n", id_isar6_el1); + uint64_t id_aa64pfr0_el1; __asm__ ("mrs %0, id_aa64pfr0_el1" : "=r" (id_aa64pfr0_el1) : :); LKMC_DUMP_SYSTEM_REGS_PRINTF("ID_AA64PFR0_EL1 0x%" PRIX64 "\n", id_aa64pfr0_el1);