OpenOCD
mflash.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _mg_io_type_drv_info
 
struct  _mg_pll_t
 
struct  mflash_bank
 
struct  mflash_gpio_drv
 
struct  mflash_gpio_num
 
struct  mg_drv_info
 

Macros

#define ERROR_MG_INTERFACE   (-1604)
 
#define ERROR_MG_INVALID_OSC   (-1605)
 
#define ERROR_MG_INVALID_PLL   (-1603)
 
#define ERROR_MG_IO   (-1600)
 
#define ERROR_MG_TIMEOUT   (-1601)
 
#define ERROR_MG_UNSUPPORTED_SOC   (-1606)
 
#define MG_BUFFER_OFFSET   0x8000
 
#define MG_FILEIO_CHUNK   1048576
 
#define MG_MFLASH_SECTOR_SIZE   (0x200) /* 512Bytes = 2^9 */
 
#define MG_MFLASH_SECTOR_SIZE_MASK   (0x200-1)
 
#define MG_MFLASH_SECTOR_SIZE_SHIFT   (9)
 
#define MG_OEM_DISK_WAIT_TIME_LONG   15000 /* msec */
 
#define MG_OEM_DISK_WAIT_TIME_NORMAL   3000 /* msec */
 
#define MG_OEM_DISK_WAIT_TIME_SHORT   1000 /* msec */
 
#define MG_PLL_CLK_OUT   66000000.0 /* 66Mhz */
 
#define MG_PLL_MAX_FEEDBACKDIV_VAL   512
 
#define MG_PLL_MAX_INPUTDIV_VAL   32
 
#define MG_PLL_MAX_OUTPUTDIV_VAL   4
 
#define MG_PLL_STD_INPUTCLK   12000000.0 /* 12Mhz */
 
#define MG_PLL_STD_LOCKCYCLE   10000
 
#define MG_REG_BURST_CTRL   0x12
 
#define MG_REG_COMMAND   0xE /* write case */
 
#define MG_REG_CYL_HIGH   0xA
 
#define MG_REG_CYL_LOW   0x8
 
#define MG_REG_DRV_CTRL   0x10
 
#define MG_REG_DRV_HEAD   0xC
 
#define MG_REG_ERROR   0x2 /* read case */
 
#define MG_REG_FEATURE   0x2 /* write case */
 
#define MG_REG_OFFSET   0xC000
 
#define MG_REG_SECT_CNT   0x4
 
#define MG_REG_SECT_NUM   0x6
 
#define MG_REG_STATUS   0xE /* read case */
 
#define MG_UNLOCK_OTP_AREA   0xFF
 

Typedefs

typedef enum _mg_feature_id mg_feature_id
 
typedef enum _mg_feature_val mg_feature_val
 
typedef enum _mg_io_type_cmd mg_io_type_cmd
 
typedef struct _mg_io_type_drv_info mg_io_type_drv_info
 
typedef enum _mg_io_type_rbit_devc mg_io_type_rbit_devc
 
typedef enum _mg_io_type_rbit_error mg_io_type_rbit_error
 
typedef enum _mg_io_type_rbit_status mg_io_type_rbit_status
 
typedef enum _mg_io_type_rval_dev mg_io_type_rval_dev
 
typedef enum _mg_io_type_wait mg_io_type_wait
 
typedef unsigned short mg_io_uint16
 
typedef unsigned long mg_io_uint32
 
typedef unsigned char mg_io_uint8
 
typedef enum _mg_opmode mg_opmode
 
typedef struct _mg_pll_t mg_pll_t
 
typedef enum _mg_vcmd mg_vcmd
 

Enumerations

enum  _mg_feature_id { mg_feature_id_transmode = 0x3 }
 
enum  _mg_feature_val { mg_feature_val_trans_default = 0x0, mg_feature_val_trans_vcmd = 0x3, mg_feature_val_trand_vcmds = 0x2 }
 
