X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fyaffscfg2k.c;h=d67719b16bbd1a2ecac03c36077fdc79f19161fb;hp=6d5f542fc4b0d0754a959a86b523fcde770a0453;hb=40c386c7a14ebfa8afc14562f3b33a416831b26d;hpb=b0b91352fff81d01d34fd562629ce199c255cdd6 diff --git a/direct/yaffscfg2k.c b/direct/yaffscfg2k.c index 6d5f542..d67719b 100644 --- a/direct/yaffscfg2k.c +++ b/direct/yaffscfg2k.c @@ -34,19 +34,22 @@ unsigned yaffs_traceMask = YAFFS_TRACE_ALLOCATE | YAFFS_TRACE_CHECKPOINT | YAFFS_TRACE_BAD_BLOCKS | - YAFFS_TRACE_VERIFY | - YAFFS_TRACE_VERIFY_NAND | - YAFFS_TRACE_VERIFY_FULL | -// (~0) | 0; +static int yaffsfs_lastError; void yaffsfs_SetError(int err) { //Do whatever to set error - errno = err; + yaffsfs_lastError = err; +} + + +int yaffsfs_GetLastError(void) +{ + return yaffsfs_lastError; } void yaffsfs_Lock(void) @@ -69,7 +72,7 @@ static size_t malloc_limit = 0 & 6000000; void *yaffs_malloc(size_t size) { - size_t this; + void * this; if(yaffs_kill_alloc) return NULL; if(malloc_limit && malloc_limit <(total_malloced + size) ) @@ -102,6 +105,7 @@ void yaffsfs_LocalInitialisation(void) #include "yaffs_ramdisk.h" #include "yaffs_flashif.h" +#include "yaffs_flashif2.h" #include "yaffs_nandemul2k.h" static yaffs_Device ramDev; @@ -118,9 +122,10 @@ static yaffsfs_DeviceConfiguration yaffsfs_config[] = { {(void *)0,(void *)0} #else { "/", &ramDev}, - { "/flash/boot", &bootDev}, - { "/flash/flash", &flashDev}, + { "/flash/yaffs1", &bootDev}, + { "/flash/yaffs2", &flashDev}, { "/ram2k", &ram2kDev}, + { "/flash/bigblock", &flashDev}, {(void *)0,(void *)0} /* Null entry to terminate list */ #endif }; @@ -135,7 +140,7 @@ int yaffs_StartUp(void) // Set up devices // /ram memset(&ramDev,0,sizeof(ramDev)); - ramDev.nDataBytesPerChunk = 512; + ramDev.totalBytesPerChunk = 512; ramDev.nChunksPerBlock = 32; ramDev.nReservedBlocks = 2; // Set this smaller for RAM ramDev.startBlock = 0; // Can use block 0 @@ -148,9 +153,9 @@ int yaffs_StartUp(void) ramDev.eraseBlockInNAND = yramdisk_EraseBlockInNAND; ramDev.initialiseNAND = yramdisk_InitialiseNAND; - // /boot + // /boot (yaffs1) memset(&bootDev,0,sizeof(bootDev)); - bootDev.nDataBytesPerChunk = 512; + bootDev.totalBytesPerChunk = 512; bootDev.nChunksPerBlock = 32; bootDev.nReservedBlocks = 5; bootDev.startBlock = 0; // Can use block 0 @@ -158,25 +163,23 @@ int yaffs_StartUp(void) //bootDev.useNANDECC = 0; // use YAFFS's ECC bootDev.nShortOpCaches = 10; // Use caches bootDev.genericDevice = (void *) 1; // Used to identify the device in fstat. - bootDev.writeChunkWithTagsToNAND = yflash_WriteChunkWithTagsToNAND; - bootDev.readChunkWithTagsFromNAND = yflash_ReadChunkWithTagsFromNAND; + bootDev.writeChunkToNAND = yflash_WriteChunkToNAND; + bootDev.readChunkFromNAND = yflash_ReadChunkFromNAND; bootDev.eraseBlockInNAND = yflash_EraseBlockInNAND; bootDev.initialiseNAND = yflash_InitialiseNAND; - bootDev.markNANDBlockBad = yflash_MarkNANDBlockBad; - bootDev.queryNANDBlock = yflash_QueryNANDBlock; - // /flash + // /flash (yaffs2) // Set this puppy up to use // the file emulation space as // 2kpage/64chunk per block/128MB device memset(&flashDev,0,sizeof(flashDev)); - flashDev.nDataBytesPerChunk = 2048; + flashDev.totalBytesPerChunk = 512; flashDev.nChunksPerBlock = 64; flashDev.nReservedBlocks = 5; - flashDev.nCheckpointReservedBlocks = 5; + flashDev.inbandTags = 1; //flashDev.checkpointStartBlock = 1; //flashDev.checkpointEndBlock = 20; flashDev.startBlock = 0; @@ -186,12 +189,12 @@ int yaffs_StartUp(void) flashDev.wideTnodesDisabled=0; flashDev.nShortOpCaches = 10; // Use caches flashDev.genericDevice = (void *) 2; // Used to identify the device in fstat. - flashDev.writeChunkWithTagsToNAND = yflash_WriteChunkWithTagsToNAND; - flashDev.readChunkWithTagsFromNAND = yflash_ReadChunkWithTagsFromNAND; - flashDev.eraseBlockInNAND = yflash_EraseBlockInNAND; - flashDev.initialiseNAND = yflash_InitialiseNAND; - flashDev.markNANDBlockBad = yflash_MarkNANDBlockBad; - flashDev.queryNANDBlock = yflash_QueryNANDBlock; + flashDev.writeChunkWithTagsToNAND = yflash2_WriteChunkWithTagsToNAND; + flashDev.readChunkWithTagsFromNAND = yflash2_ReadChunkWithTagsFromNAND; + flashDev.eraseBlockInNAND = yflash2_EraseBlockInNAND; + flashDev.initialiseNAND = yflash2_InitialiseNAND; + flashDev.markNANDBlockBad = yflash2_MarkNANDBlockBad; + flashDev.queryNANDBlock = yflash2_QueryNANDBlock; // /ram2k // Set this puppy up to use @@ -199,7 +202,7 @@ int yaffs_StartUp(void) // 2kpage/64chunk per block/128MB device memset(&ram2kDev,0,sizeof(ram2kDev)); - ram2kDev.nDataBytesPerChunk = nandemul2k_GetBytesPerChunk(); + ram2kDev.totalBytesPerChunk = nandemul2k_GetBytesPerChunk(); ram2kDev.nChunksPerBlock = nandemul2k_GetChunksPerBlock(); ram2kDev.nReservedBlocks = 5; ram2kDev.startBlock = 0; // First block after /boot @@ -224,6 +227,6 @@ int yaffs_StartUp(void) void SetCheckpointReservedBlocks(int n) { - flashDev.nCheckpointReservedBlocks = n; +// flashDev.nCheckpointReservedBlocks = n; }