<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://familien-hartvig.dk/wiki/index.php?action=history&amp;feed=atom&amp;title=The_Freeze_Fix_Project</id>
	<title>The Freeze Fix Project - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://familien-hartvig.dk/wiki/index.php?action=history&amp;feed=atom&amp;title=The_Freeze_Fix_Project"/>
	<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;action=history"/>
	<updated>2026-06-16T22:01:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=445&amp;oldid=prev</id>
		<title>Lars: Protected &quot;The Freeze Fix Project&quot; ([edit=sysop] (indefinite) [move=sysop] (indefinite)) [cascading]</title>
		<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=445&amp;oldid=prev"/>
		<updated>2012-02-22T19:15:01Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/wiki/index.php?title=The_Freeze_Fix_Project&quot; title=&quot;The Freeze Fix Project&quot;&gt;The Freeze Fix Project&lt;/a&gt;&amp;quot; ([edit=sysop] (indefinite) [move=sysop] (indefinite)) [cascading]&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:15, 22 February 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Lars</name></author>
		
	</entry>
	<entry>
		<id>http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=251&amp;oldid=prev</id>
		<title>Lars: /* Running a Custom Firmware from NFS */</title>
		<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=251&amp;oldid=prev"/>
		<updated>2012-02-04T05:45:51Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Running a Custom Firmware from NFS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 05:45, 4 February 2012&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-l94&quot; &gt;Line 94:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 94:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;[[Root_on_NFS|Some more preparations]] are needed to run from [http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29 NFS].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;[[Root_on_NFS|Some more preparations]] are needed to run from [http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29 NFS].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Fralnky &lt;/del&gt;I think that's absolutely good stuff.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;Frankly &lt;/ins&gt;I think that's absolutely good stuff.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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 Freeze ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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 Freeze ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key KISS_wiki:diff::1.12:old-250:rev-251 --&gt;
