flash_off_t
flash_off_t offset;
flash_read(device_t self, flash_off_t offset, size_t len, size_t * const retlen,
flash_write(device_t self, flash_off_t offset, size_t len,
flash_block_markbad(device_t self, flash_off_t offset)
flash_block_isbad(device_t self, flash_off_t offset, bool * const bad)
int (*write)(device_t, flash_off_t, size_t, size_t *, const uint8_t *);
int (*block_markbad)(device_t, flash_off_t);
int (*block_isbad)(device_t, flash_off_t, bool *);
flash_off_t fc_block;
int flash_read(device_t, flash_off_t, size_t, size_t *, uint8_t *);
int flash_write(device_t, flash_off_t, size_t, size_t *, const uint8_t *);
int flash_block_markbad(device_t, flash_off_t);
int flash_block_isbad(device_t, flash_off_t, bool *);
flash_off_t part_offset;
flash_off_t ei_addr;
flash_off_t ei_len;
int (*read)(device_t, flash_off_t, size_t, size_t *, uint8_t *);
flash_off_t block, last;
flash_off_t offset = 0;
flash_parse_partdef(flash_size_t flash_size, char *partdef, flash_off_t *offset,
nand_flash_write_unaligned(device_t self, flash_off_t offset, size_t len,
flash_off_t first, last, firstoff;
flash_off_t addr;
nand_flash_write(device_t self, flash_off_t offset, size_t len, size_t *retlen,
nand_flash_read(device_t self, flash_off_t offset, size_t len, size_t *retlen,
nand_flash_isbad(device_t self, flash_off_t ofs, bool *is_bad)
nand_flash_markbad(device_t self, flash_off_t ofs)
flash_off_t addr;
nand_prepare_read(device_t self, flash_off_t row, flash_off_t column)
flash_off_t blockoffset;
flash_off_t block;
nand_isfactorybad(device_t self, flash_off_t offset)
flash_off_t block, first_page, last_page, page;
nand_iswornoutbad(device_t self, flash_off_t offset)
flash_off_t block;
nand_isbad(device_t self, flash_off_t offset)
flash_off_t block;
nand_block_isbad(device_t self, flash_off_t block)
int nand_flash_isbad(device_t, flash_off_t, bool *);
int nand_flash_markbad(device_t, flash_off_t);
int nand_flash_write(device_t, flash_off_t, size_t, size_t *, const u_char *);
int nand_flash_read(device_t, flash_off_t, size_t, size_t *, uint8_t *);
bool nand_isfactorybad(device_t, flash_off_t);
bool nand_iswornoutbad(device_t, flash_off_t);
bool nand_isbad(device_t, flash_off_t);
nand_bbt_get_bbt_from_page(device_t self, flash_off_t addr)
flash_off_t blockaddr;
nand_bbt_block_markbad(device_t self, flash_off_t block)
nand_bbt_block_markfactorybad(device_t self, flash_off_t block)
nand_bbt_block_mark(device_t self, flash_off_t block, uint8_t marker)
nand_bbt_block_isbad(device_t self, flash_off_t block)
flash_off_t i, blocks, addr;
nand_bbt_page_has_bbt(device_t self, flash_off_t addr) {
void nand_bbt_block_mark(device_t, flash_off_t, uint8_t);
void nand_bbt_block_markbad(device_t, flash_off_t);
void nand_bbt_block_markfactorybad(device_t, flash_off_t);
bool nand_bbt_block_isbad(device_t, flash_off_t);
cfi_read_1(device_t self, flash_off_t offset, uint8_t *datap)
cfi_read_2(device_t self, flash_off_t offset, uint16_t *datap)
cfi_read_4(device_t self, flash_off_t offset, uint32_t *datap)
cfi_read_buf_1(device_t self, flash_off_t offset, uint8_t *datap, size_t size)
cfi_read_buf_2(device_t self, flash_off_t offset, uint16_t *datap, size_t size)
cfi_read_buf_4(device_t self, flash_off_t offset, uint32_t *datap, size_t size)
cfi_write_1(device_t self, flash_off_t offset, uint8_t data)
cfi_write_2(device_t self, flash_off_t offset, uint16_t data)
static void cfi_read_1(device_t, flash_off_t, uint8_t *);
cfi_write_4(device_t self, flash_off_t offset, uint32_t data)
cfi_write_buf_1(device_t self, flash_off_t offset, const uint8_t *datap,
static void cfi_read_2(device_t, flash_off_t, uint16_t *);
cfi_write_buf_2(device_t self, flash_off_t offset, const uint16_t *datap,
static void cfi_read_4(device_t, flash_off_t, uint32_t *);
cfi_write_buf_4(device_t self, flash_off_t offset, const uint32_t *datap,
static void cfi_read_buf_1(device_t, flash_off_t, uint8_t *, size_t);
static void cfi_read_buf_2(device_t, flash_off_t, uint16_t *, size_t);
static void cfi_read_buf_4(device_t, flash_off_t, uint32_t *, size_t);
static void cfi_write_1(device_t, flash_off_t, uint8_t);
static void cfi_write_2(device_t, flash_off_t, uint16_t);
static void cfi_write_4(device_t, flash_off_t, uint32_t);
static void cfi_write_buf_1(device_t, flash_off_t, const uint8_t *, size_t);
static void cfi_write_buf_2(device_t, flash_off_t, const uint16_t *, size_t);
static void cfi_write_buf_4(device_t, flash_off_t, const uint32_t *, size_t);
static void cfi_hexdump(flash_off_t, void * const, u_int, u_int);
cfi_hexdump(flash_off_t offset, void * const v, u_int count, u_int stride)
int (*cfi_busy)(struct cfi *, flash_off_t);
int (*cfi_program_word)(struct cfi *, flash_off_t);
int (*cfi_erase_sector)(struct cfi *, flash_off_t);
cfi_erase_sector(struct cfi * const cfi, flash_off_t offset)
cfi_program_word(struct cfi * const cfi, flash_off_t offset)
cfi_0002_read_page(device_t self, flash_off_t offset, uint8_t *datap)
cfi_0002_program_page(device_t self, flash_off_t offset, const uint8_t *datap)
cfi_0002_erase_block(device_t self, flash_off_t offset)
cfi_0002_busy(device_t self, flash_off_t offset, u_long usec)
cfi_0002_busy_wait(struct cfi * const cfi, flash_off_t offset, u_long usec)
cfi_0002_busy_poll(struct cfi * const cfi, flash_off_t offset, u_long usec)
cfi_0002_busy_yield(struct cfi * const cfi, flash_off_t offset, u_long usec)
cfi_0002_busy_dq7(struct cfi * const cfi, flash_off_t offset)
static int cfi_0002_read_page(device_t, flash_off_t, uint8_t *);
static int cfi_0002_program_page(device_t, flash_off_t, const uint8_t *);
static int cfi_0002_erase_block(device_t, flash_off_t);
cfi_0002_busy_reg(struct cfi * const cfi, flash_off_t offset)
static int cfi_0002_busy(device_t, flash_off_t, u_long);
static int cfi_0002_busy_wait(struct cfi * const, flash_off_t, u_long);
static int cfi_0002_busy_poll(struct cfi * const, flash_off_t, u_long);
static int cfi_0002_busy_yield(struct cfi * const, flash_off_t, u_long);
static int cfi_0002_busy_dq7(struct cfi * const , flash_off_t);
static int cfi_0002_busy_reg(struct cfi * const, flash_off_t);
nor_default_read_page(device_t self, flash_off_t offset, uint8_t * const data)
nor_default_program_page(device_t self, flash_off_t offset,
flash_off_t addr;
nor_flash_write_unaligned(device_t self, flash_off_t offset, size_t len,
flash_off_t first, last, firstoff;
flash_off_t addr;
static int nor_flash_isbad(device_t, flash_off_t, bool *);
static int nor_flash_markbad(device_t, flash_off_t);
static int nor_flash_write(device_t, flash_off_t, size_t, size_t *,
static int nor_flash_read(device_t, flash_off_t, size_t, size_t *, uint8_t *);
nor_flash_write(device_t self, flash_off_t offset, size_t len,
static int nor_default_read_page(device_t, flash_off_t, uint8_t *);
static int nor_default_program_page(device_t, flash_off_t, const uint8_t *);
nor_flash_read_unaligned(device_t self, flash_off_t offset, size_t len,
nor_flash_read(device_t self, flash_off_t offset, size_t len,
nor_flash_isbad(device_t self, flash_off_t ofs, bool * const isbad)
nor_flash_markbad(device_t self, flash_off_t ofs)
void (*read_1) (device_t, flash_off_t, uint8_t *);
void (*read_2) (device_t, flash_off_t, uint16_t *);
void (*read_4) (device_t, flash_off_t, uint32_t *);
void (*read_buf_1) (device_t, flash_off_t, uint8_t *, size_t);
void (*read_buf_2) (device_t, flash_off_t, uint16_t *, size_t);
void (*read_buf_4) (device_t, flash_off_t, uint32_t *, size_t);
void (*write_1) (device_t, flash_off_t, uint8_t);
void (*write_2) (device_t, flash_off_t, uint16_t);
void (*write_4) (device_t, flash_off_t, uint32_t);
void (*write_buf_1) (device_t, flash_off_t, const uint8_t *, size_t);
void (*write_buf_2) (device_t, flash_off_t, const uint16_t *, size_t);
void (*write_buf_4) (device_t, flash_off_t, const uint32_t *, size_t);
int (*busy) (device_t, flash_off_t, u_long);
int (*read_page) (device_t, flash_off_t, uint8_t *);
int (*program_page) (device_t, flash_off_t, const uint8_t *);
int (*erase_block) (device_t, flash_off_t);
nor_busy(device_t device, flash_off_t offset, u_long usec)
nor_read_1(device_t self, flash_off_t offset, uint8_t *data)
nor_read_2(device_t self, flash_off_t offset, uint16_t *data)
nor_read_4(device_t self, flash_off_t offset, uint32_t *data)
nor_write_1(device_t self, flash_off_t offset, uint8_t data)
nor_write_2(device_t self, flash_off_t offset, uint16_t data)
nor_write_4(device_t self, flash_off_t offset, uint16_t data)
nor_read_buf_1(device_t self, flash_off_t offset, void *buf, size_t size)
nor_read_buf_2(device_t self, flash_off_t offset, void *buf, size_t size)
nor_read_buf_4(device_t self, flash_off_t offset, void *buf, size_t size)
nor_write_buf_1(device_t self, flash_off_t offset, const void *buf, size_t size)
nor_write_buf_2(device_t self, flash_off_t offset, const void *buf, size_t size)
nor_write_buf_4(device_t self, flash_off_t offset, const void *buf, size_t size)
nor_read_page(device_t self, flash_off_t offset, uint8_t *data)
nor_program_page(device_t self, flash_off_t offset, const uint8_t *data)
nor_erase_block(device_t self, flash_off_t offset)
flash_off_t ep_addr;
flash_off_t ep_len;
flash_off_t bbp_addr;
flash_off_t ip_flash_size;
flash_off_t dp_block;
flash_off_t dp_len;
flash_off_t ofs;
flash_off_t addr;
flash_off_t address;