summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_x1000/nand-x1000.h
diff options
context:
space:
mode:
authoramachronic <amachronic@protonmail.com>2021-04-06 01:10:01 +0100
committeramachronic <amachronic@protonmail.com>2021-04-06 17:27:12 +0100
commit28c89386af8ea9d002bcc25483233053fe0e7525 (patch)
treeac25a1cbf09d7bc2dadea89002943c722fbd8806 /firmware/target/mips/ingenic_x1000/nand-x1000.h
parentb5558c1cf968f0fcff072456408b14f130f29ce3 (diff)
downloadrockbox-28c89386af8ea9d002bcc25483233053fe0e7525.tar.gz
rockbox-28c89386af8ea9d002bcc25483233053fe0e7525.zip
x1000: Improve NAND driver API
- Proper error codes are now returned from all functions. These codes will be used by a host-side flash tool for error reporting. - nand_erase_block() was replaced by nand_erase_bytes(). The caller can't know how big an eraseblock is with the current API, so next best thing is to verify the correct alignment inside the call and reject the erase if it isn't properly aligned. - Fixed typo in nandcmd_block_erase() which would cause an SFC error to be interpreted as success. Yikes. Change-Id: Id4ac9b44fa7fc2fcb81ff19ba730df78457c0383
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/nand-x1000.h')
-rw-r--r--firmware/target/mips/ingenic_x1000/nand-x1000.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/firmware/target/mips/ingenic_x1000/nand-x1000.h b/firmware/target/mips/ingenic_x1000/nand-x1000.h
index 865feb38c5..f6709aaaf9 100644
--- a/firmware/target/mips/ingenic_x1000/nand-x1000.h
+++ b/firmware/target/mips/ingenic_x1000/nand-x1000.h
@@ -31,6 +31,7 @@
31#include <stdint.h> 31#include <stdint.h>
32#include <stdbool.h> 32#include <stdbool.h>
33#include <stddef.h> 33#include <stddef.h>
34#include "nand-x1000-err.h"
34 35
35/* Chip supports quad I/O for page read/write */ 36/* Chip supports quad I/O for page read/write */
36#define NANDCHIP_FLAG_QUAD 0x01 37#define NANDCHIP_FLAG_QUAD 0x01
@@ -123,7 +124,7 @@ extern int nand_enable_writes(bool en);
123/* Byte-based NAND operations */ 124/* Byte-based NAND operations */
124extern int nand_read_bytes(uint32_t byteaddr, int count, void* buf); 125extern int nand_read_bytes(uint32_t byteaddr, int count, void* buf);
125extern int nand_write_bytes(uint32_t byteaddr, int count, const void* buf); 126extern int nand_write_bytes(uint32_t byteaddr, int count, const void* buf);
126extern int nand_erase_block(uint32_t byteaddr); 127extern int nand_erase_bytes(uint32_t byteaddr, int count);
127 128
128/* NAND command numbers */ 129/* NAND command numbers */
129#define NAND_CMD_READ_ID 0x9f 130#define NAND_CMD_READ_ID 0x9f