<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://paz00.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8</id>
	<title>Установка NAND памяти - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://paz00.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;action=history"/>
	<updated>2026-05-03T13:39:56Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=813&amp;oldid=prev</id>
		<title>Stuw в 07:14, 9 апреля 2015</title>
		<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=813&amp;oldid=prev"/>
		<updated>2015-04-09T07:14:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 07:14, 9 апреля 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Строка 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Toshiba AC100 имеет на плате место для установки чипа NAND памяти в корпусе 48TSOP1. В процессе изучения схемы и платы выяснилось, что дорожки к посадочному месту подходят, питание есть и остальные пассивные компоненты, вроде конденсаторов, установлены.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Toshiba AC100 имеет на плате место для установки чипа NAND памяти в корпусе 48TSOP1. В процессе изучения схемы и платы выяснилось, что дорожки к посадочному месту подходят, питание есть и остальные пассивные компоненты, вроде конденсаторов, установлены.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Upstream==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Lucas Stach ведет работы по созданию NAND драйвера для Tegra 2 в мэйнлайн ядре.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Вторая серия патчей: [https://www.mail-archive.com/devicetree@vger.kernel.org/msg68502.html Tegra 2 NAND Flash Support]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Что работает в данный момент==  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Что работает в данный момент==  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key paz00_wiki-ac100:diff::1.12:old-613:rev-813 --&gt;
&lt;/table&gt;</summary>
		<author><name>Stuw</name></author>
	</entry>
	<entry>
		<id>https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=613&amp;oldid=prev</id>
		<title>Stuw: /* Проблемы с OOB и badblocks */</title>
		<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=613&amp;oldid=prev"/>
		<updated>2014-12-05T20:24:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Проблемы с OOB и badblocks&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:24, 5 декабря 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l110&quot;&gt;Строка 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В текущей версии драйвера неправильно определяется размер spare-области в функциях чтения-записи oob-данных. Исправляется это следующим патчем:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В текущей версии драйвера неправильно определяется размер spare-области в функциях чтения-записи oob-данных. Исправляется это следующим патчем:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;//paz00.rutegra-oob-size-fix.patch &lt;/del&gt;tegra-oob-size-fix.patch]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[File&lt;/ins&gt;:tegra-oob-size-fix.patch&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Кроме того, для работы с UBI потребуется исправить установку значения размера буфера записи в функции &amp;lt;tt&amp;gt;tegra_nand_scan&amp;lt;/tt&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Кроме того, для работы с UBI потребуется исправить установку значения размера буфера записи в функции &amp;lt;tt&amp;gt;tegra_nand_scan&amp;lt;/tt&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;//paz00.rutegra-writebufsize-fix.patch &lt;/del&gt;tegra-writebufsize-fix.patch]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[File&lt;/ins&gt;:tegra-writebufsize-fix.patch&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;После этого можно собирать ядро, прошивать и общаться с новоявленной памятью посредством &amp;lt;tt&amp;gt;mtd_debug&amp;lt;/tt&amp;gt; из пакета &amp;lt;tt&amp;gt;mtd-utils&amp;lt;/tt&amp;gt;. Если &amp;lt;tt&amp;gt;ubiformat&amp;lt;/tt&amp;gt; считает подавляющее большинство блоков исправными — вам повезло, и вы можете создать раздел, используя &amp;lt;tt&amp;gt;ubimkvol&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;После этого можно собирать ядро, прошивать и общаться с новоявленной памятью посредством &amp;lt;tt&amp;gt;mtd_debug&amp;lt;/tt&amp;gt; из пакета &amp;lt;tt&amp;gt;mtd-utils&amp;lt;/tt&amp;gt;. Если &amp;lt;tt&amp;gt;ubiformat&amp;lt;/tt&amp;gt; считает подавляющее большинство блоков исправными — вам повезло, и вы можете создать раздел, используя &amp;lt;tt&amp;gt;ubimkvol&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key paz00_wiki-ac100:diff::1.12:old-612:rev-613 --&gt;
&lt;/table&gt;</summary>
		<author><name>Stuw</name></author>
	</entry>
	<entry>
		<id>https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=612&amp;oldid=prev</id>
		<title>Stuw: /* Компиляция ядра */</title>
		<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=612&amp;oldid=prev"/>
		<updated>2014-12-05T20:23:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Компиляция ядра&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:23, 5 декабря 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l37&quot;&gt;Строка 37:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 37:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В данный момент NAND-память поддерживается только в ветке 3.1 (&amp;lt;tt&amp;gt;l4t-r16-r2-ac100&amp;lt;/tt&amp;gt;). Для включения поддержки необходимо применить следующий патч:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В данный момент NAND-память поддерживается только в ветке 3.1 (&amp;lt;tt&amp;gt;l4t-r16-r2-ac100&amp;lt;/tt&amp;gt;). Для включения поддержки необходимо применить следующий патч:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;//paz00.rupaz00-nand-support.patch &lt;/del&gt;paz00-nand-support.patch]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[File&lt;/ins&gt;:paz00-nand-support.patch&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key paz00_wiki-ac100:diff::1.12:old-131:rev-612 --&gt;
&lt;/table&gt;</summary>
		<author><name>Stuw</name></author>
	</entry>
	<entry>
		<id>https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=131&amp;oldid=prev</id>
		<title>Unknown user в 08:14, 15 октября 2014</title>
		<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_NAND_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8&amp;diff=131&amp;oldid=prev"/>
		<updated>2014-10-15T08:14:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Введение= &lt;br /&gt;
&lt;br /&gt;
Toshiba AC100 имеет на плате место для установки чипа NAND памяти в корпусе 48TSOP1. В процессе изучения схемы и платы выяснилось, что дорожки к посадочному месту подходят, питание есть и остальные пассивные компоненты, вроде конденсаторов, установлены.&lt;br /&gt;
&lt;br /&gt;
==Что работает в данный момент== &lt;br /&gt;
&lt;br /&gt;
В данный момент при правильно пропатченном ядре появляется устройство /dev/mtd0, а также возможность работать с ним через mtd-utils. При условии, что флешка пустая или отформатирована на самой ac100 (подробная информация ниже), можно подключить mtd0 к UBI и даже создать раздел.&lt;br /&gt;
&lt;br /&gt;
Примонтировать NAND-память и пользоваться как обычным диском пока что не получится — по неизвестным в данный момент причинам при монтировании ubifs failed to recover master node.&lt;br /&gt;
&lt;br /&gt;
=Подготовка= &lt;br /&gt;
&lt;br /&gt;
==Что потребуется для модификации== &lt;br /&gt;
&lt;br /&gt;
* Паяльник с тонким жалом, желательно с регулировкой температуры&lt;br /&gt;
* В случае, когда чип необходимо снять с донора — термовоздушная или инфракрасная паяльная станция&lt;br /&gt;
* Флюс (как можно менее агрессивный), припой&lt;br /&gt;
* Металлическая оплетка для удаления лишнего припоя&lt;br /&gt;
* Непосредственно микросхема памяти. Её выбор следует рассмотреть отдельно.&lt;br /&gt;
&lt;br /&gt;
==Выбор микросхемы памяти== &lt;br /&gt;
&lt;br /&gt;
Плата paz00 предполагает использование 8-битной NAND памяти с напряжением питания 3.3V. Как правило, в серии микросхем существуют модификации с различной разрядностью и напряжением питания. Кроме того, текущая версия драйвера (&amp;lt;tt&amp;gt;drivers/mtd/devices/tegra_nand&amp;lt;/tt&amp;gt;) поддерживает только чипы с 2k и 4k размером страниц (pagesize).&lt;br /&gt;
&lt;br /&gt;
Проще всего извлечь микросхему из USB-флешки. Перед извлечением следует найти datasheet на чип в Google и убедиться, что он подходит по параметрам.&lt;br /&gt;
&lt;br /&gt;
=Аппаратная часть= &lt;br /&gt;
&lt;br /&gt;
==Установка микросхемы== &lt;br /&gt;
&lt;br /&gt;
Припаивание производится без каких-либо особых тонкостей. Проще всего сначала аккуратно залудить контактные площадки на плате, затем с помощью паяльника припаять память, зафиксировав сначала крайние контакты. Использовать фен или ИК на плате можно только в том случае, если вы представляете себе последствия термического расширения платы и перегрева компонентов.&lt;br /&gt;
&lt;br /&gt;
=Программная часть= &lt;br /&gt;
&lt;br /&gt;
==Компиляция ядра== &lt;br /&gt;
&lt;br /&gt;
В данный момент NAND-память поддерживается только в ветке 3.1 (&amp;lt;tt&amp;gt;l4t-r16-r2-ac100&amp;lt;/tt&amp;gt;). Для включения поддержки необходимо применить следующий патч:&lt;br /&gt;
&lt;br /&gt;
[http://paz00.rupaz00-nand-support.patch paz00-nand-support.patch]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt; paz00-nand-support.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, простого применения патча недостаточно, и перед компиляцией необходимо будет задать параметры используемого чипа в файле &amp;lt;tt&amp;gt;/arch/arm/mach-tegra/board-paz00.c&amp;lt;/tt&amp;gt;. Пример конфигурации для Hynix HY27UF081G2M:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
static struct tegra_nand_chip_parms nand_chip_parms[] = {&lt;br /&gt;
    /* Hynix HY27UF081G2M */&lt;br /&gt;
    [0] = {&lt;br /&gt;
        .vendor_id = 0xAD,&lt;br /&gt;
        .device_id = 0xF1,&lt;br /&gt;
        .read_id_fourth_byte = 0x15,&lt;br /&gt;
        .capacity = 1024,&lt;br /&gt;
        .timing = {&lt;br /&gt;
            .trp = 25,&lt;br /&gt;
            .trh = 20, /* FIXME: this value wasn't found in datasheet */&lt;br /&gt;
            .twp = 40,&lt;br /&gt;
            .twh = 20,&lt;br /&gt;
            .tcs = 20, /* FIXME: this value is 0 in datasheet */&lt;br /&gt;
            .twhr = 60,&lt;br /&gt;
            .tcr_tar_trr = 20,&lt;br /&gt;
            .twb = 100,&lt;br /&gt;
            .trp_resp = 25, /* FIXME */&lt;br /&gt;
            .tadl = 100,&lt;br /&gt;
        },&lt;br /&gt;
    },&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все значения таймингов и ID можно найти в даташите на микросхему. В большинстве случаев название тайминга в коде будет соответствовать таковому в даташите.&lt;br /&gt;
&lt;br /&gt;
Для включения поддержки MTD и NAND в ядре нужно изменить следующие опции конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONFIG_MTD=y&lt;br /&gt;
CONFIG_MTD_CHAR=m&lt;br /&gt;
CONFIG_MTD_BLKDEVS=m&lt;br /&gt;
CONFIG_MTD_BLOCK=m&lt;br /&gt;
CONFIG_MTD_BLOCK_RO=m&lt;br /&gt;
CONFIG_FTL=m&lt;br /&gt;
CONFIG_NFTL=m&lt;br /&gt;
CONFIG_NFTL_RW=y&lt;br /&gt;
CONFIG_INFTL=m&lt;br /&gt;
CONFIG_RFD_FTL=m&lt;br /&gt;
CONFIG_SSFDC=m&lt;br /&gt;
CONFIG_SM_FTL=m&lt;br /&gt;
CONFIG_MTD_NAND_TEGRA=y&lt;br /&gt;
CONFIG_MTD_NAND_IDS=y&lt;br /&gt;
CONFIG_MTD_NAND_ECC=y&lt;br /&gt;
CONFIG_MTD_NAND=y&lt;br /&gt;
CONFIG_MTD_NAND_VERIFY_WRITE=y&lt;br /&gt;
CONFIG_MTD_NAND_BCH=y&lt;br /&gt;
CONFIG_MTD_NAND_ECC_BCH=y&lt;br /&gt;
CONFIG_MTD_NAND_GPIO=y&lt;br /&gt;
CONFIG_MTD_NAND_PLATFORM=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Проблемы с OOB и badblocks== &lt;br /&gt;
&lt;br /&gt;
В NAND памяти используется разделение на страницы (page). В текущей версии драйвера поддерживаются чипы с page size 2k и 4k; для чипов с другим размером страниц потребуется модификация драйвера.&lt;br /&gt;
&lt;br /&gt;
Каждая страница сопровождается out-of-band блоком, размер которого зависит от размера страницы. Блок содержит контрольные суммы, предназначенные для проверки и коррекции данных, информацию о состоянии блока и другую служебную информацию. Коррекция данных в случае с Tegra реализована на аппаратном уровне.&lt;br /&gt;
&lt;br /&gt;
Скорее всего, найденный вами чип памяти будет содержать структуру oob-блока, отличную от того, что используется в tegra-драйвере. Это приведет к тому, что MTD будет считать, что большая часть блоков на устройстве повреждена. Возможны следующие решения этой проблемы:&lt;br /&gt;
&lt;br /&gt;
# Прошить NAND-флешку на программаторе. Основным недостатком метода является необходимость наличия программатора.&lt;br /&gt;
# Можно попробовать переписать функцию &amp;lt;tt&amp;gt;tegra_nand_block_isbad&amp;lt;/tt&amp;gt; так, чтобы блок всегда считался рабочим. Это может привести к потере данных и сбоях в UBIFS. Однако, в моем случае никакие другие методы не сработали, сделал так, что &amp;lt;tt&amp;gt;check_block_isbad&amp;lt;/tt&amp;gt; всегда возвращает 0, очистил флешку с помощью &amp;lt;tt&amp;gt;flash_eraseall&amp;lt;/tt&amp;gt; и вернул проверку бэд-блока обратно. После этого нужно запустить &amp;lt;tt&amp;gt;nandtest -m&amp;lt;/tt&amp;gt;, чтобы действительно нерабочие блоки были отмечены соответствующим образом.&lt;br /&gt;
&lt;br /&gt;
В текущей версии драйвера неправильно определяется размер spare-области в функциях чтения-записи oob-данных. Исправляется это следующим патчем:&lt;br /&gt;
&lt;br /&gt;
[http://paz00.rutegra-oob-size-fix.patch tegra-oob-size-fix.patch]&lt;br /&gt;
&lt;br /&gt;
Кроме того, для работы с UBI потребуется исправить установку значения размера буфера записи в функции &amp;lt;tt&amp;gt;tegra_nand_scan&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[http://paz00.rutegra-writebufsize-fix.patch tegra-writebufsize-fix.patch]&lt;br /&gt;
&lt;br /&gt;
После этого можно собирать ядро, прошивать и общаться с новоявленной памятью посредством &amp;lt;tt&amp;gt;mtd_debug&amp;lt;/tt&amp;gt; из пакета &amp;lt;tt&amp;gt;mtd-utils&amp;lt;/tt&amp;gt;. Если &amp;lt;tt&amp;gt;ubiformat&amp;lt;/tt&amp;gt; считает подавляющее большинство блоков исправными — вам повезло, и вы можете создать раздел, используя &amp;lt;tt&amp;gt;ubimkvol&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Проблемы с UBI и ECC== &lt;br /&gt;
&lt;br /&gt;
В данный момент UBI отказывается монтировать созданные разделы. Если включить в ядре опцию отладки UBI, можно увидеть следующие сообщения в dmesg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ 1134.971829] UBI error: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 512:4096, read 126976 bytes&lt;br /&gt;
[ 1135.147497] UBI error: ubi_io_read: error -74 (ECC error) while reading 126976 bytes from PEB 512:4096, read 126976 bytes&lt;br /&gt;
[ 1135.155329] UBIFS error (pid 6138): ubifs_recover_master_node: failed to recover master node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видно, при чтении происходит ошибка ECC. Об этом же говорит и &amp;lt;tt&amp;gt;nandtest&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@user-laptop:~# nandtest -m /dev/mtd0&lt;br /&gt;
ECC corrections: 0&lt;br /&gt;
ECC failures   : 516064&lt;br /&gt;
Bad blocks     : 0&lt;br /&gt;
BBT blocks     : 0&lt;br /&gt;
005c0000: reading...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако, чтение/запись данных происходит без ошибок, и nandtest не отмечает bad-блоки.&lt;br /&gt;
&lt;br /&gt;
'''UPD''': UBI выдает ошибку &amp;lt;tt&amp;gt;failed to recover master node&amp;lt;/tt&amp;gt; даже в том случае, если в драйвере принудительно отключить проверку ECC.&lt;br /&gt;
'''UPD2''': возможно, это относится только к моему случаю, но get_master_node падает [https://gitorious.org/ac100/marvin24s-kernel/source/66a8ee5599effdbbb364b38d48c3f6e3b7bf7a68:fs/ubifs/recovery.c#L184 тут] и возвращает -EINVAL.&lt;br /&gt;
'''UPD3''': опытным путем было установлено, что ECC то ли не работает, то ли не справляется с ошибками на данной конкретной флешке. На многих страницах четвертый байт поврежден:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[  240.284142] UBIFS error (pid 1373): ubifs_scan: corrupt empty space at LEB 3:2561&lt;br /&gt;
[  240.291784] UBIFS error (pid 1373): ubifs_scanned_corruption: corruption at LEB 3:2561&lt;br /&gt;
[  240.302846] 00000000: ffffff5f ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  _...............................&lt;br /&gt;
[  240.313488] 00000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.325211] 00000040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.336906] 00000060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.348725] 00000080: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.359398] 000000a0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.371115] 000000c0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.382827] 000000e0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.394513] 00000100: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.406197] 00000120: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.417881] 00000140: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.429711] 00000160: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.441411] 00000180: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.453317] 000001a0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.465120] 000001c0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.475791] 000001e0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.487642] 00000200: ffffff5f ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  _...............................&lt;br /&gt;
[  240.499519] 00000220: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.511337] 00000240: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.523233] 00000260: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.534921] 00000280: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.545615] 000002a0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.557428] 000002c0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.569194] 000002e0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.580958] 00000300: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.592679] 00000320: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.604365] 00000340: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.615018] 00000360: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.626921] 00000380: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.638773] 000003a0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.650689] 000003c0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.662768] 000003e0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  ................................&lt;br /&gt;
[  240.674924] 00000400: ffffff5f ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff  _...............................&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''UPD4''': в функции &amp;lt;tt&amp;gt;prep_transfer_dma&amp;lt;/tt&amp;gt; не указывается размер tag-данных, поэтому в NAND при записи они не попадают. Патч в разработке. Подробную информацию о процессе записи можно найти в Tegra Reference Manual в разделе ''16.3.5.7 Multiple Page Write with HW ECC and Tag Information'' (стр. 613). &lt;br /&gt;
&lt;br /&gt;
Помимо прочего, была найдена [http://oliver.schinagl.nl/u-boot/html/d0/dfb/tegra__nand_8c_source.html другая реализация драйвера]. Отдаленно напоминает текущий драйвер, возможно, это его переписанная версия. Выглядит чуть лучше и поддерживает больше чипов. Процесс записи можно также посмотреть там.&lt;br /&gt;
&lt;br /&gt;
==TODO== &lt;br /&gt;
&lt;br /&gt;
* Добавить фотографии&lt;br /&gt;
* Настроить UBI, YAFFS или другую ФС для доступа к памяти как к обычному устройству хранения&lt;br /&gt;
* Убрать лишние опции конфига&lt;br /&gt;
* Написать, как создать и подключить UBI-раздел.&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>