&lt;/table&gt;</summary>
		<author><name>Lars</name></author>
		
	</entry>
	<entry>
		<id>http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=250&amp;oldid=prev</id>
		<title>Lars: /* Building and Running a Custom Firmware */</title>
		<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=250&amp;oldid=prev"/>
		<updated>2012-02-04T05:41:31Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Building and Running a Custom Firmware&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 05:41, 4 February 2012&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-l57&quot; &gt;Line 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;Media players based on [http://www.sigmadesigns.com Sigma Desings'] EM85xx processors are in fact computers powered by special [http://en.wikipedia.org/wiki/Linux Linux] edition named [http://www.uclinux.org/ uCLinux]. [http://en.wikipedia.org/wiki/Firmware Firmwares] for this players are ordinary computer programs compiled for EM85xx processor - if we dig enough we will find [http://en.wikipedia.org/wiki/Linux_kernel Linux kernel], directories, graphics files and decoders prepared as any other application for [http://en.wikipedia.org/wiki/Linux Linux].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;Media players based on [http://www.sigmadesigns.com Sigma Desings'] EM85xx processors are in fact computers powered by special [http://en.wikipedia.org/wiki/Linux Linux] edition named [http://www.uclinux.org/ uCLinux]. [http://en.wikipedia.org/wiki/Firmware Firmwares] for this players are ordinary computer programs compiled for EM85xx processor - if we dig enough we will find [http://en.wikipedia.org/wiki/Linux_kernel Linux kernel], directories, graphics files and decoders prepared as any other application for [http://en.wikipedia.org/wiki/Linux Linux].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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;A &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;wdoenrufl &lt;/del&gt;job. Super helpful information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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;A &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;wonderfuld &lt;/ins&gt;job. Super helpful information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;=== Building a Custom Kernel ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; 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;=== Building a Custom Kernel ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key KISS_wiki:diff::1.12:old-83:rev-250 --&gt;
&lt;/table&gt;</summary>
		<author><name>Lars</name></author>
		
	</entry>
	<entry>
		<id>http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=83&amp;oldid=prev</id>
		<title>Lars: Created page with &quot;== About == As you may know [http://en.wikipedia.org/wiki/Firmware firmware] 2.9.3 for [http://en.wikipedia.org/wiki/KISS_Technology KiSS] DP-50x players has the so called ''F...&quot;</title>
		<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=The_Freeze_Fix_Project&amp;diff=83&amp;oldid=prev"/>
		<updated>2012-02-03T09:13:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== About == As you may know [http://en.wikipedia.org/wiki/Firmware firmware] 2.9.3 for [http://en.wikipedia.org/wiki/KISS_Technology KiSS] DP-50x players has the so called &amp;#039;&amp;#039;F...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== About ==&lt;br /&gt;
As you may know [http://en.wikipedia.org/wiki/Firmware firmware] 2.9.3 for [http://en.wikipedia.org/wiki/KISS_Technology KiSS] DP-50x players has the so called ''Freeze Bug''. The aim of this project is to debug and eventually fix it.&lt;br /&gt;
&lt;br /&gt;
There is another project called [[Stage2_Main|Stage2]] that works around the ''Freeze Bug'' by using components of different firmware versions.&lt;br /&gt;
&lt;br /&gt;
Thanks to [http://www.divxplayer.nl divxplayer] who donated a DP-508 for this project.&lt;br /&gt;
&lt;br /&gt;
'''All code examples on this page assume that you are doing this on a system running Linux.''' Use [http://en.wikipedia.org/wiki/Windows VmWare Player] to run Linux as a guest inside a [http://en.wikipedia.org/wiki/Windows Windows] system.&lt;br /&gt;
&lt;br /&gt;
== PCB and Components ==&lt;br /&gt;
&lt;br /&gt;
Components:&lt;br /&gt;
* [http://www.sigmadesigns.com/ EM8550 Media Processor] (ARM7 based) - [[Media:Em8550datasheet.pdf|Data Sheet]]&lt;br /&gt;
* 48LC2M32B2 32MBit [http://en.wikipedia.org/wiki/SDRAM SDRAM] (512K x 32 x 4banks) for the [http://en.wikipedia.org/wiki/Digital_signal_processor DSP] Quasar&lt;br /&gt;
* K4S641632F 64MBit [http://en.wikipedia.org/wiki/SDRAM SDRAM] (1M x 16 x 4banks) for the [http://en.wikipedia.org/wiki/ARM7 ARM7] Jasper&lt;br /&gt;
* AM29LV320DB 32MBit CMOS Boot Sector [http://en.wikipedia.org/wiki/Flash_memory Flash Memory] (4M x 8/2M x 16)&lt;br /&gt;
* DM9000E [http://en.wikipedia.org/wiki/Network_Interface_Controller NIC]&lt;br /&gt;
* WM8728 24Bit stereo [http://en.wikipedia.org/wiki/Digital-to-analog_converter DAC] with digital volume control&lt;br /&gt;
&lt;br /&gt;
The EM8550 has two built-in [http://en.wikipedia.org/wiki/Uart UART] controller. One is used for the front panel controller and the other for the serial console. In the lower right corner of the board a [http://en.wikipedia.org/wiki/D-subminiature SUB9] (J18) can be connected. The driver chip (U17, 28pin) that converts from [http://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic TTL] to [http://en.wikipedia.org/wiki/Rs232 RS232] voltage levels is not soldered on the board.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:dp508_pcb_upper_full.jpg|thumb]]&lt;br /&gt;
|[[Image:dp508_pcb_lower_full.jpg|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Console Access ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
A data cable for [http://en.wikipedia.org/wiki/Mobile_phone mobile phones] (USB-to-Serial converter) is connected to the [http://en.wikipedia.org/wiki/Printed_circuit_board PCB] (T62 -&amp;gt; [http://en.wikipedia.org/wiki/RS-232 TxD], T63 -&amp;gt; [http://en.wikipedia.org/wiki/RS-232 RxD], chassis -&amp;gt; GND). A calliper is connected to J14 and acts as [http://en.wikipedia.org/wiki/Reset_%28computing%29 RESET].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|[[Image:freezefix_desktop.jpg|thumb]] &lt;br /&gt;
|[[Image:freezefix_cables.jpg|thumb]]&lt;br /&gt;
|[[Image:Dp50x_console.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
Terminal settings are: 115200 [http://en.wikipedia.org/wiki/Baud Baud], [http://en.wikipedia.org/wiki/8N1 8N1], [http://en.wikipedia.org/wiki/Flow_control flow control] disabled.&lt;br /&gt;
&lt;br /&gt;
Buy RS232-to-TTL level converter at [http://www.pollin.de/shop/shop.php?cf=detail.php&amp;amp;pg=NQ==&amp;amp;a=MzY5OTgxOTk= Pollin.de], [http://www.elv.de/output/controller.aspx?cid=74&amp;amp;detail=10&amp;amp;detail2=6149 ELV.de], or [http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=G79;GROUPID=875;ARTICLE=59974 Reichelt.de].&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Boot_loader boot loader] does not output anything to the [http://en.wikipedia.org/wiki/Computer_console console]. It has to be [http://en.wikipedia.org/wiki/Disassembler disassembled] to get further information on its function. It can boot the player from a [http://en.wikipedia.org/wiki/El_Torito_%28CD-ROM_standard%29 bootable CD] or from [http://en.wikipedia.org/wiki/Flash_memory  flash], but not from [http://en.wikipedia.org/wiki/Hard_disk hard disk].&lt;br /&gt;
&lt;br /&gt;
An unmodified player uses the [http://en.wikipedia.org/wiki/Computer_console console] only as output device. There is neither a [http://en.wikipedia.org/wiki/Getty_%28Unix%29 getty] nor a [http://en.wikipedia.org/wiki/Shell_%28computing%29 shell] process waiting for keyboard input. If we want to interact with the [http://en.wikipedia.org/wiki/Operating_system operating system] another [http://en.wikipedia.org/wiki/Process_(computing) process] beside the main DVD player application (in the folllowing called ''kissapp'') must run.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|[[Image:freezefix_minicom.jpg|thumb]]&lt;br /&gt;
|[[Image:freezefix_minicom2.jpg|thumb]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;|Boot messages from Linux kernel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Building and Running a Custom Firmware ==&lt;br /&gt;
&lt;br /&gt;
Media players based on [http://www.sigmadesigns.com Sigma Desings'] EM85xx processors are in fact computers powered by special [http://en.wikipedia.org/wiki/Linux Linux] edition named [http://www.uclinux.org/ uCLinux]. [http://en.wikipedia.org/wiki/Firmware Firmwares] for this players are ordinary computer programs compiled for EM85xx processor - if we dig enough we will find [http://en.wikipedia.org/wiki/Linux_kernel Linux kernel], directories, graphics files and decoders prepared as any other application for [http://en.wikipedia.org/wiki/Linux Linux].&lt;br /&gt;
&lt;br /&gt;
A wdoenrufl job. Super helpful information.&lt;br /&gt;
&lt;br /&gt;
=== Building a Custom Kernel ===&lt;br /&gt;
&lt;br /&gt;
[[Build_kernel|This page]] explains how to build a [http://en.wikipedia.org/wiki/Linux_kernel Linux kernel] from the source provided by [http://en.wikipedia.org/wiki/KISS_Technology KiSS]. Since the source does not contain the kernel modules ''fipmodule'', ''khwl'', ''kiss_khwl'' we are forced to use the binary modules.&lt;br /&gt;
&lt;br /&gt;
=== Building a Firmware Image ===&lt;br /&gt;
&lt;br /&gt;
After modifying the extracted [http://en.wikipedia.org/wiki/Firmware firmware] the below [http://en.wikipedia.org/wiki/Shell_script script] will build a [http://en.wikipedia.org/wiki/Firmware firmware] [http://en.wikipedia.org/wiki/ISO_image ISO image] from it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DIR=firmware_dir&lt;br /&gt;
ISO=firmware.iso&lt;br /&gt;
BOOT=boot293.img&lt;br /&gt;
&lt;br /&gt;
cd ${DIR}&lt;br /&gt;
genromfs -v -d romfs -f romfs.bin -a 512 -V 'romfs'&lt;br /&gt;
md5sum romfs.bin&lt;br /&gt;
cp -f romfs.bin cdrom&lt;br /&gt;
md5sum cdrom/loader.bin | sed 's#^\([a-z0-9]*\) .*$#/loader.bin 0 131 \1#' &amp;gt; cdrom/layout.txt&lt;br /&gt;
md5sum cdrom/romfs.bin | sed 's#^\([a-z0-9]*\) .*$#/romfs.bin 0x6000 293 \1#' &amp;gt;&amp;gt; cdrom/layout.txt&lt;br /&gt;
cp -f $BOOT cdrom/boot.img&lt;br /&gt;
mkisofs -V 'KiSS DP-500' -P 'KiSS Technology A/S     ' -o ${ISO} -c boot.cat -b boot.img -no-emul-boot -N -U -no-pad -hide boot.cat -hide boot.img cdrom&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need the boot image ''boot293.img'', [http://www.dickson.me.uk/2007/06/08/extract-an-el-torito-boot-image-from-an-iso-file-under-linux/ extracted with ''geteltorito''] from the [http://en.wikipedia.org/wiki/Firmware firmware] [http://en.wikipedia.org/wiki/ISO_image ISO image], and a [http://kiss.molteni.net/ patched version of mkisofs] to create a bootable [http://en.wikipedia.org/wiki/ISO_image ISO image] of architecture type 3. Otherwise the [http://en.wikipedia.org/wiki/KISS_Technology KiSS] [http://en.wikipedia.org/wiki/Boot_loader boot loader] will not recognise the disc as a valid one.&lt;br /&gt;
&lt;br /&gt;
The resulting ''firmware.iso'' can be burned on CD and [[Firmware_update|flashed into the player]].&lt;br /&gt;
&lt;br /&gt;
=== Running a Custom Firmware from NFS ===&lt;br /&gt;
&lt;br /&gt;
The above described procedure is very time consuming when testing small changes. The [http://en.wikipedia.org/wiki/Firmware firmware] uses [http://en.wikipedia.org/wiki/Romfs ROMFS] as [http://en.wikipedia.org/wiki/Filesystem filesystem] for the [http://en.wikipedia.org/wiki/Flash_memory flash], which is a read-only [http://en.wikipedia.org/wiki/Filesystem filesystem]. To overcome this limitation, [http://en.wikipedia.org/wiki/Romfs ROMFS] has to be replaced with a read-writeable [http://en.wikipedia.org/wiki/Filesystem filesystem]. This could be [http://en.wikipedia.org/wiki/JFFS2 JFFS2] or [http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29 NFS] among others.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29 NFS] is used by [[Stage2_Main|Stage2]] to simmulate a [http://en.wikipedia.org/wiki/Hard_disk hard disk] over the [http://en.wikipedia.org/wiki/Computer_network network]. So it is obvious to use [http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29 NFS ] also as an alternative for [http://en.wikipedia.org/wiki/Romfs ROMFS]. A server [[NFS_server_setup|can be set up]] very easy.&lt;br /&gt;
&lt;br /&gt;
[[Root_on_NFS|Some more preparations]] are needed to run from [http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29 NFS].&lt;br /&gt;
&lt;br /&gt;
Fralnky I think that's absolutely good stuff.&lt;br /&gt;
&lt;br /&gt;
== The Freeze ==&lt;br /&gt;
&lt;br /&gt;
There are three applications running on the player:&lt;br /&gt;
&lt;br /&gt;
* ''kissapp'' is the [http://en.wikipedia.org/wiki/GUI GUI] and the control [http://en.wikipedia.org/wiki/Computer_program program]. It runs continuously in the [http://en.wikipedia.org/wiki/Background_%28computer_software%29 background], waiting for button presses on the [http://en.wikipedia.org/wiki/Front_panel front panel] or on the [http://en.wikipedia.org/wiki/Remote_control remote]. If needed, it will call other programs to play the media files.&lt;br /&gt;
** [http://en.wikipedia.org/wiki/Red_Book_(audio_CD_standard) Audio-CD], [http://en.wikipedia.org/wiki/Video_CD VCD], [http://en.wikipedia.org/wiki/Super_Video_CD SVCD], [http://en.wikipedia.org/wiki/DVD#DVD-Video Video-DVD], [http://en.wikipedia.org/wiki/Jpeg Picture]&lt;br /&gt;
* ''fileplayer'' will play the indicated file but will '''not''' update the screen. Instead, it will print a heartbeat message on [http://en.wikipedia.org/wiki/Computer_console console] at every second.&lt;br /&gt;
** [http://en.wikipedia.org/wiki/Mp3 MP3], [http://en.wikipedia.org/wiki/Windows_Media_Audio WMA], [http://en.wikipedia.org/wiki/Ogg OGG], [http://en.wikipedia.org/wiki/Dolby_Digital AC3], [http://en.wikipedia.org/wiki/Divx DIVX], [http://en.wikipedia.org/wiki/Shoutcast Webradio]&lt;br /&gt;
* ''mpegplayer'' will play the indicated file but will '''not''' update the screen. Instead, it will print a heartbeat message on [http://en.wikipedia.org/wiki/Computer_console console] at every second.&lt;br /&gt;
** [http://en.wikipedia.org/wiki/MPEG-1 MPEG1], [http://en.wikipedia.org/wiki/MPEG-2 MPEG2]&lt;br /&gt;
&lt;br /&gt;
On other player models there is a fourth application called ''pclinkmpeg''. Details are not kwown.&lt;br /&gt;
&lt;br /&gt;
=== When and how does it freeze ===&lt;br /&gt;
&lt;br /&gt;
It has been observed that the freeze only happens to ''kissapp''. ''Fileplayer'' and ''mpegplayer'' do not freeze.&lt;br /&gt;
&lt;br /&gt;
Please contribute to the tables by using the [[Talk:The_Freeze_Fix_Project|'''discussion tab''']] of this page. The hardware revision is printed on the back side of the player, the EM8550 revision on the chip. If you do not want to open your player, burn and boot this [[Media:Revtest.iso.bz2|firmware ISO]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Freeze Matrix by revision&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot;|Hardware !! colspan=&amp;quot;2&amp;quot;|EM8550&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;50&amp;quot;|A !! width=&amp;quot;50&amp;quot;|B&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;|Yes || align=&amp;quot;center&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|? || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|? || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Freeze Matrix by file type&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot;|Type !! colspan=&amp;quot;3&amp;quot;|Source&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;70&amp;quot;|CD/DVD !! width=&amp;quot;70&amp;quot;|Harddisk !! width=&amp;quot;70&amp;quot;|Network&lt;br /&gt;
|-&lt;br /&gt;
! Audio-CD&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot;|- || align=&amp;quot;center&amp;quot;|-&lt;br /&gt;
|-&lt;br /&gt;
! VCD/SVCD&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot;|- || align=&amp;quot;center&amp;quot;|-&lt;br /&gt;
|-&lt;br /&gt;
! Video-DVD&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot;|- || align=&amp;quot;center&amp;quot;|-&lt;br /&gt;
|-&lt;br /&gt;
! MP3&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;|Yes || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No *&lt;br /&gt;
|-&lt;br /&gt;
! MPEG1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot;|? || align=&amp;quot;center&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
! MPEG2&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot;|? || align=&amp;quot;center&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
! DIVX&lt;br /&gt;
| align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;|Yes || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;green&amp;quot;|No *&lt;br /&gt;
|-&lt;br /&gt;
! Webradio&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | - || align=&amp;quot;center&amp;quot; | - || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
! Picture&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ? || align=&amp;quot;center&amp;quot; | ? || align=&amp;quot;center&amp;quot; |?&lt;br /&gt;
|-&lt;br /&gt;
! Navigation&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | ? || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;| Yes || align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;red&amp;quot;| Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* see [[Talk:The_Freeze_Fix_Project|'''discussion tab''']] for reason&lt;br /&gt;
&lt;br /&gt;
Player freezes randomly during playback or file browsing (1-4 times per hour); it hangs during 2 min, and then playback continues.&lt;br /&gt;
&lt;br /&gt;
=== Technical Aspects ===&lt;br /&gt;
&lt;br /&gt;
So far I have observed that ''kissapp'' hangs in an ioctl to the realmagic device (/dev/realmagichwl0).&lt;br /&gt;
&lt;br /&gt;
khwl.o contains functions for accessing eeprom, i2c bus, EM85xx, video memory, overlay, etc and is accesed via /dev/realmagichwl0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
     0.010000 open(&amp;quot;/dev/fip&amp;quot;, O_RDONLY|O_NONBLOCK) = 3&lt;br /&gt;
     0.000000 open(&amp;quot;/dev/realmagichwl0&amp;quot;, O_RDONLY) = 4&lt;br /&gt;
 ....&lt;br /&gt;
     0.010000 ioctl(4, 0x5393, 0x1465dc0) = 0&lt;br /&gt;
     0.000000 ioctl(3, 0xc004f11a, 0x1465e20) = 0 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After weeks and months of disassembling the khwl.o from 2.8.8 and 2.9.3 and debugging it I came to the conclusion that the error is within the Quasar microcode.&lt;br /&gt;
&lt;br /&gt;
=== The Solution ===&lt;br /&gt;
&lt;br /&gt;
I am afraid there will be no solution until [http://en.wikipedia.org/wiki/KISS_Technology KiSS] releases the source of the khwl.o driver and the Quasar microcode. Either go for [[Stage2_Main|Stage2]] or drop the player for a different one.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Here you will find [http://en.wikipedia.org/wiki/Firmware firmware] [http://en.wikipedia.org/wiki/ISO_image ISO images] for testing purpose. [[Firmware_update|Flash]] your player with it and report the test result either in the [[Talk:The_Freeze_Fix_Project|'''discussion tab''']] of this page or in [http://www.mpcclub.com/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=12919 ''The Freeze Fix'' thread] at the [http://www.mpcclub.com/modules.php?name=Forums&amp;amp;file=viewforum&amp;amp;f=101 ''Stage2'' forum].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+ Firmware ISO images&lt;br /&gt;
! Player || Comment || Purpose || Download&lt;br /&gt;
|-&lt;br /&gt;
| DP508 || based on original 2.9.3&amp;lt;BR&amp;gt; without the network driver || check if playback from hard disk freezes || [[Media:Dp508_tffp_wo_net.zip|dp508_tffp_wo_net.zip]]&lt;br /&gt;
|-&lt;br /&gt;
| DP50x || based on original 2.9.3&amp;lt;BR&amp;gt; with stage2 1.0 merged || just for fun || [[Media:Dp50x_tffp_stage2.zip|dp50x_tffp_stage2.zip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Thread: [http://www.mpcclub.com/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=12919 debug and fix the freeze bug]&lt;br /&gt;
* Thread: [http://www.mpcclub.com/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=5244 Official FREEZE Problem Tracking for DP-50x players]&lt;br /&gt;
* Thread: [http://www.gooddvdstuff.com/kissdvd/viewtopic.php?t=4828 FW 2.9.3 freeze bug solution? (new clue)]&lt;br /&gt;
* Thread: [http://www.gooddvdstuff.com/kissdvd/viewtopic.php?t=5978 FW 2.9.4 for DP-50X with freeze fix and BiG modifications]&lt;br /&gt;
* [http://www.linuxconf.eu/2007/papers/Sirotkin.pdf Hacking Embedded Linux Based Home Appliances]&lt;br /&gt;
* [http://www.blackhat.com/presentations/bh-europe-04/bh-eu-04-dehaas/bh-eu-04-dehaas.pdf Reverse Engineering ARM Based Devices]&lt;br /&gt;
* [http://www.semiconductors.philips.com/acrobat_download/datasheets/SAA7118_5.pdf SAA7118 Datasheet]&lt;br /&gt;
* [http://www.arm.com/miscPDFs/9658.pdf ARM: Assembly Language Programming]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dui0068b/DUI0068.pdf ARM Developer Suite: Assembler Guide]&lt;br /&gt;
* [http://martin.hinner.info/ARM-Microcontroller-HOWTO/ARM-Microcontroller-HOWTO.html ARM Microcontroller HOWTO]&lt;br /&gt;
* [http://dxr3.sourceforge.net/ Linux DXR3 and Hollywood+ Driver Project]&lt;br /&gt;
* [http://www.convergent.com.sg/brochure/DVD8500refdesign.pdf EM8500 progressive DVD player reference design]&lt;br /&gt;
* [http://www.ibm.com/developerworks/linux/library/l-debug/ Mastering Linux debugging techniques]&lt;br /&gt;
* [http://oss.sgi.com/projects/kdb/ kdb project page], [ftp://oss.sgi.com/projects/kdb/download/old/v2.1 kdb download]&lt;br /&gt;
* [http://mediagate.pbwiki.com/ Mediagate MG-35 WIKI], [http://mg35tools.svn.sourceforge.net/viewvc/mg35tools/trunk/ MG-35 Tools]&lt;br /&gt;
* [http://www.linuxjournal.com/content/reverse-engineering-malware-linux-ida-pro Reverse Engineering Malware on Linux with IDA Pro]&lt;/div&gt;</summary>
		<author><name>Lars</name></author>
		
	</entry>
</feed>