forked from len0rd/rockbox
New disk debugging options for timing information
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4305 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
dee17f7102
commit
f3ad619c27
1 changed files with 48 additions and 1 deletions
|
@ -42,6 +42,8 @@
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "ata.h"
|
#include "ata.h"
|
||||||
#include "fat.h"
|
#include "fat.h"
|
||||||
|
#include "dir.h"
|
||||||
|
#include "panic.h"
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
#include "widgets.h"
|
#include "widgets.h"
|
||||||
#include "peakmeter.h"
|
#include "peakmeter.h"
|
||||||
|
@ -1245,9 +1247,13 @@ static bool dbg_disk_info(void)
|
||||||
bool done = false;
|
bool done = false;
|
||||||
int i;
|
int i;
|
||||||
int page = 0;
|
int page = 0;
|
||||||
const int max_page = 7;
|
const int max_page = 10;
|
||||||
unsigned short* identify_info = ata_get_identify();
|
unsigned short* identify_info = ata_get_identify();
|
||||||
|
bool timing_info_present = false;
|
||||||
|
char pio3[2], pio4[2];
|
||||||
|
|
||||||
|
lcd_setmargins(0, 0);
|
||||||
|
|
||||||
while(!done)
|
while(!done)
|
||||||
{
|
{
|
||||||
int y=0;
|
int y=0;
|
||||||
|
@ -1318,6 +1324,47 @@ static bool dbg_disk_info(void)
|
||||||
lcd_puts(0, y++, "Read-ahead:");
|
lcd_puts(0, y++, "Read-ahead:");
|
||||||
lcd_puts(0, y++, i ? "enabled" : "unsupported");
|
lcd_puts(0, y++, i ? "enabled" : "unsupported");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 8:
|
||||||
|
timing_info_present = identify_info[53] & (1<<1);
|
||||||
|
if(timing_info_present) {
|
||||||
|
pio3[1] = 0;
|
||||||
|
pio4[1] = 0;
|
||||||
|
lcd_puts(0, y++, "PIO modes:");
|
||||||
|
pio3[0] = (identify_info[64] & (1<<0)) ? '3' : 0;
|
||||||
|
pio4[0] = (identify_info[64] & (1<<1)) ? '4' : 0;
|
||||||
|
snprintf(buf, 128, "0 1 2 %s %s", pio3, pio4);
|
||||||
|
lcd_puts(0, y++, buf);
|
||||||
|
} else {
|
||||||
|
lcd_puts(0, y++, "No PIO mode info");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 9:
|
||||||
|
timing_info_present = identify_info[53] & (1<<1);
|
||||||
|
if(timing_info_present) {
|
||||||
|
snprintf(buf, 128, "Min time: %dns", identify_info[67]);
|
||||||
|
lcd_puts(0, y++, buf);
|
||||||
|
snprintf(buf, 128, "Min IORDY: %dns", identify_info[68]);
|
||||||
|
lcd_puts(0, y++, buf);
|
||||||
|
} else {
|
||||||
|
lcd_puts(0, y++, "No timing info");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 10:
|
||||||
|
timing_info_present = identify_info[53] & (1<<1);
|
||||||
|
if(timing_info_present) {
|
||||||
|
i = identify_info[49] & (1<<11);
|
||||||
|
snprintf(buf, 128, "IORDY support: %s", i ? "yes" : "no");
|
||||||
|
lcd_puts(0, y++, buf);
|
||||||
|
i = identify_info[49] & (1<<10);
|
||||||
|
snprintf(buf, 128, "IORDY disable: %s", i ? "yes" : "no");
|
||||||
|
lcd_puts(0, y++, buf);
|
||||||
|
} else {
|
||||||
|
lcd_puts(0, y++, "No timing info");
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
lcd_update();
|
lcd_update();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue