flash/nor: Make info function optional 42/1642/3
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>
Sat, 21 Sep 2013 16:39:01 +0000 (18:39 +0200)
committerSpencer Oliver <spen@spen-soft.co.uk>
Thu, 3 Oct 2013 09:22:34 +0000 (09:22 +0000)
Remove lots of no-op or dummy info function implementations and check if
it's implemented before invoking it.

Change-Id: I2144dad6a84a80359bb13a8a29a4614387e4c135
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1642
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
14 files changed:
src/flash/nor/aduc702x.c
src/flash/nor/at91sam3.c
src/flash/nor/at91sam4.c
src/flash/nor/dsp5680xx_flash.c
src/flash/nor/em357.c
src/flash/nor/fm3.c
src/flash/nor/lpc288x.c
src/flash/nor/lpc2900.c
src/flash/nor/mini51.c
src/flash/nor/ocl.c
src/flash/nor/str7x.c
src/flash/nor/str9x.c
src/flash/nor/str9xpec.c
src/flash/nor/tcl.c

index 432bd8029287608ec42b426553f85d98edeb39f0..a0610d4354a5a7d315f7a9542812e190862af05d 100644 (file)
@@ -352,12 +352,6 @@ static int aduc702x_probe(struct flash_bank *bank)
        return ERROR_OK;
 }
 
-static int aduc702x_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "aduc702x flash driver info");
-       return ERROR_OK;
-}
-
 /* sets FEEMOD bit 3
  * enable = 1 enables writes & erases, 0 disables them */
 static int aduc702x_set_write_enable(struct target *target, int enable)
@@ -407,5 +401,4 @@ struct flash_driver aduc702x_flash = {
        .auto_probe = aduc702x_probe,
        .erase_check = default_flash_blank_check,
        .protect_check = aduc702x_protect_check,
-       .info = aduc702x_info
 };
index 1bb549e3b56a57db47f9740fb333b146246bb734..6fe71bfb9732e0ce1dc128604e3d662a07d5d602 100644 (file)
@@ -3179,16 +3179,6 @@ static int sam3_protect(struct flash_bank *bank, int set, int first, int last)
 
 }
 
-static int sam3_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       if (bank->target->state != TARGET_HALTED) {
-               LOG_ERROR("Target not halted");
-               return ERROR_TARGET_NOT_HALTED;
-       }
-       buf[0] = 0;
-       return ERROR_OK;
-}
-
 static int sam3_page_read(struct sam3_bank_private *pPrivate, unsigned pagenum, uint8_t *buf)
 {
        uint32_t adr;
@@ -3733,5 +3723,4 @@ struct flash_driver at91sam3_flash = {
        .auto_probe = sam3_auto_probe,
        .erase_check = sam3_erase_check,
        .protect_check = sam3_protect_check,
-       .info = sam3_info,
 };
index 1ba39109efcd7cac3a10677ad95fa8d8aaf3bd7a..c7385c4f34ad379698bcc0f0f3692fbee1abaaf3 100644 (file)
@@ -1819,16 +1819,6 @@ static int sam4_protect(struct flash_bank *bank, int set, int first, int last)
 
 }
 
-static int sam4_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       if (bank->target->state != TARGET_HALTED) {
-               LOG_ERROR("Target not halted");
-               return ERROR_TARGET_NOT_HALTED;
-       }
-       buf[0] = 0;
-       return ERROR_OK;
-}
-
 static int sam4_page_read(struct sam4_bank_private *pPrivate, unsigned pagenum, uint8_t *buf)
 {
        uint32_t adr;
@@ -2376,5 +2366,4 @@ struct flash_driver at91sam4_flash = {
        .auto_probe = sam4_auto_probe,
        .erase_check = default_flash_blank_check,
        .protect_check = sam4_protect_check,
-       .info = sam4_info,
 };
index b935a1e895c60ae2fc94897cec694c788ed2fab1..9368d892c3296d42d9671e6bed14ab58aebc0901 100644 (file)
@@ -193,14 +193,6 @@ static int dsp5680xx_probe(struct flash_bank *bank)
        return ERROR_OK;
 }
 
