cygwin 1.7 build fixes
[fw/openocd] / src / flash / mflash.c
index 03a56e29d2de32ef9c6e237da0adfafc8d6422ad..5c8ca8c16b46cc6912301c814cc3faa38a2e8999 100644 (file)
 #endif
 
 #include "mflash.h"
-#include "target.h"
-#include "time_support.h"
-#include "fileio.h"
-#include "log.h"
+#include <target/target.h>
+#include <helper/time_support.h>
+#include <helper/fileio.h>
+#include <helper/log.h>
 
 
 static int s3c2440_set_gpio_to_output (struct mflash_gpio_num gpio);
@@ -342,7 +342,8 @@ static int mg_dsk_drv_info(void)
        if ((ret =  mg_dsk_io_cmd(0, 1, mg_io_cmd_identify)) != ERROR_OK)
                return ret;
 
-       if ((ret = mg_dsk_wait(mg_io_wait_drq, MG_OEM_DISK_WAIT_TIME_NORMAL)) != ERROR_OK)
+       ret = mg_dsk_wait(mg_io_wait_drq, MG_OEM_DISK_WAIT_TIME_NORMAL);
+       if (ret != ERROR_OK)
                return ret;
 
        LOG_INFO("mflash: read drive info");
@@ -350,7 +351,8 @@ static int mg_dsk_drv_info(void)
        if (! mflash_bank->drv_info)
                mflash_bank->drv_info = malloc(sizeof(struct mg_drv_info));
 
-       target_read_memory(target, mg_buff, 2, sizeof(mg_io_type_drv_info) >> 1,
+       ret = target_read_memory(target, mg_buff, 2,
+                       sizeof(mg_io_type_drv_info) >> 1,
                        (uint8_t *)&mflash_bank->drv_info->drv_id);
        if (ret != ERROR_OK)
                return ret;
@@ -1304,6 +1306,23 @@ int mflash_init_drivers(struct command_context *cmd_ctx)
        return register_commands(cmd_ctx, NULL, mflash_exec_command_handlers);
 }
 
+COMMAND_HANDLER(handle_mflash_init_command)
+{
+       if (CMD_ARGC != 0)
+               return ERROR_COMMAND_SYNTAX_ERROR;
+
+       static bool mflash_initialized = false;
+       if (mflash_initialized)
+       {
+               LOG_INFO("'mflash init' has already been called");
+               return ERROR_OK;
+       }
+       mflash_initialized = true;
+
+       LOG_DEBUG("Initializing mflash devices...");
+       return mflash_init_drivers(CMD_CTX);
+}
+
 COMMAND_HANDLER(mg_bank_cmd)
 {
        struct target *target;
@@ -1326,7 +1345,8 @@ COMMAND_HANDLER(mg_bank_cmd)
        char *str;
        mflash_bank->rst_pin.num = strtoul(CMD_ARGV[2], &str, 0);
        if (*str)
-               mflash_bank->rst_pin.port[0] = (uint16_t)tolower(str[0]);
+               mflash_bank->rst_pin.port[0] = (uint16_t)
+                               tolower((unsigned)str[0]);
 
        mflash_bank->target = target;
 
@@ -1352,6 +1372,12 @@ static const struct command_registration mflash_config_command_handlers[] = {
                .help = "configure a mflash device bank",
                .usage = "<soc> <base> <RST pin> <target #>",
        },
+       {
+               .name = "init",
+               .mode = COMMAND_CONFIG,
+               .handler = &handle_mflash_init_command,
+               .help = "initialize mflash devices",
+       },
        COMMAND_REGISTRATION_DONE
 };
 static const struct command_registration mflash_command_handler[] = {