('entity_view:node:118:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:766:\"<article role=\"article\" about=\"/yaffs-talk-slide-10-filesystem-limits\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-10-filesystem-limits\" rel=\"bookmark\"><span>YAFFS talk - Slide 10 - Filesystem Limits</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt; </div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-10-filesystem-limits\" rel=\"tag\" title=\"YAFFS talk - Slide 10 - Filesystem Limits\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 10 - Filesystem Limits</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:118\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655413.108,1,'config:filter.format.full_html node:118 node_view rendered user:1','301'),('entity_view:node:118:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"118\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:118\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655413.106,1,'config:filter.format.full_html node:118 node_view rendered user:1','301'),('entity_view:node:119:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0t_jqyg8PTsPY0gUPb2T-DJRhAY-MGKW3mr5l_Gd8DnM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:517:\"<article role=\"article\" about=\"/yaffs-talk-slide-11-oob-data\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/120\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_11.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_11.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:29:\"/yaffs-talk-slide-11-oob-data\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/119\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:29:\"/yaffs-talk-slide-11-oob-data\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:119\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:46:\"<span>YAFFS talk - Slide 11 - OOB Data</span>\n\";}}',-1,1511851297.422,1,'config:filter.format.full_html config:system.site node:119 node_view rendered user:1','307'),('entity_view:node:119:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"119\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:119\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511851297.420,1,'config:filter.format.full_html config:system.site node:119 node_view rendered user:1','307'),('entity_view:node:119:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:398:\"<span>YAFFS talk - Slide 11 - OOB Data</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/120\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_11.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_11.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:119\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1511851284.898,1,'config:filter.format.full_html node:119 node_view rendered','294'),('entity_view:node:119:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"119\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:119\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511851284.876,1,'config:filter.format.full_html node:119 node_view rendered','294'),('entity_view:node:119:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:711:\"<article role=\"article\" about=\"/yaffs-talk-slide-11-oob-data\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-11-oob-data\" rel=\"bookmark\"><span>YAFFS talk - Slide 11 - OOB Data</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-11-oob-data\" rel=\"tag\" title=\"YAFFS talk - Slide 11 - OOB Data\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 11 - OOB Data</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:119\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655413.093,1,'config:filter.format.full_html node:119 node_view rendered user:1','301'),('entity_view:node:119:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"119\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:119\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655413.092,1,'config:filter.format.full_html node:119 node_view rendered user:1','301'),('entity_view:node:120:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0DnAf9A5am-ATC4JKeww8n4GrsOkl31aNpNWfNYNptAU','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:535:\"<article role=\"article\" about=\"/yaffs-talk-slide-12-filesystem-data-structures\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/121\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_12.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_12.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:47:\"/yaffs-talk-slide-12-filesystem-data-structures\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/120\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:47:\"/yaffs-talk-slide-12-filesystem-data-structures\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:120\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:64:\"<span>YAFFS talk - Slide 12 - Filesystem Data Structures</span>\n\";}}',-1,1511523106.568,1,'config:filter.format.full_html config:system.site node:120 node_view rendered user:1','307'),('entity_view:node:120:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"120\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:120\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511523106.566,1,'config:filter.format.full_html config:system.site node:120 node_view rendered user:1','307'),('entity_view:node:120:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:416:\"<span>YAFFS talk - Slide 12 - Filesystem Data Structures</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/121\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_12.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_12.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:120\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113428.255,1,'config:filter.format.full_html node:120 node_view rendered','294'),('entity_view:node:120:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"120\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:120\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113428.253,1,'config:filter.format.full_html node:120 node_view rendered','294'),('entity_view:node:120:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:819:\"<article role=\"article\" about=\"/yaffs-talk-slide-12-filesystem-data-structures\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-12-filesystem-data-structures\" rel=\"bookmark\"><span>YAFFS talk - Slide 12 - Filesystem Data Structures</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-12-filesystem-data-structures\" rel=\"tag\" title=\"YAFFS talk - Slide 12 - Filesystem Data Structures\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 12 - Filesystem Data Structures</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:120\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655413.081,1,'config:filter.format.full_html node:120 node_view rendered user:1','301'),('entity_view:node:120:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"120\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:120\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655413.080,1,'config:filter.format.full_html node:120 node_view rendered user:1','301'),('entity_view:node:121:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0gHccuf_b4fZRmrO1pT9avZMTrK5JrAMvphNWh62hgoU','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:539:\"<article role=\"article\" about=\"/yaffs-talk-slide-13-filesystem-ram-data-structures\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/122\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_13.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_13.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:51:\"/yaffs-talk-slide-13-filesystem-ram-data-structures\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/121\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:51:\"/yaffs-talk-slide-13-filesystem-ram-data-structures\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:121\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:68:\"<span>YAFFS talk - Slide 13 - Filesystem RAM Data Structures</span>\n\";}}',-1,1511645250.530,1,'config:filter.format.full_html config:system.site node:121 node_view rendered user:1','307'),('entity_view:node:121:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"121\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:121\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511645250.528,1,'config:filter.format.full_html config:system.site node:121 node_view rendered user:1','307'),('entity_view:node:121:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:420:\"<span>YAFFS talk - Slide 13 - Filesystem RAM Data Structures</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/122\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_13.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_13.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:121\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113428.245,1,'config:filter.format.full_html node:121 node_view rendered','294'),('entity_view:node:121:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"121\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:121\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113428.240,1,'config:filter.format.full_html node:121 node_view rendered','294'),('entity_view:node:121:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:843:\"<article role=\"article\" about=\"/yaffs-talk-slide-13-filesystem-ram-data-structures\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-13-filesystem-ram-data-structures\" rel=\"bookmark\"><span>YAFFS talk - Slide 13 - Filesystem RAM Data Structures</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-13-filesystem-ram-data-structures\" rel=\"tag\" title=\"YAFFS talk - Slide 13 - Filesystem RAM Data Structures\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 13 - Filesystem RAM Data Structures</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:121\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655413.057,1,'config:filter.format.full_html node:121 node_view rendered user:1','301'),('entity_view:node:121:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"121\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:121\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655413.044,1,'config:filter.format.full_html node:121 node_view rendered user:1','301'),('entity_view:node:122:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0dqOPWMllhKZVgT5nPcqOE2MYjXzVG_pCqRpmxIdUOCU','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:521:\"<article role=\"article\" about=\"/yaffs-talk-slide-14-partitioning\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/123\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_14.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_14.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:33:\"/yaffs-talk-slide-14-partitioning\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/122\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:33:\"/yaffs-talk-slide-14-partitioning\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:122\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:50:\"<span>YAFFS talk - Slide 14 - Partitioning</span>\n\";}}',-1,1511643205.574,1,'config:filter.format.full_html config:system.site node:122 node_view rendered user:1','307'),('entity_view:node:122:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"122\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:122\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511643205.570,1,'config:filter.format.full_html config:system.site node:122 node_view rendered user:1','307'),('entity_view:node:122:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:402:\"<span>YAFFS talk - Slide 14 - Partitioning</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/123\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_14.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_14.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:122\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113428.232,1,'config:filter.format.full_html node:122 node_view rendered','294'),('entity_view:node:122:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"122\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:122\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113428.229,1,'config:filter.format.full_html node:122 node_view rendered','294'),('entity_view:node:122:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:735:\"<article role=\"article\" about=\"/yaffs-talk-slide-14-partitioning\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-14-partitioning\" rel=\"bookmark\"><span>YAFFS talk - Slide 14 - Partitioning</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-14-partitioning\" rel=\"tag\" title=\"YAFFS talk - Slide 14 - Partitioning\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 14 - Partitioning</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:122\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655413.031,1,'config:filter.format.full_html node:122 node_view rendered user:1','301'),('entity_view:node:122:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"122\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:122\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655413.029,1,'config:filter.format.full_html node:122 node_view rendered user:1','301'),('entity_view:node:123:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0JVVe4g5E3AhmYwjVfKrtQvxQ2NYXnvYMa7r973XkK-U','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:539:\"<article role=\"article\" about=\"/yaffs-talk-slide-15-garbage-collection-and-threads\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/124\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_15.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_15.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:51:\"/yaffs-talk-slide-15-garbage-collection-and-threads\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/123\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:51:\"/yaffs-talk-slide-15-garbage-collection-and-threads\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:123\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:68:\"<span>YAFFS talk - Slide 15 - Garbage Collection and Threads</span>\n\";}}',-1,1510786931.010,1,'config:filter.format.full_html config:system.site node:123 node_view rendered user:1','307'),('entity_view:node:123:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"123\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:123\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786930.986,1,'config:filter.format.full_html config:system.site node:123 node_view rendered user:1','307'),('entity_view:node:123:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:420:\"<span>YAFFS talk - Slide 15 - Garbage Collection and Threads</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/124\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_15.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_15.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:123\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113428.221,1,'config:filter.format.full_html node:123 node_view rendered','294'),('entity_view:node:123:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"123\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:123\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113428.219,1,'config:filter.format.full_html node:123 node_view rendered','294'),('entity_view:node:123:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:844:\"<article role=\"article\" about=\"/yaffs-talk-slide-15-garbage-collection-and-threads\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-15-garbage-collection-and-threads\" rel=\"bookmark\"><span>YAFFS talk - Slide 15 - Garbage Collection and Threads</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt; </div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-15-garbage-collection-and-threads\" rel=\"tag\" title=\"YAFFS talk - Slide 15 - Garbage Collection and Threads\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 15 - Garbage Collection and Threads</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:123\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655413.016,1,'config:filter.format.full_html node:123 node_view rendered user:1','301'),('entity_view:node:123:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"123\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:123\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655413.007,1,'config:filter.format.full_html node:123 node_view rendered user:1','301'),('entity_view:node:124:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0TDOKObAsGC5NfYkbSdf9g7rLDDAVxAa2hnojfZizRHs','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:512:\"<article role=\"article\" about=\"/yaffs-talk-slide-16-ecc\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/125\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_16.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_16.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:24:\"/yaffs-talk-slide-16-ecc\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/124\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:24:\"/yaffs-talk-slide-16-ecc\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:124\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:41:\"<span>YAFFS talk - Slide 16 - ECC</span>\n\";}}',-1,1511645320.181,1,'config:filter.format.full_html config:system.site node:124 node_view rendered user:1','307'),('entity_view:node:124:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"124\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:124\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511645320.178,1,'config:filter.format.full_html config:system.site node:124 node_view rendered user:1','307'),('entity_view:node:124:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:393:\"<span>YAFFS talk - Slide 16 - ECC</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/125\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_16.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_16.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:124\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1511769041.750,1,'config:filter.format.full_html node:124 node_view rendered','294'),('entity_view:node:124:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"124\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:124\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511769041.734,1,'config:filter.format.full_html node:124 node_view rendered','294'),('entity_view:node:124:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:681:\"<article role=\"article\" about=\"/yaffs-talk-slide-16-ecc\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-16-ecc\" rel=\"bookmark\"><span>YAFFS talk - Slide 16 - ECC</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-16-ecc\" rel=\"tag\" title=\"YAFFS talk - Slide 16 - ECC\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 16 - ECC</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:124\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1511655412.993,1,'config:filter.format.full_html node:124 node_view rendered user:1','301'),('entity_view:node:124:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"124\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:124\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511655412.992,1,'config:filter.format.full_html node:124 node_view rendered user:1','301'),('entity_view:node:125:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0HOE3ezCz_5e_u1ubdtlxt4KzfG79GjbRyWP0ghgQWVQ','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:523:\"<article role=\"article\" about=\"/yaffs-talk-slide-17-os-portability\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/126\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_17.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_17.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:35:\"/yaffs-talk-slide-17-os-portability\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/125\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:35:\"/yaffs-talk-slide-17-os-portability\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:125\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:52:\"<span>YAFFS talk - Slide 17 - OS Portability</span>\n\";}}',-1,1511057439.212,1,'config:filter.format.full_html config:system.site node:125 node_view rendered user:1','307'),('entity_view:node:125:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"125\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:125\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511057439.204,1,'config:filter.format.full_html config:system.site node:125 node_view rendered user:1','307'),('entity_view:node:125:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:404:\"<span>YAFFS talk - Slide 17 - OS Portability</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/126\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_17.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_17.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:125\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113417.258,1,'config:filter.format.full_html node:125 node_view rendered','294'),('entity_view:node:125:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"125\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:125\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113417.225,1,'config:filter.format.full_html node:125 node_view rendered','294'),('entity_view:node:125:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:747:\"<article role=\"article\" about=\"/yaffs-talk-slide-17-os-portability\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-17-os-portability\" rel=\"bookmark\"><span>YAFFS talk - Slide 17 - OS Portability</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-17-os-portability\" rel=\"tag\" title=\"YAFFS talk - Slide 17 - OS Portability\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 17 - OS Portability</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:125\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.832,1,'config:filter.format.full_html node:125 node_view rendered user:1','301'),('entity_view:node:125:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"125\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:125\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.830,1,'config:filter.format.full_html node:125 node_view rendered user:1','301'),('entity_view:node:126:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0rfAnh7G3oAgCQsiLCehgYJpLtRQjByZUE3JczWxhnsQ','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:518:\"<article role=\"article\" about=\"/yaffs-talk-slide-18-yaffs-use\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/127\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_18.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_18.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:30:\"/yaffs-talk-slide-18-yaffs-use\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/126\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:30:\"/yaffs-talk-slide-18-yaffs-use\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:126\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:50:\"<span>YAFFS talk - Slide 18 - YAFFS in Use</span>\n\";}}',-1,1510793222.682,1,'config:filter.format.full_html config:system.site node:126 node_view rendered user:1','307'),('entity_view:node:126:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"126\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:126\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510793222.678,1,'config:filter.format.full_html config:system.site node:126 node_view rendered user:1','307'),('entity_view:node:126:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:402:\"<span>YAFFS talk - Slide 18 - YAFFS in Use</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/127\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_18.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_18.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:126\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113055.186,1,'config:filter.format.full_html node:126 node_view rendered','294'),('entity_view:node:126:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"126\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:126\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113055.174,1,'config:filter.format.full_html node:126 node_view rendered','294'),('entity_view:node:126:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:726:\"<article role=\"article\" about=\"/yaffs-talk-slide-18-yaffs-use\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-18-yaffs-use\" rel=\"bookmark\"><span>YAFFS talk - Slide 18 - YAFFS in Use</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-18-yaffs-use\" rel=\"tag\" title=\"YAFFS talk - Slide 18 - YAFFS in Use\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 18 - YAFFS in Use</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:126\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.820,1,'config:filter.format.full_html node:126 node_view rendered user:1','301'),('entity_view:node:126:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"126\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:126\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.818,1,'config:filter.format.full_html node:126 node_view rendered user:1','301'),('entity_view:node:127:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0u045ghfnxSR0QZKliYrB_-dkHLoQk56EcthyeyRJ740','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:528:\"<article role=\"article\" about=\"/yaffs-talk-slide-19-embedded-system-use\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/128\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_19.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_19.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:40:\"/yaffs-talk-slide-19-embedded-system-use\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/127\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:40:\"/yaffs-talk-slide-19-embedded-system-use\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:127\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:57:\"<span>YAFFS talk - Slide 19 - Embedded System Use</span>\n\";}}',-1,1511070993.957,1,'config:filter.format.full_html config:system.site node:127 node_view rendered user:1','307'),('entity_view:node:127:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"127\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:127\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511070993.955,1,'config:filter.format.full_html config:system.site node:127 node_view rendered user:1','307'),('entity_view:node:127:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:409:\"<span>YAFFS talk - Slide 19 - Embedded System Use</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/128\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_19.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_19.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:127\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113417.184,1,'config:filter.format.full_html node:127 node_view rendered','294'),('entity_view:node:127:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"127\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:127\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113417.172,1,'config:filter.format.full_html node:127 node_view rendered','294'),('entity_view:node:127:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:777:\"<article role=\"article\" about=\"/yaffs-talk-slide-19-embedded-system-use\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-19-embedded-system-use\" rel=\"bookmark\"><span>YAFFS talk - Slide 19 - Embedded System Use</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-19-embedded-system-use\" rel=\"tag\" title=\"YAFFS talk - Slide 19 - Embedded System Use\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 19 - Embedded System Use</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:127\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.807,1,'config:filter.format.full_html node:127 node_view rendered user:1','301'),('entity_view:node:127:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"127\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:127\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.806,1,'config:filter.format.full_html node:127 node_view rendered user:1','301'),('entity_view:node:128:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0s7onKNxYiYM8UBhbQD8Km-iNamd-g4C5LyxizpzGGU4','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:528:\"<article role=\"article\" about=\"/yaffs-talk-slide-20-embedded-system-use\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/129\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_20.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_20.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:40:\"/yaffs-talk-slide-20-embedded-system-use\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/128\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:40:\"/yaffs-talk-slide-20-embedded-system-use\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:128\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:57:\"<span>YAFFS talk - Slide 20 - Embedded System Use</span>\n\";}}',-1,1511662577.559,1,'config:filter.format.full_html config:system.site node:128 node_view rendered user:1','307'),('entity_view:node:128:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"128\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:128\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511662577.556,1,'config:filter.format.full_html config:system.site node:128 node_view rendered user:1','307'),('entity_view:node:128:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:409:\"<span>YAFFS talk - Slide 20 - Embedded System Use</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/129\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_20.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_20.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:128\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113417.138,1,'config:filter.format.full_html node:128 node_view rendered','294'),('entity_view:node:128:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"128\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:128\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113417.122,1,'config:filter.format.full_html node:128 node_view rendered','294'),('entity_view:node:128:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:777:\"<article role=\"article\" about=\"/yaffs-talk-slide-20-embedded-system-use\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-20-embedded-system-use\" rel=\"bookmark\"><span>YAFFS talk - Slide 20 - Embedded System Use</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-20-embedded-system-use\" rel=\"tag\" title=\"YAFFS talk - Slide 20 - Embedded System Use\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 20 - Embedded System Use</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:128\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.794,1,'config:filter.format.full_html node:128 node_view rendered user:1','301'),('entity_view:node:128:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"128\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:128\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.792,1,'config:filter.format.full_html node:128 node_view rendered user:1','301'),('entity_view:node:129:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0UOQUE3invf8vymHdhDSPtnhgIt4OeFwwoPW-9Jp05E4','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:528:\"<article role=\"article\" about=\"/yaffs-talk-slide-21-embedded-system-use\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/130\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_21.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_21.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:40:\"/yaffs-talk-slide-21-embedded-system-use\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/129\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:40:\"/yaffs-talk-slide-21-embedded-system-use\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:129\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:57:\"<span>YAFFS talk - Slide 21 - Embedded System Use</span>\n\";}}',-1,1510662232.942,1,'config:filter.format.full_html config:system.site node:129 node_view rendered user:1','307'),('entity_view:node:129:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"129\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:129\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510662232.939,1,'config:filter.format.full_html config:system.site node:129 node_view rendered user:1','307'),('entity_view:node:129:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:409:\"<span>YAFFS talk - Slide 21 - Embedded System Use</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/130\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_21.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_21.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:129\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113417.082,1,'config:filter.format.full_html node:129 node_view rendered','294'),('entity_view:node:129:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"129\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:129\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113417.026,1,'config:filter.format.full_html node:129 node_view rendered','294'),('entity_view:node:129:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:777:\"<article role=\"article\" about=\"/yaffs-talk-slide-21-embedded-system-use\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-21-embedded-system-use\" rel=\"bookmark\"><span>YAFFS talk - Slide 21 - Embedded System Use</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-21-embedded-system-use\" rel=\"tag\" title=\"YAFFS talk - Slide 21 - Embedded System Use\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 21 - Embedded System Use</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:129\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.772,1,'config:filter.format.full_html node:129 node_view rendered user:1','301'),('entity_view:node:129:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"129\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:129\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.770,1,'config:filter.format.full_html node:129 node_view rendered user:1','301'),('entity_view:node:130:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0BFX6ULYZsYOGuiAwPgIUqbwzVs3yKgZ678kxCrsvZJM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:528:\"<article role=\"article\" about=\"/yaffs-talk-slide-22-embedded-system-use\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/131\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_22.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_22.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:40:\"/yaffs-talk-slide-22-embedded-system-use\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/130\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:40:\"/yaffs-talk-slide-22-embedded-system-use\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:130\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:57:\"<span>YAFFS talk - Slide 22 - Embedded System Use</span>\n\";}}',-1,1511385511.066,1,'config:filter.format.full_html config:system.site node:130 node_view rendered user:1','307'),('entity_view:node:130:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"130\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:130\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511385511.065,1,'config:filter.format.full_html config:system.site node:130 node_view rendered user:1','307'),('entity_view:node:130:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:409:\"<span>YAFFS talk - Slide 22 - Embedded System Use</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/131\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_22.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_22.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:130\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113416.935,1,'config:filter.format.full_html node:130 node_view rendered','294'),('entity_view:node:130:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"130\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:130\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113416.906,1,'config:filter.format.full_html node:130 node_view rendered','294'),('entity_view:node:130:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:777:\"<article role=\"article\" about=\"/yaffs-talk-slide-22-embedded-system-use\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-22-embedded-system-use\" rel=\"bookmark\"><span>YAFFS talk - Slide 22 - Embedded System Use</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-22-embedded-system-use\" rel=\"tag\" title=\"YAFFS talk - Slide 22 - Embedded System Use\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 22 - Embedded System Use</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:130\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.761,1,'config:filter.format.full_html node:130 node_view rendered user:1','301'),('entity_view:node:130:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"130\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:130\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.759,1,'config:filter.format.full_html node:130 node_view rendered user:1','301'),('entity_view:node:131:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0p1fZbtG85imxRbJZIHjbNsoMplDthtuZIkxtVTqrYGM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:529:\"<article role=\"article\" about=\"/yaffs-talk-slide-23-performance-examples\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/132\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_23.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_23.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:41:\"/yaffs-talk-slide-23-performance-examples\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/131\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:41:\"/yaffs-talk-slide-23-performance-examples\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:131\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:60:\"<span>YAFFS talk - Slide 23 - Performance - Examples</span>\n\";}}',-1,1513404092.977,1,'config:filter.format.full_html config:system.site node:131 node_view rendered user:1','307'),('entity_view:node:131:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"131\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:131\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1513404092.975,1,'config:filter.format.full_html config:system.site node:131 node_view rendered user:1','307'),('entity_view:node:131:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:412:\"<span>YAFFS talk - Slide 23 - Performance - Examples</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/132\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_23.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_23.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:131\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113416.866,1,'config:filter.format.full_html node:131 node_view rendered','294'),('entity_view:node:131:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"131\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:131\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113416.839,1,'config:filter.format.full_html node:131 node_view rendered','294'),('entity_view:node:131:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:789:\"<article role=\"article\" about=\"/yaffs-talk-slide-23-performance-examples\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-23-performance-examples\" rel=\"bookmark\"><span>YAFFS talk - Slide 23 - Performance - Examples</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-23-performance-examples\" rel=\"tag\" title=\"YAFFS talk - Slide 23 - Performance - Examples\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 23 - Performance - Examples</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:131\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.744,1,'config:filter.format.full_html node:131 node_view rendered user:1','301'),('entity_view:node:131:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"131\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:131\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.741,1,'config:filter.format.full_html node:131 node_view rendered user:1','301'),('entity_view:node:132:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0REqoc2pXyFyIanZ09JqpRS5S4NtDhhGDz3CsFWedORA','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:528:\"<article role=\"article\" about=\"/yaffs-talk-slide-24-performance-caching\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/133\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_24.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_24.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:40:\"/yaffs-talk-slide-24-performance-caching\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/132\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:40:\"/yaffs-talk-slide-24-performance-caching\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:132\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:59:\"<span>YAFFS talk - Slide 24 - Performance - Caching</span>\n\";}}',-1,1510950402.492,1,'config:filter.format.full_html config:system.site node:132 node_view rendered user:1','307'),('entity_view:node:132:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"132\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:132\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510950402.490,1,'config:filter.format.full_html config:system.site node:132 node_view rendered user:1','307'),('entity_view:node:132:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:411:\"<span>YAFFS talk - Slide 24 - Performance - Caching</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/133\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_24.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_24.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:132\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113416.806,1,'config:filter.format.full_html node:132 node_view rendered','294'),('entity_view:node:132:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"132\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:132\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113416.777,1,'config:filter.format.full_html node:132 node_view rendered','294'),('entity_view:node:132:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:783:\"<article role=\"article\" about=\"/yaffs-talk-slide-24-performance-caching\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-24-performance-caching\" rel=\"bookmark\"><span>YAFFS talk - Slide 24 - Performance - Caching</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-24-performance-caching\" rel=\"tag\" title=\"YAFFS talk - Slide 24 - Performance - Caching\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 24 - Performance - Caching</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:132\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.731,1,'config:filter.format.full_html node:132 node_view rendered user:1','301'),('entity_view:node:132:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"132\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:132\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.729,1,'config:filter.format.full_html node:132 node_view rendered user:1','301'),('entity_view:node:133:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b03JBXmckqyg9P2Zi4IiI0sn_e_YzSopsEe8WK8O_nSkg','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:535:\"<article role=\"article\" about=\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/134\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_25.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_25.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:47:\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/133\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:47:\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:133\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:64:\"<span>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison</span>\n\";}}',-1,1511297025.954,1,'config:filter.format.full_html config:system.site node:133 node_view rendered user:1','307'),('entity_view:node:133:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"133\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:133\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511297025.952,1,'config:filter.format.full_html config:system.site node:133 node_view rendered user:1','307'),('entity_view:node:133:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:416:\"<span>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/134\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_25.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_25.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:133\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113055.165,1,'config:filter.format.full_html node:133 node_view rendered','294'),('entity_view:node:133:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"133\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:133\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113055.163,1,'config:filter.format.full_html node:133 node_view rendered','294'),('entity_view:node:133:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:819:\"<article role=\"article\" about=\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\" rel=\"bookmark\"><span>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\" rel=\"tag\" title=\"YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:133\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.718,1,'config:filter.format.full_html node:133 node_view rendered user:1','301'),('entity_view:node:133:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"133\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:133\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.716,1,'config:filter.format.full_html node:133 node_view rendered user:1','301'),('entity_view:node:134:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b06ER1KQnRYWHTqomJNGfQ4WN02vt2DvSQ0Jkm2NKy7t0','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:518:\"<article role=\"article\" about=\"/yaffs-talk-slide-26-licensing\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/135\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_26.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_26.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:30:\"/yaffs-talk-slide-26-licensing\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/134\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:30:\"/yaffs-talk-slide-26-licensing\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:134\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:47:\"<span>YAFFS talk - Slide 26 - Licensing</span>\n\";}}',-1,1511686093.118,1,'config:filter.format.full_html config:system.site node:134 node_view rendered user:1','307'),('entity_view:node:134:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"134\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:134\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511686093.112,1,'config:filter.format.full_html config:system.site node:134 node_view rendered user:1','307'),('entity_view:node:134:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:399:\"<span>YAFFS talk - Slide 26 - Licensing</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/135\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_26.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_26.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:134\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113416.722,1,'config:filter.format.full_html node:134 node_view rendered','294'),('entity_view:node:134:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"134\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:134\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113416.638,1,'config:filter.format.full_html node:134 node_view rendered','294'),('entity_view:node:134:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:717:\"<article role=\"article\" about=\"/yaffs-talk-slide-26-licensing\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-26-licensing\" rel=\"bookmark\"><span>YAFFS talk - Slide 26 - Licensing</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-26-licensing\" rel=\"tag\" title=\"YAFFS talk - Slide 26 - Licensing\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 26 - Licensing</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:134\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786958.700,1,'config:filter.format.full_html node:134 node_view rendered user:1','301'),('entity_view:node:134:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"134\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:134\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786958.698,1,'config:filter.format.full_html node:134 node_view rendered user:1','301'),('entity_view:node:135:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0vNKzWuV8IxXSrWKum58LiWVU9CRpQrJC1fRn3a5tPew','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:515:\"<article role=\"article\" about=\"/yaffs-talk-slide-27-yaffs2\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/136\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_27.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_27.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:27:\"/yaffs-talk-slide-27-yaffs2\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/135\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:27:\"/yaffs-talk-slide-27-yaffs2\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:135\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:44:\"<span>YAFFS talk - Slide 27 - YAFFS2</span>\n\";}}',-1,1510933293.690,1,'config:filter.format.full_html config:system.site node:135 node_view rendered user:1','307'),('entity_view:node:135:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"135\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:135\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510933293.688,1,'config:filter.format.full_html config:system.site node:135 node_view rendered user:1','307'),('entity_view:node:135:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:396:\"<span>YAFFS talk - Slide 27 - YAFFS2</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/136\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_27.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_27.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:135\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1511458083.141,1,'config:filter.format.full_html node:135 node_view rendered','294'),('entity_view:node:135:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"135\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:135\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511458083.112,1,'config:filter.format.full_html node:135 node_view rendered','294'),('entity_view:node:135:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:699:\"<article role=\"article\" about=\"/yaffs-talk-slide-27-yaffs2\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-27-yaffs2\" rel=\"bookmark\"><span>YAFFS talk - Slide 27 - YAFFS2</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-27-yaffs2\" rel=\"tag\" title=\"YAFFS talk - Slide 27 - YAFFS2\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 27 - YAFFS2</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:135\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.655,1,'config:filter.format.full_html node:135 node_view rendered user:1','301'),('entity_view:node:135:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"135\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:135\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.654,1,'config:filter.format.full_html node:135 node_view rendered user:1','301'),('entity_view:node:136:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0p1JtT4xHhaD5WFGkPteOUU6clQhTHR68PUlYu7yucGQ','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:533:\"<article role=\"article\" about=\"/yaffs-talk-slide-28-yaffs2-comparison-yaffs1\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/137\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_28.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_28.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:45:\"/yaffs-talk-slide-28-yaffs2-comparison-yaffs1\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/136\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:45:\"/yaffs-talk-slide-28-yaffs2-comparison-yaffs1\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:136\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:67:\"<span>YAFFS talk - Slide 28 - YAFFS2 Comparison with YAFFS1</span>\n\";}}',-1,1511297011.734,1,'config:filter.format.full_html config:system.site node:136 node_view rendered user:1','307'),('entity_view:node:136:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"136\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:136\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511297011.732,1,'config:filter.format.full_html config:system.site node:136 node_view rendered user:1','307'),('entity_view:node:136:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:419:\"<span>YAFFS talk - Slide 28 - YAFFS2 Comparison with YAFFS1</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/137\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_28.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_28.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:136\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1511458083.009,1,'config:filter.format.full_html node:136 node_view rendered','294'),('entity_view:node:136:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"136\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:136\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511458082.992,1,'config:filter.format.full_html node:136 node_view rendered','294'),('entity_view:node:136:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:822:\"<article role=\"article\" about=\"/yaffs-talk-slide-28-yaffs2-comparison-yaffs1\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-28-yaffs2-comparison-yaffs1\" rel=\"bookmark\"><span>YAFFS talk - Slide 28 - YAFFS2 Comparison with YAFFS1</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-28-yaffs2-comparison-yaffs1\" rel=\"tag\" title=\"YAFFS talk - Slide 28 - YAFFS2 Comparison with YAFFS1\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 28 - YAFFS2 Comparison with YAFFS1</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:136\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.644,1,'config:filter.format.full_html node:136 node_view rendered user:1','301'),('entity_view:node:136:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"136\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:136\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.642,1,'config:filter.format.full_html node:136 node_view rendered user:1','301'),('entity_view:node:137:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b02AFlPAK0lbb2wm_AC836Dxxuw9DviUoOkUyb_wRY6MU','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:511:\"<article role=\"article\" about=\"/yaffs-talk-slide-29-fin\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/77\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_29.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_29.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:24:\"/yaffs-talk-slide-29-fin\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/137\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:24:\"/yaffs-talk-slide-29-fin\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:137\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:41:\"<span>YAFFS talk - Slide 29 - Fin</span>\n\";}}',-1,1510801135.766,1,'config:filter.format.full_html config:system.site node:137 node_view rendered user:1','307'),('entity_view:node:137:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"137\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:137\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510801135.763,1,'config:filter.format.full_html config:system.site node:137 node_view rendered user:1','307'),('entity_view:node:137:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:392:\"<span>YAFFS talk - Slide 29 - Fin</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/77\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_29.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_29.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:137\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113382.209,1,'config:filter.format.full_html node:137 node_view rendered','294'),('entity_view:node:137:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"137\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:137\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113382.208,1,'config:filter.format.full_html node:137 node_view rendered','294'),('entity_view:node:137:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:681:\"<article role=\"article\" about=\"/yaffs-talk-slide-29-fin\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-talk-slide-29-fin\" rel=\"bookmark\"><span>YAFFS talk - Slide 29 - Fin</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">&lt;!-- none --&gt;</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-talk-slide-29-fin\" rel=\"tag\" title=\"YAFFS talk - Slide 29 - Fin\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS talk - Slide 29 - Fin</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:137\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.631,1,'config:filter.format.full_html node:137 node_view rendered user:1','301'),('entity_view:node:137:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"137\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:137\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.626,1,'config:filter.format.full_html node:137 node_view rendered user:1','301'),('entity_view:node:169:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0ynTNK0kYmnqg3HrQOh0duR4-CRr6uSIQ7rEff9gISpA','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:512:\"<article role=\"article\" about=\"/emdebsys-talk-slide-1-title\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/170\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"talk_emdebsys_1.jpg\" src=\"sites/yaffs.net/files/images/content/talk_emdebsys_1.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:28:\"/emdebsys-talk-slide-1-title\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/169\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:28:\"/emdebsys-talk-slide-1-title\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:169\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:45:\"<span>Emdebsys talk - Slide 1 - Title</span>\n\";}}',-1,1511356301.819,1,'config:filter.format.full_html config:system.site node:169 node_view rendered user:1','307'),('entity_view:node:169:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"169\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:169\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511356301.796,1,'config:filter.format.full_html config:system.site node:169 node_view rendered user:1','307'),('entity_view:node:169:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:905:\"<article role=\"article\" about=\"/emdebsys-talk-slide-1-title\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/emdebsys-talk-slide-1-title\" rel=\"bookmark\"><span>Emdebsys talk - Slide 1 - Title</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/170\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"talk_emdebsys_1.jpg\" src=\"/files/yaffs.net/images/content/talk_emdebsys_1.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/emdebsys-talk-slide-1-title\" rel=\"tag\" title=\"Emdebsys talk - Slide 1 - Title\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about Emdebsys talk - Slide 1 - Title</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:169\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.616,1,'config:filter.format.full_html node:169 node_view rendered user:1','301'),('entity_view:node:169:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"169\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:169\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.614,1,'config:filter.format.full_html node:169 node_view rendered user:1','301'),('entity_view:node:196:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0MMsYHbp9kw-wrRUAtbO3xw9Z8F9O7tT2bHNqDRexn7U','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:519:\"<article role=\"article\" about=\"/arm-linux-talk-slide-1-title\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/197\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"talk_arm_general_1.jpg\" src=\"sites/yaffs.net/files/images/content/talk_arm_general_1.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:29:\"/arm-linux-talk-slide-1-title\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/196\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:29:\"/arm-linux-talk-slide-1-title\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:196\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:46:\"<span>ARM-Linux talk - Slide 1 - Title</span>\n\";}}',-1,1510784879.846,1,'config:filter.format.full_html config:system.site node:196 node_view rendered user:1','307'),('entity_view:node:196:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"196\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:196\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510784879.843,1,'config:filter.format.full_html config:system.site node:196 node_view rendered user:1','307'),('entity_view:node:196:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:917:\"<article role=\"article\" about=\"/arm-linux-talk-slide-1-title\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/arm-linux-talk-slide-1-title\" rel=\"bookmark\"><span>ARM-Linux talk - Slide 1 - Title</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/170\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"talk_arm_general_1.jpg\" src=\"/files/yaffs.net/images/content/talk_arm_general_1.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/arm-linux-talk-slide-1-title\" rel=\"tag\" title=\"ARM-Linux talk - Slide 1 - Title\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about ARM-Linux talk - Slide 1 - Title</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:196\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.600,1,'config:filter.format.full_html node:196 node_view rendered user:1','301'),('entity_view:node:196:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"196\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:196\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.599,1,'config:filter.format.full_html node:196 node_view rendered user:1','301'),('entity_view:node:31:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01Lpzun7J_PNh1kkkV3qZRWQtBABVXzvBk2WGvP5CimX4','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4808:\"<article role=\"article\" about=\"/legal\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Legal\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><h3>Cookies</h3>\n\n<p>We may store information about you using cookies (files which are sent by us to your computer or other access device) which we can access when you visit our site in future. We do this to enable functions like the text resize in the right hand column. If you want to delete any cookies that are already on your computer, please refer to the instructions for your file management software to locate the file or directory that stores cookies. Our cookies will have file names starting yaffs.net. These may be found among the Privacy settings for your web browser. Information on deleting or controlling cookies is available at the excellent and informative site:www.AboutCookies.org. Please note that by deleting our cookies or disabling future cookies you may not be able to access certain areas or features of our site.</p>\n\n<h3>Privacy</h3>\n\n<p>We, like all British companies handling data on computers, are registered under the Data Protection Act, which requires us (amongst many other things) to describe what use we shall make of the data we keep, and have the authorities record and accept that use, and permits you access to the data about you.</p>\n\n<p>In practice when we write an Invoice we do it on a computer and we keep the invoice details for a few months (and a paper copy much longer).</p>\n\n<p>We DO NOT EVER pass this information on, or sell it, to any other company. We never have done so and we expect never to do so in the future. Details of your transaction with us remain private to us and you can expect them to be seen only by our staff and possibly by our professional Auditors.</p>\n\n<p>We suffer enough from junk mail and junk email to wish not to inflict any of it on anyone else!</p>\n\n<p>We do not promise not to tell you if we have a new product we think you might be interested in. We very rarely do this but we might at some future time want to tell you about what is both new and likely to be relevant to you.</p>\n\n<p>We do also run an Email list for Yaffs, but you only receive emails if you ask to do so by going to:-  http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs  to join in.</p>\n\n<h3>Guarantee</h3>\n\n<p>Our policy has always been to provide all the information a buyer needs to make an informed choice of our products. If you have questions to which you do not see answers we are happy to try to answer those specific questions; they are much more likely to be answered if you provide information about the software context in which you are using Yaffs and details of the kind of difficulty you have</p>\n\n<p>Yaffs is provided on an \"as is\" basis without any warranty as to its suitability for any particular purpose. This may seem unfair, but it follows from the terms of the GNU Public Licence and the Licence for the hardware designs.  Yaffs is unique in our experience in that you can try it without charge, and satisfy yourself that it works for your product before you buy a Licence to use it.</p>\n\n<p>In any case the company shall not be liable for any losses, damage, costs, expenses including (without limitation) any loss of profits, any loss or damage to property and any indirect or consequential loss howsoever caused including any liability to third parties.</p>\n\n<h3>Legal</h3>\n\n<p>We provide the Source Code to Yaffs and any derived file systems without any warranty but <strong>AS IS</strong> save that (to the best of Aleph One\'s knowledge) the use of the Source Code does not infringe the intellectual property rights of any third party.</p>\n\n<p>We provide certain pieces of software, with different licences associated with them:</p>\n\n<ul><li>Source Code for Yaffs1, Yaffs2 and Yaffs/direct and Bootloader, being the subject of this Licence Agreement, for incorporation in a Product.</li>\n	<li>Yaffs Development Tools</li>\n</ul><p>Images created with the tools may be incorporated into a Product. The images are not affected by the licence status of the Tools. When these Tool files are supplied in the tarball we send they appear with a header saying they are used under the GNU Public Licence, GPL. That term applies only to the Tools.</p>\n\n<p>The other files in the tarball have headers making clear they are used under a paid licence from Aleph One Ltd.</p>\n\n<p>The Licence also permits access to all information on Yaffs published by Aleph One Ltd at http://www.yaffs.net - now and at any time in the future.</p>\n\n<p> </p>\n\n<p> </p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:6:\"/legal\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:8:\"/node/31\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:6:\"/legal\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"node:31\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:42:\"<span property=\"schema:name\">Legal</span>\n\";}}',-1,1510729709.365,1,'config:filter.format.basic_html config:system.site node:31 node_view rendered user:1','280'),('entity_view:node:31:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:2:\"31\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"node:31\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510729709.362,1,'config:filter.format.basic_html config:system.site node:31 node_view rendered user:1','280'),('entity_view:node:31:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4626:\"<span property=\"schema:name\">Legal</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><h3>Cookies</h3>\n\n<p>We may store information about you using cookies (files which are sent by us to your computer or other access device) which we can access when you visit our site in future. We do this to enable functions like the text resize in the right hand column. If you want to delete any cookies that are already on your computer, please refer to the instructions for your file management software to locate the file or directory that stores cookies. Our cookies will have file names starting yaffs.net. These may be found among the Privacy settings for your web browser. Information on deleting or controlling cookies is available at the excellent and informative site:www.AboutCookies.org. Please note that by deleting our cookies or disabling future cookies you may not be able to access certain areas or features of our site.</p>\n\n<h3>Privacy</h3>\n\n<p>We, like all British companies handling data on computers, are registered under the Data Protection Act, which requires us (amongst many other things) to describe what use we shall make of the data we keep, and have the authorities record and accept that use, and permits you access to the data about you.</p>\n\n<p>In practice when we write an Invoice we do it on a computer and we keep the invoice details for a few months (and a paper copy much longer).</p>\n\n<p>We DO NOT EVER pass this information on, or sell it, to any other company. We never have done so and we expect never to do so in the future. Details of your transaction with us remain private to us and you can expect them to be seen only by our staff and possibly by our professional Auditors.</p>\n\n<p>We suffer enough from junk mail and junk email to wish not to inflict any of it on anyone else!</p>\n\n<p>We do not promise not to tell you if we have a new product we think you might be interested in. We very rarely do this but we might at some future time want to tell you about what is both new and likely to be relevant to you.</p>\n\n<p>We do also run an Email list for Yaffs, but you only receive emails if you ask to do so by going to:-  http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs  to join in.</p>\n\n<h3>Guarantee</h3>\n\n<p>Our policy has always been to provide all the information a buyer needs to make an informed choice of our products. If you have questions to which you do not see answers we are happy to try to answer those specific questions; they are much more likely to be answered if you provide information about the software context in which you are using Yaffs and details of the kind of difficulty you have</p>\n\n<p>Yaffs is provided on an \"as is\" basis without any warranty as to its suitability for any particular purpose. This may seem unfair, but it follows from the terms of the GNU Public Licence and the Licence for the hardware designs.  Yaffs is unique in our experience in that you can try it without charge, and satisfy yourself that it works for your product before you buy a Licence to use it.</p>\n\n<p>In any case the company shall not be liable for any losses, damage, costs, expenses including (without limitation) any loss of profits, any loss or damage to property and any indirect or consequential loss howsoever caused including any liability to third parties.</p>\n\n<h3>Legal</h3>\n\n<p>We provide the Source Code to Yaffs and any derived file systems without any warranty but <strong>AS IS</strong> save that (to the best of Aleph One\'s knowledge) the use of the Source Code does not infringe the intellectual property rights of any third party.</p>\n\n<p>We provide certain pieces of software, with different licences associated with them:</p>\n\n<ul><li>Source Code for Yaffs1, Yaffs2 and Yaffs/direct and Bootloader, being the subject of this Licence Agreement, for incorporation in a Product.</li>\n	<li>Yaffs Development Tools</li>\n</ul><p>Images created with the tools may be incorporated into a Product. The images are not affected by the licence status of the Tools. When these Tool files are supplied in the tarball we send they appear with a header saying they are used under the GNU Public Licence, GPL. That term applies only to the Tools.</p>\n\n<p>The other files in the tarball have headers making clear they are used under a paid licence from Aleph One Ltd.</p>\n\n<p>The Licence also permits access to all information on Yaffs published by Aleph One Ltd at http://www.yaffs.net - now and at any time in the future.</p>\n\n<p> </p>\n\n<p> </p></div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:7:\"node:31\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1511947296.085,1,'config:filter.format.basic_html node:31 node_view rendered','267'),('entity_view:node:31:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:2:\"31\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:7:\"node:31\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511947296.083,1,'config:filter.format.basic_html node:31 node_view rendered','267'),('entity_view:node:323:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0UPM0qLLDXZOGJdD2k51tYd-J6Vj5dsvfeGw1tbnEkSI','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1116:\"<article role=\"article\" about=\"/maps\" typeof=\"schema:WebPage\" class=\"page is-promoted full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Maps\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>This shows the location of Aleph One within Bottisham. Park in the layby on the South side of the road. We are opposite in a large building with three arched windows. There are doors on either side of the building, and you may need to try both to get a response.<br />\n</p>\n<div style=\"text-align: center;\">\n<img alt=\"Bottisham map\" border=\"0\" src=\"/sites/yaffs.net/files/images/Bottisham.jpg\" style=\"border: 0;\" title=\"Bottisham map\" />\n</div>\n<p>Map below shows where we are in relation to Cambridge and the surrounding roads.<br />\n</p>\n<div style=\"text-align: center;\">\n<img alt=\"How to get to Aleph One\" border=\"0\" src=\"/sites/yaffs.net/files/images/Cambridge.jpg\" style=\"border: 0;\" title=\"How to get to Aleph One\" />\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:5:\"/maps\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/323\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:5:\"/maps\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:323\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:41:\"<span property=\"schema:name\">Maps</span>\n\";}}',-1,1510766385.451,1,'config:filter.format.full_html config:system.site node:323 node_view rendered user:1','307'),('entity_view:node:323:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"323\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:323\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510766385.449,1,'config:filter.format.full_html config:system.site node:323 node_view rendered user:1','307'),('entity_view:node:323:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:718:\"<article role=\"article\" about=\"/maps\" typeof=\"schema:WebPage\" class=\"page is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/maps\" rel=\"bookmark\"><span property=\"schema:name\">Maps</span>\n</a>\n    </h2>\n      <span property=\"schema:name\" content=\"Maps\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Maps of our location for printing.</p>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/maps\" rel=\"tag\" title=\"Maps\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about Maps</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:323\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.584,1,'config:filter.format.full_html node:323 node_view rendered user:1','301'),('entity_view:node:323:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"323\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:323\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.583,1,'config:filter.format.full_html node:323 node_view rendered user:1','301'),('entity_view:node:325:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0Q9p92xABGJ6r7xJ_h2DgqK3hjuCwxu8UG72MNLcTkiw','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:2781:\"<article role=\"article\" about=\"/about-us\" typeof=\"schema:WebPage\" class=\"page is-promoted full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"About us\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is a product from Aleph One Ltd.</p>\n<p>The company was started in 1971.&nbsp; The name Aleph One was chosen to be non-specific.&nbsp; We started selling computer products in 1984, when we were using Biofeedback instruments to control video games on Acorn BBC Microcomputers&nbsp;&nbsp; This led to the development of processor cards for Acorn computers (which had their own unique operating system) which could run the DOS and Windows operating systems. Acorn users ran Windows applications in a window!</p>\n<p>When Acorn left the computer market in 1998 we used our knowledge of other operating systems to move into Linux and then into embedded Linux.&nbsp; We have developed the Yaffs File System specifically to provide a robust journalling file system for NAND Flash chips, and it is now widely used in high-volume products around the world.</p>\n<h2>Visitors</h2>\n<p>We are happy to welcome visitors, though our premises are not a shop. Please contact us to make an appointment and let us know what you would like to talk about or look at.&nbsp;</p>\n<h2>Staff</h2>\n<h3>Core Staff</h3>\n<ul>\n<li>Managing Director: Mr Laurie van Someren</li>\n<li>Charles Manning: Chief Yaffs Architect</li>\n<li>Jenny Hopkins: Tech Support</li>\n</ul>\n<h2>Our name</h2>\n<p>Aleph is the name of the first letter of the Hebrew alphabet.</p>\n<p>A German mathematician active in the mid-19th century, Georg Cantor (1845-1918), realised that infinities came in different sizes; more precisely he showed that the infinite set of all integers was smaller than the infinite set of all real numbers, and gave the labels Aleph Null to the smaller, and Aleph One to the larger set.</p>\n<p>J W Dauben, writing in <em>Scientific American</em>, June 1983, 112-121, said <em>The choice </em>of Aleph as a label for transfinite sets <em>was particularly clever, as Cantor was pleased to admit, because the Hebrew Aleph was also a symbol for the number 1. Since the transfinite cardinals were themselves infinite unities, the Aleph could be taken to represent a new beginning for mathematics.</em></p>\n<p>The concept of Alephs is the subject of a successful book by Amir D Aczel called THE MYSTERY OF THE ALEPH. Paperback about £10 in the UK, ISBN 0-7434-2299-6 (We do not sell it)</p>\n<h3><a name=\"VAT\" id=\"VAT\"></a>VAT</h3>\n<p>We are not registered for VAT and so our prices do not include it.</p>\n<p>&nbsp;</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:9:\"/about-us\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/325\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:9:\"/about-us\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:325\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:45:\"<span property=\"schema:name\">About us</span>\n\";}}',-1,1510674590.225,1,'config:filter.format.full_html config:system.site node:325 node_view rendered user:1','307'),('entity_view:node:325:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"325\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:325\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674590.223,1,'config:filter.format.full_html config:system.site node:325 node_view rendered user:1','307'),('entity_view:node:325:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:2584:\"<span property=\"schema:name\">About us</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is a product from Aleph One Ltd.</p>\n<p>The company was started in 1971.&nbsp; The name Aleph One was chosen to be non-specific.&nbsp; We started selling computer products in 1984, when we were using Biofeedback instruments to control video games on Acorn BBC Microcomputers&nbsp;&nbsp; This led to the development of processor cards for Acorn computers (which had their own unique operating system) which could run the DOS and Windows operating systems. Acorn users ran Windows applications in a window!</p>\n<p>When Acorn left the computer market in 1998 we used our knowledge of other operating systems to move into Linux and then into embedded Linux.&nbsp; We have developed the Yaffs File System specifically to provide a robust journalling file system for NAND Flash chips, and it is now widely used in high-volume products around the world.</p>\n<h2>Visitors</h2>\n<p>We are happy to welcome visitors, though our premises are not a shop. Please contact us to make an appointment and let us know what you would like to talk about or look at.&nbsp;</p>\n<h2>Staff</h2>\n<h3>Core Staff</h3>\n<ul>\n<li>Managing Director: Mr Laurie van Someren</li>\n<li>Charles Manning: Chief Yaffs Architect</li>\n<li>Jenny Hopkins: Tech Support</li>\n</ul>\n<h2>Our name</h2>\n<p>Aleph is the name of the first letter of the Hebrew alphabet.</p>\n<p>A German mathematician active in the mid-19th century, Georg Cantor (1845-1918), realised that infinities came in different sizes; more precisely he showed that the infinite set of all integers was smaller than the infinite set of all real numbers, and gave the labels Aleph Null to the smaller, and Aleph One to the larger set.</p>\n<p>J W Dauben, writing in <em>Scientific American</em>, June 1983, 112-121, said <em>The choice </em>of Aleph as a label for transfinite sets <em>was particularly clever, as Cantor was pleased to admit, because the Hebrew Aleph was also a symbol for the number 1. Since the transfinite cardinals were themselves infinite unities, the Aleph could be taken to represent a new beginning for mathematics.</em></p>\n<p>The concept of Alephs is the subject of a successful book by Amir D Aczel called THE MYSTERY OF THE ALEPH. Paperback about £10 in the UK, ISBN 0-7434-2299-6 (We do not sell it)</p>\n<h3><a name=\"VAT\" id=\"VAT\"></a>VAT</h3>\n<p>We are not registered for VAT and so our prices do not include it.</p>\n<p>&nbsp;</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:325\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113460.224,1,'config:filter.format.full_html node:325 node_view rendered','294'),('entity_view:node:325:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"325\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:325\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113460.222,1,'config:filter.format.full_html node:325 node_view rendered','294'),('entity_view:node:325:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1497:\"<article role=\"article\" about=\"/about-us\" typeof=\"schema:WebPage\" class=\"page is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/about-us\" rel=\"bookmark\"><span property=\"schema:name\">About us</span>\n</a>\n    </h2>\n      <span property=\"schema:name\" content=\"About us\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>The company was started in 1971.&nbsp; The name Aleph One was chosen to be non-specific.&nbsp; We started selling computer products in 1984.</p>\n<p>In 1984, we were using Biofeedback instruments to control video games on Acorn BBC Microcomputers&nbsp;&nbsp; This led to the development of processor cards for Acorn computers (which had their own operating system) which could run the DOS and Windows operating systems. Acorn users ran Windows applications in a window!</p>\n<p>When Acorn left the computer market we used our knowledge of other operating systems to move into Linux and then into embedded Linux.&nbsp; We have developed the yaffs File System specifically to provide a robust journalling file system for NAND Flash chips, and it is now widely used in high-volume products.</p>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/about-us\" rel=\"tag\" title=\"About us\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about About us</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:325\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.568,1,'config:filter.format.full_html node:325 node_view rendered user:1','301'),('entity_view:node:325:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"325\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:325\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.566,1,'config:filter.format.full_html node:325 node_view rendered user:1','301'),('entity_view:node:32:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227bi40XyKyWAR7HIIUHH91juiO0APUarBYZ_U5qlMvhEtc','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4905:\"<article data-quickedit-entity-id=\"node/32\" role=\"article\" class=\"contextual-region page full clearfix\" about=\"/yaffs-licence-sample\" typeof=\"schema:WebPage\">\n\n  \n    <div data-contextual-id=\"node:node=32:changed=1498730566&amp;langcode=en\"></div>  <span property=\"schema:name\" content=\"Yaffs Licence Sample\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" data-quickedit-field-id=\"node/32/body/und/full\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>1. Definitions:</p>\n<p>ALEPH ONE LIMITED - An English company, Registered Number 1017960, of The Old Courthouse, 123 High Street, Bottisham, Cambridge CB25 9BA UK.</p>\n<p>SOURCE CODE - Code owned by Aleph One Ltd and supplied under this Licence</p>\n<p>BINARY CODE - Code which has been compiled from SOURCE CODE</p>\n<p>LICENCE-HOLDER - The firm represented by the person who signs this Agreement. Each Licence bears the Name and Address of a particular LICENCE HOLDER.</p>\n<p>YAFFS FILESYSTEMS - any Filesystem Images made using YAFFS SOURCE CODE or YAFFS BINARY CODE.</p>\n<p>PRODUCT will be defined precisely at the time of negotiation of the sale of the Licence. See section 3 for the principles used in defining PRODUCT</p>\n<p>2. The Licence:</p>\n<p>Allows the LICENCE-HOLDER to use Aleph One\'s software to create the File System, FS and incorporate the FS in the defined Products.</p>\n<p>Entitles the LICENCE-HOLDER to distribute BINARY CODE compiled from the SOURCE CODE provided.</p>\n<p>Does not entail any obligation to reveal the BINARY CODE.</p>\n<p>Prohibits the LICENCE-HOLDER from releasing the SOURCE CODE to other parties, except to the extent necessary to permit sub-contractors to work with the LICENCE-HOLDER on a project using the code. The LICENCE-HOLDER is responsible for ensuring compliance with all the terms of this Licence by any sub-contractor used.</p>\n<p>Is only available in a non-exclusive form.</p>\n<p>Is applicable worldwide.</p>\n<p>Has no time limit or per-unit royalty, but a fixed price paid upon signature of the Licence Agreement.&nbsp; From 1 August 2012 the base price (for one Product) is GB£10,000. Sterling</p>\n<p>Applies to use of the FS for one PRODUCT rather than to a company/user/person. It cannot be transferred to another PRODUCT.</p>\n<p>Provides the SOURCE CODE and any derived FILESYSTEMS without any warranty but &gt;AS IS&lt; save that (to the best of Aleph One\'s knowledge) the use of the SOURCE CODE does not infringe the intellectual propert rights of any third party.</p>\n<p>3. Supporting information and Terms relating to use:</p>\n<p>This Licence supplies:</p>\n<p>Free access to all documentation written for YAFFS by Aleph One, at <a href=\"http://www.yaffs.net\">http://www.yaffs.net</a></p>\n<p>Certain pieces of software, with different Licences attached to them:-</p>\n<p>SOURCE CODE for YAFFS/direct and Bootloader, being the subject of this Licence agreement, for incorporation in a PRODUCT.</p>\n<p>YAFFS Development Tools; images created with the tools may be incorporated into a product. The images are not affected by the licence status of the tools.&nbsp; When these Tool files are supplied in the tarball we send, they will appear with a header saying they are used under the GNU General Public Licence, version 2.&nbsp; That term applies only to the Tools; the other files in the tarball will have headers making clear they are used under a paid Licence from Aleph One Ltd.</p>\n<p>Source code modifications and enhancements made by the LICENCE-HOLDER remain the property of LICENCE-HOLDER, but may not be redistributed or sold to third parties by LICENCE-HOLDER without the consent of Aleph One.</p>\n<p>PRODUCT DEFINITION<br />\n<br />\nA Yaffs Licence Agreement requires the definition of the Product to which it applies.&nbsp; We do this with a brief description of its purpose, and the hardware in terms of the type or family of chips used as CPU or MCU, and any internal Code Name or Product name or SKU that you use for it.<br />\nLater changes to the PCB which are evolutionary do not create a fresh Product, nor do changes in the size or speed of those chips or of the I/O technology.</p>\n<p>Discussion with Aleph One about licensing further Products is required where:</p>\n<ul>\n<li>A new PCB or key CPU or MCU is used, or</li>\n<li>You sell chip designs and no hardware, or</li>\n<li>You sell a Development Board with SDK to customers who will integrate&nbsp;Yaffs into their Products, or</li>\n<li>Changes in the brand name or badge are made, or</li>\n<li>Your rights to the Product pass to a new owner.</li>\n</ul>\n<p>Following payment for the Licence Aleph One will provide a tarball with file headers showing that the code is being used by the LICENCE-HOLDER under a paid Licence from Aleph One.</p>\n<ul>\n<li>Version 24 - September 2015</li>\n</ul>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:3:{s:14:\"html_head_link\";a:12:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:21:\"/yaffs-licence-sample\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:8:\"/node/32\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"delete-form\";s:4:\"href\";s:15:\"/node/32/delete\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"edit-form\";s:4:\"href\";s:13:\"/node/32/edit\";}i:1;b:1;}i:4;a:2:{i:0;a:2:{s:3:\"rel\";s:15:\"version-history\";s:4:\"href\";s:18:\"/node/32/revisions\";}i:1;b:1;}i:5;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:21:\"/yaffs-licence-sample\";}i:1;b:1;}i:6;a:2:{i:0;a:2:{s:3:\"rel\";s:17:\"book-outline-form\";s:4:\"href\";s:16:\"/node/32/outline\";}i:1;b:1;}i:7;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"book-remove-form\";s:4:\"href\";s:23:\"/node/32/outline/remove\";}i:1;b:1;}i:8;a:2:{i:0;a:2:{s:3:\"rel\";s:10:\"devel-load\";s:4:\"href\";s:14:\"/devel/node/32\";}i:1;b:1;}i:9;a:2:{i:0;a:2:{s:3:\"rel\";s:12:\"devel-render\";s:4:\"href\";s:21:\"/devel/node/32/render\";}i:1;b:1;}i:10;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"devel-definition\";s:4:\"href\";s:25:\"/devel/node/32/definition\";}i:1;b:1;}i:11;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"token-devel\";s:4:\"href\";s:20:\"/node/32/devel/token\";}i:1;b:1;}}s:7:\"library\";a:1:{i:0;s:20:\"history/mark-as-read\";}s:14:\"drupalSettings\";a:1:{s:7:\"history\";a:1:{s:17:\"nodesToMarkAsRead\";a:1:{i:32;b:1;}}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"node:32\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:106:\"<span property=\"schema:name\" data-quickedit-field-id=\"node/32/title/und/full\">Yaffs Licence Sample</span>\n\";}}',-1,1516806295.150,1,'config:filter.format.full_html config:system.site node:32 node_view rendered user:1','312'),('entity_view:node:32:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01DtG8YekaC5_7AIPlZUjpekBxU6EtHjSomkqp0w_LY9s','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4724:\"<article role=\"article\" about=\"/yaffs-licence-sample\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Licence Sample\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>1. Definitions:</p>\n<p>ALEPH ONE LIMITED - An English company, Registered Number 1017960, of The Old Courthouse, 123 High Street, Bottisham, Cambridge CB25 9BA UK.</p>\n<p>SOURCE CODE - Code owned by Aleph One Ltd and supplied under this Licence</p>\n<p>BINARY CODE - Code which has been compiled from SOURCE CODE</p>\n<p>LICENCE-HOLDER - The firm represented by the person who signs this Agreement. Each Licence bears the Name and Address of a particular LICENCE HOLDER.</p>\n<p>YAFFS FILESYSTEMS - any Filesystem Images made using YAFFS SOURCE CODE or YAFFS BINARY CODE.</p>\n<p>PRODUCT will be defined precisely at the time of negotiation of the sale of the Licence. See section 3 for the principles used in defining PRODUCT</p>\n<p>2. The Licence:</p>\n<p>Allows the LICENCE-HOLDER to use Aleph One\'s software to create the File System, FS and incorporate the FS in the defined Products.</p>\n<p>Entitles the LICENCE-HOLDER to distribute BINARY CODE compiled from the SOURCE CODE provided.</p>\n<p>Does not entail any obligation to reveal the BINARY CODE.</p>\n<p>Prohibits the LICENCE-HOLDER from releasing the SOURCE CODE to other parties, except to the extent necessary to permit sub-contractors to work with the LICENCE-HOLDER on a project using the code. The LICENCE-HOLDER is responsible for ensuring compliance with all the terms of this Licence by any sub-contractor used.</p>\n<p>Is only available in a non-exclusive form.</p>\n<p>Is applicable worldwide.</p>\n<p>Has no time limit or per-unit royalty, but a fixed price paid upon signature of the Licence Agreement.&nbsp; From 1 August 2012 the base price (for one Product) is GB£10,000. Sterling</p>\n<p>Applies to use of the FS for one PRODUCT rather than to a company/user/person. It cannot be transferred to another PRODUCT.</p>\n<p>Provides the SOURCE CODE and any derived FILESYSTEMS without any warranty but &gt;AS IS&lt; save that (to the best of Aleph One\'s knowledge) the use of the SOURCE CODE does not infringe the intellectual propert rights of any third party.</p>\n<p>3. Supporting information and Terms relating to use:</p>\n<p>This Licence supplies:</p>\n<p>Free access to all documentation written for YAFFS by Aleph One, at <a href=\"http://www.yaffs.net\">http://www.yaffs.net</a></p>\n<p>Certain pieces of software, with different Licences attached to them:-</p>\n<p>SOURCE CODE for YAFFS/direct and Bootloader, being the subject of this Licence agreement, for incorporation in a PRODUCT.</p>\n<p>YAFFS Development Tools; images created with the tools may be incorporated into a product. The images are not affected by the licence status of the tools.&nbsp; When these Tool files are supplied in the tarball we send, they will appear with a header saying they are used under the GNU General Public Licence, version 2.&nbsp; That term applies only to the Tools; the other files in the tarball will have headers making clear they are used under a paid Licence from Aleph One Ltd.</p>\n<p>Source code modifications and enhancements made by the LICENCE-HOLDER remain the property of LICENCE-HOLDER, but may not be redistributed or sold to third parties by LICENCE-HOLDER without the consent of Aleph One.</p>\n<p>PRODUCT DEFINITION<br />\n<br />\nA Yaffs Licence Agreement requires the definition of the Product to which it applies.&nbsp; We do this with a brief description of its purpose, and the hardware in terms of the type or family of chips used as CPU or MCU, and any internal Code Name or Product name or SKU that you use for it.<br />\nLater changes to the PCB which are evolutionary do not create a fresh Product, nor do changes in the size or speed of those chips or of the I/O technology.</p>\n<p>Discussion with Aleph One about licensing further Products is required where:</p>\n<ul>\n<li>A new PCB or key CPU or MCU is used, or</li>\n<li>You sell chip designs and no hardware, or</li>\n<li>You sell a Development Board with SDK to customers who will integrate&nbsp;Yaffs into their Products, or</li>\n<li>Changes in the brand name or badge are made, or</li>\n<li>Your rights to the Product pass to a new owner.</li>\n</ul>\n<p>Following payment for the Licence Aleph One will provide a tarball with file headers showing that the code is being used by the LICENCE-HOLDER under a paid Licence from Aleph One.</p>\n<ul>\n<li>Version 24 - September 2015</li>\n</ul>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:21:\"/yaffs-licence-sample\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:8:\"/node/32\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:21:\"/yaffs-licence-sample\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"node:32\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:57:\"<span property=\"schema:name\">Yaffs Licence Sample</span>\n\";}}',-1,1510656873.561,1,'config:filter.format.full_html config:system.site node:32 node_view rendered user:1','312'),('entity_view:node:32:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b:[user.roles:anonymous]=1','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:2:\"32\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"node:32\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1516806295.148,1,'config:filter.format.full_html config:system.site node:32 node_view rendered user:1','312'),('entity_view:node:32:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:2:\"32\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"node:32\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510656873.559,1,'config:filter.format.full_html config:system.site node:32 node_view rendered user:1','312'),('entity_view:node:32:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4527:\"<span property=\"schema:name\">Yaffs Licence Sample</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>1. Definitions:</p>\n<p>ALEPH ONE LIMITED - An English company, Registered Number 1017960, of The Old Courthouse, 123 High Street, Bottisham, Cambridge CB25 9BA UK.</p>\n<p>SOURCE CODE - Code owned by Aleph One Ltd and supplied under this Licence</p>\n<p>BINARY CODE - Code which has been compiled from SOURCE CODE</p>\n<p>LICENCE-HOLDER - The firm represented by the person who signs this Agreement. Each Licence bears the Name and Address of a particular LICENCE HOLDER.</p>\n<p>YAFFS FILESYSTEMS - any Filesystem Images made using YAFFS SOURCE CODE or YAFFS BINARY CODE.</p>\n<p>PRODUCT will be defined precisely at the time of negotiation of the sale of the Licence. See section 3 for the principles used in defining PRODUCT</p>\n<p>2. The Licence:</p>\n<p>Allows the LICENCE-HOLDER to use Aleph One\'s software to create the File System, FS and incorporate the FS in the defined Products.</p>\n<p>Entitles the LICENCE-HOLDER to distribute BINARY CODE compiled from the SOURCE CODE provided.</p>\n<p>Does not entail any obligation to reveal the BINARY CODE.</p>\n<p>Prohibits the LICENCE-HOLDER from releasing the SOURCE CODE to other parties, except to the extent necessary to permit sub-contractors to work with the LICENCE-HOLDER on a project using the code. The LICENCE-HOLDER is responsible for ensuring compliance with all the terms of this Licence by any sub-contractor used.</p>\n<p>Is only available in a non-exclusive form.</p>\n<p>Is applicable worldwide.</p>\n<p>Has no time limit or per-unit royalty, but a fixed price paid upon signature of the Licence Agreement.&nbsp; From 1 August 2012 the base price (for one Product) is GB£10,000. Sterling</p>\n<p>Applies to use of the FS for one PRODUCT rather than to a company/user/person. It cannot be transferred to another PRODUCT.</p>\n<p>Provides the SOURCE CODE and any derived FILESYSTEMS without any warranty but &gt;AS IS&lt; save that (to the best of Aleph One\'s knowledge) the use of the SOURCE CODE does not infringe the intellectual propert rights of any third party.</p>\n<p>3. Supporting information and Terms relating to use:</p>\n<p>This Licence supplies:</p>\n<p>Free access to all documentation written for YAFFS by Aleph One, at <a href=\"http://www.yaffs.net\">http://www.yaffs.net</a></p>\n<p>Certain pieces of software, with different Licences attached to them:-</p>\n<p>SOURCE CODE for YAFFS/direct and Bootloader, being the subject of this Licence agreement, for incorporation in a PRODUCT.</p>\n<p>YAFFS Development Tools; images created with the tools may be incorporated into a product. The images are not affected by the licence status of the tools.&nbsp; When these Tool files are supplied in the tarball we send, they will appear with a header saying they are used under the GNU General Public Licence, version 2.&nbsp; That term applies only to the Tools; the other files in the tarball will have headers making clear they are used under a paid Licence from Aleph One Ltd.</p>\n<p>Source code modifications and enhancements made by the LICENCE-HOLDER remain the property of LICENCE-HOLDER, but may not be redistributed or sold to third parties by LICENCE-HOLDER without the consent of Aleph One.</p>\n<p>PRODUCT DEFINITION<br />\n<br />\nA Yaffs Licence Agreement requires the definition of the Product to which it applies.&nbsp; We do this with a brief description of its purpose, and the hardware in terms of the type or family of chips used as CPU or MCU, and any internal Code Name or Product name or SKU that you use for it.<br />\nLater changes to the PCB which are evolutionary do not create a fresh Product, nor do changes in the size or speed of those chips or of the I/O technology.</p>\n<p>Discussion with Aleph One about licensing further Products is required where:</p>\n<ul>\n<li>A new PCB or key CPU or MCU is used, or</li>\n<li>You sell chip designs and no hardware, or</li>\n<li>You sell a Development Board with SDK to customers who will integrate&nbsp;Yaffs into their Products, or</li>\n<li>Changes in the brand name or badge are made, or</li>\n<li>Your rights to the Product pass to a new owner.</li>\n</ul>\n<p>Following payment for the Licence Aleph One will provide a tarball with file headers showing that the code is being used by the LICENCE-HOLDER under a paid Licence from Aleph One.</p>\n<ul>\n<li>Version 24 - September 2015</li>\n</ul>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:7:\"node:32\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113328.876,1,'config:filter.format.full_html node:32 node_view rendered','299'),('entity_view:node:32:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:2:\"32\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:7:\"node:32\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113328.874,1,'config:filter.format.full_html node:32 node_view rendered','299'),('entity_view:node:342:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0ccPYDBKi6XLOvfTgpikDml7I9PO1VG2B557VvT7X6Gc','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3444:\"<article role=\"article\" about=\"/archives/fuel-embedded-database-use-yaffs\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"FUEL Embedded Database for use with YAFFS\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>DB FUEL and YAFFS team up to offer new generation of database and flash memory solutions for developers of Mobile Handsets and Consumer Electronics.</p>\n<p>Revolutions in flash memory technology have greatly increased the practical uses of flash technology. Aleph One Ltd, a British company focusing on embedded device development, has released YAFFS, a superior file system for storing data on flash. ITTIA is partnering with Aleph One to provide the best data solution for embedded devices requiring persistent storage. The companies have confirmed compatibility between their product lines and will work together to promote the use of their technologies.</p>\n<p>Mobile devices and embedded systems that need to store persistent information have a limited number of choices. The shock resistance, power usage and smaller form factor makes flash memory a superior storage medium in most cases. However, developers using flash face some unique challenges. For example, too many writes to the same location on the flash disk can render that location inoperable. Developers must take these and other characteristics into consideration. In order to help developers overcome these challenges, YAFFS can either be used as a filesystem driver in the operating system, or be linked directly with FUEL to bypass the operating system – even if no operating system is available. This arrangement ensures that data is stored in an optimal format to take advantage of flash memory.</p>\n<p>“We developed YAFFS to provide a high reliability/high performance embedded file system on NAND flash and are delighted that YAFFS has been selected by ITTIA as a partner for their FUEL database,” said Laurie van Someren, Aleph One’s General Manager. “We believe the products combine to provide a highly effective embedded data storage solution and look forward to further cooperation and developments.”</p>\n<p>FUEL has been designed with enough flexibility to support the unique circumstances faced by embedded developers, such as persistent storage on a battery-powered (unreliably powered) device. Because FUEL is fast and small-footprint, it is a perfect match for mobile devices and embedded systems.</p>\n<p>ITTIA and Aleph One are a natural match for other reasons as well. Both companies have a commitment to provide top-notch support at whatever level the customer needs, and can provide development services and support to ensure an optimal solution. “We begin 2006 by emphasizing on meaningful business relationship and we are delighted to announce our solution offering with Aleph One,” said Sasan Montaseri, President of ITTIA, in Bellevue, WA. “Aleph One has served the embedded market for many years and our total solution add special value to our customers.”</p>\n<p>For more information about FUEL, visit <a href=\"http://www.ITTIA.com/fuel/fuel.html\">www.ITTIA.com/fuel/fuel.html</a>.</p>\n<p>For more information about YAFFS, visit <a href=\"http://www.yaffs.net\">www.yaffs.net</a></p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:42:\"/archives/fuel-embedded-database-use-yaffs\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/342\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:42:\"/archives/fuel-embedded-database-use-yaffs\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:342\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:78:\"<span property=\"schema:name\">FUEL Embedded Database for use with YAFFS</span>\n\";}}',-1,1510704272.967,1,'config:filter.format.full_html config:system.site node:342 node_view rendered user:4','305'),('entity_view:node:342:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"342\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:342\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510704272.949,1,'config:filter.format.full_html config:system.site node:342 node_view rendered user:4','305'),('entity_view:node:342:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3226:\"<span property=\"schema:name\">FUEL Embedded Database for use with YAFFS</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>DB FUEL and YAFFS team up to offer new generation of database and flash memory solutions for developers of Mobile Handsets and Consumer Electronics.</p>\n<p>Revolutions in flash memory technology have greatly increased the practical uses of flash technology. Aleph One Ltd, a British company focusing on embedded device development, has released YAFFS, a superior file system for storing data on flash. ITTIA is partnering with Aleph One to provide the best data solution for embedded devices requiring persistent storage. The companies have confirmed compatibility between their product lines and will work together to promote the use of their technologies.</p>\n<p>Mobile devices and embedded systems that need to store persistent information have a limited number of choices. The shock resistance, power usage and smaller form factor makes flash memory a superior storage medium in most cases. However, developers using flash face some unique challenges. For example, too many writes to the same location on the flash disk can render that location inoperable. Developers must take these and other characteristics into consideration. In order to help developers overcome these challenges, YAFFS can either be used as a filesystem driver in the operating system, or be linked directly with FUEL to bypass the operating system – even if no operating system is available. This arrangement ensures that data is stored in an optimal format to take advantage of flash memory.</p>\n<p>“We developed YAFFS to provide a high reliability/high performance embedded file system on NAND flash and are delighted that YAFFS has been selected by ITTIA as a partner for their FUEL database,” said Laurie van Someren, Aleph One’s General Manager. “We believe the products combine to provide a highly effective embedded data storage solution and look forward to further cooperation and developments.”</p>\n<p>FUEL has been designed with enough flexibility to support the unique circumstances faced by embedded developers, such as persistent storage on a battery-powered (unreliably powered) device. Because FUEL is fast and small-footprint, it is a perfect match for mobile devices and embedded systems.</p>\n<p>ITTIA and Aleph One are a natural match for other reasons as well. Both companies have a commitment to provide top-notch support at whatever level the customer needs, and can provide development services and support to ensure an optimal solution. “We begin 2006 by emphasizing on meaningful business relationship and we are delighted to announce our solution offering with Aleph One,” said Sasan Montaseri, President of ITTIA, in Bellevue, WA. “Aleph One has served the embedded market for many years and our total solution add special value to our customers.”</p>\n<p>For more information about FUEL, visit <a href=\"http://www.ITTIA.com/fuel/fuel.html\">www.ITTIA.com/fuel/fuel.html</a>.</p>\n<p>For more information about YAFFS, visit <a href=\"http://www.yaffs.net\">www.yaffs.net</a></p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:342\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113328.889,1,'config:filter.format.full_html node:342 node_view rendered','296'),('entity_view:node:342:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"342\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:342\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113328.887,1,'config:filter.format.full_html node:342 node_view rendered','296'),('entity_view:node:344:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227wt3xsZsXi9EaGvPsKAPCbB_x62FOR0wQkm5exmPGjGs','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4500:\"<article data-quickedit-entity-id=\"node/344\" role=\"article\" class=\"contextual-region page is-sticky full clearfix\" about=\"/yaffs-overview\" typeof=\"schema:WebPage\">\n\n  \n    <div data-contextual-id=\"node:node=344:changed=1496397858&amp;langcode=en\"></div>  <span property=\"schema:name\" content=\"Yaffs Overview\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" data-quickedit-field-id=\"node/344/body/und/full\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is a filesystem designed specifically for the characteristics of NAND flash. Its well-proven primary features are:</p>\n<ul>\n<li>Fast - typically much faster than alternatives</li>\n<li>Easily ported (currently ported to GNU/Linux, WinCE, eCOS, pSOS, VxWorks, and various bare-metal systems)</li>\n<li>Log structured, providing wear-levelling and making it very robust</li>\n<li>Supports many flash geometries including 2K-Byte and 512-Byte page NAND flash chips</li>\n<li>Supports MLC and SLC flash</li>\n<li>Very fast mount - almost immediate startup</li>\n<li>Typically uses less RAM than comparable File Systems</li>\n<li>Flexible <a href=\"/yaffs-licensing-overview\">Licensing</a> suitable for most circumstances</li>\n</ul>\n<p>There is a great deal of information about Yaffs available on this site. This page indexes that information and provides an overview of the product.</p>\n<p>Yaffs is currently at version 2. Yaffs2 supports 2K-byte page flash as well as 512-byte page flash. (Yaffs1 only supports the original 512-byte page flash and is now in maintenance mode.) There is a minimal subset of the filesystem called Yaffs/Direct or the Yaffs Direct Interface which is intended to be used in embedded systems, and can be licensed for use in proprietary systems. Yaffs is available to all under the GPL for use or evaluation; full details of Git access are&nbsp;<a href=\"/download-yaffs-using-git\">available </a></p>\n<p>Yaffs 1 and 2 have both been deployed in numerous commercial applications, some in high volume. abd with large Flash arrays. It has been used in phones, most notably Android phones, GPS receivers, train controllers, speech synthesisers, VOIP chip development kits and other applications.</p>\n<p>We have a number of documents and papers describing how to use Yaffs, how to customise it for your particular hardware/system, and the original considerations and filesystem design of the two versions.</p>\n<h3>Backgrounder</h3>\n<p>The best overview information is currently this 28-slide presentation&nbsp; <a href=\"node/77\">What it Does and How it Does it</a></p>\n<p>A useful historical Timeline on development is <a href=\"node/43\">here</a></p>\n<h3>Developer Documentation</h3>\n<p>Yaffs Direct Interface - <a href=\"node/349\">User Guide</a>, describing how to port Yaffs to an embedded environment or RTOS using the YDI \'personality\' module\'.</p>\n<p>Brief notes on <a href=\"node/40\">How to use it on GNU/Linux</a></p>\n<p>A <a href=\"node/348\">memory footprint analysis</a> putting some numbers on \'low memory footprint\'.</p>\n<p><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS embedded structure: YAFFS embedded structure\" height=\"376\" src=\"/sites/yaffs.net/files/images/yaffs-diagram.gif\" width=\"358\" /></a><br />\n<strong>Yaffs embedded structure</strong></p>\n<h3>Papers</h3>\n<p></p>\n<p></p>\n<p></p>\n<ul>\n<li><a>The </a><a href=\"node/42\">starting state of NAND MTD</a> which caused the Yaffs filesystem to be designed.</li>\n<li><a href=\"node/37\">The Specifications</a> are available</li>\n<li>Development Notes describing the <a href=\"node/39\">filesystem design decisions and data structures for Yaffs1</a></li>\n<li><a href=\"node/38\">Yaffs2 Filesystem design</a>, covering changes from Yaffs1</li>\n<li><a href=\"http://www.cis.nctu.edu.tw/~lpchang/papers/SAC_wu_sac06.pdf\">Efficient Initialization and Crash Recovery for Log-based File Systems over Flash Memory</a>, describing a mechanism for avoiding full flash scans, even when not properly shut down. This is a likely future development.</li>\n</ul>\n<h3>Mailing list</h3>\n<p>There is a <a href=\"http://aleph1.co.uk//mailman/listinfo/yaffs\">Yaffs mailing list</a> for the development and discussion of Yaffs. It\'s a fairly low-traffic list. You will be emailed and asked to confirm your subscription request. You can also browse and search the <a href=\"http://aleph1.co.uk/lurker/splash/index.en.html\">Yaffs mailing list archives</a>.</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:3:{s:14:\"html_head_link\";a:12:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:15:\"/yaffs-overview\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/344\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"delete-form\";s:4:\"href\";s:16:\"/node/344/delete\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"edit-form\";s:4:\"href\";s:14:\"/node/344/edit\";}i:1;b:1;}i:4;a:2:{i:0;a:2:{s:3:\"rel\";s:15:\"version-history\";s:4:\"href\";s:19:\"/node/344/revisions\";}i:1;b:1;}i:5;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:15:\"/yaffs-overview\";}i:1;b:1;}i:6;a:2:{i:0;a:2:{s:3:\"rel\";s:17:\"book-outline-form\";s:4:\"href\";s:17:\"/node/344/outline\";}i:1;b:1;}i:7;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"book-remove-form\";s:4:\"href\";s:24:\"/node/344/outline/remove\";}i:1;b:1;}i:8;a:2:{i:0;a:2:{s:3:\"rel\";s:10:\"devel-load\";s:4:\"href\";s:15:\"/devel/node/344\";}i:1;b:1;}i:9;a:2:{i:0;a:2:{s:3:\"rel\";s:12:\"devel-render\";s:4:\"href\";s:22:\"/devel/node/344/render\";}i:1;b:1;}i:10;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"devel-definition\";s:4:\"href\";s:26:\"/devel/node/344/definition\";}i:1;b:1;}i:11;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"token-devel\";s:4:\"href\";s:21:\"/node/344/devel/token\";}i:1;b:1;}}s:7:\"library\";a:1:{i:0;s:20:\"history/mark-as-read\";}s:14:\"drupalSettings\";a:1:{s:7:\"history\";a:1:{s:17:\"nodesToMarkAsRead\";a:1:{i:344;b:1;}}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:344\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:101:\"<span property=\"schema:name\" data-quickedit-field-id=\"node/344/title/und/full\">Yaffs Overview</span>\n\";}}',-1,1510655437.243,1,'config:filter.format.full_html config:system.site node:344 node_view rendered user:3','306'),('entity_view:node:344:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0TnPJiCLyr3RQHF1JqFMWHmGB0XvZVQmEhoouZk9kxcE','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4316:\"<article role=\"article\" about=\"/yaffs-overview\" typeof=\"schema:WebPage\" class=\"page is-sticky full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Overview\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is a filesystem designed specifically for the characteristics of NAND flash. Its well-proven primary features are:</p>\n<ul>\n<li>Fast - typically much faster than alternatives</li>\n<li>Easily ported (currently ported to GNU/Linux, WinCE, eCOS, pSOS, VxWorks, and various bare-metal systems)</li>\n<li>Log structured, providing wear-levelling and making it very robust</li>\n<li>Supports many flash geometries including 2K-Byte and 512-Byte page NAND flash chips</li>\n<li>Supports MLC and SLC flash</li>\n<li>Very fast mount - almost immediate startup</li>\n<li>Typically uses less RAM than comparable File Systems</li>\n<li>Flexible <a href=\"/yaffs-licensing-overview\">Licensing</a> suitable for most circumstances</li>\n</ul>\n<p>There is a great deal of information about Yaffs available on this site. This page indexes that information and provides an overview of the product.</p>\n<p>Yaffs is currently at version 2. Yaffs2 supports 2K-byte page flash as well as 512-byte page flash. (Yaffs1 only supports the original 512-byte page flash and is now in maintenance mode.) There is a minimal subset of the filesystem called Yaffs/Direct or the Yaffs Direct Interface which is intended to be used in embedded systems, and can be licensed for use in proprietary systems. Yaffs is available to all under the GPL for use or evaluation; full details of Git access are&nbsp;<a href=\"/download-yaffs-using-git\">available </a></p>\n<p>Yaffs 1 and 2 have both been deployed in numerous commercial applications, some in high volume. abd with large Flash arrays. It has been used in phones, most notably Android phones, GPS receivers, train controllers, speech synthesisers, VOIP chip development kits and other applications.</p>\n<p>We have a number of documents and papers describing how to use Yaffs, how to customise it for your particular hardware/system, and the original considerations and filesystem design of the two versions.</p>\n<h3>Backgrounder</h3>\n<p>The best overview information is currently this 28-slide presentation&nbsp; <a href=\"node/77\">What it Does and How it Does it</a></p>\n<p>A useful historical Timeline on development is <a href=\"node/43\">here</a></p>\n<h3>Developer Documentation</h3>\n<p>Yaffs Direct Interface - <a href=\"node/349\">User Guide</a>, describing how to port Yaffs to an embedded environment or RTOS using the YDI \'personality\' module\'.</p>\n<p>Brief notes on <a href=\"node/40\">How to use it on GNU/Linux</a></p>\n<p>A <a href=\"node/348\">memory footprint analysis</a> putting some numbers on \'low memory footprint\'.</p>\n<p><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS embedded structure: YAFFS embedded structure\" height=\"376\" src=\"/sites/yaffs.net/files/images/yaffs-diagram.gif\" width=\"358\" /></a><br />\n<strong>Yaffs embedded structure</strong></p>\n<h3>Papers</h3>\n<p></p>\n<p></p>\n<p></p>\n<ul>\n<li><a>The </a><a href=\"node/42\">starting state of NAND MTD</a> which caused the Yaffs filesystem to be designed.</li>\n<li><a href=\"node/37\">The Specifications</a> are available</li>\n<li>Development Notes describing the <a href=\"node/39\">filesystem design decisions and data structures for Yaffs1</a></li>\n<li><a href=\"node/38\">Yaffs2 Filesystem design</a>, covering changes from Yaffs1</li>\n<li><a href=\"http://www.cis.nctu.edu.tw/~lpchang/papers/SAC_wu_sac06.pdf\">Efficient Initialization and Crash Recovery for Log-based File Systems over Flash Memory</a>, describing a mechanism for avoiding full flash scans, even when not properly shut down. This is a likely future development.</li>\n</ul>\n<h3>Mailing list</h3>\n<p>There is a <a href=\"http://aleph1.co.uk//mailman/listinfo/yaffs\">Yaffs mailing list</a> for the development and discussion of Yaffs. It\'s a fairly low-traffic list. You will be emailed and asked to confirm your subscription request. You can also browse and search the <a href=\"http://aleph1.co.uk/lurker/splash/index.en.html\">Yaffs mailing list archives</a>.</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:15:\"/yaffs-overview\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/344\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:15:\"/yaffs-overview\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:344\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:51:\"<span property=\"schema:name\">Yaffs Overview</span>\n\";}}',-1,1510657716.499,1,'config:filter.format.full_html config:system.site node:344 node_view rendered user:3','306'),('entity_view:node:344:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b:[user.roles:anonymous]=1','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"344\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:344\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510655437.240,1,'config:filter.format.full_html config:system.site node:344 node_view rendered user:3','306'),('entity_view:node:344:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"344\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:344\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510657716.480,1,'config:filter.format.full_html config:system.site node:344 node_view rendered user:3','306'),('entity_view:node:344:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4232:\"<span property=\"schema:name\" data-quickedit-field-id=\"node/344/title/und/search_result\">Yaffs Overview</span>\n\n            <div property=\"schema:text\" data-quickedit-field-id=\"node/344/body/und/search_result\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is a filesystem designed specifically for the characteristics of NAND flash. Its well-proven primary features are:</p>\n<ul>\n<li>Fast - typically much faster than alternatives</li>\n<li>Easily ported (currently ported to GNU/Linux, WinCE, eCOS, pSOS, VxWorks, and various bare-metal systems)</li>\n<li>Log structured, providing wear-levelling and making it very robust</li>\n<li>Supports many flash geometries including 2K-Byte and 512-Byte page NAND flash chips</li>\n<li>Supports MLC and SLC flash</li>\n<li>Very fast mount - almost immediate startup</li>\n<li>Typically uses less RAM than comparable File Systems</li>\n<li>Flexible <a href=\"/yaffs-licensing-overview\">Licensing</a> suitable for most circumstances</li>\n</ul>\n<p>There is a great deal of information about Yaffs available on this site. This page indexes that information and provides an overview of the product.</p>\n<p>Yaffs is currently at version 2. Yaffs2 supports 2K-byte page flash as well as 512-byte page flash. (Yaffs1 only supports the original 512-byte page flash and is now in maintenance mode.) There is a minimal subset of the filesystem called Yaffs/Direct or the Yaffs Direct Interface which is intended to be used in embedded systems, and can be licensed for use in proprietary systems. Yaffs is available to all under the GPL for use or evaluation; full details of Git access are&nbsp;<a href=\"/download-yaffs-using-git\">available </a></p>\n<p>Yaffs 1 and 2 have both been deployed in numerous commercial applications, some in high volume. abd with large Flash arrays. It has been used in phones, most notably Android phones, GPS receivers, train controllers, speech synthesisers, VOIP chip development kits and other applications.</p>\n<p>We have a number of documents and papers describing how to use Yaffs, how to customise it for your particular hardware/system, and the original considerations and filesystem design of the two versions.</p>\n<h3>Backgrounder</h3>\n<p>The best overview information is currently this 28-slide presentation&nbsp; <a href=\"node/77\">What it Does and How it Does it</a></p>\n<p>A useful historical Timeline on development is <a href=\"node/43\">here</a></p>\n<h3>Developer Documentation</h3>\n<p>Yaffs Direct Interface - <a href=\"node/349\">User Guide</a>, describing how to port Yaffs to an embedded environment or RTOS using the YDI \'personality\' module\'.</p>\n<p>Brief notes on <a href=\"node/40\">How to use it on GNU/Linux</a></p>\n<p>A <a href=\"node/348\">memory footprint analysis</a> putting some numbers on \'low memory footprint\'.</p>\n<p><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS embedded structure: YAFFS embedded structure\" height=\"376\" src=\"/sites/yaffs.net/files/images/yaffs-diagram.gif\" width=\"358\" /></a><br />\n<strong>Yaffs embedded structure</strong></p>\n<h3>Papers</h3>\n<p></p>\n<p></p>\n<p></p>\n<ul>\n<li><a>The </a><a href=\"node/42\">starting state of NAND MTD</a> which caused the Yaffs filesystem to be designed.</li>\n<li><a href=\"node/37\">The Specifications</a> are available</li>\n<li>Development Notes describing the <a href=\"node/39\">filesystem design decisions and data structures for Yaffs1</a></li>\n<li><a href=\"node/38\">Yaffs2 Filesystem design</a>, covering changes from Yaffs1</li>\n<li><a href=\"http://www.cis.nctu.edu.tw/~lpchang/papers/SAC_wu_sac06.pdf\">Efficient Initialization and Crash Recovery for Log-based File Systems over Flash Memory</a>, describing a mechanism for avoiding full flash scans, even when not properly shut down. This is a likely future development.</li>\n</ul>\n<h3>Mailing list</h3>\n<p>There is a <a href=\"http://aleph1.co.uk//mailman/listinfo/yaffs\">Yaffs mailing list</a> for the development and discussion of Yaffs. It\'s a fairly low-traffic list. You will be emailed and asked to confirm your subscription request. You can also browse and search the <a href=\"http://aleph1.co.uk/lurker/splash/index.en.html\">Yaffs mailing list archives</a>.</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:344\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1510655746.140,1,'config:filter.format.full_html node:344 node_view rendered','299'),('entity_view:node:344:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:4115:\"<span property=\"schema:name\">Yaffs Overview</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is a filesystem designed specifically for the characteristics of NAND flash. Its well-proven primary features are:</p>\n<ul>\n<li>Fast - typically much faster than alternatives</li>\n<li>Easily ported (currently ported to GNU/Linux, WinCE, eCOS, pSOS, VxWorks, and various bare-metal systems)</li>\n<li>Log structured, providing wear-levelling and making it very robust</li>\n<li>Supports many flash geometries including 2K-Byte and 512-Byte page NAND flash chips</li>\n<li>Supports MLC and SLC flash</li>\n<li>Very fast mount - almost immediate startup</li>\n<li>Typically uses less RAM than comparable File Systems</li>\n<li>Flexible <a href=\"/yaffs-licensing-overview\">Licensing</a> suitable for most circumstances</li>\n</ul>\n<p>There is a great deal of information about Yaffs available on this site. This page indexes that information and provides an overview of the product.</p>\n<p>Yaffs is currently at version 2. Yaffs2 supports 2K-byte page flash as well as 512-byte page flash. (Yaffs1 only supports the original 512-byte page flash and is now in maintenance mode.) There is a minimal subset of the filesystem called Yaffs/Direct or the Yaffs Direct Interface which is intended to be used in embedded systems, and can be licensed for use in proprietary systems. Yaffs is available to all under the GPL for use or evaluation; full details of Git access are&nbsp;<a href=\"/download-yaffs-using-git\">available </a></p>\n<p>Yaffs 1 and 2 have both been deployed in numerous commercial applications, some in high volume. abd with large Flash arrays. It has been used in phones, most notably Android phones, GPS receivers, train controllers, speech synthesisers, VOIP chip development kits and other applications.</p>\n<p>We have a number of documents and papers describing how to use Yaffs, how to customise it for your particular hardware/system, and the original considerations and filesystem design of the two versions.</p>\n<h3>Backgrounder</h3>\n<p>The best overview information is currently this 28-slide presentation&nbsp; <a href=\"node/77\">What it Does and How it Does it</a></p>\n<p>A useful historical Timeline on development is <a href=\"node/43\">here</a></p>\n<h3>Developer Documentation</h3>\n<p>Yaffs Direct Interface - <a href=\"node/349\">User Guide</a>, describing how to port Yaffs to an embedded environment or RTOS using the YDI \'personality\' module\'.</p>\n<p>Brief notes on <a href=\"node/40\">How to use it on GNU/Linux</a></p>\n<p>A <a href=\"node/348\">memory footprint analysis</a> putting some numbers on \'low memory footprint\'.</p>\n<p><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS embedded structure: YAFFS embedded structure\" height=\"376\" src=\"/sites/yaffs.net/files/images/yaffs-diagram.gif\" width=\"358\" /></a><br />\n<strong>Yaffs embedded structure</strong></p>\n<h3>Papers</h3>\n<p></p>\n<p></p>\n<p></p>\n<ul>\n<li><a>The </a><a href=\"node/42\">starting state of NAND MTD</a> which caused the Yaffs filesystem to be designed.</li>\n<li><a href=\"node/37\">The Specifications</a> are available</li>\n<li>Development Notes describing the <a href=\"node/39\">filesystem design decisions and data structures for Yaffs1</a></li>\n<li><a href=\"node/38\">Yaffs2 Filesystem design</a>, covering changes from Yaffs1</li>\n<li><a href=\"http://www.cis.nctu.edu.tw/~lpchang/papers/SAC_wu_sac06.pdf\">Efficient Initialization and Crash Recovery for Log-based File Systems over Flash Memory</a>, describing a mechanism for avoiding full flash scans, even when not properly shut down. This is a likely future development.</li>\n</ul>\n<h3>Mailing list</h3>\n<p>There is a <a href=\"http://aleph1.co.uk//mailman/listinfo/yaffs\">Yaffs mailing list</a> for the development and discussion of Yaffs. It\'s a fairly low-traffic list. You will be emailed and asked to confirm your subscription request. You can also browse and search the <a href=\"http://aleph1.co.uk/lurker/splash/index.en.html\">Yaffs mailing list archives</a>.</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:344\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1510819835.088,1,'config:filter.format.full_html node:344 node_view rendered','299'),('entity_view:node:344:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"344\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:344\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510655746.138,1,'config:filter.format.full_html node:344 node_view rendered','299'),('entity_view:node:344:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"344\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:344\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510819835.086,1,'config:filter.format.full_html node:344 node_view rendered','299'),('entity_view:node:345:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227drcXGesv6C3xphUV_eAJcN43QgMs7F4I3FNqcY1pyAM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3260:\"<article data-quickedit-entity-id=\"node/345\" role=\"article\" class=\"contextual-region page full clearfix\" about=\"/yaffs-gpl-licence\" typeof=\"schema:WebPage\">\n\n  \n    <div data-contextual-id=\"node:node=345:changed=1497348780&amp;langcode=en\"></div>  <span property=\"schema:name\" content=\"Yaffs - GPL Licence\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" data-quickedit-field-id=\"node/345/body/und/full\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is the property of Aleph One Limited.</p>\n<ul>\n<li>Yaffs is <a href=\"/get-yaffs\">available free of charge</a> under the <a href=\"http://www.gnu.org/copyleft/gpl.html\" target=\"_self\" title=\"Gnu Public Licence\">GNU General Public Licence,</a>&nbsp;version 2 (GPL).</li>\n<li>Linking Yaffs to other software creates a derived work and our&nbsp;interpretation of linking includes dynamic and runtime linking;&nbsp;any use of Yaffs creates a derived work.&nbsp;</li>\n<li>Under the GPL, you can test Yaffs with your product on your computers. Do not distribute this test version unless your product is normally licensed under the GPL. If you do not copy and distribute it, there are no requirement under the GPL regarding distribution of a derived work.&nbsp;&nbsp;</li>\n<li>Under the terms of the GPL, derived works must be licensed using the GPL, unless&nbsp;you have a <a href=\"/commercial-licences\">Commercial Licence</a> for Yaffs.</li>\n<li>When you distribute GPLed object code you must make the full source code available too, to anyone who uses your product.&nbsp;(Sections 3.a and 3.b of the GPL, and the sections that follow.)&nbsp;&nbsp;</li>\n</ul>\n<p>Circumstances where you need to licence Yaffs other than under the GPL include:-</p>\n<ul>\n<li>If you want to use Yaffs, but want to distribute your code under your licence.</li>\n<li>If you want to run a statically-linked commercial RTOS on top of a Yaffs filesystem.</li>\n<li>if you want to sublicence Yaffs to your customers (under terms other than the GPL).</li>\n<li>If you want to use Yaffs with WindowsCE version 4.&nbsp;WinCE version 3 can use GPL code but WinCE v.4 and later need an additional filesystem interface layer which is not part of Yaffs. This is available at extra cost; please contact us.</li>\n</ul>\n<p>In these cases, our <a href=\"/commercial-licences\">Commercial Licence</a> is appropriate.</p>\n<p>If you aren\'t sure whether your needs will be covered by the GPL version, <a href=\"/contact\">get in touch with us</a>.</p>\n<h2>Support</h2>\n<p>While Yaffs is released under GPL we can provide standard support options, consulting in its application to your particular product, or development of specific features to suit your needs or hardware.&nbsp;</p>\n<h2>Helping us to improve Yaffs</h2>\n<p>Although the code is downloadable at no charge, buying this product allows you to express your appreciation of Yaffs. Alternatively you can make a Donation to Aleph One Ltd via PayPal. You can do this at <a href=\"http://www.paypal.com\" target=\"_blank\" title=\"PayPal\">PayPal </a>by sending any sum to <a href=\"denied:mailto:sales@aleph1.co.uk\">sales@aleph1.co.uk</a>&nbsp; We shall appreciate it!</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:3:{s:14:\"html_head_link\";a:12:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:18:\"/yaffs-gpl-licence\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/345\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"delete-form\";s:4:\"href\";s:16:\"/node/345/delete\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"edit-form\";s:4:\"href\";s:14:\"/node/345/edit\";}i:1;b:1;}i:4;a:2:{i:0;a:2:{s:3:\"rel\";s:15:\"version-history\";s:4:\"href\";s:19:\"/node/345/revisions\";}i:1;b:1;}i:5;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:18:\"/yaffs-gpl-licence\";}i:1;b:1;}i:6;a:2:{i:0;a:2:{s:3:\"rel\";s:17:\"book-outline-form\";s:4:\"href\";s:17:\"/node/345/outline\";}i:1;b:1;}i:7;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"book-remove-form\";s:4:\"href\";s:24:\"/node/345/outline/remove\";}i:1;b:1;}i:8;a:2:{i:0;a:2:{s:3:\"rel\";s:10:\"devel-load\";s:4:\"href\";s:15:\"/devel/node/345\";}i:1;b:1;}i:9;a:2:{i:0;a:2:{s:3:\"rel\";s:12:\"devel-render\";s:4:\"href\";s:22:\"/devel/node/345/render\";}i:1;b:1;}i:10;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"devel-definition\";s:4:\"href\";s:26:\"/devel/node/345/definition\";}i:1;b:1;}i:11;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"token-devel\";s:4:\"href\";s:21:\"/node/345/devel/token\";}i:1;b:1;}}s:7:\"library\";a:1:{i:0;s:20:\"history/mark-as-read\";}s:14:\"drupalSettings\";a:1:{s:7:\"history\";a:1:{s:17:\"nodesToMarkAsRead\";a:1:{i:345;b:1;}}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:345\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:106:\"<span property=\"schema:name\" data-quickedit-field-id=\"node/345/title/und/full\">Yaffs - GPL Licence</span>\n\";}}',-1,1516806190.057,1,'config:filter.format.full_html config:system.site node:345 node_view rendered user:4','306'),('entity_view:node:345:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0uSLUFkJuGZhldH2THc3q7dZ6XBZMRtzCzhQYhx4AjYM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3076:\"<article role=\"article\" about=\"/yaffs-gpl-licence\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs - GPL Licence\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is the property of Aleph One Limited.</p>\n<ul>\n<li>Yaffs is <a href=\"/get-yaffs\">available free of charge</a> under the <a href=\"http://www.gnu.org/copyleft/gpl.html\" target=\"_self\" title=\"Gnu Public Licence\">GNU General Public Licence,</a>&nbsp;version 2 (GPL).</li>\n<li>Linking Yaffs to other software creates a derived work and our&nbsp;interpretation of linking includes dynamic and runtime linking;&nbsp;any use of Yaffs creates a derived work.&nbsp;</li>\n<li>Under the GPL, you can test Yaffs with your product on your computers. Do not distribute this test version unless your product is normally licensed under the GPL. If you do not copy and distribute it, there are no requirement under the GPL regarding distribution of a derived work.&nbsp;&nbsp;</li>\n<li>Under the terms of the GPL, derived works must be licensed using the GPL, unless&nbsp;you have a <a href=\"/commercial-licences\">Commercial Licence</a> for Yaffs.</li>\n<li>When you distribute GPLed object code you must make the full source code available too, to anyone who uses your product.&nbsp;(Sections 3.a and 3.b of the GPL, and the sections that follow.)&nbsp;&nbsp;</li>\n</ul>\n<p>Circumstances where you need to licence Yaffs other than under the GPL include:-</p>\n<ul>\n<li>If you want to use Yaffs, but want to distribute your code under your licence.</li>\n<li>If you want to run a statically-linked commercial RTOS on top of a Yaffs filesystem.</li>\n<li>if you want to sublicence Yaffs to your customers (under terms other than the GPL).</li>\n<li>If you want to use Yaffs with WindowsCE version 4.&nbsp;WinCE version 3 can use GPL code but WinCE v.4 and later need an additional filesystem interface layer which is not part of Yaffs. This is available at extra cost; please contact us.</li>\n</ul>\n<p>In these cases, our <a href=\"/commercial-licences\">Commercial Licence</a> is appropriate.</p>\n<p>If you aren\'t sure whether your needs will be covered by the GPL version, <a href=\"/contact\">get in touch with us</a>.</p>\n<h2>Support</h2>\n<p>While Yaffs is released under GPL we can provide standard support options, consulting in its application to your particular product, or development of specific features to suit your needs or hardware.&nbsp;</p>\n<h2>Helping us to improve Yaffs</h2>\n<p>Although the code is downloadable at no charge, buying this product allows you to express your appreciation of Yaffs. Alternatively you can make a Donation to Aleph One Ltd via PayPal. You can do this at <a href=\"http://www.paypal.com\" target=\"_blank\" title=\"PayPal\">PayPal </a>by sending any sum to <a href=\"denied:mailto:sales@aleph1.co.uk\">sales@aleph1.co.uk</a>&nbsp; We shall appreciate it!</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:18:\"/yaffs-gpl-licence\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/345\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:18:\"/yaffs-gpl-licence\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:345\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:56:\"<span property=\"schema:name\">Yaffs - GPL Licence</span>\n\";}}',-1,1510688827.422,1,'config:filter.format.full_html config:system.site node:345 node_view rendered user:4','306'),('entity_view:node:345:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b:[user.roles:anonymous]=1','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"345\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:345\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1516806190.056,1,'config:filter.format.full_html config:system.site node:345 node_view rendered user:4','306'),('entity_view:node:345:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"345\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:345\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510688827.399,1,'config:filter.format.full_html config:system.site node:345 node_view rendered user:4','306'),('entity_view:node:345:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:2882:\"<span property=\"schema:name\">Yaffs - GPL Licence</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs is the property of Aleph One Limited.</p>\n<ul>\n<li>Yaffs is <a href=\"/get-yaffs\">available free of charge</a> under the <a href=\"http://www.gnu.org/copyleft/gpl.html\" target=\"_self\" title=\"Gnu Public Licence\">GNU General Public Licence,</a>&nbsp;version 2 (GPL).</li>\n<li>Linking Yaffs to other software creates a derived work and our&nbsp;interpretation of linking includes dynamic and runtime linking;&nbsp;any use of Yaffs creates a derived work.&nbsp;</li>\n<li>Under the GPL, you can test Yaffs with your product on your computers. Do not distribute this test version unless your product is normally licensed under the GPL. If you do not copy and distribute it, there are no requirement under the GPL regarding distribution of a derived work.&nbsp;&nbsp;</li>\n<li>Under the terms of the GPL, derived works must be licensed using the GPL, unless&nbsp;you have a <a href=\"/commercial-licences\">Commercial Licence</a> for Yaffs.</li>\n<li>When you distribute GPLed object code you must make the full source code available too, to anyone who uses your product.&nbsp;(Sections 3.a and 3.b of the GPL, and the sections that follow.)&nbsp;&nbsp;</li>\n</ul>\n<p>Circumstances where you need to licence Yaffs other than under the GPL include:-</p>\n<ul>\n<li>If you want to use Yaffs, but want to distribute your code under your licence.</li>\n<li>If you want to run a statically-linked commercial RTOS on top of a Yaffs filesystem.</li>\n<li>if you want to sublicence Yaffs to your customers (under terms other than the GPL).</li>\n<li>If you want to use Yaffs with WindowsCE version 4.&nbsp;WinCE version 3 can use GPL code but WinCE v.4 and later need an additional filesystem interface layer which is not part of Yaffs. This is available at extra cost; please contact us.</li>\n</ul>\n<p>In these cases, our <a href=\"/commercial-licences\">Commercial Licence</a> is appropriate.</p>\n<p>If you aren\'t sure whether your needs will be covered by the GPL version, <a href=\"/contact\">get in touch with us</a>.</p>\n<h2>Support</h2>\n<p>While Yaffs is released under GPL we can provide standard support options, consulting in its application to your particular product, or development of specific features to suit your needs or hardware.&nbsp;</p>\n<h2>Helping us to improve Yaffs</h2>\n<p>Although the code is downloadable at no charge, buying this product allows you to express your appreciation of Yaffs. Alternatively you can make a Donation to Aleph One Ltd via PayPal. You can do this at <a href=\"http://www.paypal.com\" target=\"_blank\" title=\"PayPal\">PayPal </a>by sending any sum to <a href=\"denied:mailto:sales@aleph1.co.uk\">sales@aleph1.co.uk</a>&nbsp; We shall appreciate it!</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:345\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113055.133,1,'config:filter.format.full_html node:345 node_view rendered','297'),('entity_view:node:345:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"345\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:345\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113055.131,1,'config:filter.format.full_html node:345 node_view rendered','297'),('entity_view:node:347:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0cyhABXZYlb3cE24QH_vIUZRLJmJZ4t_uRCsPIx579PE','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:10854:\"<article role=\"article\" about=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\" class=\"book is-promoted is-sticky full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">Written by Charles Manning - Originally published at Linuxdevices.org Sept 20th 2002\n<h3>PHB Summary</h3>\nYAFFS stands for \"yet another flash file system\"(*). As far as I am aware, YAFFS is the only file system, under any operating system, that has been designed specifically for use with NAND flash. YAFFS is thus designed to work within the constraints of, and exploit the features of, NAND flash to maximise performance. YAFFS uses journaling, error correction and verification techniques tuned to the way NAND typically fails, to enhance robustness. The result is a file system that exploits low-cost NAND chips and is both fast and robust. YAFFS is highly portable and runs under Linux, ucLinux and Windows CE. YAFFS is an open source project.\n<h3>Why NAND flash?</h3>\nEmbedded and mobile systems are increasingly using NAND flash for storage because it has various advantages over other storage technologies. As always though, life is a compromise and those advantages come with some limitations that need to be addressed to provide a robust flash file system. Hard disks are not a viable storage option for many embedded and handheld systems because they are too big, too fragile and use too much power. For some years now, people have been using common-old NOR flash for file system storage. JFFS and JFFS2 do an excellent job of this for Linux. For storage applications NOR flash is not that great because it is not very dense (ie. not much storage per chip), is costly and is slow to write. NAND flash, on the other hand, is low cost, dense and writes fast, but has other limitations. The most common consumer usage of NAND flash is on SmartMedia cards which are just NAND chips bonded to a carrier card. Consumer use of SmartMedia is driving down NAND prices while driving up densities. The standard SmartMedia file system is FAT based and is thus liable to corruptions due to power failures, crashes and other acts of demonic forces. This raises robustness concerns, particularly in embedded systems where a corrupted file system can kill the device. What\'s really needed is a journaling file system that is able to work around the limitations of NAND and exploit it for best performance.\n<h3>History</h3>\nThe lead-up to YAFFS started with an investigation into modifying the JFFS2 flash file system to work with NAND flash (**) for some Aleph One customers. It seemed reasonable that the best way to get a file system for NAND flash would be just \"tweaking\" an existing flash file system. On deeper investigation, it became apparent that designing a new file system specifically for NAND might have some benefits.\n<table border=\"1\" cellpadding=\"1\" style=\"width: 568px; border-color: #000000; border-spacing: 0px;\">\n<col width=\"186\" /><col width=\"187\" /><col width=\"186\" />\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p></p>\n </td>\n <td style=\"width: 187px;\">\n <p>NOR (typical, varies a lot)</p>\n </td>\n <td style=\"width: 186px;\">\n <p>NAND</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Density</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Up to 32MB chips</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Currently 256MB and growing.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Cost per MB</p>\n </td>\n <td style=\"width: 187px;\">\n <p>$1-$2</p>\n </td>\n <td style=\"width: 186px;\">\n <p>25c</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Access</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Random</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Page oriented with spare area on each page. Sequential access within a page.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Programmability</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Can modify a single bit.</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Very limited re-programming.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Read speed</p>\n </td>\n <td style=\"width: 187px;\">\n <p>50-100nS</p>\n </td>\n <td style=\"width: 186px;\">\n <p>10uS page \"seek\" + 50nS per byte</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Program time</p>\n </td>\n <td style=\"width: 187px;\">\n <p>5uS per byte</p>\n </td>\n <td style=\"width: 186px;\">\n <p>200uS per page</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Erasure time</p>\n </td>\n <td style=\"width: 187px;\">\n <p>1s per 64kB block</p>\n </td>\n <td style=\"width: 186px;\">\n <p>2ms per 16kB block</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Reliability</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Relatively immune to corruption. No bad blocks.</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Needs error correction. Bad blocks marked when shipped.</p>\n </td>\n</tr>\n</table>\nDesigning an effective flash file system is a difficult task and you need to jump through many hoops of fire to get a useful system. Although both are called \"Flash\", NOR and NAND flash have very different properties. Thus, a flash file system that works with NOR incorporates various mechanisms that are not required for NAND, and NAND needs extra mechanisms not required for NOR. For example, garbage collection performance is largely determined by the erasure time. NOR erases very slowly and thus an effective NOR garbage collection strategy is relatively complex and limits the design options. In comparison NAND erases very quickly; thus these limitations don\'t apply. Another major difference is that NAND is shipped with marked bad blocks on the device, while NOR chips are shipped defect free. Thus, one expects to encounter some failures in NAND and should design accordingly. This lead me to believe that it would be worth designing a file system specifically for NAND flash, exploiting the features of NAND to simplify the design and catering to NAND specific limitations directly, rather than trying to \"bend\" NAND to work with an existing file system architecture, or vice versa. The first conceptual design for YAFFS was drawn up in late December 2001. Once the customers bought in to the idea, things progressed rapidly. The first line of code was cut in January 2002. By May 2002 we had the first publicly available CVS code. We now have at least six different companies using or experimenting with YAFFS in embedded or handheld systems. YAFFS is already very stable and is converging rapidly. We expect to see YAFFS-based products shipped before the end of the year.\n<h3>Design approach</h3>\nRather than develop and debug code inside the Linux kernel, I took the approach of developing the file system \"guts\" algorithms - the most complex part -- in a user space program. To achieve this, the code is split into four sections:\n<ul>\n<li>\n<p>yaffs_guts: The file system algorithms. This code is fully portable C.</p>\n </li>\n<li>\n<p>yaffs_fs.c: Interface layer to the Linux VFS. Can be replaced with a test harness for user space developing of yaffs_guts.c</p>\n </li>\n<li>\n<p>nand interface: wrapper layer between yaffs_guts and the NAND memory access functions. eg. calls Linux mtd layer or RAM emulation layer.</p>\n </li>\n<li>\n<p>Portability functions: wrapper functions for services such as memory allocation etc.</p>\n </li>\n</ul>\nThis modular design has provided a lot of flexibility for testing and development. A user space program and DDD is a far more rapid development environment than continually changing the Linux kernel. Also, a RAM-based NAND emulation layer provides an excellent way to debug the file system in-kernel without special hardware. A further spin-off has been that YAFFS is portable to other operating systems. For example, a port of YAFFS for Windows CE was readily achieved by writing a new wrapper layer to hook up to the WinCE file system manager and new NAND access layer. yaffs_guts.c remains 100% portable(***). YAFFS is thus likely to be easily portable to other OSs too.\n<h3>Results</h3>\nRemoving surplus constraints has lead to a simpler design that has improved performance and robustness as well and reduced development time. YAFFS reads and writes pretty fast. There is no significant hit due to garbage collection (ie. in most situations garbage collection overheads would not impact usage). It is difficult to give meaningful benchmarks given non-standard hardware. However herewith some results achieved on a StrongARM-based board with 128MB of NAND flash. Write speed is approx 800kB per second and read speed is approx 1.5MB per second. In a weekend stress test I wrote, triple-verified then deleted 25gigabytes of file data without a single bit of file data being corrupted. 25GB exceeds the design lifetime of most embedded or handheld devices.\n<h3>Future</h3>\nAlthough YAFFS already performs well, there is still a lot of room for improvement. Development is continuing to enhance performance and robustness as well as add support software such as utilities, bootloader support and analysis tools. I expect to see ports to other OSs too. Increasing the user base of YAFFS is an important way to get more eyes over the code and test it under a wider set of scenarios. The YAFFS development community is growing well with good involvement from people all over the world. YAFFS is realising all the benefits open source projects hope for and will, we expect, continue to grow.\n<h3>Resources</h3>\nThe YAFFS project home page is <a href=\"http://www.aleph1.co.uk/yaffs/\">http://www.aleph1.co.uk/yaffs/</a> This provides further YAFFS documentation and instructions for GIT access and the YAFFS mailing list.\n<h3>Footnotes:</h3>\n(*)The YAFFS name came from the first concept document proposing yet another flash file system. Some how that name just stuck. (**) NAND support has since been added to JFFS2 by others. The YAFFS, JFFS2 and mtd communities cooperate to provide a rich flexible set of solutions to draw from. As is the nature of open source projects, JFFS2 code was used as a reference for some parts of the YAFFS development, particularly for figuring out the VFS interface. Google for further info on JFFS2 and mtd. (***) Some features were added to the guts to enhance WinCE usage. For example, the string comparison function was made configurable to be either strcmp or scricmp because Windows file names are case insensitive.\n<h3>Bio</h3>\nCharles Manning (aka The Embedded Janitor) lives near Christchurch, New Zealand, and has been developing and mopping up embedded systems for twenty years. His hobbies include fly tying and spinning wool. Charles can be reached at <a href=\"denied:mailto:charles@aleph1.co.uk\">charles@aleph1.co.uk</a>. </div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:68:\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/347\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:68:\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:347\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:79:\"<span>YAFFS: the NAND-specific flash file system - Introductory Article</span>\n\";}}',-1,1510656500.514,1,'config:filter.format.full_html config:system.site node:347 node_view rendered user:3','303'),('entity_view:node:347:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"347\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:347\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510656500.512,1,'config:filter.format.full_html config:system.site node:347 node_view rendered user:3','303'),('entity_view:node:347:rss:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:10875:\"<span>YAFFS: the NAND-specific flash file system - Introductory Article</span>\n<span><span lang=\"\" about=\"/user/wookey\" typeof=\"schema:Person\" property=\"schema:name\" datatype=\"\">Wookey</span></span>\n<span>26 July, 2006 - 2:11pm</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">Written by Charles Manning - Originally published at Linuxdevices.org Sept 20th 2002\n<h3>PHB Summary</h3>\nYAFFS stands for \"yet another flash file system\"(*). As far as I am aware, YAFFS is the only file system, under any operating system, that has been designed specifically for use with NAND flash. YAFFS is thus designed to work within the constraints of, and exploit the features of, NAND flash to maximise performance. YAFFS uses journaling, error correction and verification techniques tuned to the way NAND typically fails, to enhance robustness. The result is a file system that exploits low-cost NAND chips and is both fast and robust. YAFFS is highly portable and runs under Linux, ucLinux and Windows CE. YAFFS is an open source project.\n<h3>Why NAND flash?</h3>\nEmbedded and mobile systems are increasingly using NAND flash for storage because it has various advantages over other storage technologies. As always though, life is a compromise and those advantages come with some limitations that need to be addressed to provide a robust flash file system. Hard disks are not a viable storage option for many embedded and handheld systems because they are too big, too fragile and use too much power. For some years now, people have been using common-old NOR flash for file system storage. JFFS and JFFS2 do an excellent job of this for Linux. For storage applications NOR flash is not that great because it is not very dense (ie. not much storage per chip), is costly and is slow to write. NAND flash, on the other hand, is low cost, dense and writes fast, but has other limitations. The most common consumer usage of NAND flash is on SmartMedia cards which are just NAND chips bonded to a carrier card. Consumer use of SmartMedia is driving down NAND prices while driving up densities. The standard SmartMedia file system is FAT based and is thus liable to corruptions due to power failures, crashes and other acts of demonic forces. This raises robustness concerns, particularly in embedded systems where a corrupted file system can kill the device. What\'s really needed is a journaling file system that is able to work around the limitations of NAND and exploit it for best performance.\n<h3>History</h3>\nThe lead-up to YAFFS started with an investigation into modifying the JFFS2 flash file system to work with NAND flash (**) for some Aleph One customers. It seemed reasonable that the best way to get a file system for NAND flash would be just \"tweaking\" an existing flash file system. On deeper investigation, it became apparent that designing a new file system specifically for NAND might have some benefits.\n<table border=\"1\" cellpadding=\"1\" style=\"width: 568px; border-color: #000000; border-spacing: 0px;\">\n<col width=\"186\" /><col width=\"187\" /><col width=\"186\" />\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p></p>\n </td>\n <td style=\"width: 187px;\">\n <p>NOR (typical, varies a lot)</p>\n </td>\n <td style=\"width: 186px;\">\n <p>NAND</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Density</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Up to 32MB chips</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Currently 256MB and growing.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Cost per MB</p>\n </td>\n <td style=\"width: 187px;\">\n <p>$1-$2</p>\n </td>\n <td style=\"width: 186px;\">\n <p>25c</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Access</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Random</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Page oriented with spare area on each page. Sequential access within a page.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Programmability</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Can modify a single bit.</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Very limited re-programming.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Read speed</p>\n </td>\n <td style=\"width: 187px;\">\n <p>50-100nS</p>\n </td>\n <td style=\"width: 186px;\">\n <p>10uS page \"seek\" + 50nS per byte</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Program time</p>\n </td>\n <td style=\"width: 187px;\">\n <p>5uS per byte</p>\n </td>\n <td style=\"width: 186px;\">\n <p>200uS per page</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Erasure time</p>\n </td>\n <td style=\"width: 187px;\">\n <p>1s per 64kB block</p>\n </td>\n <td style=\"width: 186px;\">\n <p>2ms per 16kB block</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Reliability</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Relatively immune to corruption. No bad blocks.</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Needs error correction. Bad blocks marked when shipped.</p>\n </td>\n</tr>\n</table>\nDesigning an effective flash file system is a difficult task and you need to jump through many hoops of fire to get a useful system. Although both are called \"Flash\", NOR and NAND flash have very different properties. Thus, a flash file system that works with NOR incorporates various mechanisms that are not required for NAND, and NAND needs extra mechanisms not required for NOR. For example, garbage collection performance is largely determined by the erasure time. NOR erases very slowly and thus an effective NOR garbage collection strategy is relatively complex and limits the design options. In comparison NAND erases very quickly; thus these limitations don\'t apply. Another major difference is that NAND is shipped with marked bad blocks on the device, while NOR chips are shipped defect free. Thus, one expects to encounter some failures in NAND and should design accordingly. This lead me to believe that it would be worth designing a file system specifically for NAND flash, exploiting the features of NAND to simplify the design and catering to NAND specific limitations directly, rather than trying to \"bend\" NAND to work with an existing file system architecture, or vice versa. The first conceptual design for YAFFS was drawn up in late December 2001. Once the customers bought in to the idea, things progressed rapidly. The first line of code was cut in January 2002. By May 2002 we had the first publicly available CVS code. We now have at least six different companies using or experimenting with YAFFS in embedded or handheld systems. YAFFS is already very stable and is converging rapidly. We expect to see YAFFS-based products shipped before the end of the year.\n<h3>Design approach</h3>\nRather than develop and debug code inside the Linux kernel, I took the approach of developing the file system \"guts\" algorithms - the most complex part -- in a user space program. To achieve this, the code is split into four sections:\n<ul>\n<li>\n<p>yaffs_guts: The file system algorithms. This code is fully portable C.</p>\n </li>\n<li>\n<p>yaffs_fs.c: Interface layer to the Linux VFS. Can be replaced with a test harness for user space developing of yaffs_guts.c</p>\n </li>\n<li>\n<p>nand interface: wrapper layer between yaffs_guts and the NAND memory access functions. eg. calls Linux mtd layer or RAM emulation layer.</p>\n </li>\n<li>\n<p>Portability functions: wrapper functions for services such as memory allocation etc.</p>\n </li>\n</ul>\nThis modular design has provided a lot of flexibility for testing and development. A user space program and DDD is a far more rapid development environment than continually changing the Linux kernel. Also, a RAM-based NAND emulation layer provides an excellent way to debug the file system in-kernel without special hardware. A further spin-off has been that YAFFS is portable to other operating systems. For example, a port of YAFFS for Windows CE was readily achieved by writing a new wrapper layer to hook up to the WinCE file system manager and new NAND access layer. yaffs_guts.c remains 100% portable(***). YAFFS is thus likely to be easily portable to other OSs too.\n<h3>Results</h3>\nRemoving surplus constraints has lead to a simpler design that has improved performance and robustness as well and reduced development time. YAFFS reads and writes pretty fast. There is no significant hit due to garbage collection (ie. in most situations garbage collection overheads would not impact usage). It is difficult to give meaningful benchmarks given non-standard hardware. However herewith some results achieved on a StrongARM-based board with 128MB of NAND flash. Write speed is approx 800kB per second and read speed is approx 1.5MB per second. In a weekend stress test I wrote, triple-verified then deleted 25gigabytes of file data without a single bit of file data being corrupted. 25GB exceeds the design lifetime of most embedded or handheld devices.\n<h3>Future</h3>\nAlthough YAFFS already performs well, there is still a lot of room for improvement. Development is continuing to enhance performance and robustness as well as add support software such as utilities, bootloader support and analysis tools. I expect to see ports to other OSs too. Increasing the user base of YAFFS is an important way to get more eyes over the code and test it under a wider set of scenarios. The YAFFS development community is growing well with good involvement from people all over the world. YAFFS is realising all the benefits open source projects hope for and will, we expect, continue to grow.\n<h3>Resources</h3>\nThe YAFFS project home page is <a href=\"http://www.aleph1.co.uk/yaffs/\">http://www.aleph1.co.uk/yaffs/</a> This provides further YAFFS documentation and instructions for GIT access and the YAFFS mailing list.\n<h3>Footnotes:</h3>\n(*)The YAFFS name came from the first concept document proposing yet another flash file system. Some how that name just stuck. (**) NAND support has since been added to JFFS2 by others. The YAFFS, JFFS2 and mtd communities cooperate to provide a rich flexible set of solutions to draw from. As is the nature of open source projects, JFFS2 code was used as a reference for some parts of the YAFFS development, particularly for figuring out the VFS interface. Google for further info on JFFS2 and mtd. (***) Some features were added to the guts to enhance WinCE usage. For example, the string comparison function was made configurable to be either strcmp or scricmp because Windows file names are case insensitive.\n<h3>Bio</h3>\nCharles Manning (aka The Embedded Janitor) lives near Christchurch, New Zealand, and has been developing and mopping up embedded systems for twenty years. His hobbies include fly tying and spinning wool. Charles can be reached at <a href=\"denied:mailto:charles@aleph1.co.uk\">charles@aleph1.co.uk</a>. </div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1511118220.245,1,'config:filter.format.full_html node:347 node_view rendered user:3','297'),('entity_view:node:347:rss:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"347\";i:3;s:3:\"rss\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511118220.244,1,'config:filter.format.full_html node:347 node_view rendered user:3','297'),('entity_view:node:347:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:10719:\"<span>YAFFS: the NAND-specific flash file system - Introductory Article</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">Written by Charles Manning - Originally published at Linuxdevices.org Sept 20th 2002\n<h3>PHB Summary</h3>\nYAFFS stands for \"yet another flash file system\"(*). As far as I am aware, YAFFS is the only file system, under any operating system, that has been designed specifically for use with NAND flash. YAFFS is thus designed to work within the constraints of, and exploit the features of, NAND flash to maximise performance. YAFFS uses journaling, error correction and verification techniques tuned to the way NAND typically fails, to enhance robustness. The result is a file system that exploits low-cost NAND chips and is both fast and robust. YAFFS is highly portable and runs under Linux, ucLinux and Windows CE. YAFFS is an open source project.\n<h3>Why NAND flash?</h3>\nEmbedded and mobile systems are increasingly using NAND flash for storage because it has various advantages over other storage technologies. As always though, life is a compromise and those advantages come with some limitations that need to be addressed to provide a robust flash file system. Hard disks are not a viable storage option for many embedded and handheld systems because they are too big, too fragile and use too much power. For some years now, people have been using common-old NOR flash for file system storage. JFFS and JFFS2 do an excellent job of this for Linux. For storage applications NOR flash is not that great because it is not very dense (ie. not much storage per chip), is costly and is slow to write. NAND flash, on the other hand, is low cost, dense and writes fast, but has other limitations. The most common consumer usage of NAND flash is on SmartMedia cards which are just NAND chips bonded to a carrier card. Consumer use of SmartMedia is driving down NAND prices while driving up densities. The standard SmartMedia file system is FAT based and is thus liable to corruptions due to power failures, crashes and other acts of demonic forces. This raises robustness concerns, particularly in embedded systems where a corrupted file system can kill the device. What\'s really needed is a journaling file system that is able to work around the limitations of NAND and exploit it for best performance.\n<h3>History</h3>\nThe lead-up to YAFFS started with an investigation into modifying the JFFS2 flash file system to work with NAND flash (**) for some Aleph One customers. It seemed reasonable that the best way to get a file system for NAND flash would be just \"tweaking\" an existing flash file system. On deeper investigation, it became apparent that designing a new file system specifically for NAND might have some benefits.\n<table border=\"1\" cellpadding=\"1\" style=\"width: 568px; border-color: #000000; border-spacing: 0px;\">\n<col width=\"186\" /><col width=\"187\" /><col width=\"186\" />\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p></p>\n </td>\n <td style=\"width: 187px;\">\n <p>NOR (typical, varies a lot)</p>\n </td>\n <td style=\"width: 186px;\">\n <p>NAND</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Density</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Up to 32MB chips</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Currently 256MB and growing.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Cost per MB</p>\n </td>\n <td style=\"width: 187px;\">\n <p>$1-$2</p>\n </td>\n <td style=\"width: 186px;\">\n <p>25c</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Access</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Random</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Page oriented with spare area on each page. Sequential access within a page.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Programmability</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Can modify a single bit.</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Very limited re-programming.</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Read speed</p>\n </td>\n <td style=\"width: 187px;\">\n <p>50-100nS</p>\n </td>\n <td style=\"width: 186px;\">\n <p>10uS page \"seek\" + 50nS per byte</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Program time</p>\n </td>\n <td style=\"width: 187px;\">\n <p>5uS per byte</p>\n </td>\n <td style=\"width: 186px;\">\n <p>200uS per page</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Erasure time</p>\n </td>\n <td style=\"width: 187px;\">\n <p>1s per 64kB block</p>\n </td>\n <td style=\"width: 186px;\">\n <p>2ms per 16kB block</p>\n </td>\n</tr>\n<tr valign=\"top\">\n <td style=\"width: 186px;\">\n <p>Reliability</p>\n </td>\n <td style=\"width: 187px;\">\n <p>Relatively immune to corruption. No bad blocks.</p>\n </td>\n <td style=\"width: 186px;\">\n <p>Needs error correction. Bad blocks marked when shipped.</p>\n </td>\n</tr>\n</table>\nDesigning an effective flash file system is a difficult task and you need to jump through many hoops of fire to get a useful system. Although both are called \"Flash\", NOR and NAND flash have very different properties. Thus, a flash file system that works with NOR incorporates various mechanisms that are not required for NAND, and NAND needs extra mechanisms not required for NOR. For example, garbage collection performance is largely determined by the erasure time. NOR erases very slowly and thus an effective NOR garbage collection strategy is relatively complex and limits the design options. In comparison NAND erases very quickly; thus these limitations don\'t apply. Another major difference is that NAND is shipped with marked bad blocks on the device, while NOR chips are shipped defect free. Thus, one expects to encounter some failures in NAND and should design accordingly. This lead me to believe that it would be worth designing a file system specifically for NAND flash, exploiting the features of NAND to simplify the design and catering to NAND specific limitations directly, rather than trying to \"bend\" NAND to work with an existing file system architecture, or vice versa. The first conceptual design for YAFFS was drawn up in late December 2001. Once the customers bought in to the idea, things progressed rapidly. The first line of code was cut in January 2002. By May 2002 we had the first publicly available CVS code. We now have at least six different companies using or experimenting with YAFFS in embedded or handheld systems. YAFFS is already very stable and is converging rapidly. We expect to see YAFFS-based products shipped before the end of the year.\n<h3>Design approach</h3>\nRather than develop and debug code inside the Linux kernel, I took the approach of developing the file system \"guts\" algorithms - the most complex part -- in a user space program. To achieve this, the code is split into four sections:\n<ul>\n<li>\n<p>yaffs_guts: The file system algorithms. This code is fully portable C.</p>\n </li>\n<li>\n<p>yaffs_fs.c: Interface layer to the Linux VFS. Can be replaced with a test harness for user space developing of yaffs_guts.c</p>\n </li>\n<li>\n<p>nand interface: wrapper layer between yaffs_guts and the NAND memory access functions. eg. calls Linux mtd layer or RAM emulation layer.</p>\n </li>\n<li>\n<p>Portability functions: wrapper functions for services such as memory allocation etc.</p>\n </li>\n</ul>\nThis modular design has provided a lot of flexibility for testing and development. A user space program and DDD is a far more rapid development environment than continually changing the Linux kernel. Also, a RAM-based NAND emulation layer provides an excellent way to debug the file system in-kernel without special hardware. A further spin-off has been that YAFFS is portable to other operating systems. For example, a port of YAFFS for Windows CE was readily achieved by writing a new wrapper layer to hook up to the WinCE file system manager and new NAND access layer. yaffs_guts.c remains 100% portable(***). YAFFS is thus likely to be easily portable to other OSs too.\n<h3>Results</h3>\nRemoving surplus constraints has lead to a simpler design that has improved performance and robustness as well and reduced development time. YAFFS reads and writes pretty fast. There is no significant hit due to garbage collection (ie. in most situations garbage collection overheads would not impact usage). It is difficult to give meaningful benchmarks given non-standard hardware. However herewith some results achieved on a StrongARM-based board with 128MB of NAND flash. Write speed is approx 800kB per second and read speed is approx 1.5MB per second. In a weekend stress test I wrote, triple-verified then deleted 25gigabytes of file data without a single bit of file data being corrupted. 25GB exceeds the design lifetime of most embedded or handheld devices.\n<h3>Future</h3>\nAlthough YAFFS already performs well, there is still a lot of room for improvement. Development is continuing to enhance performance and robustness as well as add support software such as utilities, bootloader support and analysis tools. I expect to see ports to other OSs too. Increasing the user base of YAFFS is an important way to get more eyes over the code and test it under a wider set of scenarios. The YAFFS development community is growing well with good involvement from people all over the world. YAFFS is realising all the benefits open source projects hope for and will, we expect, continue to grow.\n<h3>Resources</h3>\nThe YAFFS project home page is <a href=\"http://www.aleph1.co.uk/yaffs/\">http://www.aleph1.co.uk/yaffs/</a> This provides further YAFFS documentation and instructions for GIT access and the YAFFS mailing list.\n<h3>Footnotes:</h3>\n(*)The YAFFS name came from the first concept document proposing yet another flash file system. Some how that name just stuck. (**) NAND support has since been added to JFFS2 by others. The YAFFS, JFFS2 and mtd communities cooperate to provide a rich flexible set of solutions to draw from. As is the nature of open source projects, JFFS2 code was used as a reference for some parts of the YAFFS development, particularly for figuring out the VFS interface. Google for further info on JFFS2 and mtd. (***) Some features were added to the guts to enhance WinCE usage. For example, the string comparison function was made configurable to be either strcmp or scricmp because Windows file names are case insensitive.\n<h3>Bio</h3>\nCharles Manning (aka The Embedded Janitor) lives near Christchurch, New Zealand, and has been developing and mopping up embedded systems for twenty years. His hobbies include fly tying and spinning wool. Charles can be reached at <a href=\"denied:mailto:charles@aleph1.co.uk\">charles@aleph1.co.uk</a>. </div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1510930921.994,1,'config:filter.format.full_html node:347 node_view rendered','296'),('entity_view:node:347:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"347\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510930921.975,1,'config:filter.format.full_html node:347 node_view rendered','296'),('entity_view:node:347:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1799:\"<article data-quickedit-entity-id=\"node/347\" role=\"article\" class=\"contextual-region book is-promoted is-sticky teaser clearfix\" about=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\">\n\n  \n      <h2>\n      <a href=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\" rel=\"bookmark\"><span data-quickedit-field-id=\"node/347/title/und/teaser\">YAFFS: the NAND-specific flash file system - Introductory Article</span>\n</a>\n    </h2>\n    <div data-contextual-id=\"node:node=347:changed=1495718512&amp;langcode=en\"></div>\n\n  \n  <div class=\"content\">\n    \n            <div data-quickedit-field-id=\"node/347/body/und/teaser\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">YAFFS stands for \"yet another flash file system\"(*). As far as I am aware, YAFFS is the only file system, under any operating system, that has been designed specifically for use with NAND flash. YAFFS is thus designed to work within the constraints of, and exploit the features of, NAND flash to maximise performance. YAFFS uses journaling, error correction and verification techniques tuned to the way NAND typically fails, to enhance robustness. The result is a file system that exploits low-cost NAND chips and is both fast and robust. YAFFS is highly portable and runs under Linux, ucLinux and Windows CE. YAFFS is an open source project. </div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\" rel=\"tag\" title=\"YAFFS: the NAND-specific flash file system - Introductory Article\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS: the NAND-specific flash file system - Introductory Article</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1516806098.043,1,'config:filter.format.full_html node:347 node_view rendered user:3','297'),('entity_view:node:347:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1561:\"<article role=\"article\" about=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\" class=\"book is-promoted is-sticky teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\" rel=\"bookmark\"><span>YAFFS: the NAND-specific flash file system - Introductory Article</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">YAFFS stands for \"yet another flash file system\"(*). As far as I am aware, YAFFS is the only file system, under any operating system, that has been designed specifically for use with NAND flash. YAFFS is thus designed to work within the constraints of, and exploit the features of, NAND flash to maximise performance. YAFFS uses journaling, error correction and verification techniques tuned to the way NAND typically fails, to enhance robustness. The result is a file system that exploits low-cost NAND chips and is both fast and robust. YAFFS is highly portable and runs under Linux, ucLinux and Windows CE. YAFFS is an open source project. </div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/archives/yaffs-nand-specific-flash-file-system-introductory-article\" rel=\"tag\" title=\"YAFFS: the NAND-specific flash file system - Introductory Article\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS: the NAND-specific flash file system - Introductory Article</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1510926553.957,1,'config:filter.format.full_html node:347 node_view rendered user:3','297'),('entity_view:node:347:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"347\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1516806098.042,1,'config:filter.format.full_html node:347 node_view rendered user:3','297'),('entity_view:node:347:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"347\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:347\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510926553.954,1,'config:filter.format.full_html node:347 node_view rendered user:3','297'),('entity_view:node:348:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b06s_RCoeUeAl5hx4ZBbvlntLVNFM0miLFChlWHocptGU','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:2099:\"<article role=\"article\" about=\"/archives/yaffs1-memory-footprint\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs claims a \'low memory footprint\', but what exactly does that mean? How low is low?</p>\n<p>Calculating an exact footprint is no easy task. There are many dependencies. Here is an approximation for Yaffs1 on Linux, assuming the standard block size of 512bytes per page and 16kB per block.</p>\n<ol>\n<li>Code size. This is dependent on various factors including CPU choice, optiomisation options etc. As a rough guide, the yaffs.o Linux module for x86 is around 55kBytes. This could be made smaller by stripping the debug text and ECC code if you don\'t need that. </li>\n<li>Run-time data structures. Some of these are fixed size and others are generated in runtime and change as your file structures change. As a rough guide though I will give the following:\n<ol type=\"a\">\n <li>Each yaffs partition needs a device structure of less than 1kB + approx 2-4kB stack with the current implementation. </li>\n <li>If shortOpCaches are enabled, then 524 bytes per cache entry (5 to 10 is a good number). </li>\n <li>About 120 bytes per file. (With short name caching enabled) </li>\n <li>About 4 bytes per block of NAND (ie. about 128 bytes per MB of NAND). </li>\n <li>About 4kBytes of RAM per MB of NAND for building the file TNode trees that are used to locate the data chunks. </li>\n</ol>\n </li>\n</ol>\n<p>Thus for a system using a 64MByte NAND and say 500 files you can budget on approx:</p>\n<ul>\n<li>1) 55kBytes </li>\n<li>2a) 5kB </li>\n<li>2b) 3kB (5 cache entries) </li>\n<li>2c) 60kB </li>\n<li>2d) 16kB </li>\n<li>2e) 256kB </li>\n</ul>\n<b>Total 410kBytes</b>\n<p>The last item, the tnodes, is the biggest expense in Yaffs. This can be reduced significantly by using a larger page size.</p>\n<p>There are some opportunities to tune some of these numbers so please feel free to discusss further if required.</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:33:\"/archives/yaffs1-memory-footprint\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/348\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:33:\"/archives/yaffs1-memory-footprint\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:348\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:37:\"<span>Yaffs1 memory footprint</span>\n\";}}',-1,1510771423.396,1,'config:filter.format.full_html config:system.site node:348 node_view rendered user:3','304'),('entity_view:node:348:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"348\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:348\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510771423.379,1,'config:filter.format.full_html config:system.site node:348 node_view rendered user:3','304'),('entity_view:node:348:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1967:\"<span>Yaffs1 memory footprint</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs claims a \'low memory footprint\', but what exactly does that mean? How low is low?</p>\n<p>Calculating an exact footprint is no easy task. There are many dependencies. Here is an approximation for Yaffs1 on Linux, assuming the standard block size of 512bytes per page and 16kB per block.</p>\n<ol>\n<li>Code size. This is dependent on various factors including CPU choice, optiomisation options etc. As a rough guide, the yaffs.o Linux module for x86 is around 55kBytes. This could be made smaller by stripping the debug text and ECC code if you don\'t need that. </li>\n<li>Run-time data structures. Some of these are fixed size and others are generated in runtime and change as your file structures change. As a rough guide though I will give the following:\n<ol type=\"a\">\n <li>Each yaffs partition needs a device structure of less than 1kB + approx 2-4kB stack with the current implementation. </li>\n <li>If shortOpCaches are enabled, then 524 bytes per cache entry (5 to 10 is a good number). </li>\n <li>About 120 bytes per file. (With short name caching enabled) </li>\n <li>About 4 bytes per block of NAND (ie. about 128 bytes per MB of NAND). </li>\n <li>About 4kBytes of RAM per MB of NAND for building the file TNode trees that are used to locate the data chunks. </li>\n</ol>\n </li>\n</ol>\n<p>Thus for a system using a 64MByte NAND and say 500 files you can budget on approx:</p>\n<ul>\n<li>1) 55kBytes </li>\n<li>2a) 5kB </li>\n<li>2b) 3kB (5 cache entries) </li>\n<li>2c) 60kB </li>\n<li>2d) 16kB </li>\n<li>2e) 256kB </li>\n</ul>\n<b>Total 410kBytes</b>\n<p>The last item, the tnodes, is the biggest expense in Yaffs. This can be reduced significantly by using a larger page size.</p>\n<p>There are some opportunities to tune some of these numbers so please feel free to discusss further if required.</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:348\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113460.179,1,'config:filter.format.full_html node:348 node_view rendered','297'),('entity_view:node:348:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"348\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:348\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113460.177,1,'config:filter.format.full_html node:348 node_view rendered','297'),('entity_view:node:348:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:969:\"<article role=\"article\" about=\"/archives/yaffs1-memory-footprint\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/archives/yaffs1-memory-footprint\" rel=\"bookmark\"><span>Yaffs1 memory footprint</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">Yaffs claims a \'low memory footprint\', but what exactly does that mean? How low is low?\n<p>Calculating an exact footprint is no easy task. There are many dependencies. Here is an approximation for Yaffs1 on Linux, assuming the standard block size of 512bytes per page and 16kB per block.</p>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/archives/yaffs1-memory-footprint\" rel=\"tag\" title=\"Yaffs1 memory footprint\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about Yaffs1 memory footprint</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:348\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.553,1,'config:filter.format.full_html node:348 node_view rendered user:3','298'),('entity_view:node:348:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"348\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:348\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.551,1,'config:filter.format.full_html node:348 node_view rendered user:3','298'),('entity_view:node:351:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0EqhumKfGKmez6viHJcv4I5PulSdmAp5MfwmIjiSDYCM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3543:\"<article role=\"article\" about=\"/yaffs-debugging\" typeof=\"schema:WebPage\" class=\"page is-promoted is-sticky full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"YAFFS Debugging\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<h1>How to control debugging in yaffs</h1>\n<p>YAFFS provides a debugging mechanism which can be controlled at runtime if you have access to /proc, normally via a shell. If you need to trace things before you get to a shell, then you can set default trace options at compile time.</p>\n<h2>Available Trace Flags</h2>\n<table>\n<tr>\n <th>name</th>\n <th>C #define</th>\n <th>bitmask value</th>\n</tr>\n<tr>\n <td>error </td>\n <td>YAFFS_TRACE_ERROR </td>\n <td>0x00000001</td>\n</tr>\n<tr>\n <td>os </td>\n <td>YAFFS_TRACE_OS </td>\n <td>0x00000002</td>\n</tr>\n<tr>\n <td>allocate </td>\n <td>YAFFS_TRACE_ALLOCATE </td>\n <td>0x00000004</td>\n</tr>\n<tr>\n <td>scan </td>\n <td>YAFFS_TRACE_SCAN </td>\n <td>0x00000008</td>\n</tr>\n<tr>\n <td>bad_blocks </td>\n <td>YAFFS_TRACE_BAD_BLOCKS </td>\n <td>0x00000010</td>\n</tr>\n<tr>\n <td>erase </td>\n <td>YAFFS_TRACE_ERASE </td>\n <td>0x00000020</td>\n</tr>\n<tr>\n <td>gc </td>\n <td>YAFFS_TRACE_GC </td>\n <td>0x00000040</td>\n</tr>\n<tr>\n <td>write </td>\n <td>YAFFS_TRACE_WRITE </td>\n <td>0x00000080</td>\n</tr>\n<tr>\n <td>tracing </td>\n <td>YAFFS_TRACE_TRACING </td>\n <td>0x00000100</td>\n</tr>\n<tr>\n <td>deletion </td>\n <td>YAFFS_TRACE_DELETION </td>\n <td>0x00000200</td>\n</tr>\n<tr>\n <td>buffers </td>\n <td>YAFFS_TRACE_BUFFERS </td>\n <td>0x00000400</td>\n</tr>\n<tr>\n <td>nandaccess </td>\n <td>YAFFS_TRACE_NANDACCESS </td>\n <td>0x00000800</td>\n</tr>\n<tr>\n <td>gc_detail </td>\n <td>YAFFS_TRACE_GC_DETAIL </td>\n <td>0x00001000</td>\n</tr>\n<tr>\n <td>scan_debug </td>\n <td>YAFFS_TRACE_SCAN_DEBUG </td>\n <td>0x00002000</td>\n</tr>\n<tr>\n <td>mtd </td>\n <td>YAFFS_TRACE_MTD </td>\n <td>0x00004000</td>\n</tr>\n<tr>\n <td>always </td>\n <td>YAFFS_TRACE_ALWAYS </td>\n <td>0x40000000</td>\n</tr>\n<tr>\n <td>bug </td>\n <td>YAFFS_TRACE_BUG </td>\n <td>0x80000000</td>\n</tr>\n</table>\n<h2>Flag meanings</h2>\n<p>The flags cover possible debugging messages from various aspects of the filesystem - initial scanning, mtd interface, writing, nand access, garbage collection, OS interaction etc. Turning on everything results an awful lot of trace info, so it is usually best to just enable a few relevant flags.</p>\n<h2>Setting flags at runtime</h2>\n<p>The flags can be set or cleared by echoing the name of the flag into /proc/yaffs with a \'+\' or \'-\':<br />\n<code>echo +os-write &gt; /proc/yaffs</code></p>\n<p>It can be set to to all or none using \'=\', and then flags can be added or removed:<br />\n<code>echo =none+os+write &gt; /proc/yaffs</code></p>\n<p>And you can use numerical values, if you are so inclined (using standard C format):<br />\n<code>echo 0xf00001 &gt; /proc/yaffs</code></p>\n<p>So<br />\n<code>echo all &gt; /proc/yaffs</code><br />\nwill turn all tracing on</p>\n<p><b>Note</b> that you only see the output showing you the current trace state if the \'always\' (YAFFS_TRACE_ALWAYS) flag is set, so to see what you are doing do this:<br />\n<code>echo +always &gt; /proc/yaffs</code></p>\n<h2>Setting flags at compile time</h2>\n<p>Flags can be set in the code at compile-time by setting <code>yaffs_traceMask</code> in <code>yaffs_fs.c</code> (add new flags to <code>always</code> and <code>bad_blocks</code> which are set by default)</p>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:16:\"/yaffs-debugging\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/351\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:16:\"/yaffs-debugging\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:351\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:52:\"<span property=\"schema:name\">YAFFS Debugging</span>\n\";}}',-1,1510657359.747,1,'config:filter.format.full_html config:system.site node:351 node_view rendered user:3','301'),('entity_view:node:351:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"351\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:351\";i:3;s:9:\"node_view\";i:4;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510657359.724,1,'config:filter.format.full_html config:system.site node:351 node_view rendered user:3','301'),('entity_view:node:351:rss:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3577:\"<span property=\"schema:name\">YAFFS Debugging</span>\n<span rel=\"schema:author\"><span lang=\"\" about=\"/user/wookey\" typeof=\"schema:Person\" property=\"schema:name\" datatype=\"\">Wookey</span></span>\n<span property=\"schema:dateCreated\" content=\"2006-09-15T21:32:13+00:00\">15 September, 2006 - 10:32pm</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<h1>How to control debugging in yaffs</h1>\n<p>YAFFS provides a debugging mechanism which can be controlled at runtime if you have access to /proc, normally via a shell. If you need to trace things before you get to a shell, then you can set default trace options at compile time.</p>\n<h2>Available Trace Flags</h2>\n<table>\n<tr>\n <th>name</th>\n <th>C #define</th>\n <th>bitmask value</th>\n</tr>\n<tr>\n <td>error </td>\n <td>YAFFS_TRACE_ERROR </td>\n <td>0x00000001</td>\n</tr>\n<tr>\n <td>os </td>\n <td>YAFFS_TRACE_OS </td>\n <td>0x00000002</td>\n</tr>\n<tr>\n <td>allocate </td>\n <td>YAFFS_TRACE_ALLOCATE </td>\n <td>0x00000004</td>\n</tr>\n<tr>\n <td>scan </td>\n <td>YAFFS_TRACE_SCAN </td>\n <td>0x00000008</td>\n</tr>\n<tr>\n <td>bad_blocks </td>\n <td>YAFFS_TRACE_BAD_BLOCKS </td>\n <td>0x00000010</td>\n</tr>\n<tr>\n <td>erase </td>\n <td>YAFFS_TRACE_ERASE </td>\n <td>0x00000020</td>\n</tr>\n<tr>\n <td>gc </td>\n <td>YAFFS_TRACE_GC </td>\n <td>0x00000040</td>\n</tr>\n<tr>\n <td>write </td>\n <td>YAFFS_TRACE_WRITE </td>\n <td>0x00000080</td>\n</tr>\n<tr>\n <td>tracing </td>\n <td>YAFFS_TRACE_TRACING </td>\n <td>0x00000100</td>\n</tr>\n<tr>\n <td>deletion </td>\n <td>YAFFS_TRACE_DELETION </td>\n <td>0x00000200</td>\n</tr>\n<tr>\n <td>buffers </td>\n <td>YAFFS_TRACE_BUFFERS </td>\n <td>0x00000400</td>\n</tr>\n<tr>\n <td>nandaccess </td>\n <td>YAFFS_TRACE_NANDACCESS </td>\n <td>0x00000800</td>\n</tr>\n<tr>\n <td>gc_detail </td>\n <td>YAFFS_TRACE_GC_DETAIL </td>\n <td>0x00001000</td>\n</tr>\n<tr>\n <td>scan_debug </td>\n <td>YAFFS_TRACE_SCAN_DEBUG </td>\n <td>0x00002000</td>\n</tr>\n<tr>\n <td>mtd </td>\n <td>YAFFS_TRACE_MTD </td>\n <td>0x00004000</td>\n</tr>\n<tr>\n <td>always </td>\n <td>YAFFS_TRACE_ALWAYS </td>\n <td>0x40000000</td>\n</tr>\n<tr>\n <td>bug </td>\n <td>YAFFS_TRACE_BUG </td>\n <td>0x80000000</td>\n</tr>\n</table>\n<h2>Flag meanings</h2>\n<p>The flags cover possible debugging messages from various aspects of the filesystem - initial scanning, mtd interface, writing, nand access, garbage collection, OS interaction etc. Turning on everything results an awful lot of trace info, so it is usually best to just enable a few relevant flags.</p>\n<h2>Setting flags at runtime</h2>\n<p>The flags can be set or cleared by echoing the name of the flag into /proc/yaffs with a \'+\' or \'-\':<br />\n<code>echo +os-write &gt; /proc/yaffs</code></p>\n<p>It can be set to to all or none using \'=\', and then flags can be added or removed:<br />\n<code>echo =none+os+write &gt; /proc/yaffs</code></p>\n<p>And you can use numerical values, if you are so inclined (using standard C format):<br />\n<code>echo 0xf00001 &gt; /proc/yaffs</code></p>\n<p>So<br />\n<code>echo all &gt; /proc/yaffs</code><br />\nwill turn all tracing on</p>\n<p><b>Note</b> that you only see the output showing you the current trace state if the \'always\' (YAFFS_TRACE_ALWAYS) flag is set, so to see what you are doing do this:<br />\n<code>echo +always &gt; /proc/yaffs</code></p>\n<h2>Setting flags at compile time</h2>\n<p>Flags can be set in the code at compile-time by setting <code>yaffs_traceMask</code> in <code>yaffs_fs.c</code> (add new flags to <code>always</code> and <code>bad_blocks</code> which are set by default)</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1511118220.208,1,'config:filter.format.full_html node:351 node_view rendered user:3','295'),('entity_view:node:351:rss:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"351\";i:3;s:3:\"rss\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511118220.204,1,'config:filter.format.full_html node:351 node_view rendered user:3','295'),('entity_view:node:351:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3329:\"<span property=\"schema:name\">YAFFS Debugging</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<h1>How to control debugging in yaffs</h1>\n<p>YAFFS provides a debugging mechanism which can be controlled at runtime if you have access to /proc, normally via a shell. If you need to trace things before you get to a shell, then you can set default trace options at compile time.</p>\n<h2>Available Trace Flags</h2>\n<table>\n<tr>\n <th>name</th>\n <th>C #define</th>\n <th>bitmask value</th>\n</tr>\n<tr>\n <td>error </td>\n <td>YAFFS_TRACE_ERROR </td>\n <td>0x00000001</td>\n</tr>\n<tr>\n <td>os </td>\n <td>YAFFS_TRACE_OS </td>\n <td>0x00000002</td>\n</tr>\n<tr>\n <td>allocate </td>\n <td>YAFFS_TRACE_ALLOCATE </td>\n <td>0x00000004</td>\n</tr>\n<tr>\n <td>scan </td>\n <td>YAFFS_TRACE_SCAN </td>\n <td>0x00000008</td>\n</tr>\n<tr>\n <td>bad_blocks </td>\n <td>YAFFS_TRACE_BAD_BLOCKS </td>\n <td>0x00000010</td>\n</tr>\n<tr>\n <td>erase </td>\n <td>YAFFS_TRACE_ERASE </td>\n <td>0x00000020</td>\n</tr>\n<tr>\n <td>gc </td>\n <td>YAFFS_TRACE_GC </td>\n <td>0x00000040</td>\n</tr>\n<tr>\n <td>write </td>\n <td>YAFFS_TRACE_WRITE </td>\n <td>0x00000080</td>\n</tr>\n<tr>\n <td>tracing </td>\n <td>YAFFS_TRACE_TRACING </td>\n <td>0x00000100</td>\n</tr>\n<tr>\n <td>deletion </td>\n <td>YAFFS_TRACE_DELETION </td>\n <td>0x00000200</td>\n</tr>\n<tr>\n <td>buffers </td>\n <td>YAFFS_TRACE_BUFFERS </td>\n <td>0x00000400</td>\n</tr>\n<tr>\n <td>nandaccess </td>\n <td>YAFFS_TRACE_NANDACCESS </td>\n <td>0x00000800</td>\n</tr>\n<tr>\n <td>gc_detail </td>\n <td>YAFFS_TRACE_GC_DETAIL </td>\n <td>0x00001000</td>\n</tr>\n<tr>\n <td>scan_debug </td>\n <td>YAFFS_TRACE_SCAN_DEBUG </td>\n <td>0x00002000</td>\n</tr>\n<tr>\n <td>mtd </td>\n <td>YAFFS_TRACE_MTD </td>\n <td>0x00004000</td>\n</tr>\n<tr>\n <td>always </td>\n <td>YAFFS_TRACE_ALWAYS </td>\n <td>0x40000000</td>\n</tr>\n<tr>\n <td>bug </td>\n <td>YAFFS_TRACE_BUG </td>\n <td>0x80000000</td>\n</tr>\n</table>\n<h2>Flag meanings</h2>\n<p>The flags cover possible debugging messages from various aspects of the filesystem - initial scanning, mtd interface, writing, nand access, garbage collection, OS interaction etc. Turning on everything results an awful lot of trace info, so it is usually best to just enable a few relevant flags.</p>\n<h2>Setting flags at runtime</h2>\n<p>The flags can be set or cleared by echoing the name of the flag into /proc/yaffs with a \'+\' or \'-\':<br />\n<code>echo +os-write &gt; /proc/yaffs</code></p>\n<p>It can be set to to all or none using \'=\', and then flags can be added or removed:<br />\n<code>echo =none+os+write &gt; /proc/yaffs</code></p>\n<p>And you can use numerical values, if you are so inclined (using standard C format):<br />\n<code>echo 0xf00001 &gt; /proc/yaffs</code></p>\n<p>So<br />\n<code>echo all &gt; /proc/yaffs</code><br />\nwill turn all tracing on</p>\n<p><b>Note</b> that you only see the output showing you the current trace state if the \'always\' (YAFFS_TRACE_ALWAYS) flag is set, so to see what you are doing do this:<br />\n<code>echo +always &gt; /proc/yaffs</code></p>\n<h2>Setting flags at compile time</h2>\n<p>Flags can be set in the code at compile-time by setting <code>yaffs_traceMask</code> in <code>yaffs_fs.c</code> (add new flags to <code>always</code> and <code>bad_blocks</code> which are set by default)</p>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512112990.116,1,'config:filter.format.full_html node:351 node_view rendered','294'),('entity_view:node:351:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"351\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512112990.114,1,'config:filter.format.full_html node:351 node_view rendered','294'),('entity_view:node:351:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1212:\"<article data-quickedit-entity-id=\"node/351\" role=\"article\" class=\"contextual-region page is-promoted is-sticky teaser clearfix\" about=\"/yaffs-debugging\" typeof=\"schema:WebPage\">\n\n  \n      <h2>\n      <a href=\"/yaffs-debugging\" rel=\"bookmark\"><span property=\"schema:name\" data-quickedit-field-id=\"node/351/title/und/teaser\">YAFFS Debugging</span>\n</a>\n    </h2>\n    <div data-contextual-id=\"node:node=351:changed=1201700928&amp;langcode=en\"></div>  <span property=\"schema:name\" content=\"YAFFS Debugging\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" data-quickedit-field-id=\"node/351/body/und/teaser\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>YAFFS provides a debugging mechanism which can be controlled at runtime, or set at build time. This page descirbes the options available and how to use them, for when you need to do some troubleshooting.</p>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-debugging\" rel=\"tag\" title=\"YAFFS Debugging\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS Debugging</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1516806098.028,1,'config:filter.format.full_html node:351 node_view rendered user:3','295'),('entity_view:node:351:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:974:\"<article role=\"article\" about=\"/yaffs-debugging\" typeof=\"schema:WebPage\" class=\"page is-promoted is-sticky teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-debugging\" rel=\"bookmark\"><span property=\"schema:name\">YAFFS Debugging</span>\n</a>\n    </h2>\n      <span property=\"schema:name\" content=\"YAFFS Debugging\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>YAFFS provides a debugging mechanism which can be controlled at runtime, or set at build time. This page descirbes the options available and how to use them, for when you need to do some troubleshooting.</p>\n</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-debugging\" rel=\"tag\" title=\"YAFFS Debugging\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS Debugging</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}}',-1,1510926553.940,1,'config:filter.format.full_html node:351 node_view rendered user:3','295'),('entity_view:node:351:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"351\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1516806098.027,1,'config:filter.format.full_html node:351 node_view rendered user:3','295'),('entity_view:node:351:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"351\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:351\";i:2;s:9:\"node_view\";i:3;s:6:\"user:3\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510926553.937,1,'config:filter.format.full_html node:351 node_view rendered user:3','295'),('entity_view:node:353:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa22787aMbjLYqKA7G3Lb2zeTDU5yykz7Npfq6w_yWTuZ27c','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3580:\"<article data-quickedit-entity-id=\"node/353\" role=\"article\" class=\"contextual-region page is-promoted full clearfix\" about=\"/yaffs-licence-faqs\" typeof=\"schema:WebPage\">\n\n  \n    <div data-contextual-id=\"node:node=353:changed=1496398001&amp;langcode=en\"></div>  <span property=\"schema:name\" content=\"Yaffs Licence FAQs\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" data-quickedit-field-id=\"node/353/body/und/full\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><h3>Do we need a Licence for Yaffs ?</h3>\n\n<p>Yaffs is and will remain free of charge from <a href=\"/node/346\">our web site</a>.  You can grab the latest version and work and test and play with it without charge.<br /><br />\nIt comes with a GNU General Public Public Licence, version 2,  : <a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">http://www.gnu.org/licenses/gpl-2.0.html</a>   As usual with GPL work, if you sell or distribute work embodying Yaffs you also have an obligation to disclose your associated Source Code to anyone who asks.</p>\n\n<h3>What if we link other code to Yaffs ?</h3>\n\n<p>The GPL obligation is not affected by the kind of linking between Yaffs and any associated code, nor is it affected by your disclosure of modifications you make to the code and release back into the main line.  For example if you use Yaffs under GPL with Linux you should treat it just the same as Linux code; if you want to publish a patched kernel please do.</p>\n\n<h3>We do not want to disclose Source Code</h3>\n\n<p>Because Aleph One Limited created and owns Yaffs we can sell you a Licence to use Yaffs which does not have the GNU GPLV2 obligations.  Such a licence is always perpetual, world-wide, non-exclusive. and free of any continuing royalty obligations.  It is paid for by a single fee at the time of signing a Licence Agreement between you and Aleph One.</p>\n\n<p>The fee depends on the number of distinct Products in which Yaffs will be used, and there is a base price of GBP £10,000.  If more than one Product is included in the same Licence there is usually a reduction in the second fee.</p>\n\n<h3>What do we do next ?</h3>\n\n<p>Tell us some more about the product you will use Yaffs in.  We like the Agreement to contain a brief description of the hardware involved and the part number or product name and any internal code name.  If you want us to sign a Non-Disclosure Agreement before you give us these details, send it to us; we are used to signing them.  We can send you a standard form if you do not have one.</p>\n\n<p>Then we will send a draft Agreement and price to you, and negotiate until we are both satisfied.  Next we each sign and exchange copies of the Agreement and you pay us.</p>\n\n<h3>What happens when we sign a Licence ?</h3>\n\n<p>When we have both signed a Licence Agreement and you have paid us we provide you with a tarball of files whose headers show that this code is under a proprietary Licence which you have bought from us.  You use these files to create the FS code you embed in your Products.</p>\n\n<h3>Is there more information about licensing?</h3>\n\n<p>Yes there is!</p>\n\n<ul><li>More detail about the <a href=\"/yaffs-licence-sample\">definition of a Product is given </a><a href=\"/node/32\">i</a><a href=\"/yaffs-licence-sample\">n our sample commercial licence</a>. </li>\n	<li>Notes which give <a href=\"/licences-more-background-and-detail\">further background and detail about our licensing</a>.</li>\n</ul><p> </p>\n\n<p> </p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:3:{s:14:\"html_head_link\";a:12:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:19:\"/yaffs-licence-faqs\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/353\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"delete-form\";s:4:\"href\";s:16:\"/node/353/delete\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"edit-form\";s:4:\"href\";s:14:\"/node/353/edit\";}i:1;b:1;}i:4;a:2:{i:0;a:2:{s:3:\"rel\";s:15:\"version-history\";s:4:\"href\";s:19:\"/node/353/revisions\";}i:1;b:1;}i:5;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:19:\"/yaffs-licence-faqs\";}i:1;b:1;}i:6;a:2:{i:0;a:2:{s:3:\"rel\";s:17:\"book-outline-form\";s:4:\"href\";s:17:\"/node/353/outline\";}i:1;b:1;}i:7;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"book-remove-form\";s:4:\"href\";s:24:\"/node/353/outline/remove\";}i:1;b:1;}i:8;a:2:{i:0;a:2:{s:3:\"rel\";s:10:\"devel-load\";s:4:\"href\";s:15:\"/devel/node/353\";}i:1;b:1;}i:9;a:2:{i:0;a:2:{s:3:\"rel\";s:12:\"devel-render\";s:4:\"href\";s:22:\"/devel/node/353/render\";}i:1;b:1;}i:10;a:2:{i:0;a:2:{s:3:\"rel\";s:16:\"devel-definition\";s:4:\"href\";s:26:\"/devel/node/353/definition\";}i:1;b:1;}i:11;a:2:{i:0;a:2:{s:3:\"rel\";s:11:\"token-devel\";s:4:\"href\";s:21:\"/node/353/devel/token\";}i:1;b:1;}}s:7:\"library\";a:1:{i:0;s:20:\"history/mark-as-read\";}s:14:\"drupalSettings\";a:1:{s:7:\"history\";a:1:{s:17:\"nodesToMarkAsRead\";a:1:{i:353;b:1;}}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:353\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:105:\"<span property=\"schema:name\" data-quickedit-field-id=\"node/353/title/und/full\">Yaffs Licence FAQs</span>\n\";}}',-1,1510656765.805,1,'config:filter.format.basic_html config:system.site node:353 node_view rendered user:4','273'),('entity_view:node:353:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0NVH6wHNJmJvA9qvtpldBPwWQEneQ6P8tcgdPH8r5ZPo','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3396:\"<article role=\"article\" about=\"/yaffs-licence-faqs\" typeof=\"schema:WebPage\" class=\"page is-promoted full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Licence FAQs\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><h3>Do we need a Licence for Yaffs ?</h3>\n\n<p>Yaffs is and will remain free of charge from <a href=\"/node/346\">our web site</a>.  You can grab the latest version and work and test and play with it without charge.<br /><br />\nIt comes with a GNU General Public Public Licence, version 2,  : <a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">http://www.gnu.org/licenses/gpl-2.0.html</a>   As usual with GPL work, if you sell or distribute work embodying Yaffs you also have an obligation to disclose your associated Source Code to anyone who asks.</p>\n\n<h3>What if we link other code to Yaffs ?</h3>\n\n<p>The GPL obligation is not affected by the kind of linking between Yaffs and any associated code, nor is it affected by your disclosure of modifications you make to the code and release back into the main line.  For example if you use Yaffs under GPL with Linux you should treat it just the same as Linux code; if you want to publish a patched kernel please do.</p>\n\n<h3>We do not want to disclose Source Code</h3>\n\n<p>Because Aleph One Limited created and owns Yaffs we can sell you a Licence to use Yaffs which does not have the GNU GPLV2 obligations.  Such a licence is always perpetual, world-wide, non-exclusive. and free of any continuing royalty obligations.  It is paid for by a single fee at the time of signing a Licence Agreement between you and Aleph One.</p>\n\n<p>The fee depends on the number of distinct Products in which Yaffs will be used, and there is a base price of GBP £10,000.  If more than one Product is included in the same Licence there is usually a reduction in the second fee.</p>\n\n<h3>What do we do next ?</h3>\n\n<p>Tell us some more about the product you will use Yaffs in.  We like the Agreement to contain a brief description of the hardware involved and the part number or product name and any internal code name.  If you want us to sign a Non-Disclosure Agreement before you give us these details, send it to us; we are used to signing them.  We can send you a standard form if you do not have one.</p>\n\n<p>Then we will send a draft Agreement and price to you, and negotiate until we are both satisfied.  Next we each sign and exchange copies of the Agreement and you pay us.</p>\n\n<h3>What happens when we sign a Licence ?</h3>\n\n<p>When we have both signed a Licence Agreement and you have paid us we provide you with a tarball of files whose headers show that this code is under a proprietary Licence which you have bought from us.  You use these files to create the FS code you embed in your Products.</p>\n\n<h3>Is there more information about licensing?</h3>\n\n<p>Yes there is!</p>\n\n<ul><li>More detail about the <a href=\"/yaffs-licence-sample\">definition of a Product is given </a><a href=\"/node/32\">i</a><a href=\"/yaffs-licence-sample\">n our sample commercial licence</a>. </li>\n	<li>Notes which give <a href=\"/licences-more-background-and-detail\">further background and detail about our licensing</a>.</li>\n</ul><p> </p>\n\n<p> </p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:19:\"/yaffs-licence-faqs\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/353\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:19:\"/yaffs-licence-faqs\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:353\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:55:\"<span property=\"schema:name\">Yaffs Licence FAQs</span>\n\";}}',-1,1510688318.411,1,'config:filter.format.basic_html config:system.site node:353 node_view rendered user:4','273'),('entity_view:node:353:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=306382ab744615fb554ac82b8f9e8907adc4fe4a2b05c5249851e41934fa227b:[user.roles:anonymous]=1','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"353\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:353\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510656765.803,1,'config:filter.format.basic_html config:system.site node:353 node_view rendered user:4','273'),('entity_view:node:353:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"353\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:353\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510688318.379,1,'config:filter.format.basic_html config:system.site node:353 node_view rendered user:4','273'),('entity_view:node:353:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3189:\"<span property=\"schema:name\">Yaffs Licence FAQs</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><h3>Do we need a Licence for Yaffs ?</h3>\n\n<p>Yaffs is and will remain free of charge from <a href=\"/node/346\">our web site</a>.  You can grab the latest version and work and test and play with it without charge.<br /><br />\nIt comes with a GNU General Public Public Licence, version 2,  : <a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">http://www.gnu.org/licenses/gpl-2.0.html</a>   As usual with GPL work, if you sell or distribute work embodying Yaffs you also have an obligation to disclose your associated Source Code to anyone who asks.</p>\n\n<h3>What if we link other code to Yaffs ?</h3>\n\n<p>The GPL obligation is not affected by the kind of linking between Yaffs and any associated code, nor is it affected by your disclosure of modifications you make to the code and release back into the main line.  For example if you use Yaffs under GPL with Linux you should treat it just the same as Linux code; if you want to publish a patched kernel please do.</p>\n\n<h3>We do not want to disclose Source Code</h3>\n\n<p>Because Aleph One Limited created and owns Yaffs we can sell you a Licence to use Yaffs which does not have the GNU GPLV2 obligations.  Such a licence is always perpetual, world-wide, non-exclusive. and free of any continuing royalty obligations.  It is paid for by a single fee at the time of signing a Licence Agreement between you and Aleph One.</p>\n\n<p>The fee depends on the number of distinct Products in which Yaffs will be used, and there is a base price of GBP £10,000.  If more than one Product is included in the same Licence there is usually a reduction in the second fee.</p>\n\n<h3>What do we do next ?</h3>\n\n<p>Tell us some more about the product you will use Yaffs in.  We like the Agreement to contain a brief description of the hardware involved and the part number or product name and any internal code name.  If you want us to sign a Non-Disclosure Agreement before you give us these details, send it to us; we are used to signing them.  We can send you a standard form if you do not have one.</p>\n\n<p>Then we will send a draft Agreement and price to you, and negotiate until we are both satisfied.  Next we each sign and exchange copies of the Agreement and you pay us.</p>\n\n<h3>What happens when we sign a Licence ?</h3>\n\n<p>When we have both signed a Licence Agreement and you have paid us we provide you with a tarball of files whose headers show that this code is under a proprietary Licence which you have bought from us.  You use these files to create the FS code you embed in your Products.</p>\n\n<h3>Is there more information about licensing?</h3>\n\n<p>Yes there is!</p>\n\n<ul><li>More detail about the <a href=\"/yaffs-licence-sample\">definition of a Product is given </a><a href=\"/node/32\">i</a><a href=\"/yaffs-licence-sample\">n our sample commercial licence</a>. </li>\n	<li>Notes which give <a href=\"/licences-more-background-and-detail\">further background and detail about our licensing</a>.</li>\n</ul><p> </p>\n\n<p> </p></div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:353\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512112990.133,1,'config:filter.format.basic_html node:353 node_view rendered','264'),('entity_view:node:353:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"353\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:353\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512112990.132,1,'config:filter.format.basic_html node:353 node_view rendered','264'),('entity_view:node:353:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:859:\"<article role=\"article\" about=\"/yaffs-licence-faqs\" typeof=\"schema:WebPage\" class=\"page is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-licence-faqs\" rel=\"bookmark\"><span property=\"schema:name\">Yaffs Licence FAQs</span>\n</a>\n    </h2>\n      <span property=\"schema:name\" content=\"Yaffs Licence FAQs\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>Some questions about the commercial licence for Yaffs and how we arrive at one.</p></div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-licence-faqs\" rel=\"tag\" title=\"Yaffs Licence FAQs\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about Yaffs Licence FAQs</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:353\";i:2;s:9:\"node_view\";i:3;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.537,1,'config:filter.format.basic_html node:353 node_view rendered user:4','267'),('entity_view:node:353:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"353\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:353\";i:2;s:9:\"node_view\";i:3;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.535,1,'config:filter.format.basic_html node:353 node_view rendered user:4','267'),('entity_view:node:357:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0FQcD2Wq7LZtKTKEgGYFN7qtq5N37FQoi6Rj2jSZ7Dbc','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:777:\"<article role=\"article\" about=\"/yaffs-flash-file-system-embedded-use\" typeof=\"schema:Article\" class=\"article full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs - A Flash File System For Embedded Use\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash.  It is widely used with Linux, RTOSs, or no OS at all, in consumer devices. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.</p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:37:\"/yaffs-flash-file-system-embedded-use\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/357\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:37:\"/yaffs-flash-file-system-embedded-use\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:357\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:81:\"<span property=\"schema:name\">Yaffs - A Flash File System For Embedded Use</span>\n\";}}',-1,1511816285.164,1,'config:filter.format.basic_html config:system.site node:357 node_view rendered user:1','279'),('entity_view:node:357:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"357\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:357\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511816285.082,1,'config:filter.format.basic_html config:system.site node:357 node_view rendered user:1','279'),('entity_view:node:357:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:561:\"<span property=\"schema:name\">Yaffs - A Flash File System For Embedded Use</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash.  It is widely used with Linux, RTOSs, or no OS at all, in consumer devices. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.</p></div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:357\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113382.169,1,'config:filter.format.basic_html node:357 node_view rendered','266'),('entity_view:node:357:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"357\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:357\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113382.168,1,'config:filter.format.basic_html node:357 node_view rendered','266'),('entity_view:node:358:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0o4BPtNm6uHEHDf3HLG-iqL5Utny9LbNChIAHN-AhKhQ','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:712:\"<article role=\"article\" about=\"/internal-history-yaffs\" typeof=\"schema:Article\" class=\"article is-promoted full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"The Internal History of YAFFS\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">The following archive documents will give you some insight into the internal history of YAFFS\n<ul>\n<li><a href=\"/node/39\">YAFFS Development notes</a>.</li>\n<li><a href=\"/node/42\">State of NAND MTD driver at start of project</a></li>\n<li><a href=\"/node/42\">YAFFS History</a></li>\n</ul>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:23:\"/internal-history-yaffs\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/358\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:23:\"/internal-history-yaffs\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:358\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:66:\"<span property=\"schema:name\">The Internal History of YAFFS</span>\n\";}}',-1,1510657432.106,1,'config:filter.format.full_html config:system.site node:358 node_view rendered user:1','308'),('entity_view:node:358:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"358\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:358\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510657432.103,1,'config:filter.format.full_html config:system.site node:358 node_view rendered user:1','308'),('entity_view:node:358:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:498:\"<span property=\"schema:name\">The Internal History of YAFFS</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">The following archive documents will give you some insight into the internal history of YAFFS\n<ul>\n<li><a href=\"/node/39\">YAFFS Development notes</a>.</li>\n<li><a href=\"/node/42\">State of NAND MTD driver at start of project</a></li>\n<li><a href=\"/node/42\">YAFFS History</a></li>\n</ul>\n</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:358\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113382.196,1,'config:filter.format.full_html node:358 node_view rendered','295'),('entity_view:node:358:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"358\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:358\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113382.193,1,'config:filter.format.full_html node:358 node_view rendered','295'),('entity_view:node:358:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:907:\"<article role=\"article\" about=\"/internal-history-yaffs\" typeof=\"schema:Article\" class=\"article is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/internal-history-yaffs\" rel=\"bookmark\"><span property=\"schema:name\">The Internal History of YAFFS</span>\n</a>\n    </h2>\n      <span property=\"schema:name\" content=\"The Internal History of YAFFS\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">A brief look into the history of YAFFS through a look at the the internals.</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/internal-history-yaffs\" rel=\"tag\" title=\"The Internal History of YAFFS\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about The Internal History of YAFFS</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:358\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510786953.518,1,'config:filter.format.full_html node:358 node_view rendered user:1','302'),('entity_view:node:358:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"358\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:358\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786953.498,1,'config:filter.format.full_html node:358 node_view rendered user:1','302'),('entity_view:node:359:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b02SbQrhkqWDd8p8kTOkBZugivFmGA1xcpBbQOb3aeT9g','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:2087:\"<article role=\"article\" about=\"/comparison-between-yaffs-yaffs2-and-jffs2\" typeof=\"schema:Article\" class=\"article is-promoted full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Comparison between Yaffs (Yaffs2) and JFFS2\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>On Friday 02 March 2007 10:59, Charles F Johnson wrote:</p>\n\n<p>\"I\'m trying to understand the relative merits of JFFS2 vs YAFFS2. The response on the YAFFS mailing list is quite positive as far as leading me to believe that there are actual products shipping.\"</p>\n\n<p><br />\nCharles Manning replied:<br />\nAt a technical level, it is very difficult to make X vs Y comparisons because there are many factors involved which manifest differently on different systems therefore \'your mileage will vary\'. But, as a general rule of thumb, the following might help:</p>\n\n<p>1) YAFFS uses less run-time RAM to hold its state, so YAFFS scales better than JFFS2. There are quite a few systems using large NAND arrays (the largest partitions I know of are around the 6Gbyte mark).<br /><br />\n2) YAFFS garbage collection is simpler and faster, typically making for better performance under hard writing.<br /><br />\n3) YAFFS uses a whole page per file for headers, and does not provide compression. This means that JFFS2 is probably a better fit to small partitions. The flip side is that a lot of data (eg. MP3) does not compress very well, and enabling compression really hurts performance.<br /><br />\n4) While YAFFS has been used on NOR, it does not fit very well (because YAFFS does not use erase suspend). Thus if you\'re using smaller NAND partitions and using JFFS2 on NOR, then a JFFS2-only solution is very appealing.<br /><br />\nAll the above can generally boil down to: If you\'re using less than about 64MB the pain vs gain might play in favour of JFFS2. As you increase partition size, YAFFS makes more and more sense.</p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:42:\"/comparison-between-yaffs-yaffs2-and-jffs2\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/359\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:42:\"/comparison-between-yaffs-yaffs2-and-jffs2\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:359\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:80:\"<span property=\"schema:name\">Comparison between Yaffs (Yaffs2) and JFFS2</span>\n\";}}',-1,1510656074.795,1,'config:filter.format.basic_html config:system.site node:359 node_view rendered user:1','277'),('entity_view:node:359:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"359\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:359\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510656074.723,1,'config:filter.format.basic_html config:system.site node:359 node_view rendered user:1','277'),('entity_view:node:359:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1854:\"<span property=\"schema:name\">Comparison between Yaffs (Yaffs2) and JFFS2</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>On Friday 02 March 2007 10:59, Charles F Johnson wrote:</p>\n\n<p>\"I\'m trying to understand the relative merits of JFFS2 vs YAFFS2. The response on the YAFFS mailing list is quite positive as far as leading me to believe that there are actual products shipping.\"</p>\n\n<p><br />\nCharles Manning replied:<br />\nAt a technical level, it is very difficult to make X vs Y comparisons because there are many factors involved which manifest differently on different systems therefore \'your mileage will vary\'. But, as a general rule of thumb, the following might help:</p>\n\n<p>1) YAFFS uses less run-time RAM to hold its state, so YAFFS scales better than JFFS2. There are quite a few systems using large NAND arrays (the largest partitions I know of are around the 6Gbyte mark).<br /><br />\n2) YAFFS garbage collection is simpler and faster, typically making for better performance under hard writing.<br /><br />\n3) YAFFS uses a whole page per file for headers, and does not provide compression. This means that JFFS2 is probably a better fit to small partitions. The flip side is that a lot of data (eg. MP3) does not compress very well, and enabling compression really hurts performance.<br /><br />\n4) While YAFFS has been used on NOR, it does not fit very well (because YAFFS does not use erase suspend). Thus if you\'re using smaller NAND partitions and using JFFS2 on NOR, then a JFFS2-only solution is very appealing.<br /><br />\nAll the above can generally boil down to: If you\'re using less than about 64MB the pain vs gain might play in favour of JFFS2. As you increase partition size, YAFFS makes more and more sense.</p></div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:359\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1511458082.909,1,'config:filter.format.basic_html node:359 node_view rendered','264'),('entity_view:node:359:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"359\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:359\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511458082.835,1,'config:filter.format.basic_html node:359 node_view rendered','264'),('entity_view:node:359:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1069:\"<article role=\"article\" about=\"/comparison-between-yaffs-yaffs2-and-jffs2\" typeof=\"schema:Article\" class=\"article is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/comparison-between-yaffs-yaffs2-and-jffs2\" rel=\"bookmark\"><span property=\"schema:name\">Comparison between Yaffs (Yaffs2) and JFFS2</span>\n</a>\n    </h2>\n      <span property=\"schema:name\" content=\"Comparison between Yaffs (Yaffs2) and JFFS2\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">If you are trying to decide between Yaffs and JFFS2 then this note will give you an idea of the relative advantages of each.</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/comparison-between-yaffs-yaffs2-and-jffs2\" rel=\"tag\" title=\"Comparison between Yaffs (Yaffs2) and JFFS2\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about Comparison between Yaffs (Yaffs2) and JFFS2</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:359\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.446,1,'config:filter.format.basic_html node:359 node_view rendered user:1','271'),('entity_view:node:359:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"359\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:359\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.444,1,'config:filter.format.basic_html node:359 node_view rendered user:1','271'),('entity_view:node:360:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0SPlVdim3MxOYoQHo7KiB02kLdC1gL3DJB5dI_BjWpjA','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1094:\"<article role=\"article\" about=\"/archives/paper-investigating-log-management-crash-recovery-mechanism\" typeof=\"schema:Article\" class=\"article full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Paper investigating a log management &amp; crash recovery mechanism\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p><a href=\"http://www.cis.nctu.edu.tw/~lpchang/papers/SAC_wu_sac06.pdf\">This paper</a> proposes a method for efficient initialization and crash recovery for Flash-memory file systems. A log management scheme for the Flash-memory file systems is presented. The proposed log management method is implemented in a log-record manager and a logger. It was written by Chin-Hsein Wu, Tei-Wei Kuo and Li-Pen Change of the Department of Computer Science of National Taiwan University, Taipei, TAIWAN, and presented at an international SAC Conference in 2006. Copyright 2006 ACM 1-59593-108-2/06/0004</p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:69:\"/archives/paper-investigating-log-management-crash-recovery-mechanism\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/360\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:69:\"/archives/paper-investigating-log-management-crash-recovery-mechanism\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:360\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:104:\"<span property=\"schema:name\">Paper investigating a log management &amp; crash recovery mechanism</span>\n\";}}',-1,1510868475.059,1,'config:filter.format.basic_html config:system.site node:360 node_view rendered user:1','278'),('entity_view:node:360:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"360\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:360\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510868475.053,1,'config:filter.format.basic_html config:system.site node:360 node_view rendered user:1','278'),('entity_view:node:365:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0Uf1gceR1X5uFydJvoLjMk-FSf9D1h-Ot9uJBP0MO3Kk','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:508:\"<article role=\"article\" about=\"/paying-us\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Paying us\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">You can pay us, as Aleph One Ltd, for an agreed product or service by clicking <a href=\"http://www.aleph1.co.uk/other\">HERE </a> </div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:10:\"/paying-us\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/365\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:10:\"/paying-us\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:365\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:46:\"<span property=\"schema:name\">Paying us</span>\n\";}}',-1,1511072985.937,1,'config:filter.format.full_html config:system.site node:365 node_view rendered user:4','303'),('entity_view:node:365:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"365\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:365\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511072985.933,1,'config:filter.format.full_html config:system.site node:365 node_view rendered user:4','303'),('entity_view:node:366:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0JdCQGGTuvF2SC3NqMvS-JjL_v2UwhWjyuCXxN5MIpAg','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:310:\"<article role=\"article\" about=\"/yaffs-embedded-structure\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">YAFFS embedded structure</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:25:\"/yaffs-embedded-structure\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/366\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:25:\"/yaffs-embedded-structure\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:366\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:38:\"<span>YAFFS embedded structure</span>\n\";}}',-1,1511068160.950,1,'config:filter.format.full_html config:system.site node:366 node_view rendered user:1','307'),('entity_view:node:366:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"366\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:366\";i:3;s:9:\"node_view\";i:4;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511068160.948,1,'config:filter.format.full_html config:system.site node:366 node_view rendered user:1','307'),('entity_view:node:366:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:186:\"<span>YAFFS embedded structure</span>\n\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">YAFFS embedded structure</div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:366\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113382.182,1,'config:filter.format.full_html node:366 node_view rendered','294'),('entity_view:node:366:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"366\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:366\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113382.180,1,'config:filter.format.full_html node:366 node_view rendered','294'),('entity_view:node:366:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:681:\"<article role=\"article\" about=\"/yaffs-embedded-structure\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-embedded-structure\" rel=\"bookmark\"><span>YAFFS embedded structure</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-embedded-structure\" rel=\"tag\" title=\"YAFFS embedded structure\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS embedded structure</span></a></li></ul>\n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">YAFFS embedded structure</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:366\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.418,1,'config:filter.format.full_html node:366 node_view rendered user:1','301'),('entity_view:node:366:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"366\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:366\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.415,1,'config:filter.format.full_html node:366 node_view rendered user:1','301'),('entity_view:node:367:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0lejC87gdmFjnz-98sAKK8HdkTri8jALgRL7XOQuzzyA','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1774:\"<article role=\"article\" about=\"/archives/yaffs-talk-pdf-slides-celf-2007\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Talk - PDF of slides from CELF, 2007\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n      <div class=\"field field--name-upload field--type-file field--label-hidden field--items\">\n              <div class=\"field--item\"><span class=\"file file--mime-application-pdf file--application-pdf icon-before\"><span class=\"file-icon\"><span class=\"icon glyphicon glyphicon-file text-primary\" aria-hidden=\"true\"></span></span><span class=\"file-link\"><a href=\"https://yaffs.net/sites/default/files/downloads/yaffs.pdf\" type=\"application/pdf; length=177635\" title=\"Open file in new window\" target=\"_blank\" data-toggle=\"tooltip\" data-placement=\"bottom\">yaffs.pdf</a></span><span class=\"file-size\">173.47 KB</span></span></div>\n          </div>\n  \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>Attached is a PDF with slides from the Yaffs talk at CELF\'s Embedded Linux Conference Europe 2007. If you are able to view Ogg Theora video files, the talk is also <a href=\"http://free-electrons.com/pub/video/2007/elce/elce-2007-wookey-yaffs.ogg\">online</a>. Ogg Theora is a Free video format. Free players are available for all platforms. See the list <a href=\"http://wiki.xiph.org/index.php/TheoraSoftwarePlayers\">here</a>. If in doubt, VLC is probably available for your operating system.</p>\n\n<p>If you prefer to go straight to the .pdf if clides  click <a href=\"http://www.yaffs.net/sites/yaffs.net/files/yaffs.pdf\">http://www.yaffs.net/sites/yaffs.net/files/yaffs.pdf</a></p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:41:\"/archives/yaffs-talk-pdf-slides-celf-2007\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/367\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:41:\"/archives/yaffs-talk-pdf-slides-celf-2007\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:6:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"file:87\";i:3;s:8:\"node:367\";i:4;s:9:\"node_view\";i:5;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:79:\"<span property=\"schema:name\">Yaffs Talk - PDF of slides from CELF, 2007</span>\n\";}}',-1,1510781110.257,1,'config:filter.format.basic_html config:system.site file:87 node:367 node_view rendered user:1','282'),('entity_view:node:367:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"367\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:6:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:7:\"file:87\";i:3;s:8:\"node:367\";i:4;s:9:\"node_view\";i:5;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510781110.255,1,'config:filter.format.basic_html config:system.site file:87 node:367 node_view rendered user:1','282'),('entity_view:node:367:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:1557:\"<span property=\"schema:name\">Yaffs Talk - PDF of slides from CELF, 2007</span>\n\n      <div class=\"field field--name-upload field--type-file field--label-hidden field--items\">\n              <div class=\"field--item\"><span class=\"file file--mime-application-pdf file--application-pdf icon-before\"><span class=\"file-icon\"><span class=\"icon glyphicon glyphicon-file text-primary\" aria-hidden=\"true\"></span></span><span class=\"file-link\"><a href=\"https://yaffs.net/sites/default/files/downloads/yaffs.pdf\" type=\"application/pdf; length=177635\" title=\"Open file in new window\" target=\"_blank\" data-toggle=\"tooltip\" data-placement=\"bottom\">yaffs.pdf</a></span><span class=\"file-size\">173.47 KB</span></span></div>\n          </div>\n  \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>Attached is a PDF with slides from the Yaffs talk at CELF\'s Embedded Linux Conference Europe 2007. If you are able to view Ogg Theora video files, the talk is also <a href=\"http://free-electrons.com/pub/video/2007/elce/elce-2007-wookey-yaffs.ogg\">online</a>. Ogg Theora is a Free video format. Free players are available for all platforms. See the list <a href=\"http://wiki.xiph.org/index.php/TheoraSoftwarePlayers\">here</a>. If in doubt, VLC is probably available for your operating system.</p>\n\n<p>If you prefer to go straight to the .pdf if clides  click <a href=\"http://www.yaffs.net/sites/yaffs.net/files/yaffs.pdf\">http://www.yaffs.net/sites/yaffs.net/files/yaffs.pdf</a></p></div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:7:\"file:87\";i:2;s:8:\"node:367\";i:3;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113328.907,1,'config:filter.format.basic_html file:87 node:367 node_view rendered','269'),('entity_view:node:367:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"367\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:7:\"file:87\";i:2;s:8:\"node:367\";i:3;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113328.905,1,'config:filter.format.basic_html file:87 node:367 node_view rendered','269'),('entity_view:node:368:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0150aYqZg4wJHPsn3Vb_zltatWjZIl1lOrWFA1LDNPas','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:3422:\"<article role=\"article\" about=\"/ideas-list\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><b>Overview</b> <br />\n<br />\n<div>\nYAFFS is an Open Source flash file system used in many embedded applications such as mobile phones, PDAs, aerospace and point of sale. YAFFS is mainly used in Linux systems but is also used with other OSs. YAFFS is even used in the Google Android platform! <br />\n <br />\n<div>\n We\'re looking for some bright minds interested in the GSoC concept - <a href=\"http://code.google.com/soc/2008\">Google 2008 Summer of Code</a> - to help make YAFFS even better. The particular area of interst here is performance improvement, and enriching the YAFFS development environment with support tools.\n <p>We strongly encourage student generated ideas, as well as further ideas from the YAFFS community. <br />\n  <br />\n  <b>Performance analysis</b> <br />\n  </p>\n <div>\n  Performance is increasingly important in delivering high quality user experience on media-rich devices such as Google Android-based devices. High file system performance leads to slicker UI and faster data transfers. High performance also reduces flash memory read/writes which  reduces power consumption, meaning better battery life. <br />\n   <br />\n  <div>\n   Our major focus for GSoC is to develop a performance analysis framework and tools that will help to identify opportunities for improvement as well as evaluate the performance impact of code changes. It would be great if this performance toolkit could be generalised for other applications, but that\'s beyond the focus of what we want to achieve here. <br />\n    <br />\n   <div>\n    We have some ideas to seed this, but encourage students to think of their own ideas too.\n   </div>\n   <div>\n    * Develop an environment-neutral data gathering framework.\n   </div>\n   <div>\n    * Write a FUSE wrapper for YAFFS to improve test scripting. Include the data gathering framework in the FUSE wrapper.\n   </div>\n   <div>\n    * Extend the Android simulator with these tools, thus allowing performance analysis of Linux-based mobile devices.\n   </div>\n   <div>\n    * Develop performance-analysis display tools to allow clear observation of gathered data.\n   </div>\n   <div>\n    * Help in performance analysis. <br />\n     <br />\n     <b>Other ideas</b> <br />\n   </div>\n   <div>\n    We have some ideas of things we\'d like to see done, but are not sufficient for a GSoC project on their own. These could be included with other ideas to make sufficient scope for a GSoc project. These tasks include: <br />\n     <br />\n   </div>\n   <div>\n    * If documentation is your delight we would love to have someone build on the existing material and generate lucid new docs on How to integrate YAFFS, How it works, YDI Interface details, and anything else your training or experience makes clear our users would benefit from.\n   </div>\n   <div>\n    * Develop developer-support tools such as unyaffs: a tool to take a yaffs image and unpack the files on the host device. <br />\n     *Improve/rewrite mkyaffsimage and related mtdutils to make image generation and extraction easier to do.\n    <p>&nbsp; </p>\n   </div>\n   <div>\n    Got some ideas of you own? Give us a yell!\n   </div>\n  </div>\n </div>\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:11:\"/ideas-list\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/368\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:11:\"/ideas-list\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:368\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:24:\"<span>IDEAS List</span>\n\";}}',-1,1510786938.660,1,'config:filter.format.full_html config:system.site node:368 node_view rendered user:4','303'),('entity_view:node:368:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"368\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:368\";i:3;s:9:\"node_view\";i:4;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510786938.657,1,'config:filter.format.full_html config:system.site node:368 node_view rendered user:4','303'),('entity_view:node:368:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:702:\"<article role=\"article\" about=\"/ideas-list\" class=\"book is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/ideas-list\" rel=\"bookmark\"><span>IDEAS List</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">This describes YAFFS subject areas that need work done, in order to get the attention of those involved in Google\'s Summer of Code</div>\n      <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/ideas-list\" rel=\"tag\" title=\"IDEAS List\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about IDEAS List</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:368\";i:2;s:9:\"node_view\";i:3;s:6:\"user:4\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.366,1,'config:filter.format.full_html node:368 node_view rendered user:4','297'),('entity_view:node:368:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"368\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:4:{i:0;s:30:\"config:filter.format.full_html\";i:1;s:8:\"node:368\";i:2;s:9:\"node_view\";i:3;s:6:\"user:4\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.364,1,'config:filter.format.full_html node:368 node_view rendered user:4','297'),('entity_view:node:369:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0zo04bScdszpuzXTCTVkcBeQAYIVaMt3a6_6VAPI1p4U','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:34024:\"<article role=\"article\" about=\"/yaffs-porting-guide\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Porting Guide\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>version 2.0</p>\n\n<p>Last changed: rrw@kynesim.co.uk, 2009-03-20<br />\n </p>\n\n<h3>Purpose</h3>\n\n<p>The purpose of this document is to describe how to bring up Yaffs2 on a board previously unsupported using the Yaffs Direct Interface, with an example using eCos on a Balloon board.</p>\n\n<p>Before we start you probably want to have the data sheet for the NAND chips you are using in front you so that you can refer to it as we go along.</p>\n\n<h3>Background and NAND Flash Properties</h3>\n\n<p>NAND flash is generally arranged in <em>pages</em> and <em>blocks</em>. A page contains a section of data bytes and then a section of out-of-band (<em>OOB</em>) data bytes. Blocks contain a number of pages .<br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram\" height=\"335\" src=\"/sites/yaffs.net/files/images/yaffs_porting_guide_html_2de490f8.png\" width=\"783\" /></a></p>\n\n<p>The OOB section of each page is used keep track of various things like file system state, error correction data and bad block marking.</p>\n\n<p>NAND flash is programmed (written to) and read on a largely page basis (though with some level of random access) and is erased on a block basis. That is, to erase a page, you must erase the rest of the containing block along with it.</p>\n\n<p>When programming NAND flash only 1\'s can be programmed to 0\'s, so to change a byte containing 0x00 to 0xFF it must be erased, along with the rest of the block. However subsequent programs may still be made without an erase if no 0s are to be changed to 1s, this might be useful in a scenario where subsequent data might regularly have this property.</p>\n\n<p>When manufactured NAND flash contains bad blocks, these are blocks that are not reliable and any data in them will commonly corrupt easily. These must be kept track of and the OOB data section is used to mark a bad block.</p>\n\n<p>NAND in general is prone to bit errors and for that reason the OOB data is also used to write error correction codes (ECC) so that some errors can be corrected.</p>\n\n<h3>Yaffs NAND Model</h3>\n\n<p>It is probably a good thing to detail at this point how Yaffs2 expects the NAND to behave so that you are aware of what you have to provide in the NAND driver to get YAFF running. Yaffs uses some different terminology in that it refers to a page as a <em>chunk</em>.</p>\n\n<p>Yaffs2 uses a fairly abstract model for NAND flash, this allows a lot of flexibility in the way Yaffs can be used. Yaffs is designed for NAND flash and makes the following assumptions and definitions:</p>\n\n<ul><li>NAND flash is arranged in blocks. Each block is the same size and comprises an integer number of chunks. Each block is treated as a single erasable item.</li>\n	<li>A page (chunk) equates to the allocation units of flash.</li>\n	<li>All accesses (reads and writes) are page (chunk) aligned.</li>\n	<li>When programming a NAND flash, only the zero bits in the pattern being programmed are relevant, and one bits are \"don\'t care\". For example, if a byte already contains the binary pattern 1010, then programming 1001 will result in the pattern which is the logical AND of these two patterns i.e. 1000. This is different to NOR flash.</li>\n</ul><p>Yaffs identifies blocks by their block number and chunks by their chunk Id. Yaffs treats a blank (0xFF filled) block as being free or erased. Thus, the equivalent of formatting for a Yaffs partition is to erase all the blocks that are not bad.</p>\n\n<p>Therefore Yaffs minimally needs access to functions that enable it to erase blocks and to read and write on a page basis. It is also helpful to be able to read only OOB data as reading/writing a full page to only view/update OOB data will cost many serial read cycles over the bus. This is an overhead that can be avoided using the random access read and write features of some nand chips.</p>\n\n<p> </p>\n\n<h2>Writing a Driver for NAND flash Chips</h2>\n\n<h3>Writing a Driver for the Samsung 628 K9F2G08U0M PCB0 on the Balloon Board (v3.01)</h3>\n\n<p>For the Balloon board the NAND chips hang off the CPLD which is in turn hooked up to the system bus. This is quite board specific and in this case reading the VHDL code reveals how to change the values on the pins of the NAND chips. You may look at the code by downloading the balloon source code (Appendix A) and looking at balloon3.vhd and Balloon_nand.vhd in balloon/vhdl/fpga/.</p>\n\n<p>It will be likely that this is significantly different on your platform and you should consult the relevant data sheets and documentation to determine how to access the NAND hardware on your board. I will present an example of the balloon board in order to give an overview of the kind of thing that is required.</p>\n\n<p>On the Balloon the CPLD routes data on the bus with certain address to the logic on the CPLD that actually controls the flash chips. They are as follows:</p>\n\n<p><code>NAND Data Bus : 0x10e00000</code> <code>NAND Control 2: 0x10e00010</code> <code>NAND Control : 0x10e00014</code></p>\n\n<p>Sending data to the \'NAND Data Bus\' address will put that data onto the I/O pins of the NAND chips. All of the nand chips are hooked up to the same pins on the CPLD so writing to the \'NAND Data Bus\' address will put the value written on the I/O pins for <em>all</em> of the available flash chips. To isolate the chip you want to work with using the chip enable pin on each flash chip.</p>\n\n<p>This is done by writing to the \'NAND Control\' (0x10e00014) address. When writing to \'NAND control\', the CPLD takes the data value on the bus and routes each bit to a different wire. This bit field is structured as follows:</p>\n\n<p> </p>\n\n<table><colgroup><col /><col /></colgroup><tr><td><em>Pin Attached To</em></td>\n			<td><em>Bit in NAND Control value</em></td>\n		</tr><tr><td>CLE (Control Latch Enable)</td>\n			<td>0</td>\n		</tr><tr><td>ALE (Address Latch Enable)</td>\n			<td>1</td>\n		</tr><tr><td>nCE0 (not Chip Enable for chip 0)</td>\n			<td>2</td>\n		</tr><tr><td>nCE1 (for chip 1)</td>\n			<td>3</td>\n		</tr><tr><td>nCE2 (for chip 2)</td>\n			<td>4</td>\n		</tr><tr><td>nCE3 (for chip 3)</td>\n			<td>5</td>\n		</tr><tr><td>nSE (not Chip Enable for chip 0)</td>\n			<td>6</td>\n		</tr><tr><td>nWP (not Write Protect)</td>\n			<td>7</td>\n		</tr></table><p> </p>\n\n<p>So for example bit 1 on the data lines is put onto the ALE pin on the physical chip. Bits prefixed with \'n\' are active low, for example chip 0 is selected when nCE0 is low and nCE1-3 are high.</p>\n\n<p> </p>\n\n<p>So writing to \'NAND Control\' we can change the values of the pins on the flash. Again, CLE, ALE, nSE and nWP change the value of the corresponding pin on all the flash chips available, nCE[0-3] will select the chip you are using.</p>\n\n<p>Finally, NAND flash typically comes in couple of flavours, 8 bit wide (x8) and 16 bit wide (x16). This means that x8 chips have 8 I/O pins and x16 have 16. The logic on the CPLD on the Balloon can handle both if you tell it which you are currently dealing with. Writing to \'NAND Control 2\' a value of 1 puts the CPLD logic for the NAND chips into x8 mode and 0 into x16 mode. I will assume for the rest of this document that there are only x8 chips connected to the balloon but it should be fairly trivial to extend it to support both.</p>\n\n<h3>Using the Flash Chips</h3>\n\n<p>The flash chips we\'re using have a number of commands, each triggered by a sequence of one or two command codes. You will want to refer to the data sheets for precise details of these functions, but I will briefly describe some of them in this document. The command set that we have for the particular chip we\'re using is table 1 on page 7 of the data sheet.</p>\n\n<p>To input a command there is generally one or two command input cycles. For two cycle commands there is generally an initial command followed by some data needed to complete the command then another command cycle to notify that the relevant data has been input and to start execution. For example for read operations the command 0x00 is latched in followed by some address input cycles followed by the command 0x30 to start the operation. With this in mind I will now describe how to input commands, the \'Command Latch Cycle\'.</p>\n\n<p>Note that for this section I have assumed that the bus is sufficiently slow that the set-up and hold times are not an issue, if you have a fast bus then you may have to wait for a small amount of time (refer to the data sheet) after changing values on the pins (by writing to the correct address) so that set-up and hold times are not violated.</p>\n\n<h3>Command Latch Cycle</h3>\n\n<p>For the command latch cycle you need to first select a chip by setting the relevant nCE low and then you need to set the CLE bit high, that means writing to the \'NAND Control\' address. ALE must also be low and should be set at the same time as CLE. It is then a case of putting the command value onto the I/O pins by writing to the \'NAND Data Bus\' address the value of the command you want. This will then latch in the command, afterwards you will need to clear the CLE bit again.</p>\n\n<p>You will also notice from looking at the data sheet that something needs to be done with the nWE (not <strong>w</strong>rite <strong>e</strong>nable) pin (specifically it should be low while latching in the command), but that I have yet to describe a mechanism for changing its value. This is because it is dealt with by the logic in the CPLD and whenever data is sent to the data address the CPLD will toggle nWE appropriately. (This is also true of nRE (not <strong>r</strong>ead <strong>e</strong>nable) when reading). This process is implemented in the nand_chip_select and the send_command functions (flash.c).</p>\n\n<h3>Address Latch Cycle and Addressing</h3>\n\n<p>The process for the Address Latch Cycle is similar to that for command latching (with the sense of ALE and CLE reversed) and can be looked at in the data sheet and is implemented in send_address in flash.c. The addressing is done by row and column. There are 5 address cycles on the flash chips we\'re looking at. The first cycle contains bits 0-7 of the column address, the second bits 8-11 with the remaining bits of the byte to be sent low. The row address is over 3 more cycles in a similar fashion.</p>\n\n<p>You may wish to chose to address the individual bytes of the chip with the OOB data not directly addressable. This has enabled me to lump several chips into the same address space and select the correct chip based on the address. Addresses then need to be converted to row and column. You should also check that they are page/block aligned in the relevant places if that\'s what your functions expect. It needn\'t be done this way any you could use page numbers instead of bytes just as easily.</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 2\" height=\"209\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m11b1f893.png\" width=\"654\" /></a></p>\n\n<p> </p>\n\n<p>The \'row\' is essentially the page index and the \'column\' is the index into to that page, so if you wanted to read from the start of page 213 you would send 0 for the column and 213 for the row. Conversely if you wanted just the OOB bytes from the same page you would send a column value of 2048 (given a page size of 2048+64 bytes).</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 3\" height=\"271\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m4650262f.png\" width=\"347\" /></a></p>\n\n<p> </p>\n\n<h3>Finding Chip information</h3>\n\n<p>You will then need to find out which chips are active (e.g. on the balloon there are 4 possible chips, not all of which will exist) and what type of chips they are. For this there is the \'Read ID\' operation. This operation is implemented in the read_ids function in flash.c. The result of the operation gives the manufacturer and device code of the chip and information about the chip (page size, block size, oob size etc). To find which chips are available, loop through the possible chips and start a Read ID command on each of them, if the expected data is returned then there is a chip at that location.</p>\n\n<p>The operation is started by sending the command 0x90 and then one address cycle of 0x00. There are then 5 read cycles which give you data about the device. A description of how to unpack this information from the returned bytes is located on page 32 of the data sheet for the chip described here.</p>\n\n<p>This then gives you how many chips you have and what layout the data in them has.</p>\n\n<h3>Bad Block Checking</h3>\n\n<p>Contained within a nand chip are blocks that the manufacturer will not guarantee the reliability of (this is to increase yield in manufacturing) and so bad blocks must be kept track of. The Samsung chips come with the first byte (or word for x16) of the first and second page of each bad block not programmed as 0xFF.</p>\n\n<p>This bad block marking should be maintained and should be added to in the same way when a bad block is is discovered. Yaffs will expect you to provide a function it can call to mark a particular block as bad when yaffs decides it is necessary.</p>\n\n<p>Yaffs keeps track of bad blocks itself so that the driver doesn\'t need to worry about masking out bad blocks.</p>\n\n<h3>Erasing a Block</h3>\n\n<p>An example of this operation is given in nand_erase_block in flash.c. If you are addressing the nand by bytes then you must first check that the address is aligned to the start of a block and then convert the address into a block number. If there is more than one chip this will involve working out which chip the address refers to and then selecting the correct chip. This can be seen in the select_chip function in flash.c. You must then send the first command cycle for the erase operation before sending 3 cycles of address and then finally the last command cycle.</p>\n\n<p>For the erase operation the 3 address cycles are different than for the read/write operations. Only address bits A18 to A29 is valid (for x8) while A12 to A17 is ignored. In terms of the ordinary 5 cycles address input you only need to deal with the last 3 cycles and of those only the highest 2 bits of the 3rd cycle are used and the full 4th and 5th cycle are used.</p>\n\n<p>Once the operation has been started the program can check the progress of the operation by sending a command of 70h. Each subsequent read will contain the read status. The driver should wait until the read is complete (by the read status operation), the read status operation also contains information about whether the erase failed and this information should be returned from the function doing the erase.</p>\n\n<h3>Reading a Page</h3>\n\n<p>Reading a page is performed by first selecting the correct chip and then converting the address to a row and column number. You can then sending the first command cycle for the read operation followed by 5 address cycles as described in the previous sections. The second command cycle then starts the read operation. The driver must then wait for the data to be retrieved into the data registers on the NAND before they can be read out over the bus. For the example chip this is 25us, consult the data sheet as this may differ. The data can then be read out sequentially byte by byte until all the data needed is obtained.</p>\n\n<h3>Writing a Page</h3>\n\n<p>Page program operations are performed by first selecting the correct chip converting the address to row and column numbers. The page program operation is initiated by the relevant fist command latch cycle (command 0x80) followed by an address latch cycle (as for read), serial data loading and then the second command latch cycle (command 0x10).</p>\n\n<p>The serial data loading is done by serially writing data to the I/O pins. Up to 2112 bytes (x8) can be loaded into the data registers. Once the second command cycle is sent the program is initiated and there is then a programming period where the loaded data is programmed into the appropriate cell. The driver should wait for this to complete by issuing a read status command (0x70) and monitoring the R/nB (ready / not busy) bit. The R/nB flag is on I/O pin 6 and can be checked by repeatedly reading from the \'NAND Data Bus\' address. Once the operation is complete the Write Status Bit (I/O 0 ) may be checked to confirm that the operation was successful.</p>\n\n<h2>Yaffs</h2>\n\n<h3>How To Use Yaffs</h3>\n\n<h3>Checking Out From Git</h3>\n\n<p>The first thing to do is to obtain the source code for Yaffs. This can be done from CVS, details of the process can be found at <a href=\"http://www.yaffs.net/download-yaffs-using-git\">http://www.yaffs.net/download-yaffs-using-git</a>.</p>\n\n<p>The following command will checkout the latest Git version using public read-only access, if you are using bash.</p>\n\n<p><code>$ </code>git clone git://www.aleph1.co.uk/yaffs2 </p>\n\n<h3>Making Some Tweaks to the Source Code</h3>\n\n<p>As of the latest version from CVS in January 2009, you will need to make a small number of changes before you can compile the source code without errors and warnings. There is a patch file included with this document.</p>\n\n<p>You will need to provide a definition of loff_t (in yaffs2/direct/ydirectenv.h) this is for holding the file size in bytes, you should make it big enough to hold the largest file size you wish to support. Unsigned long is probably a good place to start. You will need to edit yaffsfs.c to change a #if to a #ifdef. Then if you have the relevant warnings and -Werror switched on you will need to correct a couple of printf format strings to get the type right (changing a few \'%d\' to \'%ld\').</p>\n\n<p><code>change yaffs/ydirectenv.h </code></p>\n\n<p><code>+ typedef unsigned long loff_t; </code></p>\n\n<p><code>change yaffs2/direct/yaffsfs.c ~line 1117 </code></p>\n\n<p><code>- #if CONFIG_YAFFS_WINCE </code></p>\n\n<p><code>+ #ifdef CONFIG_YAFFS_WINCE</code></p>\n\n<h3>Relevant Files to the Direct Interface</h3>\n\n<p>There are quite a few files that get checked out, not all of which you will need to get going with the yaffs direct interface. The ones you will actually need are listed bellow, you do not need to compile the rest in.</p>\n\n<p><code><code>direct/yaffsfs.c </code></code></p>\n\n<p><code><code>yaffs_guts.c </code></code></p>\n\n<p><code><code>direct/yaffscfg.c </code></code></p>\n\n<p><code><code>yaffs_nand.c </code></code></p>\n\n<p><code><code>yaffs_tagsvalidity.c </code></code></p>\n\n<p><code><code>yaffs_checkptrw.c </code></code></p>\n\n<p><code><code>yaffs_qsort.c </code></code></p>\n\n<p><code><code>yaffs_tagscompat.c </code></code></p>\n\n<p><code><code>yaffs_ecc.c </code></code></p>\n\n<p><code><code>yaffs_packedtags2.c</code></code></p>\n\n<h3>Some Relevant Preprocessor Flags</h3>\n\n<p>There are many different configuration options for yaffs, here are a few that you should be aware of for using the yaffs direct interface.</p>\n\n<ul><li>CONFIG_YAFFS_DIRECT - Tell yaffs to use the direct interface.</li>\n	<li>CONFIG_YAFFS_YAFFS2 - Tell yaffs we want to use yaffs2</li>\n	<li>CONFIG_YAFFS_PROVIDE_DEFS - provides some definitions for file types and #includes linux/types.h, linux/fs.h, linux/stat.h (see yaffs2/devextras.h).</li>\n	<li>CONFIG_YAFFSFS_PROVIDE_VALUES - This may be used so that you can customise error values and constants like O_RDONLY to match the underlying system values, if itis not defined then it includes errno.h,sys/stat.h and fcntl.h (see yaffs2/direct/yaffsfs.h).</li>\n</ul><p>Specify these options when compiling yaffs, i.e. -DCONFIG_YAFFS_DIRECT etc.</p>\n\n<h3>Configuring</h3>\n\n<p>You will then need to provide yaffs with configuration information. This includes details about the nand flash you are using and also tells yaffs which functions to call when when it wants to read/write/erase parts of the flash, these functions will form the bridge between yaffs and the underlying hardware driver. This customisation is done in yaffscfg.h. Within yaffscfg.h you will need to provide a number of operating-system-like functions and a function to initialise yaffs. For example providing functions for malloc and free. Here is a breakdown of those functions that need to be implemented.</p>\n\n<h3>Operating System Functions</h3>\n\n<p><code><code>void yaffsfs_SetError(int err); </code> </code></p>\n\n<p>Report system errors, for example using errno if it exists.</p>\n\n<p><code><code>void *yaffs_malloc(size_t size);</code> <code>void yaffs_free(void *ptr);</code> </code></p>\n\n<p>As for the standard malloc and free functions, if they already exist on your system then you can just shim them.</p>\n\n<p><code><code>void yaffsfs_LocalInitialisation(void);</code> <code>void yaffsfs_Lock(void);</code> <code>void yaffsfs_Unlock(void);</code> </code></p>\n\n<p>Use yaffsfs_LocalInitalisation to initialise \"Real Time Operating System\" state, if the system is multi-threaded then it should initialise a semaphore/mutex for use by lock and unlock. Lock/unlock should use the semaphore set up in LocalInitialisation to lock yaffs from multi-threaded access.</p>\n\n<p><code><code>__u32 yaffsfs_CurrentTime(void);</code> </code></p>\n\n<p>This can be any time increment of use to the system. If this is not required, then it is fine to just use a function that returns zero.</p>\n\n<h3>Yaffs Startup Function</h3>\n\n<p><code><code>int yaffs_StartUp(void); </code> </code></p>\n\n<p><code><code>Return value: YAFFS_OK or YAFFS_FAIL</code> </code></p>\n\n<p>This functions should be used to provide yaffs with many details about the properties of the underlying nand device. Within this function you will need to set up a \'yaffs_Device\' (yaffs_guts.h) and a \'yaffsfs_DeviceConfiguration\' (direct/yaffscfg.h). How to set up a yaffs device will follow in the next section. Once you have set up the required yaffs_Device structures you should call yaffs_initialise (yaffs_guts.h) with a pointer to a null terminated array of yaffs_DeviceConfiguration structures. A yaffs_DeviceConfiguration structure contains a pointer to a yaffs_Device and the \'mount point\' string (prefix) that that device corresponds to.</p>\n\n<h3>Yaffs Devices</h3>\n\n<p>A yaffs device is a logical device that represents part of or a whole physical device. You might think of it as a \'partition\' on the nand. For example, it might cover the whole of the nand device or perhaps only claim half, with another yaffs_Device claiming the other half. It may also be used so that you can use a device other than a flash device (e.g. RAM) for testing purposes.</p>\n\n<p>A yaffs_Device keeps track of the start and end block, so you may have more than one yaffs_Device corresponding to the same physical device by altering the start and end block of the yaffs device.</p>\n\n<p>The fields on the yaffs_Device struct that you need to set up yourself are listed below, all other fields are setup automatically by yaffs.</p>\n\n<p><code><code>int nDataBytesPerChunk</code> </code></p>\n\n<p>As the name suggests this is the number of bytes per chunk, remembering that in yaffs terminology a page is referred to as a chunk, this is then the number of bytes per page. This is the number of data bytes, that is the number of bytes excluding the OOB byte data. E.g. if a page is 2048byte + 64bytes of OOB then set nDataBytesPerChunk to 2048.</p>\n\n<p><code><code>int nChunksPerBlock </code> </code></p>\n\n<p>Straightforwardly the number of chunks (pages on the nand) in each block on the physical nand device. Must be at least 2.</p>\n\n<p><code><code>int spareBytesPerChunk</code></code><br />\nThis is the size of the spare area, i.e. the number of OOB bytes per chunk (page)<code>. </code></p>\n\n<p><code><code>int startBlock</code> </code></p>\n\n<p>The block number (not the address in bytes) on the chip of the first block of this logical yaffs_Device. Beware, yaffs needs the first block to be free so you should not set this to 0, if it is then yaffs will add on one to it itself and also add on one to the end block which could be an issue if you wanted your device to start at block 0 and finish at the last block which might mean yaffs trying to write to a non-existent block.</p>\n\n<p><code><code>int endBlock</code> </code></p>\n\n<p>The block number on the chip of the last block for this logical yaffs_Device. If startBlock == 0 then yaffs will use endBlock+1. Must be at least startBlock + nReservedBlocks + 2.</p>\n\n<p><code><code>int nReservedBlocks</code> </code></p>\n\n<p>This is then number of erasable blocks that Yaffs must keep in reserve for garbage collection and to cover for block failures. This must be a minimum of 2, but 5 or so is better. If you are using a medium that is not expected to fail (eg. RAM for a RAM disk, or a host file system emulation then 2 is OK).</p>\n\n<p><code><code>int nShortOpCaches</code> </code></p>\n\n<p>This configures the number of entries in the Yaffs cache for this device. A value of zero defeats the cache. A value of 10 to 20 is recommended for most systems. Cannon be any bigger than YAFFS_MAX_SHORT_OP_CACHES.</p>\n\n<p><code><code>int useNANDECC</code> </code></p>\n\n<p>This is a flag that tells yaffs whether it should be doing ECC calculations or if it should be left to the driver.</p>\n\n<p><code><code>void *genericDevice</code> </code></p>\n\n<p>This is a pointer which should point to any data that the underlying nand driver will need to know to write and read from the physical device.</p>\n\n<p><code><code>int isYaffs2</code> </code></p>\n\n<p>Are we using Yaffs2? We only deal with Yaffs2 in this document.</p>\n\n<p><code><code>int inbandTags</code> </code></p>\n\n<p>Is there an OOB section? If not then this should be true. Only relevant to Yaffs2.</p>\n\n<p><code><code>_u32 totalBytesPerChunk</code> </code></p>\n\n<p>Possibly a misleading name, it should be equal to nDataBytesPerChunk not nDataBytesPerChunk + spareBytesPerChunk as the name might suggest. If inbandTags is true then yaffs sets nDataBytesPerChunk such that there is enough space for the data yaffs would normally store in the spare area.</p>\n\n<p><code><code>write/readChunkWithTagsFromNAND, markNANDBlockBad, queryNANDBlock</code> </code></p>\n\n<p>These are all pointers to functions that you shall provide to provide Yaffs with a method of writing/reading etc from the NAND.</p>\n\n<h3>NAND access functions</h3>\n\n<p>If you are using Yaffs2 you need to provide pointers to functions that Yaffs can call to write and read from the nand. Example implementations of these function can be seen in yaffs_mtdif.c, these are the functions written to do the same job for the linux mtd layer and provides the write and read functions. The following functions return YAFFS_OK on success and YAFFS_FAIL on failure.</p>\n\n<p><code><code>int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, const __u8 * data,</code> <code>const yaffs_ExtendedTags * tags);</code> <code>dev: yaffs_Device to write to.</code> <code>chunkInNAND: Which page to write the chunk to.</code> <code>Data: Pointer to the data to write</code> <code>tags: Unpacked OOB data.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function is to write pages (chunks) to the nand. In this function you will probably want to first retrive any useful data that you put in dev-&gt;genericDevice (in the yaffs_StartUp function) and use it to call the function you wrote previously to write data to the nand. For yaffs2 data and tags should never be NULL. chunkInNand is the page number of the page to write to, not an address so it will need converting if that\'s what your underling functions to write to the nand expect.</p>\n\n<p>You will then need to pack the tags into a yaffs_PackedTags2 structure, this takes out the all relevant details from the yaffs_ExtendedTags tags structure and calculates ECC data on it before placing them in the packedtags2 structure. This structure is the OOB data you will want to write out to the nands spare area.</p>\n\n<p>How you write these out to the OOB data depends on your architecture, nand chips and therefore how bad block marking is done. If for example the first byte is used for bad block marking then simply writing the tags out after the first byte is acceptable. The ECC data in packed tags only covers error correction and detection for the tags in the OOB data, if you want ECC on the data then you must do that yourself.</p>\n\n<p>To perform ECC checks to the data bytes you may use the yaffs_ECCCalculate function which calculates ECC data for 256 byte sections of data. This function produces 3 bytes of ECC data per 256 bytes. Therefore for 2048 bytes of data in each page you would need (2048/256) * 3 = 8 * 3 = 24 extra bytes of ECC data. This can be written out after the bad block byte and packed tags data.<br />\n </p>\n\n<p><code><code>int (*readChunkWithTagsFromNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, __u8 * data,</code> <code>yaffs_ExtendedTags * tags);</code> <code>dev: The yaffs_Device to read from.</code> <code>chunkInNAND: Which page to read from.</code> <code>Data: Pointer to a buffer to read data to.</code> <code>tags: Pointer to a buffer to unpacked OOB data into.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function should do the opposite to the previous function. Firstly, read in the data and OOB bytes. Secondly place the data bytes in the area pointed to by data, then unpack the OOB bytes into into the pointer to tags using yaffs_UnpackTags2.</p>\n\n<p>Once the tags have been unpacked you should then recalculate the ECC data on the data bytes you just read back, just as you did for the write operation. Then use the recalculated ECC and the ECC data read out of the OOB bytes with yaffs_ECCCorrect to correct the data.</p>\n\n<p>Depending on the return value from yaffs_ECCCorrect you should set tags-&gt;eccResult to reflect whether anything was corrected or the correction failed. yaffs_UnpackTags2 also sets tags-&gt;eccResult so you should only update it if the result of the data correction is worse than is already there. i.e. if after the tags are unpacked and eccResult is YAFFS_ECC_RESULT_FIXED and ECC correction on the data read back resulted in no errors then you should leave unpackedtags2 and YAFFS_ECC_RESULT_FIXED and not set it to YAFFS_ECC_RESULT_NO_ERROR.</p>\n\n<p><code><code>int (*markNANDBlockBad) (struct yaffs_DeviceStruct * dev, int blockNo);</code> <code>dev: yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code></code></p>\n\n<p>This should mark the block bad. This probably means reading the OOB data and changing the relevant byte that marks the bad block, and writing the OOB data back.</p>\n\n<p><code><code>int (*queryNANDBlock) (struct yaffs_DeviceStruct * dev, int blockNo,</code> <code>yaffs_BlockState * state, __u32 *sequenceNumber);</code> <code>dev: The yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>state: Upon returning this should be set to the relevant state of this particular block.</code> <code>Sequence number: The Sequence number of this block. 0 if the block is unused.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This should check whether or not the block is valid.</p>\n\n<p>If the bad block marker is set in the OOB then *state should be set to YAFFS_BLOCK_STATE_DEAD *sequenceNumber set to 0, and return YAFFS_FAIL.</p>\n\n<p>If the block is not bad then the tags should be unpacked. After the tags are unpacked, and it is found that chunk is used (see tags.chunkUsed) *sequenceNumber should be set to tags.sequenceNumber and *state to YAFFS_BLOCK_STATE_NEEDS_SCANNING, otherwise if the block is not used then *sequenceNumber should be 0 and *state should be set to YAFFS_BLOCK_STATE_EMPTY.</p>\n\n<h3>Application Interface</h3>\n\n<p>The yaffs provides a number of functions for applications to interface with it. These are mostly the same as the standard clib open/close etc prefixed with yaffs_ eg yaffs_open. These functions are defined in direct/yaffsfs.h.</p>\n\n<p>To initialise yaffs so that reading and writing can be done, you must call yaffs mount for each yaffs device you would like to use, e.g. yaffs_mount(\"/boot\"). This could be done at system boot if there is an operating system present so that the application need to worry about this. You will also need to call yaffs_unmount when you have finished so that yaffs may write any state it needs to to disk.</p>\n\n<p>If there is already an application interface for reading and writing files you may shim the relevant function calls with the related operating system calls.</p>\n\n<p>E.g. simply doing #define open(path, oflag, mode) yaffs_open(path, oflag, mode)</p>\n\n<p>Or having something more complex to provide redirection functions if there is more than one file system present.</p>\n\n<p><code><code>For example: int open(const char *path,...)<br />\n{<br />\n//Determine which file system is being used </code> <code>if(it_is_a_yaffs_path(path)) {</code> <code> return yaffs_open(...);<br />\n} else {<br />\n// Do something else<br />\n}<br />\n}</code></code></p>\n\n<h2>Appendices</h2>\n\n<h3>Appendix A - Accessing the Balloon Source Code</h3>\n\n<p>The latest source code for the balloon board can be checked out from SVN. There is different code for different balloon versions. Details of getting the source and setting up tool chains is decribed in the following page <a href=\"http://www.balloonboard.org/software.html\">http://www.balloonboard.org/software.html</a>. If you just want to take a look at the latest mainline code then the following will give you what you want.</p>\n\n<p>svn checkout svn://balloonboard.org/balloon/trunk/</p>\n\n<p> </p></div>\n      \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:20:\"/yaffs-porting-guide\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/369\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:20:\"/yaffs-porting-guide\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:369\";i:3;s:9:\"node_view\";i:4;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:56:\"<span property=\"schema:name\">Yaffs Porting Guide</span>\n\";}}',-1,1510663231.393,1,'config:filter.format.basic_html config:system.site node:369 node_view rendered user:5','273'),('entity_view:node:369:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"369\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:5:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:18:\"config:system.site\";i:2;s:8:\"node:369\";i:3;s:9:\"node_view\";i:4;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510663231.391,1,'config:filter.format.basic_html config:system.site node:369 node_view rendered user:5','273'),('entity_view:node:369:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:33828:\"<span property=\"schema:name\">Yaffs Porting Guide</span>\n\n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>version 2.0</p>\n\n<p>Last changed: rrw@kynesim.co.uk, 2009-03-20<br />\n </p>\n\n<h3>Purpose</h3>\n\n<p>The purpose of this document is to describe how to bring up Yaffs2 on a board previously unsupported using the Yaffs Direct Interface, with an example using eCos on a Balloon board.</p>\n\n<p>Before we start you probably want to have the data sheet for the NAND chips you are using in front you so that you can refer to it as we go along.</p>\n\n<h3>Background and NAND Flash Properties</h3>\n\n<p>NAND flash is generally arranged in <em>pages</em> and <em>blocks</em>. A page contains a section of data bytes and then a section of out-of-band (<em>OOB</em>) data bytes. Blocks contain a number of pages .<br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram\" height=\"335\" src=\"/sites/yaffs.net/files/images/yaffs_porting_guide_html_2de490f8.png\" width=\"783\" /></a></p>\n\n<p>The OOB section of each page is used keep track of various things like file system state, error correction data and bad block marking.</p>\n\n<p>NAND flash is programmed (written to) and read on a largely page basis (though with some level of random access) and is erased on a block basis. That is, to erase a page, you must erase the rest of the containing block along with it.</p>\n\n<p>When programming NAND flash only 1\'s can be programmed to 0\'s, so to change a byte containing 0x00 to 0xFF it must be erased, along with the rest of the block. However subsequent programs may still be made without an erase if no 0s are to be changed to 1s, this might be useful in a scenario where subsequent data might regularly have this property.</p>\n\n<p>When manufactured NAND flash contains bad blocks, these are blocks that are not reliable and any data in them will commonly corrupt easily. These must be kept track of and the OOB data section is used to mark a bad block.</p>\n\n<p>NAND in general is prone to bit errors and for that reason the OOB data is also used to write error correction codes (ECC) so that some errors can be corrected.</p>\n\n<h3>Yaffs NAND Model</h3>\n\n<p>It is probably a good thing to detail at this point how Yaffs2 expects the NAND to behave so that you are aware of what you have to provide in the NAND driver to get YAFF running. Yaffs uses some different terminology in that it refers to a page as a <em>chunk</em>.</p>\n\n<p>Yaffs2 uses a fairly abstract model for NAND flash, this allows a lot of flexibility in the way Yaffs can be used. Yaffs is designed for NAND flash and makes the following assumptions and definitions:</p>\n\n<ul><li>NAND flash is arranged in blocks. Each block is the same size and comprises an integer number of chunks. Each block is treated as a single erasable item.</li>\n	<li>A page (chunk) equates to the allocation units of flash.</li>\n	<li>All accesses (reads and writes) are page (chunk) aligned.</li>\n	<li>When programming a NAND flash, only the zero bits in the pattern being programmed are relevant, and one bits are \"don\'t care\". For example, if a byte already contains the binary pattern 1010, then programming 1001 will result in the pattern which is the logical AND of these two patterns i.e. 1000. This is different to NOR flash.</li>\n</ul><p>Yaffs identifies blocks by their block number and chunks by their chunk Id. Yaffs treats a blank (0xFF filled) block as being free or erased. Thus, the equivalent of formatting for a Yaffs partition is to erase all the blocks that are not bad.</p>\n\n<p>Therefore Yaffs minimally needs access to functions that enable it to erase blocks and to read and write on a page basis. It is also helpful to be able to read only OOB data as reading/writing a full page to only view/update OOB data will cost many serial read cycles over the bus. This is an overhead that can be avoided using the random access read and write features of some nand chips.</p>\n\n<p> </p>\n\n<h2>Writing a Driver for NAND flash Chips</h2>\n\n<h3>Writing a Driver for the Samsung 628 K9F2G08U0M PCB0 on the Balloon Board (v3.01)</h3>\n\n<p>For the Balloon board the NAND chips hang off the CPLD which is in turn hooked up to the system bus. This is quite board specific and in this case reading the VHDL code reveals how to change the values on the pins of the NAND chips. You may look at the code by downloading the balloon source code (Appendix A) and looking at balloon3.vhd and Balloon_nand.vhd in balloon/vhdl/fpga/.</p>\n\n<p>It will be likely that this is significantly different on your platform and you should consult the relevant data sheets and documentation to determine how to access the NAND hardware on your board. I will present an example of the balloon board in order to give an overview of the kind of thing that is required.</p>\n\n<p>On the Balloon the CPLD routes data on the bus with certain address to the logic on the CPLD that actually controls the flash chips. They are as follows:</p>\n\n<p><code>NAND Data Bus : 0x10e00000</code> <code>NAND Control 2: 0x10e00010</code> <code>NAND Control : 0x10e00014</code></p>\n\n<p>Sending data to the \'NAND Data Bus\' address will put that data onto the I/O pins of the NAND chips. All of the nand chips are hooked up to the same pins on the CPLD so writing to the \'NAND Data Bus\' address will put the value written on the I/O pins for <em>all</em> of the available flash chips. To isolate the chip you want to work with using the chip enable pin on each flash chip.</p>\n\n<p>This is done by writing to the \'NAND Control\' (0x10e00014) address. When writing to \'NAND control\', the CPLD takes the data value on the bus and routes each bit to a different wire. This bit field is structured as follows:</p>\n\n<p> </p>\n\n<table><colgroup><col /><col /></colgroup><tr><td><em>Pin Attached To</em></td>\n			<td><em>Bit in NAND Control value</em></td>\n		</tr><tr><td>CLE (Control Latch Enable)</td>\n			<td>0</td>\n		</tr><tr><td>ALE (Address Latch Enable)</td>\n			<td>1</td>\n		</tr><tr><td>nCE0 (not Chip Enable for chip 0)</td>\n			<td>2</td>\n		</tr><tr><td>nCE1 (for chip 1)</td>\n			<td>3</td>\n		</tr><tr><td>nCE2 (for chip 2)</td>\n			<td>4</td>\n		</tr><tr><td>nCE3 (for chip 3)</td>\n			<td>5</td>\n		</tr><tr><td>nSE (not Chip Enable for chip 0)</td>\n			<td>6</td>\n		</tr><tr><td>nWP (not Write Protect)</td>\n			<td>7</td>\n		</tr></table><p> </p>\n\n<p>So for example bit 1 on the data lines is put onto the ALE pin on the physical chip. Bits prefixed with \'n\' are active low, for example chip 0 is selected when nCE0 is low and nCE1-3 are high.</p>\n\n<p> </p>\n\n<p>So writing to \'NAND Control\' we can change the values of the pins on the flash. Again, CLE, ALE, nSE and nWP change the value of the corresponding pin on all the flash chips available, nCE[0-3] will select the chip you are using.</p>\n\n<p>Finally, NAND flash typically comes in couple of flavours, 8 bit wide (x8) and 16 bit wide (x16). This means that x8 chips have 8 I/O pins and x16 have 16. The logic on the CPLD on the Balloon can handle both if you tell it which you are currently dealing with. Writing to \'NAND Control 2\' a value of 1 puts the CPLD logic for the NAND chips into x8 mode and 0 into x16 mode. I will assume for the rest of this document that there are only x8 chips connected to the balloon but it should be fairly trivial to extend it to support both.</p>\n\n<h3>Using the Flash Chips</h3>\n\n<p>The flash chips we\'re using have a number of commands, each triggered by a sequence of one or two command codes. You will want to refer to the data sheets for precise details of these functions, but I will briefly describe some of them in this document. The command set that we have for the particular chip we\'re using is table 1 on page 7 of the data sheet.</p>\n\n<p>To input a command there is generally one or two command input cycles. For two cycle commands there is generally an initial command followed by some data needed to complete the command then another command cycle to notify that the relevant data has been input and to start execution. For example for read operations the command 0x00 is latched in followed by some address input cycles followed by the command 0x30 to start the operation. With this in mind I will now describe how to input commands, the \'Command Latch Cycle\'.</p>\n\n<p>Note that for this section I have assumed that the bus is sufficiently slow that the set-up and hold times are not an issue, if you have a fast bus then you may have to wait for a small amount of time (refer to the data sheet) after changing values on the pins (by writing to the correct address) so that set-up and hold times are not violated.</p>\n\n<h3>Command Latch Cycle</h3>\n\n<p>For the command latch cycle you need to first select a chip by setting the relevant nCE low and then you need to set the CLE bit high, that means writing to the \'NAND Control\' address. ALE must also be low and should be set at the same time as CLE. It is then a case of putting the command value onto the I/O pins by writing to the \'NAND Data Bus\' address the value of the command you want. This will then latch in the command, afterwards you will need to clear the CLE bit again.</p>\n\n<p>You will also notice from looking at the data sheet that something needs to be done with the nWE (not <strong>w</strong>rite <strong>e</strong>nable) pin (specifically it should be low while latching in the command), but that I have yet to describe a mechanism for changing its value. This is because it is dealt with by the logic in the CPLD and whenever data is sent to the data address the CPLD will toggle nWE appropriately. (This is also true of nRE (not <strong>r</strong>ead <strong>e</strong>nable) when reading). This process is implemented in the nand_chip_select and the send_command functions (flash.c).</p>\n\n<h3>Address Latch Cycle and Addressing</h3>\n\n<p>The process for the Address Latch Cycle is similar to that for command latching (with the sense of ALE and CLE reversed) and can be looked at in the data sheet and is implemented in send_address in flash.c. The addressing is done by row and column. There are 5 address cycles on the flash chips we\'re looking at. The first cycle contains bits 0-7 of the column address, the second bits 8-11 with the remaining bits of the byte to be sent low. The row address is over 3 more cycles in a similar fashion.</p>\n\n<p>You may wish to chose to address the individual bytes of the chip with the OOB data not directly addressable. This has enabled me to lump several chips into the same address space and select the correct chip based on the address. Addresses then need to be converted to row and column. You should also check that they are page/block aligned in the relevant places if that\'s what your functions expect. It needn\'t be done this way any you could use page numbers instead of bytes just as easily.</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 2\" height=\"209\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m11b1f893.png\" width=\"654\" /></a></p>\n\n<p> </p>\n\n<p>The \'row\' is essentially the page index and the \'column\' is the index into to that page, so if you wanted to read from the start of page 213 you would send 0 for the column and 213 for the row. Conversely if you wanted just the OOB bytes from the same page you would send a column value of 2048 (given a page size of 2048+64 bytes).</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 3\" height=\"271\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m4650262f.png\" width=\"347\" /></a></p>\n\n<p> </p>\n\n<h3>Finding Chip information</h3>\n\n<p>You will then need to find out which chips are active (e.g. on the balloon there are 4 possible chips, not all of which will exist) and what type of chips they are. For this there is the \'Read ID\' operation. This operation is implemented in the read_ids function in flash.c. The result of the operation gives the manufacturer and device code of the chip and information about the chip (page size, block size, oob size etc). To find which chips are available, loop through the possible chips and start a Read ID command on each of them, if the expected data is returned then there is a chip at that location.</p>\n\n<p>The operation is started by sending the command 0x90 and then one address cycle of 0x00. There are then 5 read cycles which give you data about the device. A description of how to unpack this information from the returned bytes is located on page 32 of the data sheet for the chip described here.</p>\n\n<p>This then gives you how many chips you have and what layout the data in them has.</p>\n\n<h3>Bad Block Checking</h3>\n\n<p>Contained within a nand chip are blocks that the manufacturer will not guarantee the reliability of (this is to increase yield in manufacturing) and so bad blocks must be kept track of. The Samsung chips come with the first byte (or word for x16) of the first and second page of each bad block not programmed as 0xFF.</p>\n\n<p>This bad block marking should be maintained and should be added to in the same way when a bad block is is discovered. Yaffs will expect you to provide a function it can call to mark a particular block as bad when yaffs decides it is necessary.</p>\n\n<p>Yaffs keeps track of bad blocks itself so that the driver doesn\'t need to worry about masking out bad blocks.</p>\n\n<h3>Erasing a Block</h3>\n\n<p>An example of this operation is given in nand_erase_block in flash.c. If you are addressing the nand by bytes then you must first check that the address is aligned to the start of a block and then convert the address into a block number. If there is more than one chip this will involve working out which chip the address refers to and then selecting the correct chip. This can be seen in the select_chip function in flash.c. You must then send the first command cycle for the erase operation before sending 3 cycles of address and then finally the last command cycle.</p>\n\n<p>For the erase operation the 3 address cycles are different than for the read/write operations. Only address bits A18 to A29 is valid (for x8) while A12 to A17 is ignored. In terms of the ordinary 5 cycles address input you only need to deal with the last 3 cycles and of those only the highest 2 bits of the 3rd cycle are used and the full 4th and 5th cycle are used.</p>\n\n<p>Once the operation has been started the program can check the progress of the operation by sending a command of 70h. Each subsequent read will contain the read status. The driver should wait until the read is complete (by the read status operation), the read status operation also contains information about whether the erase failed and this information should be returned from the function doing the erase.</p>\n\n<h3>Reading a Page</h3>\n\n<p>Reading a page is performed by first selecting the correct chip and then converting the address to a row and column number. You can then sending the first command cycle for the read operation followed by 5 address cycles as described in the previous sections. The second command cycle then starts the read operation. The driver must then wait for the data to be retrieved into the data registers on the NAND before they can be read out over the bus. For the example chip this is 25us, consult the data sheet as this may differ. The data can then be read out sequentially byte by byte until all the data needed is obtained.</p>\n\n<h3>Writing a Page</h3>\n\n<p>Page program operations are performed by first selecting the correct chip converting the address to row and column numbers. The page program operation is initiated by the relevant fist command latch cycle (command 0x80) followed by an address latch cycle (as for read), serial data loading and then the second command latch cycle (command 0x10).</p>\n\n<p>The serial data loading is done by serially writing data to the I/O pins. Up to 2112 bytes (x8) can be loaded into the data registers. Once the second command cycle is sent the program is initiated and there is then a programming period where the loaded data is programmed into the appropriate cell. The driver should wait for this to complete by issuing a read status command (0x70) and monitoring the R/nB (ready / not busy) bit. The R/nB flag is on I/O pin 6 and can be checked by repeatedly reading from the \'NAND Data Bus\' address. Once the operation is complete the Write Status Bit (I/O 0 ) may be checked to confirm that the operation was successful.</p>\n\n<h2>Yaffs</h2>\n\n<h3>How To Use Yaffs</h3>\n\n<h3>Checking Out From Git</h3>\n\n<p>The first thing to do is to obtain the source code for Yaffs. This can be done from CVS, details of the process can be found at <a href=\"http://www.yaffs.net/download-yaffs-using-git\">http://www.yaffs.net/download-yaffs-using-git</a>.</p>\n\n<p>The following command will checkout the latest Git version using public read-only access, if you are using bash.</p>\n\n<p><code>$ </code>git clone git://www.aleph1.co.uk/yaffs2 </p>\n\n<h3>Making Some Tweaks to the Source Code</h3>\n\n<p>As of the latest version from CVS in January 2009, you will need to make a small number of changes before you can compile the source code without errors and warnings. There is a patch file included with this document.</p>\n\n<p>You will need to provide a definition of loff_t (in yaffs2/direct/ydirectenv.h) this is for holding the file size in bytes, you should make it big enough to hold the largest file size you wish to support. Unsigned long is probably a good place to start. You will need to edit yaffsfs.c to change a #if to a #ifdef. Then if you have the relevant warnings and -Werror switched on you will need to correct a couple of printf format strings to get the type right (changing a few \'%d\' to \'%ld\').</p>\n\n<p><code>change yaffs/ydirectenv.h </code></p>\n\n<p><code>+ typedef unsigned long loff_t; </code></p>\n\n<p><code>change yaffs2/direct/yaffsfs.c ~line 1117 </code></p>\n\n<p><code>- #if CONFIG_YAFFS_WINCE </code></p>\n\n<p><code>+ #ifdef CONFIG_YAFFS_WINCE</code></p>\n\n<h3>Relevant Files to the Direct Interface</h3>\n\n<p>There are quite a few files that get checked out, not all of which you will need to get going with the yaffs direct interface. The ones you will actually need are listed bellow, you do not need to compile the rest in.</p>\n\n<p><code><code>direct/yaffsfs.c </code></code></p>\n\n<p><code><code>yaffs_guts.c </code></code></p>\n\n<p><code><code>direct/yaffscfg.c </code></code></p>\n\n<p><code><code>yaffs_nand.c </code></code></p>\n\n<p><code><code>yaffs_tagsvalidity.c </code></code></p>\n\n<p><code><code>yaffs_checkptrw.c </code></code></p>\n\n<p><code><code>yaffs_qsort.c </code></code></p>\n\n<p><code><code>yaffs_tagscompat.c </code></code></p>\n\n<p><code><code>yaffs_ecc.c </code></code></p>\n\n<p><code><code>yaffs_packedtags2.c</code></code></p>\n\n<h3>Some Relevant Preprocessor Flags</h3>\n\n<p>There are many different configuration options for yaffs, here are a few that you should be aware of for using the yaffs direct interface.</p>\n\n<ul><li>CONFIG_YAFFS_DIRECT - Tell yaffs to use the direct interface.</li>\n	<li>CONFIG_YAFFS_YAFFS2 - Tell yaffs we want to use yaffs2</li>\n	<li>CONFIG_YAFFS_PROVIDE_DEFS - provides some definitions for file types and #includes linux/types.h, linux/fs.h, linux/stat.h (see yaffs2/devextras.h).</li>\n	<li>CONFIG_YAFFSFS_PROVIDE_VALUES - This may be used so that you can customise error values and constants like O_RDONLY to match the underlying system values, if itis not defined then it includes errno.h,sys/stat.h and fcntl.h (see yaffs2/direct/yaffsfs.h).</li>\n</ul><p>Specify these options when compiling yaffs, i.e. -DCONFIG_YAFFS_DIRECT etc.</p>\n\n<h3>Configuring</h3>\n\n<p>You will then need to provide yaffs with configuration information. This includes details about the nand flash you are using and also tells yaffs which functions to call when when it wants to read/write/erase parts of the flash, these functions will form the bridge between yaffs and the underlying hardware driver. This customisation is done in yaffscfg.h. Within yaffscfg.h you will need to provide a number of operating-system-like functions and a function to initialise yaffs. For example providing functions for malloc and free. Here is a breakdown of those functions that need to be implemented.</p>\n\n<h3>Operating System Functions</h3>\n\n<p><code><code>void yaffsfs_SetError(int err); </code> </code></p>\n\n<p>Report system errors, for example using errno if it exists.</p>\n\n<p><code><code>void *yaffs_malloc(size_t size);</code> <code>void yaffs_free(void *ptr);</code> </code></p>\n\n<p>As for the standard malloc and free functions, if they already exist on your system then you can just shim them.</p>\n\n<p><code><code>void yaffsfs_LocalInitialisation(void);</code> <code>void yaffsfs_Lock(void);</code> <code>void yaffsfs_Unlock(void);</code> </code></p>\n\n<p>Use yaffsfs_LocalInitalisation to initialise \"Real Time Operating System\" state, if the system is multi-threaded then it should initialise a semaphore/mutex for use by lock and unlock. Lock/unlock should use the semaphore set up in LocalInitialisation to lock yaffs from multi-threaded access.</p>\n\n<p><code><code>__u32 yaffsfs_CurrentTime(void);</code> </code></p>\n\n<p>This can be any time increment of use to the system. If this is not required, then it is fine to just use a function that returns zero.</p>\n\n<h3>Yaffs Startup Function</h3>\n\n<p><code><code>int yaffs_StartUp(void); </code> </code></p>\n\n<p><code><code>Return value: YAFFS_OK or YAFFS_FAIL</code> </code></p>\n\n<p>This functions should be used to provide yaffs with many details about the properties of the underlying nand device. Within this function you will need to set up a \'yaffs_Device\' (yaffs_guts.h) and a \'yaffsfs_DeviceConfiguration\' (direct/yaffscfg.h). How to set up a yaffs device will follow in the next section. Once you have set up the required yaffs_Device structures you should call yaffs_initialise (yaffs_guts.h) with a pointer to a null terminated array of yaffs_DeviceConfiguration structures. A yaffs_DeviceConfiguration structure contains a pointer to a yaffs_Device and the \'mount point\' string (prefix) that that device corresponds to.</p>\n\n<h3>Yaffs Devices</h3>\n\n<p>A yaffs device is a logical device that represents part of or a whole physical device. You might think of it as a \'partition\' on the nand. For example, it might cover the whole of the nand device or perhaps only claim half, with another yaffs_Device claiming the other half. It may also be used so that you can use a device other than a flash device (e.g. RAM) for testing purposes.</p>\n\n<p>A yaffs_Device keeps track of the start and end block, so you may have more than one yaffs_Device corresponding to the same physical device by altering the start and end block of the yaffs device.</p>\n\n<p>The fields on the yaffs_Device struct that you need to set up yourself are listed below, all other fields are setup automatically by yaffs.</p>\n\n<p><code><code>int nDataBytesPerChunk</code> </code></p>\n\n<p>As the name suggests this is the number of bytes per chunk, remembering that in yaffs terminology a page is referred to as a chunk, this is then the number of bytes per page. This is the number of data bytes, that is the number of bytes excluding the OOB byte data. E.g. if a page is 2048byte + 64bytes of OOB then set nDataBytesPerChunk to 2048.</p>\n\n<p><code><code>int nChunksPerBlock </code> </code></p>\n\n<p>Straightforwardly the number of chunks (pages on the nand) in each block on the physical nand device. Must be at least 2.</p>\n\n<p><code><code>int spareBytesPerChunk</code></code><br />\nThis is the size of the spare area, i.e. the number of OOB bytes per chunk (page)<code>. </code></p>\n\n<p><code><code>int startBlock</code> </code></p>\n\n<p>The block number (not the address in bytes) on the chip of the first block of this logical yaffs_Device. Beware, yaffs needs the first block to be free so you should not set this to 0, if it is then yaffs will add on one to it itself and also add on one to the end block which could be an issue if you wanted your device to start at block 0 and finish at the last block which might mean yaffs trying to write to a non-existent block.</p>\n\n<p><code><code>int endBlock</code> </code></p>\n\n<p>The block number on the chip of the last block for this logical yaffs_Device. If startBlock == 0 then yaffs will use endBlock+1. Must be at least startBlock + nReservedBlocks + 2.</p>\n\n<p><code><code>int nReservedBlocks</code> </code></p>\n\n<p>This is then number of erasable blocks that Yaffs must keep in reserve for garbage collection and to cover for block failures. This must be a minimum of 2, but 5 or so is better. If you are using a medium that is not expected to fail (eg. RAM for a RAM disk, or a host file system emulation then 2 is OK).</p>\n\n<p><code><code>int nShortOpCaches</code> </code></p>\n\n<p>This configures the number of entries in the Yaffs cache for this device. A value of zero defeats the cache. A value of 10 to 20 is recommended for most systems. Cannon be any bigger than YAFFS_MAX_SHORT_OP_CACHES.</p>\n\n<p><code><code>int useNANDECC</code> </code></p>\n\n<p>This is a flag that tells yaffs whether it should be doing ECC calculations or if it should be left to the driver.</p>\n\n<p><code><code>void *genericDevice</code> </code></p>\n\n<p>This is a pointer which should point to any data that the underlying nand driver will need to know to write and read from the physical device.</p>\n\n<p><code><code>int isYaffs2</code> </code></p>\n\n<p>Are we using Yaffs2? We only deal with Yaffs2 in this document.</p>\n\n<p><code><code>int inbandTags</code> </code></p>\n\n<p>Is there an OOB section? If not then this should be true. Only relevant to Yaffs2.</p>\n\n<p><code><code>_u32 totalBytesPerChunk</code> </code></p>\n\n<p>Possibly a misleading name, it should be equal to nDataBytesPerChunk not nDataBytesPerChunk + spareBytesPerChunk as the name might suggest. If inbandTags is true then yaffs sets nDataBytesPerChunk such that there is enough space for the data yaffs would normally store in the spare area.</p>\n\n<p><code><code>write/readChunkWithTagsFromNAND, markNANDBlockBad, queryNANDBlock</code> </code></p>\n\n<p>These are all pointers to functions that you shall provide to provide Yaffs with a method of writing/reading etc from the NAND.</p>\n\n<h3>NAND access functions</h3>\n\n<p>If you are using Yaffs2 you need to provide pointers to functions that Yaffs can call to write and read from the nand. Example implementations of these function can be seen in yaffs_mtdif.c, these are the functions written to do the same job for the linux mtd layer and provides the write and read functions. The following functions return YAFFS_OK on success and YAFFS_FAIL on failure.</p>\n\n<p><code><code>int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, const __u8 * data,</code> <code>const yaffs_ExtendedTags * tags);</code> <code>dev: yaffs_Device to write to.</code> <code>chunkInNAND: Which page to write the chunk to.</code> <code>Data: Pointer to the data to write</code> <code>tags: Unpacked OOB data.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function is to write pages (chunks) to the nand. In this function you will probably want to first retrive any useful data that you put in dev-&gt;genericDevice (in the yaffs_StartUp function) and use it to call the function you wrote previously to write data to the nand. For yaffs2 data and tags should never be NULL. chunkInNand is the page number of the page to write to, not an address so it will need converting if that\'s what your underling functions to write to the nand expect.</p>\n\n<p>You will then need to pack the tags into a yaffs_PackedTags2 structure, this takes out the all relevant details from the yaffs_ExtendedTags tags structure and calculates ECC data on it before placing them in the packedtags2 structure. This structure is the OOB data you will want to write out to the nands spare area.</p>\n\n<p>How you write these out to the OOB data depends on your architecture, nand chips and therefore how bad block marking is done. If for example the first byte is used for bad block marking then simply writing the tags out after the first byte is acceptable. The ECC data in packed tags only covers error correction and detection for the tags in the OOB data, if you want ECC on the data then you must do that yourself.</p>\n\n<p>To perform ECC checks to the data bytes you may use the yaffs_ECCCalculate function which calculates ECC data for 256 byte sections of data. This function produces 3 bytes of ECC data per 256 bytes. Therefore for 2048 bytes of data in each page you would need (2048/256) * 3 = 8 * 3 = 24 extra bytes of ECC data. This can be written out after the bad block byte and packed tags data.<br />\n </p>\n\n<p><code><code>int (*readChunkWithTagsFromNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, __u8 * data,</code> <code>yaffs_ExtendedTags * tags);</code> <code>dev: The yaffs_Device to read from.</code> <code>chunkInNAND: Which page to read from.</code> <code>Data: Pointer to a buffer to read data to.</code> <code>tags: Pointer to a buffer to unpacked OOB data into.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function should do the opposite to the previous function. Firstly, read in the data and OOB bytes. Secondly place the data bytes in the area pointed to by data, then unpack the OOB bytes into into the pointer to tags using yaffs_UnpackTags2.</p>\n\n<p>Once the tags have been unpacked you should then recalculate the ECC data on the data bytes you just read back, just as you did for the write operation. Then use the recalculated ECC and the ECC data read out of the OOB bytes with yaffs_ECCCorrect to correct the data.</p>\n\n<p>Depending on the return value from yaffs_ECCCorrect you should set tags-&gt;eccResult to reflect whether anything was corrected or the correction failed. yaffs_UnpackTags2 also sets tags-&gt;eccResult so you should only update it if the result of the data correction is worse than is already there. i.e. if after the tags are unpacked and eccResult is YAFFS_ECC_RESULT_FIXED and ECC correction on the data read back resulted in no errors then you should leave unpackedtags2 and YAFFS_ECC_RESULT_FIXED and not set it to YAFFS_ECC_RESULT_NO_ERROR.</p>\n\n<p><code><code>int (*markNANDBlockBad) (struct yaffs_DeviceStruct * dev, int blockNo);</code> <code>dev: yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code></code></p>\n\n<p>This should mark the block bad. This probably means reading the OOB data and changing the relevant byte that marks the bad block, and writing the OOB data back.</p>\n\n<p><code><code>int (*queryNANDBlock) (struct yaffs_DeviceStruct * dev, int blockNo,</code> <code>yaffs_BlockState * state, __u32 *sequenceNumber);</code> <code>dev: The yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>state: Upon returning this should be set to the relevant state of this particular block.</code> <code>Sequence number: The Sequence number of this block. 0 if the block is unused.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This should check whether or not the block is valid.</p>\n\n<p>If the bad block marker is set in the OOB then *state should be set to YAFFS_BLOCK_STATE_DEAD *sequenceNumber set to 0, and return YAFFS_FAIL.</p>\n\n<p>If the block is not bad then the tags should be unpacked. After the tags are unpacked, and it is found that chunk is used (see tags.chunkUsed) *sequenceNumber should be set to tags.sequenceNumber and *state to YAFFS_BLOCK_STATE_NEEDS_SCANNING, otherwise if the block is not used then *sequenceNumber should be 0 and *state should be set to YAFFS_BLOCK_STATE_EMPTY.</p>\n\n<h3>Application Interface</h3>\n\n<p>The yaffs provides a number of functions for applications to interface with it. These are mostly the same as the standard clib open/close etc prefixed with yaffs_ eg yaffs_open. These functions are defined in direct/yaffsfs.h.</p>\n\n<p>To initialise yaffs so that reading and writing can be done, you must call yaffs mount for each yaffs device you would like to use, e.g. yaffs_mount(\"/boot\"). This could be done at system boot if there is an operating system present so that the application need to worry about this. You will also need to call yaffs_unmount when you have finished so that yaffs may write any state it needs to to disk.</p>\n\n<p>If there is already an application interface for reading and writing files you may shim the relevant function calls with the related operating system calls.</p>\n\n<p>E.g. simply doing #define open(path, oflag, mode) yaffs_open(path, oflag, mode)</p>\n\n<p>Or having something more complex to provide redirection functions if there is more than one file system present.</p>\n\n<p><code><code>For example: int open(const char *path,...)<br />\n{<br />\n//Determine which file system is being used </code> <code>if(it_is_a_yaffs_path(path)) {</code> <code> return yaffs_open(...);<br />\n} else {<br />\n// Do something else<br />\n}<br />\n}</code></code></p>\n\n<h2>Appendices</h2>\n\n<h3>Appendix A - Accessing the Balloon Source Code</h3>\n\n<p>The latest source code for the balloon board can be checked out from SVN. There is different code for different balloon versions. Details of getting the source and setting up tool chains is decribed in the following page <a href=\"http://www.balloonboard.org/software.html\">http://www.balloonboard.org/software.html</a>. If you just want to take a look at the latest mainline code then the following will give you what you want.</p>\n\n<p>svn checkout svn://balloonboard.org/balloon/trunk/</p>\n\n<p> </p></div>\n      \";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:369\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1510805654.214,1,'config:filter.format.basic_html node:369 node_view rendered','265'),('entity_view:node:369:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"369\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:31:\"config:filter.format.basic_html\";i:1;s:8:\"node:369\";i:2;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510805654.192,1,'config:filter.format.basic_html node:369 node_view rendered','265'),('entity_view:node:370:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0Ow_25iMMZ-LZJaCb7Pi-4CiscwKFtpaZEOhwccR5NOw','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:175:\"<article role=\"article\" about=\"/yaffs-porting-guide-html-2de490f8-png\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:38:\"/yaffs-porting-guide-html-2de490f8-png\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/370\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:38:\"/yaffs-porting-guide-html-2de490f8-png\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:370\";i:2;s:9:\"node_view\";i:3;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:51:\"<span>yaffs_porting_guide_html_2de490f8.png</span>\n\";}}',-1,1511955819.199,1,'config:system.site node:370 node_view rendered user:5','262'),('entity_view:node:370:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"370\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:370\";i:2;s:9:\"node_view\";i:3;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511955819.197,1,'config:system.site node:370 node_view rendered user:5','262'),('entity_view:node:370:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:611:\"<article role=\"article\" about=\"/yaffs-porting-guide-html-2de490f8-png\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-porting-guide-html-2de490f8-png\" rel=\"bookmark\"><span>yaffs_porting_guide_html_2de490f8.png</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-porting-guide-html-2de490f8-png\" rel=\"tag\" title=\"yaffs_porting_guide_html_2de490f8.png\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about yaffs_porting_guide_html_2de490f8.png</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:370\";i:1;s:9:\"node_view\";i:2;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.334,1,'node:370 node_view rendered user:5','256'),('entity_view:node:370:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"370\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:370\";i:1;s:9:\"node_view\";i:2;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.322,1,'node:370 node_view rendered user:5','256'),('entity_view:node:371:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0N_5zskAKXYJeoZTezVIzKF0SK1c_-j7N5nuwQvC2q3I','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:176:\"<article role=\"article\" about=\"/yaffs-porting-guide-html-m11b1f893-png\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:39:\"/yaffs-porting-guide-html-m11b1f893-png\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/371\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:39:\"/yaffs-porting-guide-html-m11b1f893-png\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:371\";i:2;s:9:\"node_view\";i:3;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:52:\"<span>yaffs_porting_guide_html_m11b1f893.png</span>\n\";}}',-1,1511763447.638,1,'config:system.site node:371 node_view rendered user:5','262'),('entity_view:node:371:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"371\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:371\";i:2;s:9:\"node_view\";i:3;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511763447.634,1,'config:system.site node:371 node_view rendered user:5','262'),('entity_view:node:371:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:617:\"<article role=\"article\" about=\"/yaffs-porting-guide-html-m11b1f893-png\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-porting-guide-html-m11b1f893-png\" rel=\"bookmark\"><span>yaffs_porting_guide_html_m11b1f893.png</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-porting-guide-html-m11b1f893-png\" rel=\"tag\" title=\"yaffs_porting_guide_html_m11b1f893.png\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about yaffs_porting_guide_html_m11b1f893.png</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:371\";i:1;s:9:\"node_view\";i:2;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.293,1,'node:371 node_view rendered user:5','256'),('entity_view:node:371:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"371\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:371\";i:1;s:9:\"node_view\";i:2;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.291,1,'node:371 node_view rendered user:5','256'),('entity_view:node:372:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0zHOFMwMGOmLRqPLwbNYJ8Fkfr4nwHKHGmV9BmbNTYKU','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:176:\"<article role=\"article\" about=\"/yaffs-porting-guide-html-m4650262f-png\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:39:\"/yaffs-porting-guide-html-m4650262f-png\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/372\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:39:\"/yaffs-porting-guide-html-m4650262f-png\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:372\";i:2;s:9:\"node_view\";i:3;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:52:\"<span>yaffs_porting_guide_html_m4650262f.png</span>\n\";}}',-1,1511339470.720,1,'config:system.site node:372 node_view rendered user:5','262'),('entity_view:node:372:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"372\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:372\";i:2;s:9:\"node_view\";i:3;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511339470.707,1,'config:system.site node:372 node_view rendered user:5','262'),('entity_view:node:372:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:617:\"<article role=\"article\" about=\"/yaffs-porting-guide-html-m4650262f-png\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-porting-guide-html-m4650262f-png\" rel=\"bookmark\"><span>yaffs_porting_guide_html_m4650262f.png</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-porting-guide-html-m4650262f-png\" rel=\"tag\" title=\"yaffs_porting_guide_html_m4650262f.png\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about yaffs_porting_guide_html_m4650262f.png</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:372\";i:1;s:9:\"node_view\";i:2;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.282,1,'node:372 node_view rendered user:5','256'),('entity_view:node:372:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"372\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:372\";i:1;s:9:\"node_view\";i:2;s:6:\"user:5\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.280,1,'node:372 node_view rendered user:5','256'),('entity_view:node:374:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0Lq276R2_3_5sRLMf8yXROhg7TE0NBs7jZ2c8hYwSBkY','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:154:\"<article role=\"article\" about=\"/yaffs-tnode-tree\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:17:\"/yaffs-tnode-tree\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/374\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:17:\"/yaffs-tnode-tree\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:374\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:30:\"<span>YAFFS Tnode tree</span>\n\";}}',-1,1511339465.554,1,'config:system.site node:374 node_view rendered user:1','267'),('entity_view:node:374:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"374\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:374\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511339465.550,1,'config:system.site node:374 node_view rendered user:1','267'),('entity_view:node:374:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:30:\"<span>YAFFS Tnode tree</span>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:8:\"node:374\";i:1;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113328.854,1,'node:374 node_view rendered','254'),('entity_view:node:374:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"374\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:8:\"node:374\";i:1;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113328.852,1,'node:374 node_view rendered','254'),('entity_view:node:374:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:485:\"<article role=\"article\" about=\"/yaffs-tnode-tree\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-tnode-tree\" rel=\"bookmark\"><span>YAFFS Tnode tree</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-tnode-tree\" rel=\"tag\" title=\"YAFFS Tnode tree\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS Tnode tree</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:374\";i:1;s:9:\"node_view\";i:2;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.270,1,'node:374 node_view rendered user:1','261'),('entity_view:node:374:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"374\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:374\";i:1;s:9:\"node_view\";i:2;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.268,1,'node:374 node_view rendered user:1','261'),('entity_view:node:376:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0AYbG41HKiIPud_Xp83JqEYjQUB71zHg7hP689w56WKM','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:171:\"<article role=\"article\" about=\"/yaffs-directory-structure-example\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:34:\"/yaffs-directory-structure-example\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/376\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:34:\"/yaffs-directory-structure-example\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:376\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:49:\"<span>YAFFS - directory structure example</span>\n\";}}',-1,1511339464.672,1,'config:system.site node:376 node_view rendered user:1','267'),('entity_view:node:376:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"376\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:376\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511339464.669,1,'config:system.site node:376 node_view rendered user:1','267'),('entity_view:node:376:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:49:\"<span>YAFFS - directory structure example</span>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:8:\"node:376\";i:1;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113328.844,1,'node:376 node_view rendered','254'),('entity_view:node:376:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"376\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:8:\"node:376\";i:1;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113328.841,1,'node:376 node_view rendered','254'),('entity_view:node:376:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:593:\"<article role=\"article\" about=\"/yaffs-directory-structure-example\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-directory-structure-example\" rel=\"bookmark\"><span>YAFFS - directory structure example</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-directory-structure-example\" rel=\"tag\" title=\"YAFFS - directory structure example\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS - directory structure example</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:376\";i:1;s:9:\"node_view\";i:2;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.259,1,'node:376 node_view rendered user:1','261'),('entity_view:node:376:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"376\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:376\";i:1;s:9:\"node_view\";i:2;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.258,1,'node:376 node_view rendered user:1','261'),('entity_view:node:377:full:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b0FVE-S4y23v7nrQX1O8CcaTPwJPSbIP8hE71O59cGP58','a:5:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:156:\"<article role=\"article\" about=\"/yaffs-block-states\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:1:{s:14:\"html_head_link\";a:3:{i:0;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:19:\"/yaffs-block-states\";}i:1;b:1;}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/377\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:19:\"/yaffs-block-states\";}i:1;b:1;}}}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:377\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:6:\"#title\";}s:6:\"#title\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:34:\"<span>YAFFS - Block states</span>\n\";}}',-1,1511339454.366,1,'config:system.site node:377 node_view rendered user:1','267'),('entity_view:node:377:full:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01:[user.roles:anonymous]=0','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"377\";i:3;s:4:\"full\";}s:8:\"contexts\";a:7:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";i:5;s:20:\"user.roles:anonymous\";i:6;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:4:{i:0;s:18:\"config:system.site\";i:1;s:8:\"node:377\";i:2;s:9:\"node_view\";i:3;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1511339454.360,1,'config:system.site node:377 node_view rendered user:1','267'),('entity_view:node:377:search_result:[languages:language_interface]=en:[theme]=yaffs:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:34:\"<span>YAFFS - Block states</span>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:8:\"node:377\";i:1;s:9:\"node_view\";}s:7:\"max-age\";i:-1;}}',-1,1512113328.834,1,'node:377 node_view rendered','254'),('entity_view:node:377:search_result:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"377\";i:3;s:13:\"search_result\";}s:8:\"contexts\";a:4:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:17:\"url.path.is_front\";i:3;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:8:\"node:377\";i:1;s:9:\"node_view\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1512113328.832,1,'node:377 node_view rendered','254'),('entity_view:node:377:teaser:[languages:language_interface]=en:[theme]=yaffs:[timezone]=Europe/London:[url.path.is_front]=is_front.0:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:3:{s:7:\"#markup\";O:25:\"Drupal\\Core\\Render\\Markup\":1:{s:9:\"\0*\0string\";s:503:\"<article role=\"article\" about=\"/yaffs-block-states\" class=\"image is-promoted teaser clearfix\">\n\n  \n      <h2>\n      <a href=\"/yaffs-block-states\" rel=\"bookmark\"><span>YAFFS - Block states</span>\n</a>\n    </h2>\n    \n\n  \n  <div class=\"content\">\n    <ul class=\"links inline list-inline\"><li class=\"node-readmore\"><a href=\"/yaffs-block-states\" rel=\"tag\" title=\"YAFFS - Block states\" hreflang=\"und\">Read more<span class=\"visually-hidden\"> about YAFFS - Block states</span></a></li></ul>\n  </div>\n\n</article>\n\";}s:9:\"#attached\";a:0:{}s:6:\"#cache\";a:3:{s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:377\";i:1;s:9:\"node_view\";i:2;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}}',-1,1510674351.249,1,'node:377 node_view rendered user:1','261'),('entity_view:node:377:teaser:[languages:language_interface]=en:[theme]=yaffs:[user.permissions]=aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01','a:2:{s:15:\"#cache_redirect\";b:1;s:6:\"#cache\";a:5:{s:4:\"keys\";a:4:{i:0;s:11:\"entity_view\";i:1;s:4:\"node\";i:2;s:3:\"377\";i:3;s:6:\"teaser\";}s:8:\"contexts\";a:5:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:8:\"timezone\";i:3;s:17:\"url.path.is_front\";i:4;s:16:\"user.permissions\";}s:4:\"tags\";a:3:{i:0;s:8:\"node:377\";i:1;s:9:\"node_view\";i:2;s:6:\"user:1\";}s:7:\"max-age\";i:-1;s:3:\"bin\";s:6:\"render\";}}',-1,1510674351.246,1,'node:377 node_view rendered user:1','261'),