summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/debug-as3525.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/debug-as3525.c')
-rw-r--r--firmware/target/arm/as3525/debug-as3525.c82
1 files changed, 38 insertions, 44 deletions
diff --git a/firmware/target/arm/as3525/debug-as3525.c b/firmware/target/arm/as3525/debug-as3525.c
index 22958c9f22..d8d3e013e2 100644
--- a/firmware/target/arm/as3525/debug-as3525.c
+++ b/firmware/target/arm/as3525/debug-as3525.c
@@ -31,10 +31,6 @@
31#include "ascodec-target.h" 31#include "ascodec-target.h"
32#include "adc.h" 32#include "adc.h"
33 33
34#define _DEBUG_PRINTF(a,varargs...) do { \
35 snprintf(buf, sizeof(buf), (a), ##varargs); lcd_puts(0,line++,buf); \
36 } while(0)
37
38#define ON "Enabled" 34#define ON "Enabled"
39#define OFF "Disabled" 35#define OFF "Disabled"
40 36
@@ -224,7 +220,6 @@ int calc_freq(int clk)
224 220
225bool __dbg_hw_info(void) 221bool __dbg_hw_info(void)
226{ 222{
227 char buf[50];
228 int line; 223 int line;
229 int last_nand = 0; 224 int last_nand = 0;
230#if defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_C200V2) 225#if defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_C200V2)
@@ -240,16 +235,16 @@ bool __dbg_hw_info(void)
240 { 235 {
241 lcd_clear_display(); 236 lcd_clear_display();
242 line = 0; 237 line = 0;
243 _DEBUG_PRINTF("[Clock Frequencies:]"); 238 lcd_puts(0, line++, "[Clock Frequencies:]");
244 _DEBUG_PRINTF(" SET ACTUAL"); 239 lcd_puts(0, line++, " SET ACTUAL");
245 _DEBUG_PRINTF("922T:%s %3dMHz", 240 lcd_putsf(0, line++, "922T:%s %3dMHz",
246 (!(read_cp15()>>30)) ? "FAST " : 241 (!(read_cp15()>>30)) ? "FAST " :
247 (read_cp15()>>31) ? "ASYNC" : "SYNC ", 242 (read_cp15()>>31) ? "ASYNC" : "SYNC ",
248 calc_freq(CLK_922T)/1000000); 243 calc_freq(CLK_922T)/1000000);
249 _DEBUG_PRINTF("PLLA:%3dMHz %3dMHz", AS3525_PLLA_FREQ/1000000, 244 lcd_putsf(0, line++, "PLLA:%3dMHz %3dMHz", AS3525_PLLA_FREQ/1000000,
250 calc_freq(CLK_PLLA)/1000000); 245 calc_freq(CLK_PLLA)/1000000);
251 _DEBUG_PRINTF("PLLB: %3dMHz", calc_freq(CLK_PLLB)/1000000); 246 lcd_putsf(0, line++, "PLLB: %3dMHz", calc_freq(CLK_PLLB)/1000000);
252 _DEBUG_PRINTF("FCLK: %3dMHz", calc_freq(CLK_FCLK)/1000000); 247 lcd_putsf(0, line++, "FCLK: %3dMHz", calc_freq(CLK_FCLK)/1000000);
253 248
254#if LCD_HEIGHT < 176 /* clip */ 249#if LCD_HEIGHT < 176 /* clip */
255 lcd_update(); 250 lcd_update();
@@ -265,17 +260,17 @@ bool __dbg_hw_info(void)
265 line = 0; 260 line = 0;
266#endif /* LCD_HEIGHT < 176 */ 261#endif /* LCD_HEIGHT < 176 */
267 262
268 _DEBUG_PRINTF("DRAM:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000, 263 lcd_putsf(0, line++, "DRAM:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000,
269 calc_freq(CLK_EXTMEM)/1000000); 264 calc_freq(CLK_EXTMEM)/1000000);
270 _DEBUG_PRINTF("PCLK:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000, 265 lcd_putsf(0, line++, "PCLK:%3dMHz %3dMHz", AS3525_PCLK_FREQ/1000000,
271 calc_freq(CLK_PCLK)/1000000); 266 calc_freq(CLK_PCLK)/1000000);
272 _DEBUG_PRINTF("IDE :%3dMHz %3dMHz", AS3525_IDE_FREQ/1000000, 267 lcd_putsf(0, line++, "IDE :%3dMHz %3dMHz", AS3525_IDE_FREQ/1000000,
273 calc_freq(CLK_IDE)/1000000); 268 calc_freq(CLK_IDE)/1000000);
274 _DEBUG_PRINTF("DBOP:%3dMHz %3dMHz", AS3525_DBOP_FREQ/1000000, 269 lcd_putsf(0, line++, "DBOP:%3dMHz %3dMHz", AS3525_DBOP_FREQ/1000000,
275 calc_freq(CLK_DBOP)/1000000); 270 calc_freq(CLK_DBOP)/1000000);
276 _DEBUG_PRINTF("I2C :%3dkHz %3dkHz", AS3525_I2C_FREQ/1000, 271 lcd_putsf(0, line++, "I2C :%3dkHz %3dkHz", AS3525_I2C_FREQ/1000,
277 calc_freq(CLK_I2C)/1000); 272 calc_freq(CLK_I2C)/1000);
278 _DEBUG_PRINTF("I2SI: %s %3dMHz", (CGU_AUDIO & (1<<23)) ? 273 lcd_putsf(0, line++, "I2SI: %s %3dMHz", (CGU_AUDIO & (1<<23)) ?
279 "on " : "off" , calc_freq(CLK_I2SI)/1000000); 274 "on " : "off" , calc_freq(CLK_I2SI)/1000000);
280 275
281#if LCD_HEIGHT < 176 /* clip */ 276#if LCD_HEIGHT < 176 /* clip */
@@ -292,27 +287,27 @@ bool __dbg_hw_info(void)
292 line = 0; 287 line = 0;
293#endif /* LCD_HEIGHT < 176 */ 288#endif /* LCD_HEIGHT < 176 */
294 289
295 _DEBUG_PRINTF("I2SO: %s %3dMHz", (CGU_AUDIO & (1<<11)) ? 290 lcd_putsf(0, line++, "I2SO: %s %3dMHz", (CGU_AUDIO & (1<<11)) ?
296 "on " : "off", calc_freq(CLK_I2SO)/1000000); 291 "on " : "off", calc_freq(CLK_I2SO)/1000000);
297 if(MCI_NAND) 292 if(MCI_NAND)
298 last_nand = MCI_NAND; 293 last_nand = MCI_NAND;
299 /* MCLK == PCLK */ 294 /* MCLK == PCLK */
300 _DEBUG_PRINTF("SD :%3dMHz %3dMHz", 295 lcd_putsf(0, line++, "SD :%3dMHz %3dMHz",
301 ((last_nand ? (AS3525_PCLK_FREQ/ 1000000): 0) / 296 ((last_nand ? (AS3525_PCLK_FREQ/ 1000000): 0) /
302 ((last_nand & MCI_CLOCK_BYPASS)? 1:(((last_nand & 0xff)+1) * 2))), 297 ((last_nand & MCI_CLOCK_BYPASS)? 1:(((last_nand & 0xff)+1) * 2))),
303 calc_freq(CLK_SD_MCLK_NAND)/1000000); 298 calc_freq(CLK_SD_MCLK_NAND)/1000000);
304#if defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_C200V2) 299#if defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_C200V2)
305 if(MCI_SD) 300 if(MCI_SD)
306 last_sd = MCI_SD; 301 last_sd = MCI_SD;
307 _DEBUG_PRINTF("uSD :%3dMHz %3dMHz", 302 lcd_putsf(0, line++, "uSD :%3dMHz %3dMHz",
308 ((last_sd ? (AS3525_PCLK_FREQ/ 1000000): 0) / 303 ((last_sd ? (AS3525_PCLK_FREQ/ 1000000): 0) /
309 ((last_sd & MCI_CLOCK_BYPASS) ? 1: (((last_sd & 0xff) + 1) * 2))), 304 ((last_sd & MCI_CLOCK_BYPASS) ? 1: (((last_sd & 0xff) + 1) * 2))),
310 calc_freq(CLK_SD_MCLK_MSD)/1000000); 305 calc_freq(CLK_SD_MCLK_MSD)/1000000);
311#endif 306#endif
312 _DEBUG_PRINTF("USB : %3dMHz", calc_freq(CLK_USB)/1000000); 307 lcd_putsf(0, line++, "USB : %3dMHz", calc_freq(CLK_USB)/1000000);
313 _DEBUG_PRINTF("MMU : %s CVDDP:%4d", (read_cp15() & CP15_MMU) ? 308 lcd_putsf(0, line++, "MMU : %s CVDDP:%4d", (read_cp15() & CP15_MMU) ?
314 " on" : "off", adc_read(ADC_CVDD) * 25); 309 " on" : "off", adc_read(ADC_CVDD) * 25);
315 _DEBUG_PRINTF("Icache:%s Dcache:%s", 310 lcd_putsf(0, line++, "Icache:%s Dcache:%s",
316 (read_cp15() & CP15_IC) ? " on" : "off", 311 (read_cp15() & CP15_IC) ? " on" : "off",
317 (read_cp15() & CP15_DC) ? " on" : "off"); 312 (read_cp15() & CP15_DC) ? " on" : "off");
318 313
@@ -328,12 +323,12 @@ bool __dbg_hw_info(void)
328 lcd_clear_display(); 323 lcd_clear_display();
329 line = 0; 324 line = 0;
330 325
331 _DEBUG_PRINTF("CGU_PLLA :%8x", (unsigned int)(CGU_PLLA)); 326 lcd_putsf(0, line++, "CGU_PLLA :%8x", (unsigned int)(CGU_PLLA));
332 _DEBUG_PRINTF("CGU_PLLB :%8x", (unsigned int)(CGU_PLLB)); 327 lcd_putsf(0, line++, "CGU_PLLB :%8x", (unsigned int)(CGU_PLLB));
333 _DEBUG_PRINTF("CGU_PROC :%8x", (unsigned int)(CGU_PROC)); 328 lcd_putsf(0, line++, "CGU_PROC :%8x", (unsigned int)(CGU_PROC));
334 _DEBUG_PRINTF("CGU_PERI :%8x", (unsigned int)(CGU_PERI)); 329 lcd_putsf(0, line++, "CGU_PERI :%8x", (unsigned int)(CGU_PERI));
335 _DEBUG_PRINTF("CGU_IDE :%8x", (unsigned int)(CGU_IDE)); 330 lcd_putsf(0, line++, "CGU_IDE :%8x", (unsigned int)(CGU_IDE));
336 _DEBUG_PRINTF("CGU_DBOP :%8x", (unsigned int)(CGU_DBOP)); 331 lcd_putsf(0, line++, "CGU_DBOP :%8x", (unsigned int)(CGU_DBOP));
337 332
338#if LCD_HEIGHT < 176 /* clip */ 333#if LCD_HEIGHT < 176 /* clip */
339 lcd_update(); 334 lcd_update();
@@ -349,12 +344,12 @@ bool __dbg_hw_info(void)
349 line = 0; 344 line = 0;
350#endif /* LCD_HEIGHT < 176 */ 345#endif /* LCD_HEIGHT < 176 */
351 346
352 _DEBUG_PRINTF("CGU_AUDIO :%8x", (unsigned int)(CGU_AUDIO)); 347 lcd_putsf(0, line++, "CGU_AUDIO :%8x", (unsigned int)(CGU_AUDIO));
353 _DEBUG_PRINTF("CGU_USB :%8x", (unsigned int)(CGU_USB)); 348 lcd_putsf(0, line++, "CGU_USB :%8x", (unsigned int)(CGU_USB));
354 _DEBUG_PRINTF("I2C2_CPSR :%8x", (unsigned int)(I2C2_CPSR1<<8 | 349 lcd_putsf(0, line++, "I2C2_CPSR :%8x", (unsigned int)(I2C2_CPSR1<<8 |
355 I2C2_CPSR0)); 350 I2C2_CPSR0));
356 _DEBUG_PRINTF("MCI_NAND :%8x", (unsigned int)(MCI_NAND)); 351 lcd_putsf(0, line++, "MCI_NAND :%8x", (unsigned int)(MCI_NAND));
357 _DEBUG_PRINTF("MCI_SD :%8x", (unsigned int)(MCI_SD)); 352 lcd_putsf(0, line++, "MCI_SD :%8x", (unsigned int)(MCI_SD));
358 353
359 lcd_update(); 354 lcd_update();
360 int btn = button_get_w_tmo(HZ/10); 355 int btn = button_get_w_tmo(HZ/10);
@@ -372,7 +367,6 @@ end:
372 367
373bool __dbg_ports(void) 368bool __dbg_ports(void)
374{ 369{
375 char buf[50];
376 int line; 370 int line;
377 371
378 lcd_clear_display(); 372 lcd_clear_display();
@@ -381,19 +375,19 @@ bool __dbg_ports(void)
381 while(1) 375 while(1)
382 { 376 {
383 line = 0; 377 line = 0;
384 _DEBUG_PRINTF("[GPIO Values and Directions]"); 378 lcd_puts(0, line++, "[GPIO Values and Directions]");
385 _DEBUG_PRINTF("GPIOA: %2x DIR: %2x", GPIOA_DATA, GPIOA_DIR); 379 lcd_putsf(0, line++, "GPIOA: %2x DIR: %2x", GPIOA_DATA, GPIOA_DIR);
386 _DEBUG_PRINTF("GPIOB: %2x DIR: %2x", GPIOB_DATA, GPIOB_DIR); 380 lcd_putsf(0, line++, "GPIOB: %2x DIR: %2x", GPIOB_DATA, GPIOB_DIR);
387 _DEBUG_PRINTF("GPIOC: %2x DIR: %2x", GPIOC_DATA, GPIOC_DIR); 381 lcd_putsf(0, line++, "GPIOC: %2x DIR: %2x", GPIOC_DATA, GPIOC_DIR);
388 _DEBUG_PRINTF("GPIOD: %2x DIR: %2x", GPIOD_DATA, GPIOD_DIR); 382 lcd_putsf(0, line++, "GPIOD: %2x DIR: %2x", GPIOD_DATA, GPIOD_DIR);
389#ifdef DEBUG_DBOP 383#ifdef DEBUG_DBOP
390 line++; 384 line++;
391 _DEBUG_PRINTF("[DBOP_DIN]"); 385 lcd_puts(0, line++, "[DBOP_DIN]");
392 _DEBUG_PRINTF("DBOP_DIN: %4x", button_dbop_data()); 386 lcd_putsf(0, line++, "DBOP_DIN: %4x", button_dbop_data());
393#endif 387#endif
394 line++; 388 line++;
395 _DEBUG_PRINTF("[CP15]"); 389 lcd_puts(0, line++, "[CP15]");
396 _DEBUG_PRINTF("CP15: 0x%8x", read_cp15()); 390 lcd_putsf(0, line++, "CP15: 0x%8x", read_cp15());
397 lcd_update(); 391 lcd_update();
398 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 392 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
399 break; 393 break;