[EC1ED92F88C9]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27B 
[2CC30832E604]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27B 
[89C30832E604]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;8M2M TLC SKhynix
[AD3A18A36125]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x09,0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x09,0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x09,0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x0D,0x01,0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x0D,0x02,0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x0D,0x03,0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG3_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG3_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG3_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG3_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG3_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG3_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG3_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG3_PLANE0_MSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG3_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

;8A1M TLC SKhynix
[AD89285300B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD89295300B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD892A5300B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD892B5300B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

;8A1M TLC SKhynix
[AD7E285302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

;8A1M TLC SKhynix
[AD5E285302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD7E295302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD7E2A5302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

;8A1M TLC SKhynix
[AD5E285302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD5E295302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD5E2A5302B0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF


;8A1M TLC SKhynix
[AD5E293300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD7E293300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD7E2A3300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF


;8A1M TLC SKhynix
[AD5E2A3300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD5E2B3300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[AD7E2B3300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[983E98B3766B]  ;9T24
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[983C98B3766B]  ;8T24
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

;B27A
[89C42832A200]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27B 
[2CC30832E601]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27B 
[89C30832E601]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[EC5E98BF84CC]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[EC1E98BF84CC]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;EC1E98BF84CC
[EC1ED9BF88CC]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;8A1M TLC SKhynix
[AD7E283300A2]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

;8A1M TLC SKhynix
[AD7E283300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

[EC5C98BF84CC]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[EC5C98BF84CC]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;3MM
[EC1C945364C9]                                               
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x81
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0


PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x11
PROG_CQ_EXTRA_IS_WL_ADD = 0  

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x02
SET_FEATURE_PX_DATA = 0x07, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF 

;GCGE
[ECDE9443A4CA]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80,0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 0
PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;GCGF
[ECDE94C3A4CA]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80,0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 0
PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF


[EC1C983F84CB]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF


[EC5E983F84CB]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[EC1E983F84CB]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF


[EC1C982F84C9]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[ECB694BF64C8]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x10
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD0
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x30
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[AD3A18030050]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x09, 0x01, 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x09, 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x09, 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x0D, 0x01, 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x0D, 0x02, 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x0D, 0x03, 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG3_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80
PROG_CQ_PROG3_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG3_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG3_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG3_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG3_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

; B0KB
[2CB47832AA05]
PROG_CQ_TO_SLC_MODE = 0xA2
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00
SET_FEATURE_RETRY_ADDR = 0x89
SET_FEATURE_RETRY_MODE_NUM = 0x10

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

; B0KB
[89B47832AA01]
PROG_CQ_TO_SLC_MODE = 0xA2
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00
SET_FEATURE_RETRY_ADDR = 0x89
SET_FEATURE_RETRY_MODE_NUM = 0x10

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[2CB47832AA04]
PROG_CQ_TO_SLC_MODE = 0xA2
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00
SET_FEATURE_RETRY_ADDR = 0x89
SET_FEATURE_RETRY_MODE_NUM = 0x10

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[2CCCF932AA04]
PROG_CQ_TO_SLC_MODE = 0xA2
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00
SET_FEATURE_RETRY_ADDR = 0x89
SET_FEATURE_RETRY_MODE_NUM = 0x10

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[2CCCF932AA05]
PROG_CQ_TO_SLC_MODE = 0xA2
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00
SET_FEATURE_RETRY_ADDR = 0x89
SET_FEATURE_RETRY_MODE_NUM = 0x10

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[EC1A94F364C8]

PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x81
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,1,0,0


PROG_CQ_EXTRA_CMDADDR_MODE = 1
PROG_CQ_EXTRA_PLANE0_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE0_2NDPROG_CMD = 0x11
PROG_CQ_EXTRA_PLANE1_1STPROG_CMD = 0x8B
PROG_CQ_EXTRA_PLANE1_2NDPROG_CMD = 0x10
PROG_CQ_EXTRA_IS_WL_ADD = 0     
                                                        

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x02
SET_FEATURE_PX_DATA = 0x07, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF


;B16A
[2CA40832A100]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B16C
[2CA40832A104]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B16A
[89C48932A100]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B16A
[89A40832A100]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[983E99B37AF2]	;[983C98B37672]		;1T23 ;8T23
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[983C98B37672]  ;8T23
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[983C98B376F2]  ;8T23
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[453E98B3766B]  ;9T24
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[983E98B376E3]  ;9T24
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00
MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[453C98B3766B]  ;8T24
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[983C98B376E3]  ;8T24
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[453C98B37672]  ;8T23  sandisk
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[453C98B376F2]  ;8T23  sandisk
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[453E98B37672]  ;9T23  sandisk
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

[453E98B376F2]  ;9T23  sandisk
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

;B17A
[2CC40832A601]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B17A 
[2CC40832A600]	;实测有存在和Spec不对应的ID号
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B17A 
[89C40832A600]	;实测有存在和Spec不对应的ID号
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;L06B
[89C4E532AA01]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;L06B
[B5A46432AA04]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;L06B
[89A46432AA01]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;L06B
[2CA46432AA04]	;
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;L06B
[2CC4E532AA04]	;
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;N18
[89D40C32AA00]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;N18
[2CD40C32AA00]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10


PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[2C845832A100]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B05A
[2C845832A104]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF


[453C98B37672]  ;8T23  ;sandisk
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x1A
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值


;B27A
[2CC41832A201]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27A 
[2CC41832A200]	;实测有存在和Spec不对应的ID号
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27A 
[89C41832A200]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27A 
[89C41832A201]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27A 
[2CC40832A200]	;实测有存在和Spec不对应的ID号
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27A 
[2CC40832A201]	;实测有存在和Spec不对应的ID号
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

[EC1C983F84CB]  ;SAMSUNG   3DV3
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x81		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x10   ;这个有bug 
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF	;CMD为无效值

[EC1F9A3F8CCB]  ;SAMSUNG   3DV3
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x81		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0xC0,0x31

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0xC0,0x32

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0xC0,0x33

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00	;
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x10   ;这个有bug 
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF	;CMD为无效值


[AD5C282A0190]	;	;1T23 ;8T23
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80,0x80		;SLC命令区
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01, 0x80	;TLC命令区
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02, 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1A
PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03, 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10

;上面TLC指令对应是CMD还是Addr的标志;0:cmd; 1:addr
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

;;;;;;;;

PROG_CQ_EXTRA_CMDADDR_MODE = 0

PROG_CACHE_CMD = 0x15

ERASE_CQ_FIRST = 0x60			;擦除命令不区分SLC和TLC，只需要前缀命令
ERASE_CQ_NO_FINAL_PLANE = 0xFF
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x5A	;Unvalid
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0

;SDR: 1, DDR: 0
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02		;SetFeature进入DDR模式
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x80
SET_FEATURE_PX_DATA = 0x00, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0		;TLC不需要前缀切换命令
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF	;CMD为无效值

;B27B 
[2CC30832E600]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27B 
[89C30832E600]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;B27B 
[2CD38932E600]	
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

;ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
;READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;长江存储
[9Bc348251000]  
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_TO_SLC_MODE = 0xDA
PROG_CQ_FIRST = 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x1a
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x1a
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0

PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF


;N28
[2CA36032C600]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;N28
[89D31C32C600]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;N28
[2CD31C32C600]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;N28
[2CD39C32C600]
PROG_CQ_IS_WL_ADD = 0
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_LSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_LSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_CSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_CSB_PAGE_AFT_DATA = 0x10


PROG_CQ_PROG2_PLANE0_MSB_PAGE_PRE_ADDR = 0x80
PROG_CQ_PROG2_PLANE0_MSB_PAGE_AFT_DATA = 0x10

PROG_CQ_PROG2_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG2_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0


PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xDA
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xDA
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xDA
MODE_SWITCH_SLC_DISABLE_FLG = 1
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF

;8A1M TLC SKhynix
[AD5E283300A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x80, 0x80, 0x80
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 1
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30
READ_CQ_LSB_PAGE_PRE = 0x01
READ_CQ_CSB_PAGE_PRE = 0x02
READ_CQ_MSB_PAGE_PRE = 0x03

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x20, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF

;3DV5 QLC SKhynix
[AD892C5330A0]
PROG_CQ_IS_WL_ADD = 1
PROG_CQ_FIRST = 0x80, 0x81, 0x81, 0x81
PROG_CQ_NO_FINAL_PLANE = 0x11
PROG_CQ_FINAL_PLANE =0x10

PROG_CQ_PROG1_PLANE0_LSB_PAGE_PRE_ADDR = 0x0D,0x01,0x80
PROG_CQ_PROG1_PLANE0_LSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_LSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_CSB_PAGE_PRE_ADDR = 0x0D,0x02,0x80
PROG_CQ_PROG1_PLANE0_CSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_CSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_MSB_PAGE_PRE_ADDR = 0x0D,0x03,0x80
PROG_CQ_PROG1_PLANE0_MSB_PAGE_AFT_DATA = 0x22
PROG_CQ_PROG1_PLANE0_MSB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_PROG1_PLANE0_USB_PAGE_PRE_ADDR = 0x0D,0x04,0x80
PROG_CQ_PROG1_PLANE0_USB_PAGE_AFT_DATA = 0x23
PROG_CQ_PROG1_PLANE0_USB_PAGE_CMDADDR_ARRAY = 0,0,0,0,0,0,0,0

PROG_CQ_EXTRA_CMDADDR_MODE =0
PROG_CACHE_CMD = 0x15

ERASE_CQ_TO_SLC_MODE = 0xA2
ERASE_CQ_FIRST = 0x60
ERASE_CQ_NO_FINAL_PLANE = 0xD1
ERASE_CQ_FINAL_PLANE = 0xD0

READ_CQ_IS_WL_ADDR = 0
READ_CQ_TO_SLC_MODE = 0xA2
READ_CQ_FIRST = 0x00
READ_CQ_NO_FINAL_PLANE = 0x32
READ_CQ_FINAL_PLANE = 0x30

READ_STATUS_CQ = 0x70
READ_STATUS_CQ_ENHANCE = 0x78

TWO_PLANE_DATAOUT_CQ_READ = 0x00
TWO_PLANE_DATAOUT_CQ_READ_COMFIRM = 0x05
TWO_PLANE_DATAOUT_CQ_RANDOM = 0xE0
;SDR: 0, DDR: 2
SET_FEATURE_CQ_CHANGE_FLASH_MODE = 0x02
SET_FEATURE_CQ = 0xEF
SET_FEATURE_ADDR = 0x01
SET_FEATURE_PX_DATA = 0x27, 0x00, 0x00, 0x00

MODE_SWITCH_SLC_MODE_FLAG = 1
MODE_SWITCH_TO_SLC_MODE_CMD = 0xA2
MODE_SWITCH_SLC_DISABLE_FLG = 0
MODE_SWITCH_SLC_DISABLE_CMD = 0xFF
MODE_SWITCH_SLC_DISABLE_CMD = 0xDF