<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.elphel.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3AFirmware_upgrade</id>
	<title>Talk:Firmware upgrade - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.elphel.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3AFirmware_upgrade"/>
	<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;action=history"/>
	<updated>2026-08-01T20:31:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2560&amp;oldid=prev</id>
		<title>Andrey.filippov at 07:12, 20 July 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2560&amp;oldid=prev"/>
		<updated>2007-07-20T07:12:04Z</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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:12, 20 July 2007&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;== Some issues, found during testing this &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sodftware &lt;/del&gt;in Shanghai ==&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;== Some issues, found during testing this &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;software &lt;/ins&gt;in Shanghai ==&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;=== Long waiting while trying to detect IDE (sometimes USB too) ===&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;=== Long waiting while trying to detect IDE (sometimes USB too) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrey.filippov</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2559&amp;oldid=prev</id>
		<title>Andrey.filippov at 03:33, 20 July 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2559&amp;oldid=prev"/>
		<updated>2007-07-20T03:33:21Z</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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:33, 20 July 2007&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-l35&quot;&gt;Line 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&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;=== Destroy parameters in the memory ===&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;=== Destroy parameters in the memory ===&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;div&gt;Current software verifies contents of the several locations of the system memory to distinguish between &amp;quot;cold&amp;quot; (power-cycling) and &amp;quot;warm&amp;quot; (just software-initiated reset). But memory sometimes hold data long after power is disconnected. In practice fvro several cameras I&amp;#039;ve got kernel panic when I did not wait for some 10 seconds before reapplying power. Solution is rather simple - destroy that memory data immediately after usage .&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;Current software verifies contents of the several locations of the system memory to distinguish between &amp;quot;cold&amp;quot; (power-cycling) and &amp;quot;warm&amp;quot; (just software-initiated reset). But memory sometimes hold data long after power is disconnected. In practice fvro several cameras I&amp;#039;ve got kernel panic when I did not wait for some 10 seconds before reapplying power. Solution is rather simple - destroy that memory data immediately after usage .&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;--[[User:Andrey.filippov|Andrey.filippov]] 22:33, 19 July 2007 (CDT)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrey.filippov</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2558&amp;oldid=prev</id>
		<title>Andrey.filippov at 03:32, 20 July 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2558&amp;oldid=prev"/>
		<updated>2007-07-20T03:32:50Z</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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:32, 20 July 2007&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-l29&quot;&gt;Line 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&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;Solution would require to program 10357 FPGA before attempting to detect IDE devices , and you need to program 10353&amp;#039;s FPGA even earlier as only it has control over 10357&amp;#039;s FPGA programming pins. And JFFS should be mounted before that - the FPGA configuration files are stored there.&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;Solution would require to program 10357 FPGA before attempting to detect IDE devices , and you need to program 10353&amp;#039;s FPGA even earlier as only it has control over 10357&amp;#039;s FPGA programming pins. And JFFS should be mounted before that - the FPGA configuration files are stored there.&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;=== JFFS CRC errors after (re)flashing camera ===&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;THe script that writes to JFFS during installation should nicely use &quot;sync&quot; at teh end.&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;=== Don&#039;t try to reboot if button was pressed at power-up ===&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;When the camera writes the flash after booting from the network, script tries to reboot the camera. But unfortunately if the camera was powered up (not just reset) with a button held pressed it will go to network boot again. Only if it was the first boot of the camera with empty flash (then it goes to network boot even w/o button) it will reboot as desired, So maybe leave the camera running if it will fgail to reboot anyway? To prevent it from reflashing from the network forever? &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;=== Destroy parameters in the memory ===&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;Current software verifies contents of the several locations of the system memory to distinguish between &quot;cold&quot; (power-cycling) and &quot;warm&quot; (just software-initiated reset). But memory sometimes hold data long after power is disconnected. In practice fvro several cameras I&#039;ve got kernel panic when I did not wait for some 10 seconds before reapplying power. Solution is rather simple - destroy that memory data immediately after usage .&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrey.filippov</name></author>
	</entry>
	<entry>
		<id>https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2557&amp;oldid=prev</id>
		<title>Andrey.filippov at 03:15, 20 July 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.elphel.com/index.php?title=Talk:Firmware_upgrade&amp;diff=2557&amp;oldid=prev"/>
		<updated>2007-07-20T03:15:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Some issues, found during testing this sodftware in Shanghai ==&lt;br /&gt;
&lt;br /&gt;
=== Long waiting while trying to detect IDE (sometimes USB too) ===&lt;br /&gt;
==== problem itself ====&lt;br /&gt;
There is no resistor pull-up/pull-down on the required IDE and USB lines on the 10353 board. It is &amp;quot;not a bug, but a feature&amp;quot; - the same lines could be used for other interfaces, so the required loads are included on the add-on boards (like [[10349]]).&lt;br /&gt;
==== emergency solution ====&lt;br /&gt;
As an emergency measure I temporarily removed IDE+USB support from the configuration files (product and kernel - [http://elphel.cvs.sourceforge.net/elphel/elphel353-2.10/elphel353/defconfig?view=markup], [http://elphel.cvs.sourceforge.net/elphel/elphel353-2.10/elphel353/kernelconfig-2.6?view=markup]), but it is possible to modify the IDE driver module to detect the 10349 board and enable/disable IDE (and USB together) at run time (during initialization of the module).&lt;br /&gt;
==== real soulution ====&lt;br /&gt;
For that we can use the fact that &lt;br /&gt;
*signals PD15/IORDY is pulled up high on 10349,&lt;br /&gt;
*signals PD16/DMARQ and PD17/INTRQ - pulled low on 10349.&lt;br /&gt;
It is  possible to use &amp;quot;memory&amp;quot; of the floating trace - if it is pulled low, released and tested with a short delay- it should stay low, if high - high.&lt;br /&gt;
&lt;br /&gt;
IORDY can be both high ad low when the hard drive is connected, but there should be no activity on the DMARQ line, so the following algorithm would detect that loaD&lt;br /&gt;
&lt;br /&gt;
So the following algorithm will detect existence of the 10349 board:&lt;br /&gt;
&lt;br /&gt;
#program PD16 to be OUTPUT, controlled by the main CPU (not part of IDE)&lt;br /&gt;
#program that pin high (logic 1)&lt;br /&gt;
#change PD16 to be input&lt;br /&gt;
#(maybe not needed) udelay(1)&lt;br /&gt;
#read PD16.&lt;br /&gt;
# if it is 0 - 10349 is present pulling it low. Enable IDE (and USB too) First - change PD16 to be part of IDE (if it is not done anyway by the initialization part of the Axis IDE  driver that you are modifying)&lt;br /&gt;
If it is read 1 - nothing is connected, disable IDE (and USB too)&lt;br /&gt;
&lt;br /&gt;
In the future we&amp;#039;ll need to find a way to delay HDD detection. In Helios 10357 board that provides CF as IDE devices needs to have FPGA programmed first.&lt;br /&gt;
==== anticipated problems ====&lt;br /&gt;
That approach will not immediately work with the 10357 board where the CF cards are connected to 10353 IDE bus through additional programmable FPGA (that is completely dumb at startup).&lt;br /&gt;
&lt;br /&gt;
Solution would require to program 10357 FPGA before attempting to detect IDE devices , and you need to program 10353&amp;#039;s FPGA even earlier as only it has control over 10357&amp;#039;s FPGA programming pins. And JFFS should be mounted before that - the FPGA configuration files are stored there.&lt;/div&gt;</summary>
		<author><name>Andrey.filippov</name></author>
	</entry>
</feed>