mirror of https://github.com/1okko/openpilot.git
60 lines
2.2 KiB
C
60 lines
2.2 KiB
C
#include <stdio.h>
|
|
#include <fcntl.h>
|
|
#include <sys/mman.h>
|
|
|
|
void hexdump(uint32_t *d, int l) {
|
|
for (int i = 0; i < l; i++) {
|
|
if (i%0x10 == 0 && i != 0) printf("\n");
|
|
printf("%8x ", d[i]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
/* Power cluster primary PLL */
|
|
#define C0_PLL_MODE 0x0
|
|
#define C0_PLL_L_VAL 0x4
|
|
#define C0_PLL_ALPHA 0x8
|
|
#define C0_PLL_USER_CTL 0x10
|
|
#define C0_PLL_CONFIG_CTL 0x18
|
|
#define C0_PLL_CONFIG_CTL_HI 0x1C
|
|
#define C0_PLL_STATUS 0x28
|
|
#define C0_PLL_TEST_CTL_LO 0x20
|
|
#define C0_PLL_TEST_CTL_HI 0x24
|
|
|
|
/* Power cluster alt PLL */
|
|
#define C0_PLLA_MODE 0x100
|
|
#define C0_PLLA_L_VAL 0x104
|
|
#define C0_PLLA_ALPHA 0x108
|
|
#define C0_PLLA_USER_CTL 0x110
|
|
#define C0_PLLA_CONFIG_CTL 0x118
|
|
#define C0_PLLA_STATUS 0x128
|
|
#define C0_PLLA_TEST_CTL_LO 0x120
|
|
|
|
#define APC_DIAG_OFFSET 0x48
|
|
#define CLK_CTL_OFFSET 0x44
|
|
#define MUX_OFFSET 0x40
|
|
#define MDD_DROOP_CODE 0x7c
|
|
#define SSSCTL_OFFSET 0x160
|
|
#define PSCTL_OFFSET 0x164
|
|
|
|
int main() {
|
|
int fd = open("/dev/mem", O_RDWR);
|
|
volatile uint32_t *mb = (uint32_t*)mmap(0,0x1000,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0x06400000);
|
|
volatile uint32_t *mc = (uint32_t*)mmap(0,0x1000,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0x06480000);
|
|
volatile uint32_t *md = (uint32_t*)mmap(0,0x1000,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0x09A20000);
|
|
while (1) {
|
|
printf("PLL MODE:%x L_VAL:%x ALPHA:%x USER_CTL:%x CONFIG_CTL:%x CONFIG_CTL_HI:%x STATUS:%x TEST_CTL_LO:%x TEST_CTL_HI:%x\n",
|
|
mb[C0_PLL_MODE/4], mb[C0_PLL_L_VAL/4], mb[C0_PLL_ALPHA/4],
|
|
mb[C0_PLL_USER_CTL/4], mb[C0_PLL_CONFIG_CTL/4], mb[C0_PLL_CONFIG_CTL_HI/4],
|
|
mb[C0_PLL_STATUS/4], mb[C0_PLL_TEST_CTL_LO/4], mb[C0_PLL_TEST_CTL_HI/4]);
|
|
printf(" MUX_OFFSET:%x CLK_CTL_OFFSET:%x APC_DIAG_OFFSET:%x MDD_DROOP_CODE:%x\n",
|
|
mb[MUX_OFFSET/4], mb[CLK_CTL_OFFSET/4], mb[APC_DIAG_OFFSET/4], mb[MDD_DROOP_CODE/4]);
|
|
printf(" PLLA MODE:%x L_VAL:%x ALPHA:%x USER_CTL:%x CONFIG_CTL:%x STATUS:%x TEST_CTL_LO:%x SSSCTL_OFFSET:%x PSCTL_OFFSET:%x\n",
|
|
mb[C0_PLLA_MODE/4], mb[C0_PLLA_L_VAL/4], mb[C0_PLLA_ALPHA/4], mb[C0_PLLA_USER_CTL/4],
|
|
mb[C0_PLLA_CONFIG_CTL/4], mb[C0_PLLA_STATUS/4], mb[C0_PLLA_TEST_CTL_LO/4],
|
|
mb[SSSCTL_OFFSET/4], mb[PSCTL_OFFSET/4]);
|
|
usleep(1000*100);
|
|
}
|
|
}
|
|
|