[Prism54-devel] Firmware built-in debugger ?
David Murrell
david at murrell.co.nz
Tue May 3 10:26:10 UTC 2005
Jean-Baptiste Note wrote:
>
>
>>To know what to send, we'll probably need to uncompress the firmware and look
>>at strings... I think the easiest way to do this is to run the firmware in a
>>ARM emulator and then stop it and examine the memory once it has
>>self-extracted. Unless someone guesses what the compression algorithm is...
>>
>>
>
>zlib for compression ?
>
>
>
I think the compression is something called "HIFN LZS"
When trying to do some pci sniffing for JB using the XH8196 driver, I
noticed this in /var/log/messages:
May 3 12:16:18 carbon kernel: compress_init: HIFN LZS, history c 12496
bytes, d 4168 bytes
Google pulls up this site as the company site:
http://www.hifn.com/technology/Compression.html
It appears to be a lossless compression protocol used between hardware
devices, and documented in
http://rfc2395.x42.com/
Some media waffle:
http://www.commsdesign.com/printableArticle/?articleID=55301602
"...The LZS compression scheme works by searching data strings in an
input data stream and replacing these strings with encoded tokens of
shorter length in the output data stream. The algorithm builds a table
of these strong matches which consists of pointers into the previous
data from the input stream. The tokens that are used to replace
redundant strings are created from information in the table. Thus,
future data can be compressed using information collected on past data. ..."
Which would fit, particularly if d = dictionary, and history = past
data ( c= cache?)
The LZS compression algorithm is evidently patented in the US and UK,
but someone did an implementation anyway.
It is written for for BSD and
http://homepages.rya-online.net/plunky/lzs.html
Of note, the XH8196 builds on Debian stable, not Debian unstable, I
think its got something to do with the different versions of ld on the
two systems (as gcc is the same version)
Cheers,
David
More information about the Prism54-devel
mailing list