S110 Porting thread

  • 70 Replies
  • 14372 Views
*

Offline philmoz

  • *****
  • 2936
    • Photos
  • Publish
    Re: S110 Porting thread
    « Reply #10 on: 04 / January / 2013, 22:20:38 »
    Advertisements
    I've updated the sig finder in the trunk and release-1.1 branch to handle the S110.

    You will need to set ROMBASEADDR to 0xF8000000 in makefile.inc and add a new entry ALT_ROMBASEADDR=0xFF000000 in the same file.

    Phil.
    CHDK ports:
      sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
      g12 (1.00c, 1.00e, 1.00f & 1.00g)
      sx130is (1.01d & 1.01f)
      ixus310hs (1.00a & 1.01a)
      sx40hs (1.00d, 1.00g & 1.00i)
      g1x (1.00e, 1.00f & 1.00g)

    *

    Offline Nikon

    • *
    • 25
  • Publish
    Re: S110 Porting thread
    « Reply #11 on: 04 / January / 2013, 23:13:58 »
    Great!
    So it is a simple mirror after all.

    I did some scripting searching for the LEDs between the two dumps. Probably the cause of the crash.

    *

    Offline c10ud

    • ***
    • 244
  • Publish
    Re: S110 Porting thread
    « Reply #12 on: 15 / January / 2013, 12:24:51 »
    Here's a first attempt at writing the needed code for porting CHDK to this camera.

    Keep in mind I don't have the camera, so this is a mix of sigfinder, chdk-pt, s100 port and sx50's.

    It *should*/*could* boot, but everything else is disabled (e.g. tasks).
    I've seen ERR99 found out that the firmware no longer supports the 0x193x hooks and implemented a workaround. This code contains the same workarounds, as I've seen a call that was pointing to the same RAM address as SX50's..
    There's no NULL_SUB yet as I didn't disassembled the code so the nullsub'ed functions are pointing to the unknown, beware.
    Also, movie_status is actually checking for zoom_busy as signfinder didn't find the value, you've been warned.
    Capture modemaps, camera-specific values, etc. is all TODO as are to-be-overriden tasks.

    *** THIS IS UNFINISHED AND UNTESTED. COMPILE/TRY/USE AT YOUR OWN RISK ***
    *** KEEP IN YOUR MIND THAT THIS COULD POSSIBLY BREAK YOUR CAMERA ***

    link to commit:
    https://github.com/c10ud/CHDK/commit/8c0b98bf7a0b2a5b68d0ca5fb5b37edfcab7eebf

    (patch against trunk: https://github.com/c10ud/CHDK/commit/8c0b98bf7a0b2a5b68d0ca5fb5b37edfcab7eebf.patch )

    greets
    « Last Edit: 15 / January / 2013, 12:31:38 by c10ud »

    *

    Offline c10ud

    • ***
    • 244
  • Publish
    Re: S110 Porting thread
    « Reply #13 on: 16 / January / 2013, 11:56:45 »


    *

    Offline Nikon

    • *
    • 25
  • Publish
    Re: S110 Porting thread
    « Reply #14 on: 17 / January / 2013, 14:43:44 »
    I tried compiling, but I get the following errors:

    Code: [Select]
    >> Entering to loader/s110
    blobs.S -> blobs.o
    -> main.elf
    main.o: In function `my_restart':
    main.c:(.text+0x7c): undefined reference to `sub_F8062CB0'
    main.c:(.text+0x80): undefined reference to `sub_F800D0F0'
    main.c:(.text+0x84): undefined reference to `sub_F80D75F4'
    main.c:(.text+0x8c): undefined reference to `sub_F8093CF4'
    main.c:(.text+0x98): undefined reference to `sub_F807CAE8'
    main.c:(.text+0x9c): undefined reference to `sub_F8081810'
    main.c:(.text+0xa0): undefined reference to `sub_F80777B4'
    main.o: In function `loc_F803B33C':
    main.c:(.text+0xa4): undefined reference to `sub_F80D7770'
    main.c:(.text+0xa8): undefined reference to `sub_F801FE6C'
    main.c:(.text+0xac): undefined reference to `sub_F80764C4'
    main.c:(.text+0xb0): undefined reference to `sub_F8081E80'
    main.c:(.text+0xb4): undefined reference to `sub_F8648D54'
    collect2: ld returned 1 exit status
    c:\projekt\CHDK\gcc\bin\gmake.exe[2]: *** [main.elf] Error 1
    c:\projekt\CHDK\gcc\bin\gmake.exe[1]: *** [all-recursive] Error 1
    gmake: *** [all-recursive] Error 1

    *

    Offline c10ud

    • ***
    • 244
  • Publish
    Re: S110 Porting thread
    « Reply #15 on: 17 / January / 2013, 14:57:16 »
    IIRC that happens when the stubs_auto.S doesn't get updated, are you using the full source from my branch? or did you overwrite the existing source with the files from here?

    *

    Offline c10ud

    • ***
    • 244
  • Publish
    Re: S110 Porting thread
    « Reply #16 on: 17 / January / 2013, 15:00:14 »
    Also, if you can come on IRC, we can talk real-time (#chdk channel on freenode: http://webchat.freenode.net/ )

    *

    Offline Nikon

    • *
    • 25
  • Publish
    Re: S110 Porting thread
    « Reply #17 on: 17 / January / 2013, 15:50:42 »
    I copied your branch from here: https://github.com/c10ud/CHDK/tree/s110_port
    Nothing else.


    *

    Offline c10ud

    • ***
    • 244
  • Publish
    Re: S110 Porting thread
    « Reply #18 on: 17 / January / 2013, 17:06:19 »
    sorry, some leftover from the loader code copypasta, now it should be fixed (https://github.com/c10ud/CHDK/commit/a52485032496e904380abab25a3c238c0f0912c9)

    *

    Offline c10ud

    • ***
    • 244
  • Publish
    Re: S110 Porting thread
    « Reply #19 on: 17 / January / 2013, 18:47:46 »
    After an IRC conversation with Nikon, it looks like the camera is sort of booting and then it crashes somewhere.
    Until he identifies where it's exactly crashing with led blinking here's a link to the updated source code:
    https://github.com/c10ud/CHDK/commits/s110_port

    modifications from last message:
    - fixed copypasta bugs in boot
    - disabled HookIntoTaskCreateFunktion, CreateTask_spytask and taskcreatePhySw_my until a successful boot is achieved. (still not sure if this camera is more similar to sx50hs or older dryos-es...)
    - probably fixed blinking leds
    - probably fixed power on (once all boot-bugs are ironed out it should allow a correct chdk-boot-up)

     

    Related Topics