kinetis flash: use longword write when writing into pflash
[openocd.git] / src / flash / mflash.h
index b42eaeffff0d4a9f6c43567ea065f16facfc6ae1..0520c5fa9fd6c34078124aebc995e37cd329d765 100644 (file)
 #ifndef _MFLASH_H
 #define _MFLASH_H
 
-#include "target.h"
+struct command_context;
 
 typedef unsigned long mg_io_uint32;
 typedef unsigned short mg_io_uint16;
 typedef unsigned char mg_io_uint8;
 
-typedef struct mflash_gpio_num_s
+struct mflash_gpio_num
 {
        char port[2];
        signed short num;
-} mflash_gpio_num_t;
+};
 
-typedef struct mflash_gpio_drv_s
+struct mflash_gpio_drv
 {
-       char *name;
-       int (*set_gpio_to_output) (mflash_gpio_num_t gpio);
-       int (*set_gpio_output_val) (mflash_gpio_num_t gpio, u8 val);
-} mflash_gpio_drv_t;
+       const char *name;
+       int (*set_gpio_to_output) (struct mflash_gpio_num gpio);
+       int (*set_gpio_output_val) (struct mflash_gpio_num gpio, uint8_t val);
+};
 
 typedef struct _mg_io_type_drv_info {
 
@@ -125,24 +125,23 @@ typedef struct _mg_pll_t
        unsigned char  output_div;      /* 2bit divider */
 } mg_pll_t;
 
-typedef struct mg_drv_info_s {
+struct mg_drv_info {
        mg_io_type_drv_info drv_id;
-       u32 tot_sects;
-} mg_drv_info_t;
+       uint32_t tot_sects;
+};
 
-typedef struct mflash_bank_s
+struct mflash_bank
 {
-       u32 base;
+       uint32_t base;
 
-       mflash_gpio_num_t rst_pin;
+       struct mflash_gpio_num rst_pin;
 
-       mflash_gpio_drv_t *gpio_drv;
-       target_t *target;
-       mg_drv_info_t *drv_info;
-} mflash_bank_t;
+       struct mflash_gpio_drv *gpio_drv;
+       struct target *target;
+       struct mg_drv_info *drv_info;
+};
 
-extern int mflash_register_commands(struct command_context_s *cmd_ctx);
-extern int mflash_init_drivers(struct command_context_s *cmd_ctx);
+int mflash_register_commands(struct command_context *cmd_ctx);
 
 #define MG_MFLASH_SECTOR_SIZE          (0x200)         /* 512Bytes = 2^9 */
 #define MG_MFLASH_SECTOR_SIZE_MASK     (0x200-1)
@@ -178,6 +177,13 @@ extern int mflash_init_drivers(struct command_context_s *cmd_ctx);
 
 #define MG_FILEIO_CHUNK 1048576
 
+#define ERROR_MG_IO (-1600)
+#define ERROR_MG_TIMEOUT (-1601)
+#define ERROR_MG_INVALID_PLL (-1603)
+#define ERROR_MG_INTERFACE (-1604)
+#define ERROR_MG_INVALID_OSC (-1605)
+#define ERROR_MG_UNSUPPORTED_SOC (-1606)
+
 typedef enum _mg_io_type_wait{
 
        mg_io_wait_bsy       = 1,
@@ -287,7 +293,7 @@ typedef enum _mg_vcmd
 typedef enum _mg_opmode
 {
        mg_op_mode_xip = 1, /* TRUE XIP */
-       mg_op_mode_snd = 2, /* BOOT+Storage */
+       mg_op_mode_snd = 2, /* BOOT + Storage */
        mg_op_mode_stg = 0  /* Only Storage */
 } mg_opmode;
 

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)