diff options
-rw-r--r-- | apps/plugins/firmware_flash.c | 14 | ||||
-rw-r--r-- | apps/plugins/rockbox_flash.c | 14 |
2 files changed, 28 insertions, 0 deletions
diff --git a/apps/plugins/firmware_flash.c b/apps/plugins/firmware_flash.c index 7353a3e8c6..8f7f187607 100644 --- a/apps/plugins/firmware_flash.c +++ b/apps/plugins/firmware_flash.c @@ -608,6 +608,13 @@ void DoUserDialog(char* filename) rb->lcd_setfont(FONT_SYSFIXED); + /* this can only work if Rockbox runs in DRAM, not flash ROM */ + if ((UINT8*)rb >= FB && (UINT8*)rb < FB + 4096*1024) /* 4 MB max */ + { /* we're running from flash */ + rb->splash(HZ*3, true, "Not from ROM"); + return; /* exit */ + } + /* test if the user is running the correct plugin for this box */ if (!CheckPlatform(PLATFORM_ID, *(UINT16*)(FB + VERSION_ADR))) { @@ -829,6 +836,13 @@ void DoUserDialog(char* filename) tCheckROM result; bool is_romless; + /* this can only work if Rockbox runs in DRAM, not flash ROM */ + if ((UINT8*)rb >= FB && (UINT8*)rb < FB + 4096*1024) /* 4 MB max */ + { /* we're running from flash */ + rb->splash(HZ*3, true, "Not from ROM"); + return; /* exit */ + } + /* test if the user is running the correct plugin for this box */ if (!CheckPlatform(PLATFORM_ID, *(UINT16*)(FB + VERSION_ADR))) { diff --git a/apps/plugins/rockbox_flash.c b/apps/plugins/rockbox_flash.c index 25a97ea25c..3bb8476b43 100644 --- a/apps/plugins/rockbox_flash.c +++ b/apps/plugins/rockbox_flash.c @@ -603,6 +603,13 @@ void DoUserDialog(char* filename, bool show_greet) rb->lcd_setfont(FONT_SYSFIXED); + /* this can only work if Rockbox runs in DRAM, not flash ROM */ + if ((UINT8*)rb >= FB && (UINT8*)rb < FB + 4096*1024) /* 4 MB max */ + { /* we're running from flash */ + rb->splash(HZ*3, true, "Not from ROM"); + return; /* exit */ + } + /* "allocate" memory */ sector = rb->plugin_get_buffer(&memleft); if (memleft < SECTORSIZE) /* need buffer for a flash sector */ @@ -801,6 +808,13 @@ void DoUserDialog(char* filename, bool show_greet) int memleft; UINT32 crc; + /* this can only work if Rockbox runs in DRAM, not flash ROM */ + if ((UINT8*)rb >= FB && (UINT8*)rb < FB + 4096*1024) /* 4 MB max */ + { /* we're running from flash */ + rb->splash(HZ*3, true, "Not from ROM"); + return; /* exit */ + } + /* "allocate" memory */ sector = rb->plugin_get_buffer(&memleft); if (memleft < SECTORSIZE) /* need buffer for a flash sector */ |