<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=GSP_570.144W_Firmware_Analysis</id>
	<title>GSP 570.144W Firmware Analysis - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=GSP_570.144W_Firmware_Analysis"/>
	<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;action=history"/>
	<updated>2026-10-12T06:58:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23970&amp;oldid=prev</id>
		<title>WikiBot: Fix repository links: point to the cgit tree URLs (git.vgpu.io/open-iov.git/tree/...)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23970&amp;oldid=prev"/>
		<updated>2026-10-12T04:40:09Z</updated>

		<summary type="html">&lt;p&gt;Fix repository links: point to the cgit tree URLs (git.vgpu.io/open-iov.git/tree/...)&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 04:40, 12 October 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-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&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;= NVIDIA GSP 570.144W Firmware Analysis (TU102/TU104) =&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;= NVIDIA GSP 570.144W Firmware Analysis (TU102/TU104) =&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;&amp;lt;blockquote&amp;gt;'''Retained firmware-analysis record.''' This page documents the GSP 570.144W firmware binary (decompilation and firmware-side addresses) and the address tables below are the firmware-side record, not the host implementation. Current host architecture: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/03-architecture/03-gsp-and-gsp-rm.md &amp;lt;code&amp;gt;../docs/03-architecture/03-gsp-and-gsp-rm.md&amp;lt;/code&amp;gt;] and [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/03-architecture/06-host-module-and-hybrid-model.md &amp;lt;code&amp;gt;../docs/03-architecture/06-host-module-and-hybrid-model.md&amp;lt;/code&amp;gt;]. The decompiled analysis output is not distributed; the file names below are&amp;lt;/blockquote&amp;gt;&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;&amp;lt;blockquote&amp;gt;'''Retained firmware-analysis record.''' This page documents the GSP 570.144W firmware binary (decompilation and firmware-side addresses) and the address tables below are the firmware-side record, not the host implementation. Current host architecture: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/03-architecture/03-gsp-and-gsp-rm.md &amp;lt;code&amp;gt;../docs/03-architecture/03-gsp-and-gsp-rm.md&amp;lt;/code&amp;gt;] and [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/03-architecture/06-host-module-and-hybrid-model.md &amp;lt;code&amp;gt;../docs/03-architecture/06-host-module-and-hybrid-model.md&amp;lt;/code&amp;gt;]. The decompiled analysis output is not distributed; the file names below are&amp;lt;/blockquote&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;&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;the analysis record.&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;the analysis record.&lt;/div&gt;&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-l664&quot;&gt;Line 664:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 664:&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;== References ==&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;== References ==&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;* RPC map: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/firmware/57X-GSP/570.144/RPC_HANDLER_MAP.md &amp;lt;code&amp;gt;firmware/57X-GSP/570.144/RPC_HANDLER_MAP.md&amp;lt;/code&amp;gt;]&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;* RPC map: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/firmware/57X-GSP/570.144/RPC_HANDLER_MAP.md &amp;lt;code&amp;gt;firmware/57X-GSP/570.144/RPC_HANDLER_MAP.md&amp;lt;/code&amp;gt;]&lt;/div&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;* Final report: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/firmware/57X-GSP/570.144/FINAL_REPORT.md &amp;lt;code&amp;gt;firmware/57X-GSP/570.144/FINAL_REPORT.md&amp;lt;/code&amp;gt;]&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;* Final report: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/firmware/57X-GSP/570.144/FINAL_REPORT.md &amp;lt;code&amp;gt;firmware/57X-GSP/570.144/FINAL_REPORT.md&amp;lt;/code&amp;gt;]&lt;/div&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;* Analysis results: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/firmware/57X-GSP/570.144/analysis_results.json &amp;lt;code&amp;gt;firmware/57X-GSP/570.144/analysis_results.json&amp;lt;/code&amp;gt;]&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;* Analysis results: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/firmware/57X-GSP/570.144/analysis_results.json &amp;lt;code&amp;gt;firmware/57X-GSP/570.144/analysis_results.json&amp;lt;/code&amp;gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-23941:rev-23970 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23941&amp;oldid=prev</id>
		<title>WikiBot: Carry the site-wide About/licensing message on every page (2026-10-12)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23941&amp;oldid=prev"/>
		<updated>2026-10-12T04:29:45Z</updated>

		<summary type="html">&lt;p&gt;Carry the site-wide About/licensing message on every page (2026-10-12)&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 04:29, 12 October 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;{{About message}}&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;= NVIDIA GSP 570.144W Firmware Analysis (TU102/TU104) =&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;= NVIDIA GSP 570.144W Firmware Analysis (TU102/TU104) =&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 my_wiki:diff::1.12:old-23852:rev-23941 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23852&amp;oldid=prev</id>
		<title>WikiBot: Re-sync page from tracked wiki source: fix cross-document links and diagram; refresh status</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23852&amp;oldid=prev"/>
		<updated>2026-10-12T04:10:03Z</updated>

		<summary type="html">&lt;p&gt;Re-sync page from tracked wiki source: fix cross-document links and diagram; refresh status&lt;/p&gt;
