Skip to content

Commit 31af402

Browse files
committed
add continuous read
1 parent 0d1d09b commit 31af402

File tree

3 files changed

+300
-17
lines changed

3 files changed

+300
-17
lines changed

storage/blockdevice/COMPONENT_SPINAND/include/SPINAND/SPINANDBlockDevice.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ class SPINANDBlockDevice : public mbed::BlockDevice {
237237
*/
238238
virtual const char *get_type() const;
239239

240+
virtual bool is_bad_block(uint16_t blk_idx);
241+
242+
virtual int mark_bad_block(uint16_t blk_idx);
243+
240244
private:
241245
/********************************/
242246
/* Different Device Csel Mgmt */
@@ -258,6 +262,9 @@ class SPINANDBlockDevice : public mbed::BlockDevice {
258262
// Send Read command to Driver
259263
qspi_status_t _qspi_send_read_command(mbed::qspi_inst_t read_instruction, void *buffer, mbed::bd_addr_t addr, mbed::bd_size_t size);
260264

265+
// Send Continuous Read command to Driver
266+
qspi_status_t _qspi_send_continuous_read_command(mbed::qspi_inst_t read_instruction, void *buffer, mbed::bd_addr_t addr, mbed::bd_size_t size);
267+
261268
// Send Erase Instruction using command_transfer command to Driver
262269
qspi_status_t _qspi_send_erase_command(mbed::qspi_inst_t erase_instruction, mbed::bd_addr_t addr, mbed::bd_size_t size);
263270

@@ -275,6 +282,10 @@ class SPINANDBlockDevice : public mbed::BlockDevice {
275282
// Read OTP ONFI parameters
276283
bool _read_otp_onfi();
277284

285+
int _read_oob(void *buffer, bd_addr_t addr, bd_size_t size);
286+
287+
int _program_oob(const void *buffer, bd_addr_t addr, bd_size_t size);
288+
278289
// Quad Enable in Security Register
279290
int _set_quad_enable();
280291

@@ -284,8 +295,15 @@ class SPINANDBlockDevice : public mbed::BlockDevice {
284295
// Configure Write Enable in Status Register
285296
int _set_write_enable();
286297

298+
int _set_conti_read_enable();
299+
300+
int _set_conti_read_disable();
301+
302+
int _conti_read_exit();
303+
287304
// Wait on status register until write not-in-progress
288305
bool _is_mem_ready();
306+
289307
void _bch_init(uint8_t ecc_bits);
290308
void _bch_free();
291309
int _bch_calculate_ecc(unsigned char *buf, unsigned char *code);
@@ -335,6 +353,7 @@ class SPINANDBlockDevice : public mbed::BlockDevice {
335353
uint8_t *_ecc_calc;
336354
uint8_t *_ecc_code;
337355
uint8_t *_page_buf;
356+
uint8_t _continuous_read;
338357

339358
struct nand_bch_control {
340359
struct bch_control *bch;

0 commit comments

Comments
 (0)