enum  _mg_io_type_cmd {
  mg_io_cmd_read = 0x20, mg_io_cmd_write = 0x30, mg_io_cmd_setmul = 0xC6, mg_io_cmd_readmul = 0xC4,
  mg_io_cmd_writemul = 0xC5, mg_io_cmd_idle = 0x97, mg_io_cmd_idle_immediate = 0x95, mg_io_cmd_setsleep = 0x99,
  mg_io_cmd_stdby = 0x96, mg_io_cmd_stdby_immediate = 0x94, mg_io_cmd_identify = 0xEC, mg_io_cmd_set_feature = 0xEF,
  mg_io_cmd_confirm_write = 0x3C, mg_io_cmd_confirm_read = 0x40, mg_io_cmd_wakeup = 0xC3
}
 
enum  _mg_io_type_rbit_devc { mg_io_rbit_devc_intr = 0x02, mg_io_rbit_devc_srst = 0x04 }
 
enum  _mg_io_type_rbit_error {
  mg_io_rbit_err_general = 0x01, mg_io_rbit_err_aborted = 0x04, mg_io_rbit_err_bad_sect_num = 0x10, mg_io_rbit_err_uncorrectable = 0x40,
  mg_io_rbit_err_bad_block = 0x80
}
 
enum  _mg_io_type_rbit_status {
  mg_io_rbit_status_error = 0x01, mg_io_rbit_status_corrected_error = 0x04, mg_io_rbit_status_data_req = 0x08, mg_io_rbit_status_seek_done = 0x10,
  mg_io_rbit_status_write_fault = 0x20, mg_io_rbit_status_ready = 0x40, mg_io_rbit_status_busy = 0x80
}
 
enum  _mg_io_type_rval_dev {
  mg_io_rval_dev_must_be_on = 0x80, mg_io_rval_dev_drv_master = (0x00 | mg_io_rval_dev_must_be_on), mg_io_rval_dev_drv_slave0 = (0x10 | mg_io_rval_dev_must_be_on), mg_io_rval_dev_drv_slave1 = (0x20 | mg_io_rval_dev_must_be_on),
  mg_io_rval_dev_drv_slave2 = (0x30 | mg_io_rval_dev_must_be_on), mg_io_rval_dev_lba_mode = (0x40 | mg_io_rval_dev_must_be_on)
}
 
enum  _mg_io_type_wait {
  mg_io_wait_bsy = 1, mg_io_wait_not_bsy = 2, mg_io_wait_rdy = 3, mg_io_wait_drq = 4,
  mg_io_wait_drq_noerr = 5, mg_io_wait_rdy_noerr = 6
}
 
enum  _mg_opmode { mg_op_mode_xip = 1, mg_op_mode_snd = 2, mg_op_mode_stg = 0 }
 
enum  _mg_vcmd {
  mg_vcmd_update_xipinfo = 0xFA, mg_vcmd_verify_fwpatch = 0xFB, mg_vcmd_update_stgdrvinfo = 0xFC, mg_vcmd_prep_fwpatch = 0xFD,
  mg_vcmd_exe_fwpatch = 0xFE, mg_vcmd_wr_pll = 0x8B, mg_vcmd_purge_nand = 0x8C, mg_vcmd_lock_otp = 0x8D,
  mg_vcmd_rd_otp = 0x8E, mg_vcmd_wr_otp = 0x8F
}
 

Functions

int mflash_register_commands (struct command_context *cmd_ctx)
 

Macro Definition Documentation

#define ERROR_MG_INTERFACE   (-1604)

Definition at line 177 of file mflash.h.

Referenced by mg_verify_interface().

#define ERROR_MG_INVALID_OSC   (-1605)

Definition at line 178 of file mflash.h.

Referenced by COMMAND_HANDLER().

#define ERROR_MG_INVALID_PLL   (-1603)

Definition at line 176 of file mflash.h.

Referenced by COMMAND_HANDLER(), and mg_is_valid_pll().

