From ee663c106c22dce488496e2b034f27e693d4f057 Mon Sep 17 00:00:00 2001 From: Matt Harlum Date: Mon, 10 Jul 2023 09:02:53 +0000 Subject: [PATCH] CFLASH: Check that ext rom is there when copying --- cflash/constants.h | 2 ++ cflash/main.c | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cflash/constants.h b/cflash/constants.h index 7927e2e..08edb4b 100644 --- a/cflash/constants.h +++ b/cflash/constants.h @@ -27,4 +27,6 @@ #define FLASH_BANK_0 0x000000 #define FLASH_BANK_1 0x080000 +#define KICK_BASE 0xF80000 +#define EXT_BASE 0xF00000 #endif \ No newline at end of file diff --git a/cflash/main.c b/cflash/main.c index 3881628..a7fd61a 100644 --- a/cflash/main.c +++ b/cflash/main.c @@ -122,14 +122,14 @@ int main(int argc, char *argv[]) case OP_VERIFY: // Verify Kickstart if (config->kick_source == SOURCE_ROM) { - rc = (verifyBank((ULONG *)0xF80000,FLASH_BANK_1,ROM_512K)) ? 0 : 5; + rc = (verifyBank((ULONG *)KICK_BASE,FLASH_BANK_1,ROM_512K)) ? 0 : 5; } else if (config->kick_source == SOURCE_FILE) { rc = (verifyFile(config->ks_filename,FLASH_BANK_1)) ? 0 : 5; } // Verify Extended ROM if (config->ext_source == SOURCE_ROM) { - rc = (verifyBank((ULONG *)0xF00000,FLASH_BANK_0,ROM_256K)) ? 0 : 5; + rc = (verifyBank((ULONG *)EXT_BASE,FLASH_BANK_0,ROM_256K)) ? 0 : 5; } else if (config->ext_source == SOURCE_FILE) { rc = (verifyFile(config->ext_filename,FLASH_BANK_0)) ? 0 : 5; } @@ -148,7 +148,7 @@ int main(int argc, char *argv[]) if (config->kick_source == SOURCE_ROM) { erase_bank(FLASH_BANK_1,config->programSlot); printf("Copying Kickstart ROM\n"); - if (copyBufToFlash((void *)0xF80000,FLASH_BANK_1,ROM_512K,config->skipVerify) == false) { + if (copyBufToFlash((void *)KICK_BASE,FLASH_BANK_1,ROM_512K,config->skipVerify) == false) { rc = 5; goto exit; } @@ -177,9 +177,14 @@ int main(int argc, char *argv[]) } // Ext ROM flash if (config->ext_source == SOURCE_ROM) { + if (*((UWORD *)EXT_BASE + 1) != 0x4EF9) { + printf("Extended ROM not found - Check that JP15 is connected and that both A500 mode and Kick Flash are disabled.\n"); + rc = 5; + goto exit; + } erase_bank(FLASH_BANK_0,config->programSlot); printf("Copying Extended ROM\n"); - if (copyBufToFlash((void *)0xF00000,FLASH_BANK_0,ROM_256K,config->skipVerify) == false) { + if (copyBufToFlash((ULONG *)EXT_BASE,FLASH_BANK_0,ROM_256K,config->skipVerify) == false) { rc = 5; goto exit; }