annotate packages/io/flash/current/include/flash_dev.h @ 1764:96ec7e534d98

V2 flash header files clean-up. Eliminate flash_priv.h, moving the functionality into flash_dev.h instead.
author bartv
date Tue, 22 Feb 2005 21:03:43 +0000
parents f493618bc252
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_IO_FLASH_FLASH_DEV_H
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
2 #define CYGONCE_IO_FLASH_FLASH_DEV_H
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
3 //==========================================================================
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
4 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
5 // flash_dev.h
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
6 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
7 // Common flash device driver definitions
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
8 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
9 //==========================================================================
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
10 //####ECOSGPLCOPYRIGHTBEGIN####
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
11 // -------------------------------------------
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
12 // This file is part of eCos, the Embedded Configurable Operating System.
1764
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
13 // Copyright (C) 2004 eCosCentric Ltd.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
14 // Copyright (C) 2004 Andrew Lunn
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
15 // Copyright (C) 2003 Gary Thomas
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
16 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
17 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
18 // eCos is free software; you can redistribute it and/or modify it under
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
19 // the terms of the GNU General Public License as published by the Free
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
20 // Software Foundation; either version 2 or (at your option) any later version.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
21 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
22 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
23 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
24 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
25 // for more details.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
26 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
27 // You should have received a copy of the GNU General Public License along
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
28 // with eCos; if not, write to the Free Software Foundation, Inc.,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
29 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
30 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
31 // As a special exception, if other files instantiate templates or use macros
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
32 // or inline functions from this file, or you compile this file and link it
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
33 // with other works to produce a work based on this file, this file does not
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
34 // by itself cause the resulting work to be covered by the GNU General Public
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
35 // License. However the source code for this file must still be made available
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
36 // in accordance with section (3) of the GNU General Public License.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
37 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
38 // This exception does not invalidate any other reasons why a work based on
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
39 // this file might be covered by the GNU General Public License.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
40 //
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
41 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
42 // at http://sources.redhat.com/ecos/ecos-license/
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
43 // -------------------------------------------
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 194
diff changeset
44 //####ECOSGPLCOPYRIGHTEND####
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
45 //==========================================================================
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
46 //#####DESCRIPTIONBEGIN####
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
47 //
1764
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
48 // Author(s): gthomas
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
49 // Contributors: gthomas, Andrew Lunn, bartv
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
50 // Date: 2000-07-14
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
51 // Purpose:
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
52 // Description:
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
53 //
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
54 //####DESCRIPTIONEND####
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
55 //
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
56 //==========================================================================
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
57
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
58 #include <pkgconf/system.h>
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
59 #include <pkgconf/io_flash.h>
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
60 #include <cyg/infra/cyg_type.h>
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
61 #include <cyg/io/flash.h>
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
62 #include <cyg/hal/hal_cache.h>
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
63 #include <cyg/hal/hal_tables.h>
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
64
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
65 // Forward reference of the device structure
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
66 struct cyg_flash_dev;
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
67
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
68 // Structure of pointers to functions in the device driver
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
69 struct cyg_flash_dev_funs {
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
70 int (*flash_init) (struct cyg_flash_dev *dev);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
71 size_t (*flash_query) (struct cyg_flash_dev *dev,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
72 void * data, size_t len);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
73 int (*flash_erase_block) (struct cyg_flash_dev *dev,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
74 cyg_flashaddr_t block_base);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
75 int (*flash_program) (struct cyg_flash_dev *dev,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
76 cyg_flashaddr_t base,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
77 const void* data, size_t len);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
78 int (*flash_read) (struct cyg_flash_dev *dev,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
79 const cyg_flashaddr_t base,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
80 void* data, size_t len);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
81 #ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
82 int (*flash_block_lock) (struct cyg_flash_dev *dev,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
83 const cyg_flashaddr_t block_base);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
84 int (*flash_block_unlock) (struct cyg_flash_dev *dev,
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
85 const cyg_flashaddr_t block_base);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
86 #endif
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
87 };
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
88
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
89 // Dummy functions for some of the above operations, if a device does
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
90 // not support e.g. locking.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
91 externC int cyg_flash_devfn_init_nop(struct cyg_flash_dev*);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
92 externC size_t cyg_flash_devfn_query_nop(struct cyg_flash_dev*, void*, const size_t);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
93 externC int cyg_flash_devfn_lock_nop(struct cyg_flash_dev*, const cyg_flashaddr_t);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
94 externC int cyg_flash_devfn_unlock_nop(struct cyg_flash_dev*, const cyg_flashaddr_t);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
95
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
96 // Facilitate function calls between flash-resident code and .2ram
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
97 // functions.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
98 externC void* cyg_flash_anonymizer(void*);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
99
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
100 // Structure each device places in the HAL table
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
101 struct cyg_flash_dev {
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
102 const struct cyg_flash_dev_funs *funs; // Function pointers
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
103 cyg_uint32 flags; // Device characteristics
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
104 cyg_flashaddr_t start; // First address
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
105 cyg_flashaddr_t end; // Last address
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
106 cyg_uint32 num_block_infos; // Number of entries
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
107 const cyg_flash_block_info_t *block_info; // Info about one block size
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
108
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
109 const void *priv; // Devices private data
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
110
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
111 // The following are only written to by the FLASH IO layer.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
112 cyg_flash_printf *pf; // Pointer to diagnostic printf
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
113 bool init; // Device has been initialised
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
114 #ifdef CYGPKG_KERNEL
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
115 cyg_mutex_t mutex; // Mutex for thread safeness
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
116 #endif
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
117 #if (CYGHWR_IO_FLASH_DEVICE > 1)
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
118 struct cyg_flash_dev *next; // Pointer to next device
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
119 #endif
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
120 } CYG_HAL_TABLE_TYPE;
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
121
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
122 // Macros for instantiating the above structures.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
123 #ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
124 # define CYG_FLASH_FUNS(_funs_, _init_, _query_ , _erase_, _prog_ , _read_, _lock_, _unlock_) \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
125 struct cyg_flash_dev_funs _funs_ = \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
126 { \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
127 .flash_init = _init_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
128 .flash_query = _query_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
129 .flash_erase_block = _erase_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
130 .flash_program = _prog_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
131 .flash_read = _read_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
132 .flash_block_lock = _lock_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
133 .flash_block_unlock = _unlock_ \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
134 }
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
135 #else
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
136 # define CYG_FLASH_FUNS(_funs_, _init_, _query_ , _erase_, _prog_ , _read_, _lock_, _unlock_) \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
137 struct cyg_flash_dev_funs _funs_ = \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
138 { \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
139 .flash_init = _init_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
140 .flash_query = _query_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
141 .flash_erase_block = _erase_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
142 .flash_program = _prog_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
143 .flash_read = _read_ \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
144 }
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
145 #endif
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
146
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
147 // We assume HAL tables are placed into RAM.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
148 #define CYG_FLASH_DRIVER(_name_, _funs_, _flags_, _start_, _end_, _num_block_infos_, _block_info_, _priv_) \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
149 struct cyg_flash_dev _name_ CYG_HAL_TABLE_ENTRY(cyg_flashdev) = \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
150 { \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
151 .funs = _funs_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
152 .flags = _flags_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
153 .start = _start_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
154 .end = _end_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
155 .num_block_infos = _num_block_infos_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
156 .block_info = _block_info_, \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
157 .priv = _priv_ \
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
158 }
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
159
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
160 // Additional support for legacy device drivers.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
161 #ifdef CYGHWR_IO_FLASH_DEVICE_LEGACY
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
162 struct flash_info {
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
163 int block_size; // Assuming fixed size "blocks"
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
164 int blocks; // Number of blocks
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
165 int buffer_size; // Size of write buffer (only defined for some devices)
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
166 unsigned long block_mask;
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
167 void *start, *end; // Address range
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
168 int init;
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
169 cyg_flash_printf *pf;
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
170 };
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
171
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
172 externC struct flash_info flash_info;
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
173 externC int flash_hwr_init(void);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
174 externC int flash_hwr_map_error(int err);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
175 externC void flash_dev_query(void *data);
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
176 #endif // CYGHWR_IO_FLASH_DEVICE_LEGACY
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
177
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
178 // ----------------------------------------------------------------------------
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
179 // This section provides utility macros used by some flash drivers, especially
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
180 // the legacy ones. Such flash drivers need to #define _FLASH_PRIVATE before
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
181 // including this file.
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
182
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
183 #ifdef _FLASH_PRIVATE_
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
184
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
185 //==========================================================================
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
186 // Author(s): hmt
194
feb0fcf83327 Merge from eCos master repository on 2001-10-26-06:43:03-BST
jlarmour
parents: 160
diff changeset
187 // Contributors: hmt, jskov, Jose Pascual <josepascual@almudi.com>
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
188 // Date: 2001-02-22
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
189 // Purpose: Define common flash device driver definitions
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
190 // Description: The flash_data_t type is used for accessing
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
191 // devices at the correct width.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
192 // The FLASHWORD macro must be used to create constants
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
193 // of suitable width.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
194 // The FLASH_P2V macro can be used to fix up non-linear
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
195 // mappings of flash blocks (defaults to a linear
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
196 // implementation).
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
197 //==========================================================================
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
198
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
199 // No mapping on this target - but these casts would be needed if some
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
200 // manipulation did occur. An example of this might be:
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
201 // // First 4K page of flash at physical address zero is
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
202 // // virtually mapped at address 0xa0000000.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
203 // #define FLASH_P2V(x) ((volatile flash_t *)(((unsigned)(x) < 0x1000) ?
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
204 // ((unsigned)(x) | 0xa0000000) :
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
205 // (unsigned)(x)))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
206
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
207 #ifndef FLASH_P2V
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents: 154
diff changeset
208 #define FLASH_P2V( _a_ ) ((volatile flash_t *)((CYG_ADDRWORD)(_a_)))
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
209 #endif
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
210
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
211 // ------------------------------------------------------------------------
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
212 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
213 // This generic code is intended to deal with all shapes and orientations
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
214 // of Intel StrataFlash. Trademarks &c belong to their respective owners.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
215 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
216 // It therefore needs some trickery to define the constants and accessor
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
217 // types that we use to interact with the device or devices.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
218 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
219 // The assumptions are that
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
220 // o Parallel devices, we write to, with the "opcode" replicated per
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
221 // device
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
222 // o The "opcode" and status returns exist only in the low byte of the
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
223 // device's interface regardless of its width.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
224 // o Hence opcodes and status are only one byte.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
225 // An exception is the test for succesfully erased data.
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
226 //
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
227 // ------------------------------------------------------------------------
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
228
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
229 #if 8 == CYGNUM_FLASH_WIDTH
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
230
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
231 # if 1 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
232 # define FLASHWORD( k ) ((flash_data_t)(k)) // To narrow a 16-bit constant
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
233 typedef cyg_uint8 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
234 # elif 2 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
235 // 2 devices to make 16-bit
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
236 # define FLASHWORD( k ) ((k)+((k)<<8))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
237 typedef cyg_uint16 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
238 # elif 4 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
239 // 4 devices to make 32-bit
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
240 # define FLASHWORD( k ) ((k)+((k)<<8)+((k)<<16)+((k)<<24))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
241 typedef cyg_uint32 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
242 # elif 8 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
243 // 8 devices to make 64-bit - intermediate requires explicit widening
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
244 # define FLASHWORD32( k ) ((flash_data_t)((k)+((k)<<8)+((k)<<16)+((k)<<24)))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
245 # define FLASHWORD( k ) (FLASHWORD32( k ) + (FLASHWORD32( k ) << 32));
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
246 typedef cyg_uint64 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
247 # else
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
248 # error How many 8-bit flash devices?
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
249 # endif
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
250
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
251 #elif 16 == CYGNUM_FLASH_WIDTH
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
252
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
253 # if 1 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
254 # define FLASHWORD( k ) (k)
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents: 154
diff changeset
255 typedef cyg_uint16 flash_data_t;
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
256 # elif 2 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
257 // 2 devices to make 32-bit
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
258 # define FLASHWORD( k ) ((k)+((k)<<16))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
259 typedef cyg_uint32 flash_data_t;
194
feb0fcf83327 Merge from eCos master repository on 2001-10-26-06:43:03-BST
jlarmour
parents: 160
diff changeset
260 # elif 4 == CYGNUM_FLASH_INTERLEAVE
154
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
261 // 4 devices to make 64-bit - intermediate requires explicit widening
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
262 # define FLASHWORD32( k ) ((flash_data_t)((k)+((k)<<16)))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
263 # define FLASHWORD( k ) (FLASHWORD32( k ) + (FLASHWORD32( k ) << 32));
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
264 typedef cyg_uint64 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
265 # else
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
266 # error How many 16-bit flash devices?
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
267 # endif
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
268
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
269 #elif 32 == CYGNUM_FLASH_WIDTH
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
270
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
271 # if 1 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
272 # define FLASHWORD( k ) (k)
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
273 typedef cyg_uint32 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
274 # elif 2 == CYGNUM_FLASH_INTERLEAVE
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
275 // 2 devices to make 64-bit - intermediate requires explicit widening
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
276 # define FLASHWORD32( k ) ((flash_data_t)(k))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
277 # define FLASHWORD( k ) (FLASHWORD32( k ) + (FLASHWORD32( k ) << 32));
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
278 typedef cyg_uint64 flash_data_t;
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
279 # else
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
280 # error How many 32-bit flash devices?
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
281 # endif
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
282
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
283 #else
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
284 # error What flash width?
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
285 #endif
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
286
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
287 // Data (not) that we read back:
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
288 #if 0 == CYGNUM_FLASH_BLANK
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
289 # define FLASH_BlankValue ((flash_data_t)0)
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
290 #elif 1 == CYGNUM_FLASH_BLANK
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
291 # define FLASH_BlankValue ((flash_data_t)(-1ll))
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
292 #else
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
293 # error What blank value?
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
294 #endif
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
295
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
296 #endif // _FLASH_PRIVATE_
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
297
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
298 #endif // CYGONCE_IO_FLASH_FLASH_DEV_H
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
299 //----------------------------------------------------------------------------
e2d866e32dac Merge from eCos master repository on 2001-02-26-23:18:05-GMT
jlarmour
parents:
diff changeset
300 // end of flash_dev.h
1764
96ec7e534d98 V2 flash header files clean-up. Eliminate flash_priv.h, moving the
bartv
parents: 944
diff changeset
301