-static int dsp5680xx_flash_info(struct flash_bank *bank, char *buf,
-               int buf_size)
-{
-       snprintf(buf, buf_size,
-               "\ndsp5680xx flash driver info:\n - See comments in code.");
-       return ERROR_OK;
-}
-
 /**
  * The flash module (FM) on the dsp5680xx supports both individual sector
  * and mass erase of the flash memory.
@@ -277,5 +269,4 @@ struct flash_driver dsp5680xx_flash = {
        .auto_probe = dsp5680xx_probe,
        .erase_check = dsp5680xx_flash_erase_check,
        .protect_check = dsp5680xx_flash_protect_check,
-       .info = dsp5680xx_flash_info
 };
index 49aee7e89b20ae87fc0b292be8bf20a8c8b99b3a..8f25a89b650a561a5d456bb53fbb5859019efd9d 100644 (file)
@@ -751,13 +751,6 @@ static int em357_auto_probe(struct flash_bank *bank)
        return em357_probe(bank);
 }
 
-
-static int get_em357_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "em357\n");
-       return ERROR_OK;
-}
-
 COMMAND_HANDLER(em357_handle_lock_command)
 {
        struct target *target = NULL;
@@ -946,5 +939,4 @@ struct flash_driver em357_flash = {
        .auto_probe = em357_auto_probe,
        .erase_check = default_flash_blank_check,
        .protect_check = em357_protect_check,
-       .info = get_em357_info,
 };
index a9a11a311f809b3e07f7f2153210e6a8d853a10f..86e4cb2416dfd7b4eb60d5ed7da37a2e5718bcb5 100644 (file)
@@ -760,12 +760,6 @@ static int fm3_auto_probe(struct flash_bank *bank)
        return fm3_probe(bank);
 }
 
-static int fm3_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "Fujitsu fm3 Device does not support Chip-ID (Type unknown)");
-       return ERROR_OK;
-}
-
 /* Chip erase */
 static int fm3_chip_erase(struct flash_bank *bank)
 {
@@ -907,5 +901,4 @@ struct flash_driver fm3_flash = {
        .probe = fm3_probe,
        .auto_probe = fm3_auto_probe,
        .erase_check = default_flash_blank_check,
-       .info = fm3_info,
 };
index 7428d794a6f7c2edae256baafd2157344547c0d2..57107658861e98dd8e5717d75c00f352dcad9450 100644 (file)
@@ -400,12 +400,6 @@ static int lpc288x_probe(struct flash_bank *bank)
        return ERROR_OK;
 }
 
-static int lpc288x_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "lpc288x flash driver");
-       return ERROR_OK;
-}
-
 static int lpc288x_protect(struct flash_bank *bank, int set, int first, int last)
 {
        int lockregion, status;
@@ -450,5 +444,4 @@ struct flash_driver lpc288x_flash = {
        .auto_probe = lpc288x_probe,
        .erase_check = lpc288x_erase_check,
        .protect_check = lpc288x_protect_check,
-       .info = lpc288x_info,
 };
index 7fea94143945df724833c25f858c7d339f8399e2..9663e51ae0c914cd000eee7017b0f1271348ac11 100644 (file)
@@ -1588,19 +1588,6 @@ static int lpc2900_protect_check(struct flash_bank *bank)
        return lpc2900_read_security_status(bank);
 }
 
-/**
- * Print info about the driver (not the device).
- *
- * @param bank Pointer to the flash bank descriptor
- * @param buf Buffer to take the string
- * @param buf_size Maximum number of characters that the buffer can take
- */
-static int lpc2900_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "lpc2900 flash driver");
-       return ERROR_OK;
-}
-
 struct flash_driver lpc2900_flash = {
        .name = "lpc2900",
        .commands = lpc2900_command_handlers,
@@ -1613,5 +1600,4 @@ struct flash_driver lpc2900_flash = {
        .auto_probe = lpc2900_probe,
        .erase_check = lpc2900_erase_check,
        .protect_check = lpc2900_protect_check,
-       .info = lpc2900_info
 };
index 46e4188d6bf8b1de4a401b5fc51e2e0662fe2c1e..5504b5c9264c6d1a4d88eb1f700b3f6965f21ec7 100644 (file)
@@ -395,12 +395,6 @@ static int mini51_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offse
        return ERROR_OK;
 }
 
