uote]I see in the M3/100a case, many strings with "safari", these are not present in my disassembly of 100f.
I suspect this is Servo Autofocus made using FPGA. Not sure Powershots have this function.
Probably with more effort I could find a few more...I don't know.
It sure would be nice to understand how to modify sigfinder. Is there a document on this? Or to create a sigfind util that takes one firmware found signature address, and uses that to find it in the target firmware.
Unfortunately CHDK doesn't have most great features unlike ML(raw video, shutterless photos, dual iso). So EDMAC functions are not used.
But the edmac_struct is not used in edmac_info.c as yet.
I uploaded wrong file. For EOS M3 fw101a there should be:
unsigned int edmac_get_base(unsigned int channel)
{
if (channel > 47) return 0xC0F04000;
return *(int*)(0xFC6AF930 + 4 + channel*12);
}
unsigned int edmac_get_connection(unsigned int channel, unsigned int direction)
{
unsigned int addr = 0;
if(direction == EDMAC_DIR_READ)
{
unsigned int dest_chan = 0;
unsigned int edmac_num = channel & 0x0F;
if ( channel < 0x2F ){
dest_chan = channel - 0x19;
}
else
{
dest_chan = channel + 0xD2;
}
unsigned int pos;
for(pos = 0; pos < 47; pos++)
{
addr = 0xC0F05000 + pos ;
unsigned int dst = shamem_read(addr);
if(dst == dest_chan)
{
return pos;
}
}
return 0xFF;
}
else
{
if ( channel >= 8 )
{
addr = 0xC0F051E0 + (4 * channel);
}
else
{
addr = 0xC0F05000 + (4 * channel);;
}
}
return shamem_read(addr);
}
But this is still not clear. Waiting for ML progress...