diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/debug_menu.c | 60 | ||||
-rw-r--r-- | apps/main.c | 8 | ||||
-rw-r--r-- | apps/misc.c | 2 | ||||
-rw-r--r-- | apps/tagcache.c | 8 | ||||
-rw-r--r-- | apps/tree.c | 4 |
5 files changed, 67 insertions, 15 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 0141c77fbe..1527e8abe7 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -1891,13 +1891,22 @@ bool dbg_save_roms(void) | |||
1891 | fd = creat("/internal_eeprom.bin", O_WRONLY); | 1891 | fd = creat("/internal_eeprom.bin", O_WRONLY); |
1892 | if (fd >= 0) | 1892 | if (fd >= 0) |
1893 | { | 1893 | { |
1894 | int old_irq_level; | ||
1894 | char buf[EEPROM_SIZE]; | 1895 | char buf[EEPROM_SIZE]; |
1895 | 1896 | int err; | |
1896 | if (eeprom_24cxx_read(0, buf, sizeof buf)) | 1897 | |
1897 | gui_syncsplash(HZ*3, true, "Eeprom read failure!"); | 1898 | old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); |
1899 | |||
1900 | err = eeprom_24cxx_read(0, buf, sizeof buf); | ||
1901 | if (err) | ||
1902 | gui_syncsplash(HZ*3, true, "Eeprom read failure (%d)",err); | ||
1898 | else | 1903 | else |
1904 | { | ||
1899 | write(fd, buf, sizeof buf); | 1905 | write(fd, buf, sizeof buf); |
1900 | 1906 | } | |
1907 | |||
1908 | set_irq_level(old_irq_level); | ||
1909 | |||
1901 | close(fd); | 1910 | close(fd); |
1902 | } | 1911 | } |
1903 | #endif | 1912 | #endif |
@@ -1976,6 +1985,46 @@ bool dbg_set_memory_guard(void) | |||
1976 | } | 1985 | } |
1977 | #endif /* CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) */ | 1986 | #endif /* CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) */ |
1978 | 1987 | ||
1988 | #if defined(HAVE_EEPROM) && !defined(HAVE_EEPROM_SETTINGS) | ||
1989 | bool dbg_write_eeprom(void) | ||
1990 | { | ||
1991 | int fd; | ||
1992 | int rc; | ||
1993 | int old_irq_level; | ||
1994 | char buf[EEPROM_SIZE]; | ||
1995 | int err; | ||
1996 | |||
1997 | fd = open("/internal_eeprom.bin", O_RDONLY); | ||
1998 | |||
1999 | if (fd >= 0) | ||
2000 | { | ||
2001 | rc = read(fd, buf, EEPROM_SIZE); | ||
2002 | |||
2003 | if(rc == EEPROM_SIZE) | ||
2004 | { | ||
2005 | old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
2006 | |||
2007 | err = eeprom_24cxx_write(0, buf, sizeof buf); | ||
2008 | if (err) | ||
2009 | gui_syncsplash(HZ*3, true, "Eeprom write failure (%d)",err); | ||
2010 | |||
2011 | set_irq_level(old_irq_level); | ||
2012 | } | ||
2013 | else | ||
2014 | { | ||
2015 | gui_syncsplash(HZ*3, true, "File read error (%d)",rc); | ||
2016 | } | ||
2017 | close(fd); | ||
2018 | } | ||
2019 | else | ||
2020 | { | ||
2021 | gui_syncsplash(HZ*3, true, "Failed to open 'internal_eeprom.bin'"); | ||
2022 | } | ||
2023 | |||
2024 | return false; | ||
2025 | } | ||
2026 | #endif /* defined(HAVE_EEPROM) && !defined(HAVE_EEPROM_SETTINGS) */ | ||
2027 | |||
1979 | bool debug_menu(void) | 2028 | bool debug_menu(void) |
1980 | { | 2029 | { |
1981 | int m; | 2030 | int m; |
@@ -2023,6 +2072,9 @@ bool debug_menu(void) | |||
2023 | #ifdef CONFIG_TUNER | 2072 | #ifdef CONFIG_TUNER |
2024 | { "FM Radio", dbg_fm_radio }, | 2073 | { "FM Radio", dbg_fm_radio }, |
2025 | #endif | 2074 | #endif |
2075 | #if defined(HAVE_EEPROM) && !defined(HAVE_EEPROM_SETTINGS) | ||
2076 | { "Write back EEPROM", dbg_write_eeprom }, | ||
2077 | #endif | ||
2026 | #ifdef ROCKBOX_HAS_LOGF | 2078 | #ifdef ROCKBOX_HAS_LOGF |
2027 | {"logf", logfdisplay }, | 2079 | {"logf", logfdisplay }, |
2028 | {"logfdump", logfdump }, | 2080 | {"logfdump", logfdump }, |
diff --git a/apps/main.c b/apps/main.c index c50af865fc..90bd13ee32 100644 --- a/apps/main.c +++ b/apps/main.c | |||
@@ -120,7 +120,7 @@ int init_dircache(bool preinit) | |||
120 | 120 | ||
121 | if (global_settings.dircache) | 121 | if (global_settings.dircache) |
122 | { | 122 | { |
123 | # ifdef HAVE_EEPROM | 123 | # ifdef HAVE_EEPROM_SETTINGS |
124 | if (firmware_settings.initialized && firmware_settings.disk_clean | 124 | if (firmware_settings.initialized && firmware_settings.disk_clean |
125 | && preinit) | 125 | && preinit) |
126 | { | 126 | { |
@@ -371,14 +371,14 @@ void init(void) | |||
371 | panicf("ata: %d", rc); | 371 | panicf("ata: %d", rc); |
372 | } | 372 | } |
373 | 373 | ||
374 | #ifdef HAVE_EEPROM | 374 | #ifdef HAVE_EEPROM_SETTINGS |
375 | eeprom_settings_init(); | 375 | eeprom_settings_init(); |
376 | #endif | 376 | #endif |
377 | 377 | ||
378 | usb_start_monitoring(); | 378 | usb_start_monitoring(); |
379 | while (usb_detect()) | 379 | while (usb_detect()) |
380 | { | 380 | { |
381 | #ifdef HAVE_EEPROM | 381 | #ifdef HAVE_EEPROM_SETTINGS |
382 | firmware_settings.disk_clean = false; | 382 | firmware_settings.disk_clean = false; |
383 | #endif | 383 | #endif |
384 | /* enter USB mode early, before trying to mount */ | 384 | /* enter USB mode early, before trying to mount */ |
@@ -444,7 +444,7 @@ void init(void) | |||
444 | init_dircache(false); | 444 | init_dircache(false); |
445 | init_tagcache(); | 445 | init_tagcache(); |
446 | 446 | ||
447 | #ifdef HAVE_EEPROM | 447 | #ifdef HAVE_EEPROM_SETTINGS |
448 | if (firmware_settings.initialized) | 448 | if (firmware_settings.initialized) |
449 | { | 449 | { |
450 | /* In case we crash. */ | 450 | /* In case we crash. */ |
diff --git a/apps/misc.c b/apps/misc.c index ffacf7ed82..19cee60993 100644 --- a/apps/misc.c +++ b/apps/misc.c | |||
@@ -507,7 +507,7 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter) | |||
507 | callback(parameter); | 507 | callback(parameter); |
508 | 508 | ||
509 | system_flush(); | 509 | system_flush(); |
510 | #ifdef HAVE_EEPROM | 510 | #ifdef HAVE_EEPROM_SETTINGS |
511 | if (firmware_settings.initialized) | 511 | if (firmware_settings.initialized) |
512 | { | 512 | { |
513 | firmware_settings.disk_clean = true; | 513 | firmware_settings.disk_clean = true; |
diff --git a/apps/tagcache.c b/apps/tagcache.c index 179218ab1f..191c245597 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c | |||
@@ -153,7 +153,7 @@ struct ramcache_header { | |||
153 | int entry_count[TAG_COUNT]; /* Number of entries in the indices. */ | 153 | int entry_count[TAG_COUNT]; /* Number of entries in the indices. */ |
154 | }; | 154 | }; |
155 | 155 | ||
156 | # ifdef HAVE_EEPROM | 156 | # ifdef HAVE_EEPROM_SETTINGS |
157 | struct statefile_header { | 157 | struct statefile_header { |
158 | struct ramcache_header *hdr; | 158 | struct ramcache_header *hdr; |
159 | struct tagcache_stat stat; | 159 | struct tagcache_stat stat; |
@@ -2829,7 +2829,7 @@ static bool allocate_tagcache(void) | |||
2829 | return true; | 2829 | return true; |
2830 | } | 2830 | } |
2831 | 2831 | ||
2832 | # ifdef HAVE_EEPROM | 2832 | # ifdef HAVE_EEPROM_SETTINGS |
2833 | static bool tagcache_dumpload(void) | 2833 | static bool tagcache_dumpload(void) |
2834 | { | 2834 | { |
2835 | struct statefile_header shdr; | 2835 | struct statefile_header shdr; |
@@ -3370,7 +3370,7 @@ static void tagcache_thread(void) | |||
3370 | free_tempbuf(); | 3370 | free_tempbuf(); |
3371 | 3371 | ||
3372 | #ifdef HAVE_TC_RAMCACHE | 3372 | #ifdef HAVE_TC_RAMCACHE |
3373 | # ifdef HAVE_EEPROM | 3373 | # ifdef HAVE_EEPROM_SETTINGS |
3374 | if (firmware_settings.initialized && firmware_settings.disk_clean) | 3374 | if (firmware_settings.initialized && firmware_settings.disk_clean) |
3375 | check_done = tagcache_dumpload(); | 3375 | check_done = tagcache_dumpload(); |
3376 | 3376 | ||
@@ -3462,7 +3462,7 @@ bool tagcache_prepare_shutdown(void) | |||
3462 | if (tagcache_get_commit_step() > 0) | 3462 | if (tagcache_get_commit_step() > 0) |
3463 | return false; | 3463 | return false; |
3464 | 3464 | ||
3465 | #ifdef HAVE_EEPROM | 3465 | #ifdef HAVE_EEPROM_SETTINGS |
3466 | if (stat.ramcache) | 3466 | if (stat.ramcache) |
3467 | tagcache_dumpsave(); | 3467 | tagcache_dumpsave(); |
3468 | #endif | 3468 | #endif |
diff --git a/apps/tree.c b/apps/tree.c index 1bbb5f8ca3..75562b30c8 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -1336,7 +1336,7 @@ void tree_flush(void) | |||
1336 | if (global_settings.dircache) | 1336 | if (global_settings.dircache) |
1337 | { | 1337 | { |
1338 | global_settings.dircache_size = dircache_get_cache_size(); | 1338 | global_settings.dircache_size = dircache_get_cache_size(); |
1339 | # ifdef HAVE_EEPROM | 1339 | # ifdef HAVE_EEPROM_SETTINGS |
1340 | if (dircache_is_enabled() && firmware_settings.initialized) | 1340 | if (dircache_is_enabled() && firmware_settings.initialized) |
1341 | dircache_save(DIRCACHE_FILE); | 1341 | dircache_save(DIRCACHE_FILE); |
1342 | # endif | 1342 | # endif |
@@ -1352,7 +1352,7 @@ void tree_flush(void) | |||
1352 | 1352 | ||
1353 | void tree_restore(void) | 1353 | void tree_restore(void) |
1354 | { | 1354 | { |
1355 | #ifdef HAVE_EEPROM | 1355 | #ifdef HAVE_EEPROM_SETTINGS |
1356 | firmware_settings.disk_clean = false; | 1356 | firmware_settings.disk_clean = false; |
1357 | #endif | 1357 | #endif |
1358 | 1358 | ||