Casd 900 users want builds!!! - page 2 - General Discussion and Assistance - CHDK Forum supplierdeeply

Casd 900 users want builds!!!

  • 27 Replies
  • 12509 Views
Re: sd 900 users want builds!!!
« Reply #10 on: 20 / July / 2008, 00:01:11 »
Advertisements
ok, so more then just needing the firmware. a developer also needs to have the camera?

I am a sw developer and have a SD900 so I could give it a shot, but I would need some guidance from an experienced CHDK hacker on how to find some of the offsets required.

Re: sd 900 users want builds!!!
« Reply #11 on: 20 / July / 2008, 22:50:15 »
Gentlemen,

While I understand your desire to have your camera ported to CHDK, it appears that you don't understand what's involved. It is a lot more than just "...needing to download the file and change a few values..." It is, in fact a substantial investment in time and energy.

During the porting of the TX-1, it took the efforts of members from Wales, Finland, Kiev, Russia, Australia, the USA and other parts unknown for over a month to finally complete the task.

If you truly desire a build, the first thing to do is to build a team of developers, and testers.

The porting process basically consists of multiple steps including dumping the firmware, disassembling the firmware, making educated guesses as to the locations of certain routines in the disassembly, testing to see that the routines do what you think they do,  and, more importantly, that they do not do other things as well. Next comes actually building a port based on the existing software where possible, and then testing for problems and then repeating the testing of the build until it's stable enough to release.

My point is that an understanding of the complexities will, hopefully, lead you to a more respectful attitude in your interactions with the developers. This in turn, may get someone to take up your cause and begin the process.

And it does help if the developer has the camera, but, if enough people are willing to pitch in and devote the necessary time to testing, it is not a deal breaker.

And, BTW, I am not a developer... 8)

HTH,
~~~~~~~~~~~~~~~~~~~~~

<")%%%><<

*

Offline pixeldoc2000

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
Re: sd 900 users want builds!!!
« Reply #12 on: 25 / July / 2008, 23:30:31 »
My point is that an understanding of the complexities will, hopefully, lead you to a more respectful attitude in your interactions with the developers. This in turn, may get someone to take up your cause and begin the process.
100% agree with you, we all have to thank the developers or perhaps give them a big hug  :) !

I've spend quit some time looking at wiki and forum to get a clou about porting chdk to SD900 / IXUS 900Ti ...

So fare i was able to get a firmware 1.00c dump from my camera using CardTricks.

Disassembled it and compare source to SD800IS (Forum) . I think SD900 sould be simular to SD800 because they use both use DIGIC III sensor, runs VxWorks 5.5 OS and got released at the same time (For Developers - CHDK Wiki).

Like some people here i guess, i don't know much about arm assembler... :'( . As stated before, maybe someone have more infos about how to understand the disassembled source find adress? I've also read some generic arm assembler tuts, but this ain't helps that much besides gettin used to assembler...  :blink:

Also I made some changes to the SD900 / IXUS900Ti WIKI and a few others..

I want to share my "progress" by write a little guide what i've done so fare and later put it in the wiki if this is usefull to somebody... I'll start a new topic for the guide ASAP.

@jerjoz
Did you or anybody made some progress and perhaps something to share?
You can dump your Firmware with CardTricks v1.25 oder greater, look at CardTricks.
« Last Edit: 25 / July / 2008, 23:44:06 by pixeldoc2000 »

Re: sd 900 users want builds!!!
« Reply #13 on: 26 / July / 2008, 10:10:31 »
pixeldoc2000,

This is exactly how it starts. When there are enough people interested and working together to figure things out, many developers, in my experience, will help you over the rough spots or point you to work that has already been done on a similar camera.

I applaud you. Keep up the good work!  8)
~~~~~~~~~~~~~~~~~~~~~

<")%%%><<


*

Offline fe50

  • ******
  • 3132
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Re: sd 900 users want builds!!!
« Reply #14 on: 26 / July / 2008, 10:44:17 »
There are many helpful informations, especially for using IDA, in this thread: Porting chdk to the G9, including 2 great video tutorials by GrAnd !

