diff options
author | zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-05-27 12:30:42 +0000 |
---|---|---|
committer | zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-05-27 12:30:42 +0000 |
commit | ee9766f1db994754f47187d4f929b4ca1891d27d (patch) | |
tree | 7f0c93a1c6ddb24679b8fd673e72373727736c5c /src/flash/mflash.h | |
parent | d2089dbae0c3ec1fc5bef02ea93b9f65b02de597 (diff) | |
download | riscv-openocd-ee9766f1db994754f47187d4f929b4ca1891d27d.zip riscv-openocd-ee9766f1db994754f47187d4f929b4ca1891d27d.tar.gz riscv-openocd-ee9766f1db994754f47187d4f929b4ca1891d27d.tar.bz2 |
unsik Kim <donari75@gmail.com>:
Add mflash configuration code, updating relevant documentation.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1930 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/flash/mflash.h')
-rw-r--r-- | src/flash/mflash.h | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/src/flash/mflash.h b/src/flash/mflash.h index 3d88ef4..da148dc 100644 --- a/src/flash/mflash.h +++ b/src/flash/mflash.h @@ -48,7 +48,7 @@ typedef struct _mg_io_type_drv_info { mg_io_uint16 unformatted_bytes_per_track; /* 04 */ mg_io_uint16 unformatted_bytes_per_sector; /* 05 */ mg_io_uint16 sectors_per_track; /* 06 */ - mg_io_uint8 vendor_unique1[6]; /* 07/08/09 */ + mg_io_uint16 vendor_unique1[3]; /* 07/08/09 */ mg_io_uint8 serial_number[20]; /* 10~19 */ @@ -117,6 +117,14 @@ typedef struct _mg_io_type_drv_info { } mg_io_type_drv_info; +typedef struct _mg_pll_t +{ + unsigned int lock_cyc; + unsigned short feedback_div; /* 9bit divider */ + unsigned char input_div; /* 5bit divider */ + unsigned char output_div; /* 2bit divider */ +} mg_pll_t; + typedef struct mg_drv_info_s { mg_io_type_drv_info drv_id; u32 tot_sects; @@ -158,6 +166,16 @@ extern int mflash_init_drivers(struct command_context_s *cmd_ctx); #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_UNLOCK_OTP_AREA 0xFF + typedef enum _mg_io_type_wait{ mg_io_wait_bsy = 1, @@ -238,4 +256,37 @@ typedef enum _mg_io_type_cmd } mg_io_type_cmd; +typedef enum _mg_feature_id +{ + mg_feature_id_transmode = 0x3 +} mg_feature_id; + +typedef enum _mg_feature_val +{ + mg_feature_val_trans_default = 0x0, + mg_feature_val_trans_vcmd = 0x3, + mg_feature_val_trand_vcmds = 0x2 +} mg_feature_val; + +typedef enum _mg_vcmd +{ + mg_vcmd_update_xipinfo = 0xFA, /* FWPATCH commmand through IOM I/O */ + mg_vcmd_verify_fwpatch = 0xFB, /* FWPATCH commmand through IOM I/O */ + mg_vcmd_update_stgdrvinfo = 0xFC, /* IOM identificatin info program command */ + mg_vcmd_prep_fwpatch = 0xFD, /* FWPATCH commmand through IOM I/O */ + mg_vcmd_exe_fwpatch = 0xFE, /* FWPATCH commmand through IOM I/O */ + mg_vcmd_wr_pll = 0x8B, + mg_vcmd_purge_nand = 0x8C, /* Only for Seagle */ + mg_vcmd_lock_otp = 0x8D, + mg_vcmd_rd_otp = 0x8E, + mg_vcmd_wr_otp = 0x8F +} mg_vcmd; + +typedef enum _mg_opmode +{ + mg_op_mode_xip = 1, /* TRUE XIP */ + mg_op_mode_snd = 2, /* BOOT+Storage */ + mg_op_mode_stg = 0 /* Only Storage */ +} mg_opmode; + #endif |