-static int get_mini51_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "Mini51 flash driver");
-       return ERROR_OK;
-}
-
 static int mini51_probe(struct flash_bank *bank)
 {
        uint32_t flash_size;
@@ -454,5 +448,4 @@ struct flash_driver mini51_flash = {
        .auto_probe = mini51_auto_probe,
        .erase_check = default_flash_blank_check,
        .protect_check = mini51_protect_check,
-       .info = get_mini51_info,
 };
index 4e7198a736fe2c6ec9ecd50eea994ae1b1b3dd80..6b297b0d366c929c8d8dfa18d8a25d797f9e72e5 100644 (file)
@@ -321,11 +321,6 @@ static int ocl_probe(struct flash_bank *bank)
        return ERROR_OK;
 }
 
-static int ocl_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       return ERROR_OK;
-}
-
 static int ocl_auto_probe(struct flash_bank *bank)
 {
        struct ocl_priv *ocl = bank->driver_priv;
@@ -346,6 +341,5 @@ struct flash_driver ocl_flash = {
        .probe = ocl_probe,
        .erase_check = ocl_erase_check,
        .protect_check = ocl_protect_check,
-       .info = ocl_info,
        .auto_probe = ocl_auto_probe,
 };
index 49aaa3d78be1a052a00a21ef1e4515f2b5af2227..93b0f8371b1523a2b1b9ba60cf468e848a9a0c85 100644 (file)
@@ -707,12 +707,11 @@ COMMAND_HANDLER(str7x_handle_part_id_command)
 
 static int get_str7x_info(struct flash_bank *bank, char *buf, int buf_size)
 {
-       snprintf(buf, buf_size, "str7x flash driver info");
        /* STR7x flash doesn't support sector protection interrogation.
         * FLASH_NVWPAR acts as a write only register; its read value
         * doesn't reflect the actual protection state of the sectors.
         */
-       LOG_WARNING("STR7x flash lock information might not be correct "
+       snprintf(buf, buf_size, "STR7x flash lock information might not be correct "
                        "due to hardware limitations.");
        return ERROR_OK;
 }
index be8c00b698c7bfc47c0f51326a5f952c52a30acc..7d93b187dffa95360bb78c15266921a3fe5ce0a4 100644 (file)
@@ -606,12 +606,6 @@ COMMAND_HANDLER(str9x_handle_part_id_command)
 }
 #endif
 
-static int get_str9x_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "str9x flash driver info");
-       return ERROR_OK;
-}
-
 COMMAND_HANDLER(str9x_handle_flash_config_command)
 {
        struct target *target = NULL;
@@ -686,5 +680,4 @@ struct flash_driver str9x_flash = {
        .auto_probe = str9x_probe,
        .erase_check = default_flash_blank_check,
        .protect_check = str9x_protect_check,
-       .info = get_str9x_info,
 };
index da6c83e28bef83b29e393071e1e9176f16101a85..e08495da05494b012fda61836b1178d33a2d111a 100644 (file)
@@ -760,12 +760,6 @@ static int str9xpec_erase_check(struct flash_bank *bank)
        return str9xpec_blank_check(bank, 0, bank->num_sectors - 1);
 }
 
-static int get_str9xpec_info(struct flash_bank *bank, char *buf, int buf_size)
-{
-       snprintf(buf, buf_size, "str9xpec flash driver info");
-       return ERROR_OK;
-}
-
 COMMAND_HANDLER(str9xpec_handle_flash_options_read_command)
 {
        uint8_t status;
@@ -1215,5 +1209,4 @@ struct flash_driver str9xpec_flash = {
        .auto_probe = str9xpec_probe,
        .erase_check = str9xpec_erase_check,
        .protect_check = str9xpec_protect_check,
-       .info = get_str9xpec_info,
 };
index 57c3be508de6551c64bfdd3267bcc4cf04932a1c..788d050b967b938ddb9863ee15d8e7c2a8feb335 100644 (file)
@@ -101,12 +101,13 @@ COMMAND_HANDLER(handle_flash_info_command)
                                protect_state);
                }
 
-               *buf = '\0';    /* initialize buffer, otherwise it migh contain garbage if driver
-                                *function fails */
-               retval = p->driver->info(p, buf, sizeof(buf));
-               command_print(CMD_CTX, "%s", buf);
-               if (retval != ERROR_OK)
-                       LOG_ERROR("error retrieving flash info");
+               if (p->driver->info != NULL) {
+                       retval = p->driver->info(p, buf, sizeof(buf));
+                       if (retval == ERROR_OK)
+                               command_print(CMD_CTX, "%s", buf);
+                       else
+                               LOG_ERROR("error retrieving flash info");
+               }
        }
 
        return retval;

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)