<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://wiki.specnext.dev/index.php?action=history&amp;feed=atom&amp;title=Hw_im2_mode</id>
	<title>Hw im2 mode - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.specnext.dev/index.php?action=history&amp;feed=atom&amp;title=Hw_im2_mode"/>
	<link rel="alternate" type="text/html" href="http://wiki.specnext.dev/index.php?title=Hw_im2_mode&amp;action=history"/>
	<updated>2026-04-14T21:46:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>http://wiki.specnext.dev/index.php?title=Hw_im2_mode&amp;diff=41886&amp;oldid=prev</id>
		<title>Johnnyo: how to enable</title>
		<link rel="alternate" type="text/html" href="http://wiki.specnext.dev/index.php?title=Hw_im2_mode&amp;diff=41886&amp;oldid=prev"/>
		<updated>2026-04-11T19:17:36Z</updated>

		<summary type="html">&lt;p&gt;how to enable&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-GB&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 20:17, 11 April 2026&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 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;hw im2 mode is enabled by the bit 0 of {{NextRegNo|$C0}}.&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 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;If not in hw im2 mode, ie normal spectrum behaviour, then all devices that generate an interrupt do it by asserting /int low for around 30 cycles and that&amp;#039;s it.&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;If not in hw im2 mode, ie normal spectrum behaviour, then all devices that generate an interrupt do it by asserting /int low for around 30 cycles and that&amp;#039;s it.&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;!-- diff cache key specnext_wiki:diff:1.41:old-41883:rev-41886:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Johnnyo</name></author>
	</entry>
	<entry>
		<id>http://wiki.specnext.dev/index.php?title=Hw_im2_mode&amp;diff=41883&amp;oldid=prev</id>
		<title>Johnnyo: added page, content from the AA&#039;s explanation</title>
		<link rel="alternate" type="text/html" href="http://wiki.specnext.dev/index.php?title=Hw_im2_mode&amp;diff=41883&amp;oldid=prev"/>
		<updated>2026-04-11T19:12:47Z</updated>

		<summary type="html">&lt;p&gt;added page, content from the AA&amp;#039;s explanation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If not in hw im2 mode, ie normal spectrum behaviour, then all devices that generate an interrupt do it by asserting /int low for around 30 cycles and that&amp;#039;s it.&lt;br /&gt;
&lt;br /&gt;
If you are in hw im2 mode, then all interrupting devices including the ula has an im2 state machine attached.  If an interrupt is generated, the state machine remembers this as it moves to an assert /int state.   Recognition of RETI for the specific device moves the state machine to a place where another /int from the device can be accepted. &lt;br /&gt;
&lt;br /&gt;
For recognition of RETI:  &lt;br /&gt;
&lt;br /&gt;
reti instruction has been detected active in T3 for rising edge of T4 &lt;br /&gt;
&lt;br /&gt;
so on rising edge of T4, the hw will move to a state where it will see a new int event from the device.  /int events are edge detected so you can&amp;#039;t hold /int low forever and keep generating interrupts.&lt;br /&gt;
&lt;br /&gt;
That does mean, eg, that if multiple events occur while the isr still hasn&amp;#039;t executed RETI then you&amp;#039;re not going to see more than the one current int.  If the dma is taking a long time, multiple ctc ints on a channel only generates one channel interrupt when the dma ultimately gives up the bus.  If you have the ctc interrupting  dma op, then you&amp;#039;ll see them all most likely&lt;/div&gt;</summary>
		<author><name>Johnnyo</name></author>
	</entry>
</feed>