annotate direct/yaffscfg2k.c @ 236:d74a9a8c1f49

Reduce size for nor simulation testing to try force errors
author charles
date Tue, 11 Nov 2008 01:48:47 +0000
parents 66bdb92cfbde
children a8738fee77c1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
1 /*
173
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
2 * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
3 *
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
4 * Copyright (C) 2002-2007 Aleph One Ltd.
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
5 * for Toby Churchill Ltd and Brightstar Engineering
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
6 *
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
7 * Created by Charles Manning <charles@aleph1.co.uk>
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
8 *
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
9 * This program is free software; you can redistribute it and/or modify
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
10 * it under the terms of the GNU General Public License version 2 as
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
11 * published by the Free Software Foundation.
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
12 */
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
13
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
14 /*
1c249b949b11 normalise licence headers
wookey
parents: 160
diff changeset
15 * yaffscfg2k.c The configuration for the "direct" use of yaffs.
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
16 *
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
17 * This file is intended to be modified to your requirements.
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
18 * There is no need to redistribute this file.
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
19 */
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
20
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
21 #include "yaffscfg.h"
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
22 #include "yaffsfs.h"
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
23 #include "yaffs_fileem2k.h"
6
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
24 #include "yaffs_nandemul2k.h"
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
25 #include "yaffs_norif1.h"
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
26
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
27 #include <errno.h>
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
28
160
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
29 unsigned yaffs_traceMask =
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
30
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
31 YAFFS_TRACE_SCAN |
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
32 YAFFS_TRACE_GC |
182
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
33 YAFFS_TRACE_ERASE |
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
34 YAFFS_TRACE_ERROR |
160
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
35 YAFFS_TRACE_TRACING |
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
36 YAFFS_TRACE_ALLOCATE |
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
37 YAFFS_TRACE_CHECKPOINT |
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
38 YAFFS_TRACE_BAD_BLOCKS |
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
39
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
40 /* YAFFS_TRACE_VERIFY | */
160
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
41
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
42 0;
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
43
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
44
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
45 static int yaffsfs_lastError;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
46
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
47 void yaffsfs_SetError(int err)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
48 {
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
49 //Do whatever to set error
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
50 yaffsfs_lastError = err;
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
51 }
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
52
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
53
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
54 int yaffsfs_GetLastError(void)
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
55 {
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
56 return yaffsfs_lastError;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
57 }
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
58
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
59 void yaffsfs_Lock(void)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
60 {
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
61 }
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
62
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
63 void yaffsfs_Unlock(void)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
64 {
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
65 }
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
66
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
67 __u32 yaffsfs_CurrentTime(void)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
68 {
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
69 return 0;
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
70 }
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
71
182
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
72
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
73 static int yaffs_kill_alloc = 0;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
74 static size_t total_malloced = 0;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
75 static size_t malloc_limit = 0 & 6000000;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
76
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
77 void *yaffs_malloc(size_t size)
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
78 {
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
79 void * this;
182
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
80 if(yaffs_kill_alloc)
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
81 return NULL;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
82 if(malloc_limit && malloc_limit <(total_malloced + size) )
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
83 return NULL;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
84
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
85 this = malloc(size);
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
86 if(this)
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
87 total_malloced += size;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
88 return this;
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
89 }
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
90
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
91 void yaffs_free(void *ptr)
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
92 {
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
93 free(ptr);
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
94 }
ebfd69da1173 Adding checkpoint and robustness improvements
charles
parents: 177
diff changeset
95
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
96 void yaffsfs_LocalInitialisation(void)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
97 {
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
98 // Define locking semaphore.
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
99 }
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
100
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
101 // Configuration for:
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
102 // /ram 2MB ramdisk
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
103 // /boot 2MB boot disk (flash)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
104 // /flash 14MB flash disk (flash)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
105 // NB Though /boot and /flash occupy the same physical device they
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
106 // are still disticnt "yaffs_Devices. You may think of these as "partitions"
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
107 // using non-overlapping areas in the same device.
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
108 //
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
109
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
110 #include "yaffs_ramdisk.h"
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
111 #include "yaffs_flashif.h"
215
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
112 #include "yaffs_flashif2.h"
6
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
113 #include "yaffs_nandemul2k.h"
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
114
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
115 static yaffs_Device ram1Dev;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
116 static yaffs_Device nand2;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
117 static yaffs_Device flashDev;
6
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
118 static yaffs_Device ram2kDev;
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
119 static yaffs_Device m18_1Dev;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
120
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
121 static yaffsfs_DeviceConfiguration yaffsfs_config[] = {
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
122
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
123 { "/ram1", &ram1Dev},
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
124 { "/M18-1", &m18_1Dev},
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
125 { "/yaffs2", &flashDev},
94
c53efc2aec17 Improve YDI lookup and device prefic handling
charles
parents: 23
diff changeset
126 { "/ram2k", &ram2kDev},
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
127 { "/flash/bigblock", &flashDev},
105
632bc43b7e31 Wide tnode support
charles
parents: 94
diff changeset
128 {(void *)0,(void *)0} /* Null entry to terminate list */
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
129 };
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
130
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
131
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
132 int yaffs_StartUp(void)
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
133 {
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
134 // Stuff to configure YAFFS
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
135 // Stuff to initialise anything special (eg lock semaphore).
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
136 yaffsfs_LocalInitialisation();
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
137
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
138 // Set up devices
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
139 // /ram1 ram, yaffs1
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
140 memset(&ram1Dev,0,sizeof(ram1Dev));
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
141 ram1Dev.totalBytesPerChunk = 512;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
142 ram1Dev.nChunksPerBlock = 32;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
143 ram1Dev.nReservedBlocks = 2; // Set this smaller for RAM
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
144 ram1Dev.startBlock = 0; // Can use block 0
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
145 ram1Dev.endBlock = 127; // Last block in 2MB.
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
146 //ram1Dev.useNANDECC = 1;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
147 ram1Dev.nShortOpCaches = 0; // Disable caching on this device.
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
148 ram1Dev.genericDevice = (void *) 0; // Used to identify the device in fstat.
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
149 ram1Dev.writeChunkWithTagsToNAND = yramdisk_WriteChunkWithTagsToNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
150 ram1Dev.readChunkWithTagsFromNAND = yramdisk_ReadChunkWithTagsFromNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
151 ram1Dev.eraseBlockInNAND = yramdisk_EraseBlockInNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
152 ram1Dev.initialiseNAND = yramdisk_InitialiseNAND;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
153
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
154 // /M18-1 yaffs1 on M18 nor sim
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
155 memset(&m18_1Dev,0,sizeof(m18_1Dev));
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
156 m18_1Dev.totalBytesPerChunk = 1024;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
157 m18_1Dev.nChunksPerBlock =248;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
158 m18_1Dev.nReservedBlocks = 2;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
159 m18_1Dev.startBlock = 0; // Can use block 0
236
d74a9a8c1f49 Reduce size for nor simulation testing to try force errors
charles
parents: 231
diff changeset
160 m18_1Dev.endBlock = 31; // Last block
231
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
161 m18_1Dev.useNANDECC = 0; // use YAFFS's ECC
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
162 m18_1Dev.nShortOpCaches = 10; // Use caches
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
163 m18_1Dev.genericDevice = (void *) 1; // Used to identify the device in fstat.
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
164 m18_1Dev.writeChunkToNAND = ynorif1_WriteChunkToNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
165 m18_1Dev.readChunkFromNAND = ynorif1_ReadChunkFromNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
166 m18_1Dev.eraseBlockInNAND = ynorif1_EraseBlockInNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
167 m18_1Dev.initialiseNAND = ynorif1_InitialiseNAND;
66bdb92cfbde Some fixes and add NOR integrity code
charles
parents: 226
diff changeset
168 m18_1Dev.deinitialiseNAND = ynorif1_DeinitialiseNAND;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
169
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
170
215
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
171 // /flash (yaffs2)
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
172 // Set this puppy up to use
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
173 // the file emulation space as
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
174 // 2kpage/64chunk per block/128MB device
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
175 memset(&flashDev,0,sizeof(flashDev));
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
176
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
177 flashDev.totalBytesPerChunk = 512;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
178 flashDev.nChunksPerBlock = 64;
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
179 flashDev.nReservedBlocks = 5;
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
180 flashDev.inbandTags = 1;
133
327bf031dc8f Add non-partitioned checkpointing
charles
parents: 131
diff changeset
181 //flashDev.checkpointStartBlock = 1;
327bf031dc8f Add non-partitioned checkpointing
charles
parents: 131
diff changeset
182 //flashDev.checkpointEndBlock = 20;
160
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
183 flashDev.startBlock = 0;
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
184 flashDev.endBlock = 200; // Make it smaller
a7f45736ace4 More changes to test harness
charles
parents: 153
diff changeset
185 //flashDev.endBlock = yflash_GetNumberOfBlocks()-1;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
186 flashDev.isYaffs2 = 1;
105
632bc43b7e31 Wide tnode support
charles
parents: 94
diff changeset
187 flashDev.wideTnodesDisabled=0;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
188 flashDev.nShortOpCaches = 10; // Use caches
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
189 flashDev.genericDevice = (void *) 2; // Used to identify the device in fstat.
215
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
190 flashDev.writeChunkWithTagsToNAND = yflash2_WriteChunkWithTagsToNAND;
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
191 flashDev.readChunkWithTagsFromNAND = yflash2_ReadChunkWithTagsFromNAND;
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
192 flashDev.eraseBlockInNAND = yflash2_EraseBlockInNAND;
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
193 flashDev.initialiseNAND = yflash2_InitialiseNAND;
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
194 flashDev.markNANDBlockBad = yflash2_MarkNANDBlockBad;
b08276bd7b2d Clean up some yaffs1 mode issues.
charles
parents: 211
diff changeset
195 flashDev.queryNANDBlock = yflash2_QueryNANDBlock;
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
196
6
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
197 // /ram2k
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
198 // Set this puppy up to use
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
199 // the file emulation space as
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
200 // 2kpage/64chunk per block/128MB device
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
201 memset(&ram2kDev,0,sizeof(ram2kDev));
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
202
211
fad21fd1971d Check in inband tags, some extra yaffs direct functions and some other changes
charles
parents: 203
diff changeset
203 ram2kDev.totalBytesPerChunk = nandemul2k_GetBytesPerChunk();
6
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
204 ram2kDev.nChunksPerBlock = nandemul2k_GetChunksPerBlock();
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
205 ram2kDev.nReservedBlocks = 5;
21
409e034192c1 Allow use of page zero
charles
parents: 19
diff changeset
206 ram2kDev.startBlock = 0; // First block after /boot
6
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
207 //ram2kDev.endBlock = 127; // Last block in 16MB
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
208 ram2kDev.endBlock = nandemul2k_GetNumberOfBlocks() - 1; // Last block in 512MB
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
209 ram2kDev.isYaffs2 = 1;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
210 ram2kDev.nShortOpCaches = 10; // Use caches
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
211 ram2kDev.genericDevice = (void *) 3; // Used to identify the device in fstat.
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
212 ram2kDev.writeChunkWithTagsToNAND = nandemul2k_WriteChunkWithTagsToNAND;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
213 ram2kDev.readChunkWithTagsFromNAND = nandemul2k_ReadChunkWithTagsFromNAND;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
214 ram2kDev.eraseBlockInNAND = nandemul2k_EraseBlockInNAND;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
215 ram2kDev.initialiseNAND = nandemul2k_InitialiseNAND;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
216 ram2kDev.markNANDBlockBad = nandemul2k_MarkNANDBlockBad;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
217 ram2kDev.queryNANDBlock = nandemul2k_QueryNANDBlock;
ffe653f3cb4f *** empty log message ***
charles
parents: 1
diff changeset
218
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
219 yaffs_initialise(yaffsfs_config);
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
220
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
221 return 0;
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
222 }
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
223
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
224
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
225
138
c467501bb58c Fix problem with checkpoint free space handling
charles
parents: 137
diff changeset
226 void SetCheckpointReservedBlocks(int n)
c467501bb58c Fix problem with checkpoint free space handling
charles
parents: 137
diff changeset
227 {
203
88a05fb266f0 Change checkpoint to calculate number of blocks required instead of using a hardcoded value
charles
parents: 182
diff changeset
228 // flashDev.nCheckpointReservedBlocks = n;
138
c467501bb58c Fix problem with checkpoint free space handling
charles
parents: 137
diff changeset
229 }
1
1a7b08737ec4 *** empty log message ***
charles
parents:
diff changeset
230