*

Offline pixeldoc2000

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
Re: sd 900 users want builds!!!
« Reply #15 on: 26 / July / 2008, 14:12:31 »
pixeldoc2000,

This is exactly how it starts. When there are enough people interested and working together to figure things out, many developers, in my experience, will help you over the rough spots or point you to work that has already been done on a similar camera.

I applaud you. Keep up the good work!  8)
Thank you! Thats exactly the why i've posted before.

There are many helpful informations, especially for using IDA, in this thread: Porting chdk to the G9, including 2 great video tutorials by GrAnd !
I've allready found them, but its only about open and disassemble dump, which was not a big deal for me...
I need some deeper informations about chdk/camera initilization/startup phase to have something to look form in ida. Thats where I'm stuck at the moment...
I know the first importent steps are to get loader, LED's and Keyboard working... but i just haven't found that much in forum/wiki about it. Maybe i haven't missed some helpful posts in this forum?!? (i have searched around quit some time now)

*

Offline fe50

  • ******
  • 3132
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Re: sd 900 users want builds!!!
« Reply #16 on: 26 / July / 2008, 14:20:07 »
Have you found this thread: DryOS - some success by jeff666 & others ?

*

Offline pixeldoc2000

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
Re: sd 900 users want builds!!!
« Reply #17 on: 26 / July / 2008, 14:56:45 »
Have you found this thread: DryOS - some success by jeff666 & others ?
Yes, found it earlier, but had only read a small part because it was labels as "DryOS"... i'll read though the hole thread.. thanks!

Should i start porting based on current trunk or a branche? trunk seems to include most ports... this should be the way to go i think???
« Last Edit: 26 / July / 2008, 15:00:25 by pixeldoc2000 »


*

Offline fe50

  • ******
  • 3132
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Re: sd 900 users want builds!!!
« Reply #18 on: 26 / July / 2008, 15:24:15 »
Pixeldoc2000,
yes, DryOS is sometimes very different, but there could be some ideas for you there...

...Should i start porting based on current trunk or a branche? trunk seems to include most ports... this should be the way to go i think???

I'd start from the trunk, more stable, not so often changes as in a experimental branch like in the Juciphox; the other branches could be "to old", except the dataghost one - but i think this is to experimental...

Many of the changes gets in the trunk fast after some testing, so even if there will be many changes while you're work on your port you could handle this with diffs easily...

Good luck !

*

Offline pixeldoc2000

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
Re: sd 900 users want builds!!!
« Reply #19 on: 27 / July / 2008, 07:33:11 »
@fe50
ok, will stay with trunk. Just wanted to be shure about that...



my progress

compiled my port againt current trunk with chdk-shell-v136.

LED address
Code: [Select]
#define LED_AF 0xC02200C0   // AF Beam (red, frontside)
#define LED_PR 0xC02200C4   // led in print/share button (blue, backside)
#define LED_OR 0xC02200C8   // right state led orange (bi-state with green, backside)
#define LED_GR 0xC02200CC   // right state led green (bi-state with orange, backside)
#define LED_YL 0xC02200D0   // left state led (yellow, backside)
#define LED_ON 0xC02200D8   // power led (green, on top)
*addresses are correct, not shure about labels?*

loader\ixus900_sd900\resetcode\main.c
tested boot loop with flashing led like jeff666 Porting chdk to the G9 wrote. took it from s5is ports which includs this.
works with:
Code: [Select]
dst_void = (void*) 0xFF810000;but i can't change jump vector in assembler at the end:
Code: [Select]
// DEBUG: jump to rom base address of regular firmware (causing camera to restart in a loop, enable flash led to get feedback)
//dst_void = (void*) 0xFF810000;   // Canon A-series: 0xFFC00000 ; S-, SD-, and G- series: 0xFF810000

