Add yaffs driver for regular NOR on simulator
[yaffs2.git] / direct / test-framework / yaffs_m18_drv.c
index 0325968279ac0521e9d67c51a8c706e2eb8adf89..eca97ecaa1889b6d1f4ad8c83cfcfcc4b6b3a2d7 100644 (file)
 
 /* Compile this for a simulation */
 #include "ynorsim.h"
 
 /* Compile this for a simulation */
 #include "ynorsim.h"
-#define m18_drv_FlashInit() ynorsim_initialise()
-#define m18_drv_FlashDeinit() ynorsim_shutdown()
-#define m18_drv_FlashWrite32(addr,buf,nwords) ynorsim_wr32(addr,buf,nwords)
-#define m18_drv_FlashRead32(addr,buf,nwords) ynorsim_rd32(addr,buf,nwords)
-#define m18_drv_FlashEraseBlock(addr) ynorsim_erase(addr)
-#define DEVICE_BASE     ynorsim_get_base()
+
+static struct nor_sim *nor_sim;
+
+#define m18_drv_FlashInit() do {nor_sim = ynorsim_initialise("emfile-m18", BLOCKS_IN_DEVICE, BLOCK_SIZE_IN_BYTES); } while(0)
+#define m18_drv_FlashDeinit() ynorsim_shutdown(nor_sim)
+#define m18_drv_FlashWrite32(addr,buf,nwords) ynorsim_wr32(nor_sim,addr,buf,nwords)
+#define m18_drv_FlashRead32(addr,buf,nwords) ynorsim_rd32(nor_sim,addr,buf,nwords)
+#define m18_drv_FlashEraseBlock(addr) ynorsim_erase(nor_sim,addr)
+#define DEVICE_BASE     ynorsim_get_base(nor_sim)
+
 #else
 
 /* Compile this to hook up to read hardware */
 #else
 
 /* Compile this to hook up to read hardware */
@@ -85,6 +89,7 @@
 #define DEVICE_BASE     (32 * 1024 * 1024)
 #endif
 
 #define DEVICE_BASE     (32 * 1024 * 1024)
 #endif
 
+
 static u32 *Block2Addr(struct yaffs_dev *dev, int blockNumber)
 {
        u32 addr;
 static u32 *Block2Addr(struct yaffs_dev *dev, int blockNumber)
 {
        u32 addr;
@@ -315,6 +320,7 @@ static int m18_drv_InitialiseNAND(struct yaffs_dev *dev)
 static int m18_drv_Deinitialise_flash_fn(struct yaffs_dev *dev)
 {
        dev=dev;
 static int m18_drv_Deinitialise_flash_fn(struct yaffs_dev *dev)
 {
        dev=dev;
+
        m18_drv_FlashDeinit();
 
        return YAFFS_OK;
        m18_drv_FlashDeinit();
 
        return YAFFS_OK;