https://wiki.flashrom.org/index.php?title=ISP&feed=atom&action=historyISP - Revision history2024-03-28T11:20:02ZRevision history for this page on the wikiMediaWiki 1.40.0https://wiki.flashrom.org/index.php?title=ISP&diff=2133&oldid=prevStefanct: /* Common problems */2016-01-09T19:05:12Z<p><span dir="auto"><span class="autocomment">Common problems</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:05, 9 January 2016</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l8">Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (I got mine from Distrelec) for 20-50$/€.</div></td><td class="diff-marker"></td><td style="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;"><div>If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (I got mine from Distrelec) for 20-50$/€.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div>== <del style="font-weight: bold; text-decoration: none;">Common problems </del> ==</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div>== <ins style="font-weight: bold; text-decoration: none;">Problems </ins> ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div><del style="font-weight: bold; text-decoration: none;"># </del>[[<del style="font-weight: bold; text-decoration: none;">Connections</del>|<del style="font-weight: bold; text-decoration: none;">Wires are too long</del>]]<del style="font-weight: bold; text-decoration: none;">.</del></div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">* See the list of </ins>[[<ins style="font-weight: bold; text-decoration: none;">Common_problems</ins>|<ins style="font-weight: bold; text-decoration: none;">problems</ins>]] <ins style="font-weight: bold; text-decoration: none;">common with other types </ins>of <ins style="font-weight: bold; text-decoration: none;">programming setups first</ins>.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div><del style="font-weight: bold; text-decoration: none;"># The impedances </del>of <del style="font-weight: bold; text-decoration: none;">the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">* </ins>The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip). In that case disconnect Vcc from the programmer and power it with its normal PSU and...</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div><del style="font-weight: bold; text-decoration: none;"># </del>The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip). In that case disconnect Vcc from the programmer and power it with its normal PSU and...</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">*</ins>* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div><del style="font-weight: bold; text-decoration: none;">#</del>* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">*</ins>* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this case you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div><del style="font-weight: bold; text-decoration: none;">#</del>* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this case you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">*</ins>* On some boards, you can try disconnecting the ATX12V header (yellow/black wires only) from the motherboard, or even remove the CPU or RAM - if the programmer supports SPI sniffing, you may be able to verify that the there is no SPI traffic.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div><del style="font-weight: bold; text-decoration: none;">#</del>* On some boards, you can try disconnecting the ATX12V header (yellow/black wires only) from the motherboard, or even remove the CPU or RAM - if the programmer supports SPI sniffing, you may be able to verify that the there is no SPI traffic.</div></td><td colspan="2" class="diff-side-added"></td></tr>
</table>Stefancthttps://wiki.flashrom.org/index.php?title=ISP&diff=2106&oldid=prevGNUtoo: /* Common problems */2015-04-12T17:13:37Z<p><span dir="auto"><span class="autocomment">Common problems</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:13, 12 April 2015</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l10">Line 10:</td>
<td colspan="2" class="diff-lineno">Line 10:</td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>== Common problems ==</div></td><td class="diff-marker"></td><td style="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;"><div>== Common problems ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div># Wires are too long.</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div># <ins style="font-weight: bold; text-decoration: none;">[[Connections|</ins>Wires are too long<ins style="font-weight: bold; text-decoration: none;">]]</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.</div></td><td class="diff-marker"></td><td style="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;"><div># The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip). In that case disconnect Vcc from the programmer and power it with its normal PSU and...</div></td><td class="diff-marker"></td><td style="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;"><div># The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip). In that case disconnect Vcc from the programmer and power it with its normal PSU and...</div></td></tr>
</table>GNUtoohttps://wiki.flashrom.org/index.php?title=ISP&diff=2097&oldid=prevGNUtoo: /* Problems */2015-04-12T16:42:19Z<p><span dir="auto"><span class="autocomment">Problems</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:42, 12 April 2015</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l8">Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (I got mine from Distrelec) for 20-50$/€.</div></td><td class="diff-marker"></td><td style="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;"><div>If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (I got mine from Distrelec) for 20-50$/€.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div>== <del style="font-weight: bold; text-decoration: none;">Problems </del> ==</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div>== <ins style="font-weight: bold; text-decoration: none;">Common problems </ins> ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># Wires are too long.</div></td><td class="diff-marker"></td><td style="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;"><div># Wires are too long.</div></td></tr>
</table>GNUtoohttps://wiki.flashrom.org/index.php?title=ISP&diff=1735&oldid=prevStefanct at 16:17, 31 October 20122012-10-31T16:17:03Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:17, 31 October 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l12">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># Wires are too long.</div></td><td class="diff-marker"></td><td style="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;"><div># Wires are too long.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.</div></td><td class="diff-marker"></td><td style="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;"><div># The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div># The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip).</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div># The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip)<ins style="font-weight: bold; text-decoration: none;">. In that case disconnect Vcc from the programmer and power it with its normal PSU and..</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td><td class="diff-marker"></td><td style="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;"><div>#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this case you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td><td class="diff-marker"></td><td style="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;"><div>#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this case you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>#* On some boards, you can try disconnecting the ATX12V header (yellow/black wires only) from the motherboard, or even remove the CPU or RAM - if the programmer supports SPI sniffing, you may be able to verify that the there is no SPI traffic.</div></td><td class="diff-marker"></td><td style="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;"><div>#* On some boards, you can try disconnecting the ATX12V header (yellow/black wires only) from the motherboard, or even remove the CPU or RAM - if the programmer supports SPI sniffing, you may be able to verify that the there is no SPI traffic.</div></td></tr>
</table>Stefancthttps://wiki.flashrom.org/index.php?title=ISP&diff=1725&oldid=prevStefanct at 17:27, 3 October 20122012-10-03T17:27:21Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:27, 3 October 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>[[File:Pomona_5250_soic8.jpg|200px|thumb|Pomona 8-pin SOIC clip with attached jumper wires.]]</div></td><td class="diff-marker"></td><td style="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;"><div>[[File:Pomona_5250_soic8.jpg|200px|thumb|Pomona 8-pin SOIC clip with attached jumper wires.]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">[[File:DIP_socket_as_SOIC_clip.jpg|200px|thumb|A cheap, but very fragile alternative: DIP socket as clip]]</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip by external means while it is mounted on a motherboard.</div></td><td class="diff-marker"></td><td style="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;"><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip by external means while it is mounted on a motherboard.</div></td></tr>
</table>Stefancthttps://wiki.flashrom.org/index.php?title=ISP&diff=1298&oldid=prevTimSmall: /* Problems */ Additional tips for powering a board whilst preventing SPI accesses.2011-07-06T12:15:58Z<p><span dir="auto"><span class="autocomment">Problems: </span> Additional tips for powering a board whilst preventing SPI accesses.</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:15, 6 July 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l14">Line 14:</td>
<td colspan="2" class="diff-lineno">Line 14:</td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td><td class="diff-marker"></td><td style="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;"><div>#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this case you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td><td class="diff-marker"></td><td style="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;"><div>#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this case you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">#* On some boards, you can try disconnecting the ATX12V header (yellow/black wires only) from the motherboard, or even remove the CPU or RAM - if the programmer supports SPI sniffing, you may be able to verify that the there is no SPI traffic.</ins></div></td></tr>
</table>TimSmallhttps://wiki.flashrom.org/index.php?title=ISP&diff=1294&oldid=prevUwe at 15:47, 25 June 20112011-06-25T15:47:38Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:47, 25 June 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;">[[File:Pomona_5250_soic8.jpg|200px|thumb|Pomona 8-pin SOIC clip with attached jumper wires.]]</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip by external means while it is mounted on a motherboard.</div></td><td class="diff-marker"></td><td style="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;"><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip by external means while it is mounted on a motherboard.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div>This is usually done with SPI chips only. Some mainboards have a special header for this (<del style="font-weight: bold; text-decoration: none;">usually </del>named ISP) and there should be no problem with accessing the chip then as long as the wires are not too long.</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div>This is usually done with SPI chips only. Some mainboards have a special header for this (<ins style="font-weight: bold; text-decoration: none;">often </ins>named <ins style="font-weight: bold; text-decoration: none;">"</ins>ISP<ins style="font-weight: bold; text-decoration: none;">", "ISP1", or "SPI"</ins>) and there should be no problem with accessing the chip then as long as the wires are not too long.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div>If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (<del style="font-weight: bold; text-decoration: none;">i </del>got mine from <del style="font-weight: bold; text-decoration: none;">distrelec</del>) for 20-50$/€. <del style="font-weight: bold; text-decoration: none;">[[File:Pomona_5250_soic8.jpg|200px|thumb|Pomona 8-pin SOIC clip with attached jumper wires.]]</del></div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div>If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (<ins style="font-weight: bold; text-decoration: none;">I </ins>got mine from <ins style="font-weight: bold; text-decoration: none;">Distrelec</ins>) for 20-50$/€.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>== Problems ==</div></td><td class="diff-marker"></td><td style="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;"><div>== Problems ==</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># Wires are too long.</div></td><td class="diff-marker"></td><td style="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;"><div># Wires are too long.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.</div></td><td class="diff-marker"></td><td style="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;"><div># The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div># The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip).</div></td><td class="diff-marker"></td><td style="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;"><div># The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip).</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td><td class="diff-marker"></td><td style="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;"><div>#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div>#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this <del style="font-weight: bold; text-decoration: none;">cases </del>you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div>#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this <ins style="font-weight: bold; text-decoration: none;">case </ins>you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div></td></tr>
</table>Uwehttps://wiki.flashrom.org/index.php?title=ISP&diff=1281&oldid=prevStefanct at 11:48, 12 June 20112011-06-12T11:48:55Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:48, 12 June 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="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;"><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip <del style="font-weight: bold; text-decoration: none;">with </del>external means while it is mounted on a motherboard.</div></td><td class="diff-marker" data-marker="+"></td><td style="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;"><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip <ins style="font-weight: bold; text-decoration: none;">by </ins>external means while it is mounted on a motherboard.</div></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><br/></td><td class="diff-marker"></td><td style="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;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="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;"><div>This is usually done with SPI chips only. Some mainboards have a special header for this (usually named ISP) and there should be no problem with accessing the chip then as long as the wires are not too long.</div></td><td class="diff-marker"></td><td style="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;"><div>This is usually done with SPI chips only. Some mainboards have a special header for this (usually named ISP) and there should be no problem with accessing the chip then as long as the wires are not too long.</div></td></tr>
</table>Stefancthttps://wiki.flashrom.org/index.php?title=ISP&diff=1280&oldid=prevStefanct: Created page with "'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached t..."2011-06-12T11:23:05Z<p>Created page with "'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached t..."</p>
<p><b>New page</b></p><div>'''In-System Programming''' (ISP) sometimes also called '''in situ programming''' is used to describe the procedure of writing a flash chip while it is (already/still) attached to the circuit it is to be used with. Of course any normal "BIOS flash" procedure is a kind of ISP but when we refer to ISP we usually mean something different: programming a flash chip with external means while it is mounted on a motherboard.<br />
<br />
This is usually done with SPI chips only. Some mainboards have a special header for this (usually named ISP) and there should be no problem with accessing the chip then as long as the wires are not too long.<br />
<br />
If there is no special header then using a special SO(IC) clip is an easy and reliable way to attach an external programmer. They are produced by different vendors (e.g. Pomona, 3M) and are available from many distributors (i got mine from distrelec) for 20-50$/€. [[File:Pomona_5250_soic8.jpg|200px|thumb|Pomona 8-pin SOIC clip with attached jumper wires.]]<br />
<br />
== Problems ==<br />
# Wires are too long.<br />
# The impedances of the wires/traces do not match the impedances of the input pins (of either the circuit/chip on the mainboard or the external programmer). Try using shorter wires, adding small (<100 Ohm) series resistors or parallel capacitors (<20pF) '''as near as possible to the input pins''' (this includes also the MISO line which ends near the programmer) and/or ask someone who has experience with high frequency electronics.<br />
# The SPI bus is not isolated enough. Often parts of the chipset are powered on partially (by the voltage supplied via the Vcc pin of the flash chip).<br />
#* Try powering up the board normally and holding it in reset (e.g. use a jumper instead of the reset push button).<br />
#* Some chipsets (e.g. Intel ICHs/PCHs) have edge triggered resets. In this case holding them '''in''' reset will not work. This is especially a problem with Intel chipsets because they contain an EC (named ME by Intel), which uses the flash (r/w!). In this cases you can trigger the reset line in short intervals. For example by connecting it to the chip select (CS) line of the SPI bus or a dedicated clock signal from the programmer. This should not be too fast though! Reset lines usually require pulses with a minimum duration.</div>Stefanct