IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread

  • 678 Replies
  • 147385 Views
Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #10 on: 10 / August / 2009, 17:41:36 »
Advertisements
Have a look at http://chdk.wikia.com/wiki/SX10

The SX10 also have DIGIC 4 and there are some source code examples.

*

Offline reyalp

  • ******
  • 11514
Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #11 on: 10 / August / 2009, 18:15:29 »
Have a look at http://chdk.wikia.com/wiki/SX10

The SX10 also have DIGIC 4 and there are some source code examples.
SX10 is one of the older digic IV cameras, that does not have problems with diskboot and udumper.
Don't forget what the H stands for.

Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #12 on: 10 / August / 2009, 18:52:47 »

SX10 is one of the older digic IV cameras, that does not have problems with diskboot and udumper.

Is there an alternative method, or is this where development is stuck at?

-kap

Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #13 on: 11 / August / 2009, 00:58:04 »
The status of the SD780 port is always updated in the first posting.  You might be best to review the wiki as you seem interested and the wiki gives a great overview of the various methods you can employ to port a given camera.
Canon Models - SD300, SD780, & SX210


Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #14 on: 11 / August / 2009, 01:02:06 »
I can confirm that at least on an OS X built using the instructions on the "how to build on Mac OS X" has an issue with the entry.S positions given to the loader.  I have to add 0x11A0 to my core start position for it to find the right location. 

I fully expect that position to change depending on how much padding it decided to add for various reasons.  That said I'm ignoring it for the moment in favor of other jobs.

HarpoMa
Canon Models - SD300, SD780, & SX210

Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #15 on: 12 / August / 2009, 00:03:03 »
Anyone know the history of how the following lines were determined for boot.c in the SX10 camera?
 *(int*)0x1930=(int)taskCreateHook;   //CHECK
 *(int*)0x1934=(int)taskCreateHook2; //CHECK
 *(int*)(0x25BC+4)= (*(int*)0xC0220134)&1 ? 0x2000000 : 0x1000000; //Orginal comment replacement of sub_FF8218C8 for correct power-on.

My main question is what function FF8218C8 was.  I'm trying to find the equivalent in the SD780.  Also how was 1930 and 1934 determined?  

Thanks,

Harpo


modify - I'm gonna start using the sd990 as a reference due to the comments inside.  Very nice work. 
« Last Edit: 12 / August / 2009, 10:01:10 by HarpoMa »
Canon Models - SD300, SD780, & SX210

*

Offline whoever

  • ****
  • 280
  • IXUS950
Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #16 on: 12 / August / 2009, 09:40:03 »
Anyone know the history of how the following lines were determined for boot.c in the SX10 camera?
 *(int*)0x1930=(int)taskCreateHook;   //CHECK
 *(int*)0x1934=(int)taskCreateHook2; //CHECK
For the initial research, see here, although it didn't work at that time. Eventually it did however, see here and here.

Quote
*(int*)(0x25BC+4)= (*(int*)0xC0220134)&1 ? 0x2000000 : 0x1000000; //Orginal comment replacement of sub_FF8218C8 for correct power-on.
My main question is what function FF8218C8 was.  I'm trying to find the equivalent in the SD780. 
Why don't you look at the disasm and find out? Otherwise, and before reyalp has time to step in and enlighten you, maybe his comments (ixus980_sd990, boot()) can help...
Code: [Select]
        // similar to SX10 (but no +4 and values are >> 8) via sub_FF849EB0.
        // Search on 0x12345678 finds function called by this
    *(int*)(0x2588)= (*(int*)0xC02200F8)&1 ? 0x200000 : 0x100000; // replacement of sub_FF8219D8 for correct power-on.

Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #17 on: 12 / August / 2009, 09:57:46 »
I have tried to find the function sub_FF8218C8 but I think that was copied from another boot.c and the position has changed.  I have started reading the threads you mentioned and there is a lot of help there so I'm gonna follow up on the IRQ handlers that 0x1930/34 seem to relate to.

Thanks,
Harpo
Canon Models - SD300, SD780, & SX210


Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #18 on: 15 / August / 2009, 11:06:12 »
Well done HarpoMa!

*

Offline reyalp

  • ******
  • 11514
Re: IXUS 100 IS (Europe) / PowerShot SD780 IS - Porting Thread
« Reply #19 on: 15 / August / 2009, 18:35:20 »
I have tried to find the function sub_FF8218C8 but I think that was copied from another boot.c and the position has changed.  I have started reading the threads you mentioned and there is a lot of help there so I'm gonna follow up on the IRQ handlers that 0x1930/34 seem to relate to.
You should be able to figure out if the 1930/34 are correct by searching for the constants in both an existing firmware (e.g. SX10) and you new one, and comparing how they are used. If you are using IDA, just search for sequence of bytes, 00001930

Or you can just try it. If it doesn't work, you know it's wrong. The other thing that could be wrong is the offset subtracted from p in taskCreateHook. You can probably find that by comparing the code as described above.

edit:
Is there a dump for this uploaded somewhere ?
« Last Edit: 15 / August / 2009, 21:43:09 by reyalp »
Don't forget what the H stands for.

 

Related Topics