Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


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>

NetBSD 10.99                    March 31, 2011                    NetBSD 10.99