xerpi

Linux 3DS PDN dump

Jul 18th, 2016
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.74 KB | None | 0 0
  1. #define PDN_BASE_ADDR   0x10140000
  2. #define PDN_SIZE    0x2000
  3.  
  4. static const struct {
  5.     const char name[32];
  6.     u32 offset;
  7.     u32 size;
  8. } pdn_regs_desc[] =  {
  9.     {"PDN_SHAREDWRAM_32K_DATA<0-7>",    0x0000, 1*8},
  10.     {"PDN_SHAREDWRAM_32K_CODE<0-7>",    0x0008, 1*8},
  11.     {" ?",                 0x0100, 2},
  12.     {" ?",                 0x0102, 2},
  13.     {"ARM11 interrupt related.",        0x0104, 1},
  14.     {" ?",                 0x0105, 1},
  15.     {" ?",                 0x0108, 2},
  16.     {" ?",                 0x010C, 2},
  17.     {" ?",                 0x0140, 2},
  18.     {"PDN_WIFI_CNT",            0x0180, 1},
  19.     {"PDN_SPI_CNT",             0x01C0, 4},
  20.     {" ?",                 0x0200, 4},
  21.     {"Clock related?",          0x0400, 1},
  22.     {"Clock related?",          0x0410, 4},
  23.     {"PDN_BOOTROM_OVERLAY_CNT",     0x0420, 4},
  24.     {"PDN_BOOTROM_OVERLAY_VAL",     0x0424, 4},
  25.     {" ?",                 0x0428, 4},
  26.     {"PDN_MPCORE_CFG",          0x0FFC, 1},
  27.     {"PDN_GPU_STATUS?",         0x1000, 4},
  28.     {"PDN_PTM_0",               0x1008, 4},
  29.     {"PDN_PTM_1",               0x100C, 4},
  30.     {"PDN_TWLMODE_0",           0x1100, 2},
  31.     {"PDN_TWLMODE_1",           0x1104, 2},
  32.     {"PDN_TWLMODE_2",           0x1108, 2},
  33.     {" ?",                  0x110A, 2},
  34.     {"PDN_WIFI?",               0x110C, 1},
  35.     {" ?",                 0x1110, 2},
  36.     {" ?",                 0x1112, 2},
  37.     {"PDN_CODEC_0",             0x1114, 2},
  38.     {"PDN_CODEC_1",             0x1116, 2},
  39.     {" ?",                 0x1118, 1},
  40.     {" ?",                 0x1119, 1},
  41.     {" ?",                 0x1120, 1},
  42.     {"PDN_GPU_CNT",             0x1200, 4},
  43.     {"PDN_GPU_CNT2",            0x1204, 4},
  44.     {"PDN_GPU_CNT3",            0x1210, 2},
  45.     {"PDN_CODEC_CNT",           0x1220, 1},
  46.     {"PDN_CAMERA_CNT",          0x1224, 1},
  47.     {"PDN_DSP_CNT",             0x1230, 1},
  48.     {"PDN_MPCORE_CLKCNT",           0x1300, 2},
  49.     {"PDN_MPCORE_CNT",          0x1304, 2},
  50.     {"PDN_MPCORE_BOOTCNT<0-3>",     0x1310, 1*4},
  51. };
  52.  
  53. #define PDN_REGS_DESC_SIZE (sizeof(pdn_regs_desc) / sizeof(*pdn_regs_desc))
  54.  
  55. static void dump_pdn(void)
  56. {
  57.     void __iomem *pdn_base;
  58.     u32 i;
  59.  
  60.     pdn_base = ioremap(PDN_BASE_ADDR, PDN_SIZE);
  61.  
  62.     for (i = 0; i < PDN_REGS_DESC_SIZE; i++) {
  63.         if (pdn_regs_desc[i].size == 1) {
  64.             printk("0x%08X (%s): 0x%02X\n",
  65.                 PDN_BASE_ADDR + pdn_regs_desc[i].offset,
  66.                 pdn_regs_desc[i].name,
  67.                 ioread8(pdn_base + pdn_regs_desc[i].offset));
  68.         } else if (pdn_regs_desc[i].size == 2) {
  69.             printk("0x%08X (%s): 0x%04X\n",
  70.                 PDN_BASE_ADDR + pdn_regs_desc[i].offset,
  71.                 pdn_regs_desc[i].name,
  72.                 ioread16(pdn_base + pdn_regs_desc[i].offset));
  73.         } else if (pdn_regs_desc[i].size == 4) {
  74.             printk("0x%08X (%s): 0x%08X\n",
  75.                 PDN_BASE_ADDR + pdn_regs_desc[i].offset,
  76.                 pdn_regs_desc[i].name,
  77.                 ioread32(pdn_base + pdn_regs_desc[i].offset));
  78.         } else if (pdn_regs_desc[i].size == 8) {
  79.             printk("0x%08X (%s): 0x%08X\n",
  80.                 PDN_BASE_ADDR + pdn_regs_desc[i].offset + 0,
  81.                 pdn_regs_desc[i].name,
  82.                 ioread32(pdn_base + pdn_regs_desc[i].offset + 0));
  83.             printk("0x%08X (%s): 0x%08X\n",
  84.                 PDN_BASE_ADDR + pdn_regs_desc[i].offset + 4,
  85.                 pdn_regs_desc[i].name,
  86.                 ioread32(pdn_base + pdn_regs_desc[i].offset + 4));
  87.         }
  88.     }
  89.  
  90.     iounmap(pdn_base);
  91. }
Add Comment
Please, Sign In to add comment