summaryrefslogtreecommitdiff
path: root/apps/debug_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r--apps/debug_menu.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index fc509ce236..d21dc032a8 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -417,7 +417,7 @@ static bool dbg_flash_id(unsigned* p_manufacturer, unsigned* p_device,
417 not_id = flash[1]; /* should be 'A' (0x41) and 'R' (0x52) from the "ARCH" marker */ 417 not_id = flash[1]; /* should be 'A' (0x41) and 'R' (0x52) from the "ARCH" marker */
418 418
419 /* disable interrupts, prevent any stray flash access */ 419 /* disable interrupts, prevent any stray flash access */
420 old_level = set_irq_level(HIGHEST_IRQ_LEVEL); 420 old_level = disable_irq_save();
421 421
422 flash[addr1] = 0xAA; /* enter command mode */ 422 flash[addr1] = 0xAA; /* enter command mode */
423 flash[addr2] = 0x55; 423 flash[addr2] = 0x55;
@@ -432,7 +432,7 @@ static bool dbg_flash_id(unsigned* p_manufacturer, unsigned* p_device,
432 /* Atmel wants 20ms pause here */ 432 /* Atmel wants 20ms pause here */
433 /* sleep(HZ/50); no sleeping possible while interrupts are disabled */ 433 /* sleep(HZ/50); no sleeping possible while interrupts are disabled */
434 434
435 set_irq_level(old_level); /* enable interrupts again */ 435 restore_irq(old_level); /* enable interrupts again */
436 436
437 /* I assume success if the obtained values are different from 437 /* I assume success if the obtained values are different from
438 the normal flash content. This is not perfectly bulletproof, they 438 the normal flash content. This is not perfectly bulletproof, they
@@ -2066,9 +2066,12 @@ static bool dbg_save_roms(void)
2066 char buf[EEPROM_SIZE]; 2066 char buf[EEPROM_SIZE];
2067 int err; 2067 int err;
2068 2068
2069 old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); 2069 old_irq_level = disable_irq_save();
2070 2070
2071 err = eeprom_24cxx_read(0, buf, sizeof buf); 2071 err = eeprom_24cxx_read(0, buf, sizeof buf);
2072
2073 restore_irq(old_irq_level);
2074
2072 if (err) 2075 if (err)
2073 gui_syncsplash(HZ*3, "Eeprom read failure (%d)",err); 2076 gui_syncsplash(HZ*3, "Eeprom read failure (%d)",err);
2074 else 2077 else
@@ -2076,8 +2079,6 @@ static bool dbg_save_roms(void)
2076 write(fd, buf, sizeof buf); 2079 write(fd, buf, sizeof buf);
2077 } 2080 }
2078 2081
2079 set_irq_level(old_irq_level);
2080
2081 close(fd); 2082 close(fd);
2082 } 2083 }
2083#endif 2084#endif
@@ -2248,7 +2249,7 @@ static bool dbg_write_eeprom(void)
2248 2249
2249 if(rc == EEPROM_SIZE) 2250 if(rc == EEPROM_SIZE)
2250 { 2251 {
2251 old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); 2252 old_irq_level = disable_irq_save();
2252 2253
2253 err = eeprom_24cxx_write(0, buf, sizeof buf); 2254 err = eeprom_24cxx_write(0, buf, sizeof buf);
2254 if (err) 2255 if (err)
@@ -2256,7 +2257,7 @@ static bool dbg_write_eeprom(void)
2256 else 2257 else
2257 gui_syncsplash(HZ*3, "Eeprom written successfully"); 2258 gui_syncsplash(HZ*3, "Eeprom written successfully");
2258 2259
2259 set_irq_level(old_irq_level); 2260 restore_irq(old_irq_level);
2260 } 2261 }
2261 else 2262 else
2262 { 2263 {