// resetcode
asm volatile (
    "MRS     R1, CPSR\n"
    "BIC     R1, R1, #0x3F\n"
    "ORR     R1, R1, #0xD3\n"
    "MSR     CPSR_cf, R1\n"
    "LDR     R2, =0xC0200000\n"  // found in "aRestartCalled"
    "MOV     R1, #0xFFFFFFFF\n"
    "STR     R1, [R2,#0x10C]\n"
    "STR     R1, [R2,#0xC]\n"
    "STR     R1, [R2,#0x1C]\n"
    "STR     R1, [R2,#0x2C]\n"
    "STR     R1, [R2,#0x3C]\n"
    "STR     R1, [R2,#0x4C]\n"
    "STR     R1, [R2,#0x5C]\n"
    "STR     R1, [R2,#0x6C]\n"
    "STR     R1, [R2,#0x7C]\n"
    "STR     R1, [R2,#0x8C]\n"
    "STR     R1, [R2,#0x9C]\n"
    "STR     R1, [R2,#0xAC]\n"
    "STR     R1, [R2,#0xBC]\n"
    "STR     R1, [R2,#0xCC]\n"
    "STR     R1, [R2,#0xDC]\n"
    "STR     R1, [R2,#0xEC]\n"
    "STR     R1, [R2,#0xFC]\n"

    "MOV     R1, #0x78\n"
    "MCR     p15, 0, R1,c1,c0\n"
    "MOV     R1, #0\n"
    "MCR     p15, 0, R1,c7,c10, 4\n"
    "MCR     p15, 0, R1,c7,c5\n"
    "MCR     p15, 0, R1,c7,c6\n"
    "MOV     R2, #0x40000000\n"
    "ORR     R1, R2, #6\n"
    "MCR     p15, 0, R1,c9,c1\n"
    "ORR     R1, R1, #6\n"
    "MCR     p15, 0, R1,c9,c1, 1\n"
    "MRC     p15, 0, R1,c1,c0\n"
    "ORR     R1, R1, #0x50000\n"
    "MCR     p15, 0, R1,c1,c0\n"
    "MOV     R3, #0xFF0\n"
    "LDR     R1, =0x12345678\n"

    "ADD     R3, R3, #0x4000000C\n"
    "STR     R1, [R3]\n"

    "MOV     SP, #0x1900\n" // 0x2000000
    "MOV     LR, PC\n"
    //"MOV     PC, %0\n"   // original jump-vector
    "BX      %0\n"   // new jump vector *NO WORKING*
    : : "r"(dst_void) : "memory","r1","r2","r3");

    while(1);
}
I still don't understand enough to change this... please help!

loader\ixus900_sd900\main.c
LED_PR correct
anything else to change? what about __attribute__((noreturn)) shutdown() and __attribute__((noreturn)) panic(int cnt) ?
*HELP*

loader\ixus900_sd900\entry.S
how to verify line 4 ?:
Code: [Select]
LDR     R3, =0xC0220048
platform\ixus900_sd900\sub\100c\boot.c
*should be correct*

platform\ixus900_sd900\sub\100c\lib.c
not shure if hook_raw_fptr and hook_raw_ret_addr is correct
can't find:
vid_get_viewport_live_fb
vid_get_viewport_fb
vid_get_viewport_fb_d
camera_jpeg_count_str
*partly completed*

platform\ixus900_sd900\sub\100c\capt_seq.c
i am unable to find __attribute__ stuff in dump, need help here please! or is this generic? think not...
*HELP*

platform\ixus900_sd900\sub\100c\stubs_entry.S & platform\ixus900_sd900\sub\100c\stubs_entry_2.S & platform\ixus900_sd900\sub\100c\stubs_min.S
not touched yet, had just a quick look, can't find most adresses

At least some progress after spend nearly hole spare time of past week :blink:

If any IXUS900TI / SD900 owner want some flashing leds, get it here: allbest-ixus900_sd900-100c-51_v1.zip - 0.22MB. Use CardTricks to get it running and give feedback!

 

Related Topics