diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2007-07-10 20:47:01 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2007-07-10 20:47:01 +0000 |
| commit | 85568d6040935af76f62d76ac9a106c6fb7c754b (patch) | |
| tree | f8bc2e7bf7b51cf815ea3e10eaf7854808a0c529 | |
| parent | 696432a2fdc55407651d0cdc257549a458a0dc0e (diff) | |
| download | rockbox-85568d6040935af76f62d76ac9a106c6fb7c754b.zip rockbox-85568d6040935af76f62d76ac9a106c6fb7c754b.tar.gz rockbox-85568d6040935af76f62d76ac9a106c6fb7c754b.tar.bz2 rockbox-85568d6040935af76f62d76ac9a106c6fb7c754b.tar.xz | |
iPod G3: Clock setup register display and CPU clock estimation in debug menu. * Fix clock being set to only half of what it should be (introduced with clock setup changes for PP502x).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13844 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/debug_menu.c | 29 | ||||
| -rw-r--r-- | firmware/export/pp5002.h | 9 | ||||
| -rw-r--r-- | firmware/target/arm/system-pp5002.c | 4 |
3 files changed, 37 insertions, 5 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 691bbf9..eff8def 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -405,7 +405,7 @@ static bool dbg_flash_id(unsigned* p_manufacturer, unsigned* p_device, #endif /* (CONFIG_CPU == SH7034 || CPU_COLDFIRE) */ #ifndef SIMULATOR -#ifdef CPU_PP502x +#ifdef CPU_PP static int perfcheck(void) { int result; @@ -427,7 +427,13 @@ static int perfcheck(void) [res]"=&r"(result) : [timr]"r"(&USEC_TIMER), - [tmo]"r"(10226) + [tmo]"r"( +#if CONFIG_CPU == PP5002 + 16000 +#else /* PP5020/5022/5024 */ + 10226 +#endif + ) : "r0", "r1", "r2" ); @@ -586,7 +592,7 @@ static bool dbg_hw_info(void) snprintf(buf, sizeof(buf), "Est. clock (kHz): %d", perfcheck()); lcd_puts(0, 3, buf); - + lcd_update(); while(1) @@ -1181,6 +1187,23 @@ bool dbg_ports(void) snprintf(buf, sizeof(buf), "GPIO_C: %02x GPIO_D: %02x", gpio_c, gpio_d); lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "CLOCK_ENABLE: %08lx", CLOCK_ENABLE); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "CLOCK_SOURCE: %08lx", CLOCK_SOURCE); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "CLOCK_DIV: %08lx", CLOCK_DIV); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "PLL_DIV: %08lx", PLL_DIV); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "PLL_MULT: %08lx", PLL_MULT); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "TIMING1_CTL: %08lx", TIMING1_CTL); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "TIMING2_CTL: %08lx", TIMING2_CTL); + lcd_puts(0, line++, buf); + snprintf(buf, sizeof(buf), "Est. clock (kHz): %d", perfcheck()); + lcd_puts(0, line++, buf); + lcd_update(); if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) return false; diff --git a/firmware/export/pp5002.h b/firmware/export/pp5002.h index 9636313..0610da8 100644 --- a/firmware/export/pp5002.h +++ b/firmware/export/pp5002.h @@ -116,6 +116,15 @@ #define SER1_MASK (1 << SER1_IRQ) #define DMA_OUT_MASK (1 << DMA_OUT_IRQ) +#define TIMING1_CTL (*(volatile unsigned long*)(0xcf004000)) +#define TIMING2_CTL (*(volatile unsigned long*)(0xcf004008)) + +#define CLOCK_ENABLE (*(volatile unsigned long*)(0xcf005008)) +#define CLOCK_SOURCE (*(volatile unsigned long*)(0xcf00500c)) +#define CLOCK_DIV (*(volatile unsigned long*)(0xcf005010)) +#define PLL_DIV (*(volatile unsigned long*)(0xcf005018)) +#define PLL_MULT (*(volatile unsigned long*)(0xcf00501c)) + #define MMAP0_LOGICAL (*(volatile unsigned long*)(0xf000f000)) #define MMAP0_PHYSICAL (*(volatile unsigned long*)(0xf000f004)) #define MMAP1_LOGICAL (*(volatile unsigned long*)(0xf000f008)) diff --git a/firmware/target/arm/system-pp5002.c b/firmware/target/arm/system-pp5002.c index 20f68cc..e8410df 100644 --- a/firmware/target/arm/system-pp5002.c +++ b/firmware/target/arm/system-pp5002.c @@ -100,8 +100,8 @@ void set_cpu_frequency(long frequency) outl(0x55, 0xcf00500c); outl(0x6000, 0xcf005010); - /* Clock frequency = (24/8)*postmult */ - outl(8, 0xcf005018); + /* Clock frequency = (24/4)*postmult */ + outl(4, 0xcf005018); outl(postmult, 0xcf00501c); outl(0xe000, 0xcf005010); |