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>