&lt;a href=&quot;https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;amp;diff=23852&amp;amp;oldid=23830&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23830&amp;oldid=prev</id>
		<title>WikiBot: Remove unpaired blockquote tags left by reference cleanup</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=GSP_570.144W_Firmware_Analysis&amp;diff=23830&amp;oldid=prev"/>
		<updated>2026-10-12T03:58:29Z</updated>

		<summary type="html">&lt;p&gt;Remove unpaired blockquote tags left by reference cleanup&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;nvidia-gsp-570144w-firmware-analysis-tu102tu104&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= NVIDIA GSP 570.144W Firmware Analysis (TU102/TU104) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;binary-information&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Binary Information ==&lt;br /&gt;
&lt;br /&gt;
* '''File''': &amp;lt;code&amp;gt;gsp-570.144.fwimage.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Size''': 28.5 MB&lt;br /&gt;
* '''Format''': ELF, RV64IMAC (RISC-V 64-bit)&lt;br /&gt;
* '''Base Address''': 0x04000000&lt;br /&gt;
* '''MD5''': &amp;lt;code&amp;gt;13ce12a392a31eeb79a2e6ebd3a4a93a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;architecture-overview&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Architecture Overview ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;memory-map&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Memory Map ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;0x04000000 - 0x05FFFFFF: Code + Read-only data (~32 MB)&lt;br /&gt;
0x04296040: Global state structure (cRam0000000004296048)&lt;br /&gt;
0x0429B750: Error/status registers&lt;br /&gt;
0x041DC350: Stack canary / frame guard&lt;br /&gt;
0x429B000 - 0x429BFFF: Memory allocator arena (0x429B450 = alloc entry)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;calling-convention-risc-v-rv64imac&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Calling Convention (RISC-V RV64IMAC) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Register&lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| s0 (x8)&lt;br /&gt;
| Frame pointer&lt;br /&gt;
|-&lt;br /&gt;
| s1 (x9), s4 (x12), s10 (x20)&lt;br /&gt;
| RA save locations&lt;br /&gt;
|-&lt;br /&gt;
| s1-s11&lt;br /&gt;
| Callee-saved (pushed to stack)&lt;br /&gt;
|-&lt;br /&gt;
| a0-a7&lt;br /&gt;
| Arguments / return values&lt;br /&gt;
|-&lt;br /&gt;
| sp&lt;br /&gt;
| Stack pointer (grows down, frames 96-560 bytes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rpc-system&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== RPC System ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;12-rpc-types-jump-table-at-0x059bfeb0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 12 RPC Types (Jump Table at 0x059BFEB0) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
! Name&lt;br /&gt;
! Handler A&lt;br /&gt;
! Handler B&lt;br /&gt;
! Dispatcher&lt;br /&gt;
|-&lt;br /&gt;
| 0x01&lt;br /&gt;
| ALLOC&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| Primary&lt;br /&gt;
|-&lt;br /&gt;
| 0x02&lt;br /&gt;
| FREE&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| Primary&lt;br /&gt;
|-&lt;br /&gt;
| 0x03&lt;br /&gt;
| MAP&lt;br /&gt;
| 0x05766AB7&lt;br /&gt;
| 0x05778A37&lt;br /&gt;
| Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| UNMAP&lt;br /&gt;
| 0x057669B7&lt;br /&gt;
| 0x05779937&lt;br /&gt;
| Primary + Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x05&lt;br /&gt;
| PIN&lt;br /&gt;
| 0x057664B7&lt;br /&gt;
| 0x0577A3B7&lt;br /&gt;
| Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x06&lt;br /&gt;
| UNPIN&lt;br /&gt;
| 0x057682B7&lt;br /&gt;
| 0x05779FB7&lt;br /&gt;
| Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x07&lt;br /&gt;
| SCHEDULE&lt;br /&gt;
| 0x05767F37&lt;br /&gt;
| 0x0575AEB7&lt;br /&gt;
| Primary + Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x08&lt;br /&gt;
| YIELD&lt;br /&gt;
| 0x0575AE37&lt;br /&gt;
| 0x05767337&lt;br /&gt;
| Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x09&lt;br /&gt;
| NOTIFY&lt;br /&gt;
| 0x0577C8B7&lt;br /&gt;
| 0x05767837&lt;br /&gt;
| Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A&lt;br /&gt;
| BAR_TRAP&lt;br /&gt;
| 0x057675B7&lt;br /&gt;
| —&lt;br /&gt;
| Secondary&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B&lt;br /&gt;
| MIGRATE&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| Primary&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C&lt;br /&gt;
| DEBUG&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
| —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;primary-dispatcher-0x057a1ac0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Primary Dispatcher (0x057A1AC0) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Entry: FUN_ram_057a1ac0(param_1, param_2, param_3, param_4, *out_id, *out_a, *out_b, *out_c)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Extracts RPC type from &amp;lt;code&amp;gt;param_1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Validates against max type (bgeu x12, x13 checks for types 11 and 13)&lt;br /&gt;
* MIGRATE (0x0B) branches at 0x057A1BDC and 0x057A1D54&lt;br /&gt;
* Indexes into 32-entry jump table at '''0x057A3AD8'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;primary-dispatcher-sub-command-jump-table-0x057a3ad8&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Primary Dispatcher Sub-Command Jump Table (0x057A3AD8) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Subcmd&lt;br /&gt;
! Target&lt;br /&gt;
! Decompiled&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0x057A1DB4&lt;br /&gt;
| ✅&lt;br /&gt;
| Returns ID=0x40&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0x057A1C18&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0x057A39FC&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0x057A1BCC&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 0x057A1EF4&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 0x057A1E94&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 0x057A3A28&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0x057A3A60&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 0x057A1C6C&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0x057A3A48&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| 0x057A1F6C&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 0x057A3AC4&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 0x057A1E10&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| 0x057A3A90&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| 0x057A39BC&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| 0x057A3AAC&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| 0x057A3A78&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 0x057A1CCC&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| 0x057A39E0&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| 0x057A1FA8&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| 0x057A2094&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| 0x057A2074&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| 0x057A2044&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| 0x057A20D4&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| 0x057A20B4&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| 0x057A1FC8&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| 0x057A2008&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| 0x057A1FE8&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| 0x057A2024&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| 0x057A219C&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| 0x057A20FC&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| 0x057A214C&lt;br /&gt;
| ✅&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Pattern''': Each sub-command returns a constant ID in &amp;lt;code&amp;gt;*out_id&amp;lt;/code&amp;gt; (e.g., 0x10, 0x14, 0x40) and echoes input params to output pointers.&lt;br /&gt;
&amp;lt;span id=&amp;quot;secondary-dispatcher-0x04ed39dc&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Secondary Dispatcher (0x04ED39DC) ===&lt;br /&gt;
&lt;br /&gt;
* Branch-based dispatch for ALL 11 RPC types&lt;br /&gt;
* 141 KB decompiled — handles MAP, UNMAP, PIN, UNPIN, SCHEDULE, YIELD, NOTIFY, BAR_TRAP&lt;br /&gt;
* Entry: 0x04ED34B8 (PIN handler from secondary)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;specialized-main-handlers&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Specialized Main Handlers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Address&lt;br /&gt;
! Size&lt;br /&gt;
! Role&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rpc_alloc_main&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x057E94EC&lt;br /&gt;
| 40 KB&lt;br /&gt;
| Core ALLOC implementation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rpc_schedule_main&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x051EFBF4&lt;br /&gt;
| 1.8 KB&lt;br /&gt;
| Core SCHEDULE implementation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rpc_bar_trap_handler&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x04CB8188&lt;br /&gt;
| 40 KB&lt;br /&gt;
| BAR1 emulation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rpc_pin_handler&amp;lt;/code&amp;gt;&lt;br /&gt;
| 0x04ED34B8&lt;br /&gt;
| —&lt;br /&gt;
| PIN from secondary dispatcher&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bar-emulation-rpc-0x0a&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== BAR Emulation (RPC 0x0A) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;handler-0x04cb8188-40-kb&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Handler: 0x04CB8188 (40 KB) ===&lt;br /&gt;
&lt;br /&gt;
'''Strings Referenced''':&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;BAR1&amp;lt;/code&amp;gt; at 0x0406570E, 0x04085DE0&lt;br /&gt;
* &amp;lt;code&amp;gt;Bar1Rest&amp;lt;/code&amp;gt; at 0x040656DA&lt;br /&gt;
* &amp;lt;code&amp;gt;ForceBarAccess&amp;lt;/code&amp;gt; at 0x040656F2&lt;br /&gt;
* &amp;lt;code&amp;gt;Bar1Aperture&amp;lt;/code&amp;gt; at 0x04065722&lt;br /&gt;
&lt;br /&gt;
'''Key Operations''':&lt;br /&gt;
&lt;br /&gt;
* Memory allocation via &amp;lt;code&amp;gt;UNK_ram_058A1A9C&amp;lt;/code&amp;gt; at arena 0x429B450&lt;br /&gt;
* Buffer management with 0x429B428 (cache/flush)&lt;br /&gt;
* Error codes: 0x51 (OOM), 0x1E (timeout), 0x1D, 0x1F, 0x25, 0x37, 0x56&lt;br /&gt;
* Uses &amp;lt;code&amp;gt;ebreak&amp;lt;/code&amp;gt; for fatal errors with logging at 0x05AB7DA0&lt;br /&gt;
* Stack canary check against 0x041DC350&lt;br /&gt;
&lt;br /&gt;
'''Integration Point for vGPU-IO''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;// Register BAR trap handler at 0x04CB8188&lt;br /&gt;
// Monitor BAR1, Bar1Rest, ForceBarAccess, Bar1Aperture registers&lt;br /&gt;
// Emulate BAR1 aperture/size for guest VF&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;wpr-management&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== WPR Management ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;handlers-0x04f00b0c-0x04f00c78-62-kb-each&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Handlers: 0x04F00B0C, 0x04F00C78 (62 KB each) ===&lt;br /&gt;
&lt;br /&gt;
'''String References (60 locations)''':&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;WPR_WRITE_COMPLETE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WPR_READ_COMPLETE&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;WPR_WRITE_TIMEOUT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WPR_READ_TIMEOUT&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;NV_WPR_WRITE_COMPLETE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NV_WPR_READ_COMPLETE&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;NV_WPR_WRITE_TIMEOUT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NV_WPR_READ_TIMEOUT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Key Operations''':&lt;br /&gt;
&lt;br /&gt;
* VBIOS parsing (checks for &amp;lt;code&amp;gt;0xAA55&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x57464F4E&amp;lt;/code&amp;gt; &amp;amp;quot;WFON&amp;amp;quot;, &amp;lt;code&amp;gt;0x5746564E&amp;lt;/code&amp;gt; &amp;amp;quot;WFVN&amp;amp;quot;)&lt;br /&gt;
* Memory allocation at 0x429B450&lt;br /&gt;
* DMA/copy via &amp;lt;code&amp;gt;UNK_ram_0588F9C4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNK_ram_05AEC86C&amp;lt;/code&amp;gt;&lt;br /&gt;
* State machine with completion/timeout handling&lt;br /&gt;
* Error codes: 0x1E-0x25, 0x37, 0x51, 0x56, 0xFFFF&lt;br /&gt;
&lt;br /&gt;
'''Integration Point for vGPU-IO''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;// Hook WPR completion callbacks from string reference locations&lt;br /&gt;
// Implement NV_WPR_WRITE/READ_COMPLETE/TIMEOUT notifications&lt;br /&gt;
// Manage WPR regions for guest VF memory isolation&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;migration-protocol-rpc-0x0b&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Migration Protocol (RPC 0x0B) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;dual-jump-tables&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Dual Jump Tables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;table-1-0x04179ed8-primary-dispatcher-migrate-branch-at-0x057a1bdc&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Table 1: 0x04179ED8 (Primary dispatcher MIGRATE branch at 0x057A1BDC) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Target&lt;br /&gt;
! Decompiled&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0x057A2344&lt;br /&gt;
| ✅ Returns ID=0x14, reads flag at &amp;lt;code&amp;gt;in_t1+0x7F9&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0x057A2320&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0x057A230C&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0x057A22F8&lt;br /&gt;
| ✅ Returns ID=0x10&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 0x057A2388&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 0x057A23D8&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 0x057A23AC&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0x057A2478&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 0x057A2428&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0x057A2454&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| 0x057A2404&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 0x057A2364&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 0x057A1F3C&lt;br /&gt;
| (dup)&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| 0x057A299C&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| 0x057A1F3C&lt;br /&gt;
| (dup)&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| 0x057A1F3C&lt;br /&gt;
| (dup)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;table-2-0x04179fbc-primary-dispatcher-migrate-branch-at-0x057a1d5c&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Table 2: 0x04179FBC (Primary dispatcher MIGRATE branch at 0x057A1D5C) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Index&lt;br /&gt;
! Target&lt;br /&gt;
! Decompiled&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0x057A257C&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0x057A25E4&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0x057A24EC&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0x057A2608&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 0x057A2534&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 0x057A25C0&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 0x057A24A4&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 0x057A259C&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 0x057A2510&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 0x057A2558&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| 0x057A24C8&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| 0x057A262C&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| 0x057A345C&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| 0x057A36D8&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| 0x057A35D8&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| 0x057A3658&lt;br /&gt;
| ✅&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Pattern''': Migration sub-commands follow same descriptor pattern as primary dispatcher — return constant ID, echo params.&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entry-point--boot-sequence&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Entry Point &amp;amp;amp; Boot Sequence ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;0x04009000-573-bytes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 0x04009000 (573 bytes) ===&lt;br /&gt;
&lt;br /&gt;
* Initializes global state at 0x04296040&lt;br /&gt;
* Sets up stack canary at 0x041DC350&lt;br /&gt;
* Configures memory allocator arena at 0x429B450&lt;br /&gt;
* Registers RPC dispatchers&lt;br /&gt;
* Jumps to main scheduler loop&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;decompiled-output-directory&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Decompiled Output Directory ==&lt;br /&gt;
&lt;br /&gt;
├── entry_ram_04009000.c                    # Boot entry&lt;br /&gt;
├── FUN_ram_04cb8188_ram_04cb8188.c         # BAR trap handler (40 KB)&lt;br /&gt;
├── FUN_ram_04cc58f8_ram_04cc58f8.c         # Secondary dispatcher (141 KB)&lt;br /&gt;
├── FUN_ram_04d00a18_ram_04d00a18.c         # ALLOC-dominant (142 KB)&lt;br /&gt;
├── FUN_ram_04ed39dc_ram_04ed39dc.c         # Secondary dispatcher (141 KB)&lt;br /&gt;
├── FUN_ram_04f00b0c_ram_04f00b0c.c         # WPR handler 1 (62 KB)&lt;br /&gt;
├── FUN_ram_04f00c78_ram_04f00c78.c         # WPR handler 2 (62 KB)&lt;br /&gt;
├── FUN_ram_051efbf4_ram_051efbf4.c         # SCHEDULE main (1.8 KB)&lt;br /&gt;
├── FUN_ram_054a7de0_ram_054a7de0.c         # ALLOC-dominant (67 KB)&lt;br /&gt;
├── FUN_ram_05723ef4_ram_05723ef4.c         # Tertiary dispatcher (13 KB)&lt;br /&gt;
├── FUN_ram_057a1ac0_ram_057a1ac0.c         # Primary dispatcher (558 B)&lt;br /&gt;
├── FUN_ram_057a1bcc_ram_057a1bcc.c..     # 32 sub-commands (~550 B each)&lt;br /&gt;
├── FUN_ram_057e94ec_ram_057e94ec.c         # ALLOC main (40 KB)&lt;br /&gt;
├── FUN_ram_059be7f4_ram_059be7f4.c         # RPC jump table (4.9 KB)&lt;br /&gt;
├── FUN_ram_057664b7_ram_057664b7.c..     # MAP/PIN/UNPIN/SCHED/YIELD/NOTIFY handlers&lt;br /&gt;
└── FUN_ram_057a22f8_ram_057a22f8.c..     # 28 migration handlers&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;vgpu-io-integration-checklist&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== vGPU-IO Integration Checklist ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;memory-management-allocfreemapunmap&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Memory Management (ALLOC/FREE/MAP/UNMAP) ===&lt;br /&gt;
&lt;br /&gt;
* ☐ Implement kernel RPC client calling 0x057A1AC0&lt;br /&gt;
* ☐ Parse sub-command descriptors from 0x057A3AD8 jump table&lt;br /&gt;
* ☐ Hook ALLOC main at 0x057E94EC for vGPU memory carve-out&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;page-pinning-pinunpin&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Page Pinning (PIN/UNPIN) ===&lt;br /&gt;
&lt;br /&gt;
* ☐ Call secondary dispatcher PIN at 0x04ED34B8&lt;br /&gt;
* ☐ Implement UNPIN via 0x057682B7 / 0x05779FB7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;scheduling-scheduleyield&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scheduling (SCHEDULE/YIELD) ===&lt;br /&gt;
&lt;br /&gt;
* ☐ Use 0x05767F37 / 0x0575AEB7 / 0x051EFBF4 for vCPU scheduling&lt;br /&gt;
* ☐ Implement YIELD at 0x0575AE37 / 0x05767337&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bar-emulation-bar_trap&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BAR Emulation (BAR_TRAP) ===&lt;br /&gt;
&lt;br /&gt;
* ☐ Register handler at 0x04CB8188&lt;br /&gt;
* ☐ Emulate BAR1/Bar1Rest/ForceBarAccess/Bar1Aperture for VF&lt;br /&gt;
* ☐ Monitor 0x429B450 allocator for BAR backing store&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;wpr-management-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== WPR Management ===&lt;br /&gt;
&lt;br /&gt;
* ☐ Hook completion callbacks from string refs (0x04F00B0C, 0x04F00C78)&lt;br /&gt;
* ☐ Implement NV_WPR_* notification forwarding to guest&lt;br /&gt;
* ☐ Manage WPR regions per-VF for isolation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;migration-migrate&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Migration (MIGRATE) ===&lt;br /&gt;
&lt;br /&gt;
* ☐ Implement dual jump table dispatch (0x04179ED8, 0x04179FBC)&lt;br /&gt;
* ☐ Handle 28 migration sub-commands&lt;br /&gt;
* ☐ Coordinate with guest VF live migration protocol&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;tools--scripts&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Tools &amp;amp;amp; Scripts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script&lt;br /&gt;
! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DecompileFunctions.java&amp;lt;/code&amp;gt;&lt;br /&gt;
| Ghidra headless decompilation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;trace_all_subsystems.py&amp;lt;/code&amp;gt;&lt;br /&gt;
| Binary analysis: WPR/BAR/Migration strings, jump tables&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gsp-fwimage-570.144/&amp;lt;/code&amp;gt;&lt;br /&gt;
| Ghidra project directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;ghidra-usage&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Ghidra Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;/snap/ghidra/current/ghidra/support/analyzeHeadless \&lt;br /&gt;
  /path/to/project gsp-analysis \&lt;br /&gt;
  -import gsp-570.144.fwimage.bin \&lt;br /&gt;
  -noanalysis \&lt;br /&gt;
  -postScript DecompileFunctions.java \&lt;br /&gt;
  0xADDRESS1,0xADDRESS2,..&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;references&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
</feed>