Advertisement
xerpi

Vita ARMv7 Identification registers

Dec 6th, 2017
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.13 KB | None | 0 0
  1.     unsigned int AIDR, CCSIDR, CLIDR, CTR;
  2.     asm volatile(
  3.         "mrc p15, 1, %0, c0, c0, 7\n\t"
  4.         "mrc p15, 1, %1, c0, c0, 0\n\t"
  5.         "mrc p15, 1, %2, c0, c0, 1\n\t"
  6.         "mrc p15, 0, %3, c0, c0, 1\n\t"
  7.         : "=r"(AIDR), "=r"(CCSIDR), "=r"(CLIDR), "=r"(CTR)
  8.     );
  9.  
  10.     unsigned int ID_AFR0, ID_DFR0;
  11.     asm volatile(
  12.         "mrc p15, 0, %0, c0, c1, 3\n\t"
  13.         "mrc p15, 0, %1, c0, c1, 2\n\t"
  14.         : "=r"(ID_AFR0), "=r"(ID_DFR0)
  15.     );
  16.  
  17.     unsigned int ID_ISAR0, ID_ISAR1, ID_ISAR2, ID_ISAR3, ID_ISAR4, ID_ISAR5;
  18.     asm volatile(
  19.         "mrc p15, 0, %0, c0, c2, 0\n\t"
  20.         "mrc p15, 0, %1, c0, c2, 1\n\t"
  21.         "mrc p15, 0, %2, c0, c2, 2\n\t"
  22.         "mrc p15, 0, %3, c0, c2, 3\n\t"
  23.         "mrc p15, 0, %4, c0, c2, 4\n\t"
  24.         "mrc p15, 0, %5, c0, c2, 5\n\t"
  25.         : "=r"(ID_ISAR0), "=r"(ID_ISAR1), "=r"(ID_ISAR2),
  26.           "=r"(ID_ISAR3), "=r"(ID_ISAR4), "=r"(ID_ISAR5)
  27.     );
  28.  
  29.     unsigned int ID_MMFR0, ID_MMFR1, ID_MMFR2, ID_MMFR3;
  30.     asm volatile(
  31.         "mrc p15, 0, %0, c0, c1, 4\n\t"
  32.         "mrc p15, 0, %1, c0, c1, 5\n\t"
  33.         "mrc p15, 0, %2, c0, c1, 6\n\t"
  34.         "mrc p15, 0, %3, c0, c1, 7\n\t"
  35.         : "=r"(ID_MMFR0), "=r"(ID_MMFR1), "=r"(ID_MMFR2), "=r"(ID_MMFR3)
  36.     );
  37.  
  38.     unsigned int ID_PFR0, ID_PFR1;
  39.     asm volatile(
  40.         "mrc p15, 0, %0, c0, c1, 0\n\t"
  41.         "mrc p15, 0, %1, c0, c1, 1\n\t"
  42.         : "=r"(ID_PFR0), "=r"(ID_PFR1)
  43.     );
  44.  
  45.     unsigned int MIDR, MPIDR, REVIDR, TCMTR, TLBTR;
  46.     asm volatile(
  47.         "mrc p15, 0, %0, c0, c0, 0\n\t"
  48.         "mrc p15, 0, %1, c0, c0, 5\n\t"
  49.         "mrc p15, 0, %2, c0, c0, 6\n\t"
  50.         "mrc p15, 0, %3, c0, c0, 2\n\t"
  51.         "mrc p15, 0, %4, c0, c0, 3\n\t"
  52.         : "=r"(MIDR), "=r"(MPIDR), "=r"(REVIDR),
  53.           "=r"(TCMTR), "=r"(TLBTR)
  54.     );
  55.  
  56.     #define PRINT_REG(r) \
  57.         LOG( \
  58.             "|-\n" \
  59.             "| " #r "\n" \
  60.             "| 0x%08X\n", r)
  61.  
  62.     PRINT_REG(AIDR);
  63.     PRINT_REG(CCSIDR);
  64.     PRINT_REG(CLIDR);
  65.     PRINT_REG(CTR);
  66.     PRINT_REG(ID_AFR0);
  67.     PRINT_REG(ID_DFR0);
  68.     PRINT_REG(ID_ISAR0);
  69.     PRINT_REG(ID_ISAR1);
  70.     PRINT_REG(ID_ISAR2);
  71.     PRINT_REG(ID_ISAR3);
  72.     PRINT_REG(ID_ISAR4);
  73.     PRINT_REG(ID_ISAR5);
  74.     PRINT_REG(ID_MMFR0);
  75.     PRINT_REG(ID_MMFR1);
  76.     PRINT_REG(ID_MMFR2);
  77.     PRINT_REG(ID_MMFR3);
  78.     PRINT_REG(ID_PFR0);
  79.     PRINT_REG(ID_PFR1);
  80.     PRINT_REG(MIDR);
  81.     PRINT_REG(MPIDR);
  82.     PRINT_REG(REVIDR);
  83.     PRINT_REG(TCMTR);
  84.     PRINT_REG(TLBTR);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement