FLASH(9)

FLASH(9) | Kernel Developer's Manual | FLASH(9)

# NAME

`flash` —
subsystem for flash-like memory devices

# SYNOPSIS

`#include <dev/flash/flash.h>`

device_t
`flash_attach_mi`(const struct flash_interface *fl, device_t dev);

# DESCRIPTION

Flash-like devices can register themselves to the `flash` layer with the flash_hw_if structure. This structure has function pointers and other fields.

The attachment can be done by calling `flash_attach_mi`() with this structure and the device's device_t as an argument. Return value is the flash layer device. The flash_interface structure is shown below.

    struct flash_interface {
    	int (*erase) (device_t, struct flash_erase_instruction *);
    	int (*read) (device_t, off_t, size_t, size_t *, uint8_t *);
    	int (*write) (device_t, off_t, size_t, size_t *, const uint8_t *);
    	int (*block_markbad)(device_t, uint64_t);
    	int (*block_isbad)(device_t, uint64_t);
    	int (*sync) (device_t);

    	int (*submit)(device_t, struct buf *);

    	/* storage for partition info */
    	struct flash_partition partition;

    	/* total size of mtd */
    	flash_addr_t size;
    	uint32_t page_size;
    	uint32_t erasesize;
    	uint32_t writesize;
    	uint32_t minor;
    	uint8_t	type;
    };

# SEE ALSO

flash(4), nand(9)

# AUTHORS

Adam Hoka <ahoka@NetBSD.org>

March 31, 2011 | NetBSD 10.1