[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