Home | History | Annotate | Line # | Download | only in vr
flashvar.h revision 1.1.106.1
      1  1.1.106.1  yamt /* $NetBSD: flashvar.h,v 1.1.106.1 2008/05/18 12:32:06 yamt Exp $ */
      2        1.1   igy 
      3        1.1   igy /*
      4        1.1   igy  * Copyright (c) 2002 The NetBSD Foundation, Inc.
      5        1.1   igy  * All rights reserved.
      6        1.1   igy  *
      7        1.1   igy  * This code is derived from software contributed to The NetBSD Foundation
      8        1.1   igy  * by Naoto Shimazaki of YOKOGAWA Electric Corporation.
      9        1.1   igy  *
     10        1.1   igy  * Redistribution and use in source and binary forms, with or without
     11        1.1   igy  * modification, are permitted provided that the following conditions
     12        1.1   igy  * are met:
     13        1.1   igy  * 1. Redistributions of source code must retain the above copyright
     14        1.1   igy  *    notice, this list of conditions and the following disclaimer.
     15        1.1   igy  * 2. Redistributions in binary form must reproduce the above copyright
     16        1.1   igy  *    notice, this list of conditions and the following disclaimer in the
     17        1.1   igy  *    documentation and/or other materials provided with the distribution.
     18        1.1   igy  *
     19        1.1   igy  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20        1.1   igy  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21        1.1   igy  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22        1.1   igy  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23        1.1   igy  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24        1.1   igy  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25        1.1   igy  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26        1.1   igy  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27        1.1   igy  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28        1.1   igy  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29        1.1   igy  * POSSIBILITY OF SUCH DAMAGE.
     30        1.1   igy  */
     31        1.1   igy 
     32        1.1   igy /*
     33        1.1   igy  * Intel 28F128 Flash Memory driver variables
     34        1.1   igy  */
     35        1.1   igy 
     36        1.1   igy #define FLASH_RESET	0xff
     37        1.1   igy 
     38        1.1   igy 
     39        1.1   igy #define FLASH_ST_BUSY	0x01
     40        1.1   igy 
     41        1.1   igy struct flash_softc {
     42        1.1   igy 	struct device		sc_dev;
     43        1.1   igy 	bus_space_tag_t		sc_iot;
     44        1.1   igy 	bus_space_handle_t	sc_ioh;
     45        1.1   igy 	size_t			sc_size;
     46        1.1   igy 	size_t			sc_block_size;
     47        1.1   igy 	int			sc_status;
     48        1.1   igy 	u_int8_t		*sc_buf;
     49        1.1   igy 	const struct flashops {
     50        1.1   igy 		const char	*fo_name;
     51        1.1   igy 		int	(*fo_erase)	(struct flash_softc *, bus_size_t);
     52        1.1   igy 		int	(*fo_write)	(struct flash_softc *, bus_size_t);
     53        1.1   igy 	} *sc_ops;
     54        1.1   igy 
     55        1.1   igy 	int			sc_write_buffer_size;
     56        1.1   igy 	int			sc_typ_word_prog_timo;
     57        1.1   igy 	int			sc_max_word_prog_timo;
     58        1.1   igy 	int			sc_typ_buffer_write_timo;
     59        1.1   igy 	int			sc_max_buffer_write_timo;
     60        1.1   igy 	int			sc_typ_block_erase_timo;
     61        1.1   igy 	int			sc_max_block_erase_timo;
     62        1.1   igy 	u_int8_t		sc_cfi_raw[CFI_TOTAL_SIZE];
     63        1.1   igy };
     64        1.1   igy 
     65        1.1   igy #define flash_block_erase(sc, off)	(sc)->sc_ops->fo_erase((sc), (off))
     66        1.1   igy #define flash_block_write(sc, off)	(sc)->sc_ops->fo_write((sc), (off))
     67        1.1   igy 
     68        1.1   igy #define	FLASH_TIMEOUT	0x40000000
     69