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

NAME

flashsubsystem 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 6.1