#define ERROR_MG_IO   (-1600)

Definition at line 174 of file mflash.h.

Referenced by mg_dsk_wait().

#define ERROR_MG_TIMEOUT   (-1601)

Definition at line 175 of file mflash.h.

Referenced by mg_dsk_wait().

#define ERROR_MG_UNSUPPORTED_SOC   (-1606)

Definition at line 179 of file mflash.h.

Referenced by COMMAND_HANDLER().

#define MG_BUFFER_OFFSET   0x8000
#define MG_FILEIO_CHUNK   1048576

Definition at line 172 of file mflash.h.

Referenced by COMMAND_HANDLER().

#define MG_MFLASH_SECTOR_SIZE   (0x200) /* 512Bytes = 2^9 */
#define MG_MFLASH_SECTOR_SIZE_MASK   (0x200-1)

Definition at line 141 of file mflash.h.

Referenced by mg_mflash_read(), and mg_mflash_write().

#define MG_MFLASH_SECTOR_SIZE_SHIFT   (9)

Definition at line 142 of file mflash.h.

Referenced by mg_mflash_read(), and mg_mflash_write().

#define MG_OEM_DISK_WAIT_TIME_LONG   15000 /* msec */

Definition at line 158 of file mflash.h.

Referenced by mg_mflash_do_write_sects(), and mg_mflash_rst().

#define MG_OEM_DISK_WAIT_TIME_NORMAL   3000 /* msec */
#define MG_OEM_DISK_WAIT_TIME_SHORT   1000 /* msec */

Definition at line 160 of file mflash.h.

#define MG_PLL_CLK_OUT   66000000.0 /* 66Mhz */

Definition at line 162 of file mflash.h.

Referenced by COMMAND_HANDLER(), and mg_do_calc_pll().

#define MG_PLL_MAX_FEEDBACKDIV_VAL   512

Definition at line 163 of file mflash.h.

Referenced by mg_do_calc_pll().

#define MG_PLL_MAX_INPUTDIV_VAL   32

Definition at line 164 of file mflash.h.

Referenced by mg_do_calc_pll().

#define MG_PLL_MAX_OUTPUTDIV_VAL   4

Definition at line 165 of file mflash.h.

Referenced by mg_do_calc_pll().

#define MG_PLL_STD_INPUTCLK   12000000.0 /* 12Mhz */

Definition at line 167 of file mflash.h.

Referenced by mg_do_calc_pll().

#define MG_PLL_STD_LOCKCYCLE   10000

Definition at line 168 of file mflash.h.

Referenced by mg_do_calc_pll().

#define MG_REG_BURST_CTRL   0x12

Definition at line 156 of file mflash.h.

#define MG_REG_COMMAND   0xE /* write case */
#define MG_REG_CYL_HIGH   0xA

Definition at line 151 of file mflash.h.

Referenced by mg_dsk_io_cmd().

#define MG_REG_CYL_LOW   0x8

Definition at line 150 of file mflash.h.

Referenced by mg_dsk_io_cmd().

#define MG_REG_DRV_CTRL   0x10

Definition at line 155 of file mflash.h.

Referenced by mg_dsk_srst().

#define MG_REG_DRV_HEAD   0xC

Definition at line 152 of file mflash.h.

Referenced by mg_dsk_io_cmd().

#define MG_REG_ERROR   0x2 /* read case */

Definition at line 147 of file mflash.h.

Referenced by mg_dsk_wait().

#define MG_REG_FEATURE   0x2 /* write case */

Definition at line 146 of file mflash.h.

Referenced by mg_set_feature().

#define MG_REG_OFFSET   0xC000
#define MG_REG_SECT_CNT   0x4

Definition at line 148 of file mflash.h.

Referenced by mg_dsk_io_cmd(), and mg_set_feature().

#define MG_REG_SECT_NUM   0x6

Definition at line 149 of file mflash.h.

