From 4b85c93cd830f81cf59333dbe369e2e940cee953 Mon Sep 17 00:00:00 2001 From: Boris Gjenero Date: Sat, 4 Feb 2012 14:47:11 -0500 Subject: Improve rockbox_flash messages - For V2 and FM Recorders, don't recommend bootloader upgrade due to FS#12426 BootBox bugs. - When rockbox.ucl can't fit and the bootloader is old, the bootloader needs to be upgraded. - When RomBox start address differs, the bootloader is not compatible with RomBox. Change-Id: I7ca910805a64eb81faa21b2dde4842cd3b640f5a Reviewed-on: http://gerrit.rockbox.org/71 Reviewed-by: Marcin Bukat --- apps/plugins/rockbox_flash.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/apps/plugins/rockbox_flash.c b/apps/plugins/rockbox_flash.c index 09ee96997c..4837b03fb5 100644 --- a/apps/plugins/rockbox_flash.c +++ b/apps/plugins/rockbox_flash.c @@ -609,6 +609,9 @@ static void DoUserDialog(char* filename) } bl_version = BootloaderVersion(); + /* Upgrade currently not recommended for FM and V2 + recorder due to bugs in V3 BootBox. (FS#12426) */ +#if !defined(ARCHOS_FMRECORDER) && !defined(ARCHOS_RECORDERV2) if (bl_version < LATEST_BOOTLOADER_VERSION) { rb->lcd_putsf(0, 0, "Bootloader V%d", bl_version); @@ -616,9 +619,8 @@ static void DoUserDialog(char* filename) rb->lcd_puts(0, 2, "using the latest "); rb->lcd_puts(0, 3, "bootloader. "); rb->lcd_puts(0, 4, "A full reflash is "); - rb->lcd_puts(0, 5, "recommended, but "); - rb->lcd_puts(0, 6, "not required. "); - rb->lcd_puts(0, 7, "Press " KEYNAME1 " to ignore"); + rb->lcd_puts(0, 5, "recommended. "); + rb->lcd_puts(0, 6, "Press " KEYNAME1 " to ignore"); rb->lcd_update(); if (WaitForButton() != KEY1) @@ -627,6 +629,7 @@ static void DoUserDialog(char* filename) } rb->lcd_clear_display(); } +#endif rb->lcd_puts(0, show_greet ? 0 : 3, "Checking..."); rb->lcd_update(); @@ -665,6 +668,10 @@ static void DoUserDialog(char* filename) case eTooBig: rb->lcd_puts(0, 1, "File too big,"); rb->lcd_puts(0, 2, "won't fit in chip."); + if (bl_version < LATEST_BOOTLOADER_VERSION) + { + rb->lcd_puts(0, 3, "Upgrade bootloader"); + } break; case eTooSmall: rb->lcd_puts(0, 1, "File too small."); @@ -679,8 +686,10 @@ static void DoUserDialog(char* filename) rb->lcd_puts(0, 3, " too small?"); break; case eBadRomLink: - rb->lcd_puts(0, 1, "RomBox mismatch."); - rb->lcd_puts(0, 2, "Wrong ROM position"); + rb->lcd_puts(0, 1, "Bootloader not"); + rb->lcd_puts(0, 2, "compatible with"); + rb->lcd_puts(0, 3, "RomBox. Start"); + rb->lcd_puts(0, 4, "address mismatch."); break; default: rb->lcd_puts(0, 1, "Check failed."); @@ -840,7 +849,14 @@ static void DoUserDialog(char* filename) rb->lcd_puts_scroll(0, 1, "File not found."); break; case eTooBig: - rb->lcd_puts_scroll(0, 1, "File too big."); + if (bl_version < LATEST_BOOTLOADER_VERSION) + { + rb->lcd_puts_scroll(0, 1, "File too big, upgrade bootloader."); + } + else + { + rb->lcd_puts_scroll(0, 1, "File too big."); + } break; case eTooSmall: rb->lcd_puts_scroll(0, 1, "File too small. Incomplete?"); @@ -852,7 +868,7 @@ static void DoUserDialog(char* filename) rb->lcd_puts_scroll(0, 1, "File invalid. Blocksize too small?"); break; case eBadRomLink: - rb->lcd_puts_scroll(0, 1, "RomBox mismatch."); + rb->lcd_puts_scroll(0, 1, "Bootloader not compatible with RomBox."); break; default: rb->lcd_puts_scroll(0, 1, "Check failed."); -- cgit v1.2.3