X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fynorsim.c;h=dcab663cc89ecd9dffa80c89f5235792d293acc6;hp=569e0ded1e9e40746de4da50ee2d551e6da2074e;hb=6ce07c3f6215ce6a4f4b7fe520ef48e8cf71c7cb;hpb=49942b13d7cfbdba72c18de0f37d16d81b4372a8 diff --git a/direct/ynorsim.c b/direct/ynorsim.c index 569e0de..dcab663 100644 --- a/direct/ynorsim.c +++ b/direct/ynorsim.c @@ -19,17 +19,28 @@ */ //#define YNORSIM_BIT_CHANGES 15 -#define YNORSIM_BIT_CHANGES 1 +#define YNORSIM_BIT_CHANGES 2 +#if 0 /* Simulate 32MB of flash in 256k byte blocks. * This stuff is x32. */ #define YNORSIM_BLOCK_SIZE_U32 (256*1024/4) #define YNORSIM_DEV_SIZE_U32 (32*1024 * 1024/4) +#else +/* Simulate 8MB of flash in 256k byte blocks. + * This stuff is x32. + */ + +#define YNORSIM_BLOCK_SIZE_U32 (256*1024/4) +#define YNORSIM_DEV_SIZE_U32 (8*1024 * 1024/4) +#endif static __u32 word[YNORSIM_DEV_SIZE_U32]; +extern int random_seed; +extern int simulate_power_failure; static void NorError(void) { @@ -63,6 +74,8 @@ static int initialised = 0; static int remaining_ops; static int nops_so_far; +int ops_multiplier = 500; + static void ynorsim_MaybePowerFail(void) { @@ -70,7 +83,8 @@ static void ynorsim_MaybePowerFail(void) remaining_ops--; - if(remaining_ops < 1){ + if(simulate_power_failure && + remaining_ops < 1){ printf("Simulated power failure after %d operations\n",nops_so_far); ynorsim_PowerFail(); } @@ -80,9 +94,9 @@ static void ynorsim_Ready(void) { if(initialised) return; - srand(time(NULL)); + srand(random_seed); remaining_ops = 1000000000; - remaining_ops = (rand() % 10000) * 10000; + remaining_ops = (rand() % 10000) * ops_multiplier * YNORSIM_BIT_CHANGES; ynorsim_RestoreImage(); }