Referenced by mg_dsk_io_cmd().

#define MG_REG_STATUS   0xE /* read case */

Definition at line 154 of file mflash.h.

Referenced by mg_dsk_wait().

#define MG_UNLOCK_OTP_AREA   0xFF

Definition at line 170 of file mflash.h.

Referenced by mg_boot_config().

Typedef Documentation

typedef unsigned short mg_io_uint16

Definition at line 24 of file mflash.h.

typedef unsigned long mg_io_uint32

Definition at line 21 of file mflash.h.

typedef unsigned char mg_io_uint8

Definition at line 25 of file mflash.h.

typedef enum _mg_opmode mg_opmode
typedef struct _mg_pll_t mg_pll_t
typedef enum _mg_vcmd mg_vcmd

Enumeration Type Documentation

Enumerator
mg_feature_id_transmode 

Definition at line 260 of file mflash.h.

Enumerator
mg_feature_val_trans_default 
mg_feature_val_trans_vcmd 
mg_feature_val_trand_vcmds 

Definition at line 264 of file mflash.h.

Enumerator
mg_io_cmd_read 
mg_io_cmd_write 
mg_io_cmd_setmul 
mg_io_cmd_readmul 
mg_io_cmd_writemul 
mg_io_cmd_idle 
mg_io_cmd_idle_immediate 
mg_io_cmd_setsleep 
mg_io_cmd_stdby 
mg_io_cmd_stdby_immediate 
mg_io_cmd_identify 
mg_io_cmd_set_feature 
mg_io_cmd_confirm_write 
mg_io_cmd_confirm_read 
mg_io_cmd_wakeup 

Definition at line 236 of file mflash.h.

Enumerator
mg_io_rbit_devc_intr 
mg_io_rbit_devc_srst 

Definition at line 217 of file mflash.h.

Enumerator
mg_io_rbit_err_general 
mg_io_rbit_err_aborted 
mg_io_rbit_err_bad_sect_num 
mg_io_rbit_err_uncorrectable 
mg_io_rbit_err_bad_block 

Definition at line 206 of file mflash.h.

Enumerator
mg_io_rbit_status_error 
mg_io_rbit_status_corrected_error 
mg_io_rbit_status_data_req 
mg_io_rbit_status_seek_done 
mg_io_rbit_status_write_fault 
mg_io_rbit_status_ready 
mg_io_rbit_status_busy 

Definition at line 193 of file mflash.h.

Enumerator
mg_io_rval_dev_must_be_on 
mg_io_rval_dev_drv_master 
mg_io_rval_dev_drv_slave0 
mg_io_rval_dev_drv_slave1 
mg_io_rval_dev_drv_slave2 
mg_io_rval_dev_lba_mode 

Definition at line 225 of file mflash.h.

Enumerator
mg_io_wait_bsy 
mg_io_wait_not_bsy 
mg_io_wait_rdy 
mg_io_wait_drq 
mg_io_wait_drq_noerr 
mg_io_wait_rdy_noerr 

Definition at line 181 of file mflash.h.

enum _mg_opmode
Enumerator
mg_op_mode_xip 
mg_op_mode_snd 
mg_op_mode_stg 

Definition at line 283 of file mflash.h.

enum _mg_vcmd
Enumerator
mg_vcmd_update_xipinfo 
mg_vcmd_verify_fwpatch 
mg_vcmd_update_stgdrvinfo 
mg_vcmd_prep_fwpatch 
mg_vcmd_exe_fwpatch 
mg_vcmd_wr_pll 
mg_vcmd_purge_nand 
mg_vcmd_lock_otp 
mg_vcmd_rd_otp 
mg_vcmd_wr_otp 

Definition at line 270 of file mflash.h.

Function Documentation

int mflash_register_commands ( struct command_context cmd_ctx)

Definition at line 1446 of file mflash.c.

References NULL, and register_commands().

Referenced by setup_command_handler().