<div dir="ltr"><div><div>Hi,<br></div>I am porting YAFFS for an embedded system. Right now I am writing flash driver. <b>The flash has 512 B page and no OOB region</b>. As can be seen from<span style="font-family:monospace,monospace"> "yaffs_guts.h" </span>the implementer has to provide the following functions to YAFFS:<br>        <span style="font-family:monospace,monospace">int (*drv_write_chunk_fn) (struct yaffs_dev *dev, int nand_chunk,<br>                   const u8 *data, int data_len,<br>                   const u8 *oob, int oob_len);<br>    int (*drv_read_chunk_fn) (struct yaffs_dev *dev, int nand_chunk,<br>                   u8 *data, int data_len,<br>                   u8 *oob, int oob_len,<br>                   enum yaffs_ecc_result *ecc_result);<br>    int (*drv_erase_fn) (struct yaffs_dev *dev, int block_no);<br>    int (*drv_mark_bad_fn) (struct yaffs_dev *dev, int block_no);<br>    int (*drv_check_bad_fn) (struct yaffs_dev *dev, int block_no);<br>    int (*drv_initialise_fn) (struct yaffs_dev *dev);<br>    int (*drv_deinitialise_fn) (struct yaffs_dev *dev);</span><br></div>Please, could smbd. explain to me how to implement a write function. Since my flash has no OOB region, should I reserve some place for OOB in the next page or completely ommit writing OOB data. I want to use YAFFS1. Does YAFFS1 require OOB? Should I also implement <span style="font-family:monospace,monospace">drv_mark_bad_fn </span><span style="font-family:arial,helvetica,sans-serif">and </span><span style="font-family:monospace,monospace">drv_check_bad_fn </span><span style="font-family:arial,helvetica,sans-serif">functions for YAFFS1 or leave them empty?</span>  And is there any compile time option which makes sure that only YAFFS1 functionality is compiled? I have seed in <span style="font-family:monospace,monospace">yaffs_dev.param</span> there is option<span style="font-family:monospace,monospace"> is_yaffs2</span>. So is it sufficient only to set this to 0 to have only YAFFS1 functionality?<br></div>