Author Topic: Canon EOS 1300D / Rebel T6  (Read 309705 times)

vwdeiu

  • New to the forum
  • *
  • Posts: 5
Re: Canon EOS 1300D / Rebel T6
« Reply #175 on: March 31, 2018, 08:51:19 PM »
I'm looking forward to see a finished version of ML on this model.
Keep up the good work devs :P

vwdeiu

  • New to the forum
  • *
  • Posts: 5
Re: Canon EOS 1300D / Rebel T6
« Reply #176 on: April 05, 2018, 02:39:13 PM »
I am ready to test any version of ML on my EOS T6 even though its buggy.

PS: Isn;t T5 similar to the T6 coding?

Teanut

  • New to the forum
  • *
  • Posts: 4
Re: Canon EOS 1300D / Rebel T6
« Reply #177 on: April 05, 2018, 05:35:45 PM »
I am ready to test any version of ML on my EOS T6 even though its buggy.

PS: Isn;t T5 similar to the T6 coding?

My understanding from following this forum post is that the DIGIC 4+ processor in the EOS-1300D/Rebel T6 (and forthcoming 2000D/T7 and 4000D/T100) is mostly a DIGIC 4, with some DIGIC 5 and 6 improvements. So it's not a straight shot from the 1200D/T5 (which used a DIGIC 4 and not a 4+), but it's not completely unfamiliar territory either.

vwdeiu

  • New to the forum
  • *
  • Posts: 5
Re: Canon EOS 1300D / Rebel T6
« Reply #178 on: April 08, 2018, 10:21:09 PM »
My understanding from following this forum post is that the DIGIC 4+ processor in the EOS-1300D/Rebel T6 (and forthcoming 2000D/T7 and 4000D/T100) is mostly a DIGIC 4, with some DIGIC 5 and 6 improvements. So it's not a straight shot from the 1200D/T5 (which used a DIGIC 4 and not a 4+), but it's not completely unfamiliar territory either.

Oh.. that means we/re pretty far away from ML on T6 if reverse engeneering isn/t ready yet.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Canon EOS 1300D / Rebel T6
« Reply #179 on: April 09, 2018, 06:57:30 AM »
On the contrary - it can be already tested and debugged in QEMU!

When all else fails... read previous posts ;)

For the impatient: QEMU guide, RE guide, installation video for Ubuntu, for Mac, guide for Windows and... next steps.

Teanut

  • New to the forum
  • *
  • Posts: 4
Re: Canon EOS 1300D / Rebel T6
« Reply #180 on: April 09, 2018, 05:28:07 PM »
Oh.. that means we/re pretty far away from ML on T6 if reverse engeneering isn/t ready yet.

See below:

On the contrary - it can be already tested and debugged in QEMU!

When all else fails... read previous posts ;)

For the impatient: QEMU guide, RE guide, installation video for Ubuntu, for Mac, guide for Windows and... next steps.

This thread has a lot of good information if you read the previous posts. I don't have the free time to do a lot of testing right now, but if you do, and want to contribute to ML's progress, give it a shot. It doesn't sound like it's too far off, and I suspect a lot of the hurdles here will also help with the 2000D/T7 and 4000D/T100 (since they're also on DIGIC 4+.) Who knows, maybe it'll even help with DIGIC 6 and above!

vwdeiu

  • New to the forum
  • *
  • Posts: 5
Re: Canon EOS 1300D / Rebel T6
« Reply #181 on: April 13, 2018, 02:26:47 PM »
See below:

This thread has a lot of good information if you read the previous posts. I don't have the free time to do a lot of testing right now, but if you do, and want to contribute to ML's progress, give it a shot. It doesn't sound like it's too far off, and I suspect a lot of the hurdles here will also help with the 2000D/T7 and 4000D/T100 (since they're also on DIGIC 4+.) Who knows, maybe it'll even help with DIGIC 6 and above!
Well I'm glad to help...but in terms of coding I dont know anything so if you could tell me the steps I should follow to test the software I'll be gratefull

Teanut

  • New to the forum
  • *
  • Posts: 4
Re: Canon EOS 1300D / Rebel T6
« Reply #182 on: April 13, 2018, 04:21:58 PM »
Well I'm glad to help...but in terms of coding I dont know anything so if you could tell me the steps I should follow to test the software I'll be gratefull

You don't need to know how to code. Look at a1ex's reply from April 9, 2018. He already told you the steps. At the bottom he listed links for you to follow on:

Focus on steps 1, 2, and 4 to start. Document anything that doesn't seem to work right (keep a journal/logbook) by describing what you did and what isn't working correctly, then report it back in this thread. Step 3 seems to require more understanding of code.

Teanut

  • New to the forum
  • *
  • Posts: 4
Re: Canon EOS 1300D / Rebel T6
« Reply #183 on: May 14, 2018, 05:23:56 PM »
Has any progress been made on other DIGIC 4+ cameras yet to try and stir up the pot on the 1300D?

Hate to see this languish, especially when the 4000D is coming, which, while not ideal (no external mic), could help low-budget film makers (e.g. students) who could really benefit from ML.

vwdeiu

  • New to the forum
  • *
  • Posts: 5
Re: Canon EOS 1300D / Rebel T6
« Reply #184 on: May 14, 2018, 10:21:21 PM »
*bump*

#bringMLto1300D  :P :P

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #185 on: May 15, 2018, 02:38:58 PM »
What bump?
I am waiting too...
Canon 1300D, 500D, EOS M, EOS M2

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Canon EOS 1300D / Rebel T6
« Reply #186 on: May 17, 2018, 08:33:13 PM »
Are you waiting for others to test the software for you, or for others to read the guide for you?

;)

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #187 on: May 19, 2018, 03:36:30 PM »
No, I not waiting for others to test for me, or read for me...
How can I test on my camera? Or must test on QEMU?
Canon 1300D, 500D, EOS M, EOS M2

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #188 on: May 19, 2018, 07:09:28 PM »
Result on: make -C ../magic-lantern 1300D_install_qemu :
[ DEPENDS  ]   mlv_lite.dep
Will NOT load on:
    1300D (focus_box_get_raw_crop_offset, get_picstyle_name, raw_lv_redirect_edmac, and 3 others)
[ DEPENDS  ]   mlv_play.dep
Will NOT load on:
    1300D (SetHPTimerNextTick, SetHPTimerAfterNow)
[ DEPENDS  ]   mlv_rec.dep
Will NOT load on:
    1300D (focus_box_get_raw_crop_offset, raw_lv_settings_still_valid, raw_lv_request, and 2 others)
Will NOT load on:
    1300D (mlv_rec_get_free_slot, mlv_rec_set_rel_timestamp, mlv_rec_queue_block, and 3 others)
[ DEPENDS  ]   ettr.dep
Will NOT load on:
    1300D (bv_toggle, expo_override_active, bv_auto, expo_lock_update_value)
[ DEPENDS  ]   silent.dep
Will NOT load on:
    1300D (raw_lv_redirect_edmac, raw_lv_request, raw_lv_settings_still_valid, raw_lv_release)
[ DEPENDS  ]   dot_tune.dep
Will NOT load on:
    1300D (get_config_afma_wide_tele, get_afma_mode, set_afma_mode, and 3 others)
[ DEPENDS  ]   selftest.dep
Will NOT load on:
    1300D (SetHPTimerNextTick, bv_toggle, SetHPTimerAfterNow)
[ DEPENDS  ]   adv_int.dep
Will NOT load on:
    1300D (aperture_toggle, iso_toggle, shutter_toggle)


********************************************************
WARNING: module ...  failed to build, deleting
********************************************************
What can I do?
Canon 1300D, 500D, EOS M, EOS M2

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #189 on: May 22, 2018, 01:24:29 PM »
For selftest.dep:
[ DEPENDS  ]   selftest.dep
Will NOT load on:
    1300D (SetHPTimerNextTick, bv_toggle, SetHPTimerAfterNow)
I uncomment line:
NSTUB(0xFF06FCE4,  SetHPTimerAfterNow)
NSTUB(0xFF06FDD8,  SetHPTimerNextTick) in stubs.S and is OK.

Canon 1300D, 500D, EOS M, EOS M2

dfort

  • Guest
Re: Canon EOS 1300D / Rebel T6
« Reply #190 on: May 22, 2018, 02:11:17 PM »
The 1300D is still an early port. Perhaps you should start with a minimal build?

Code: [Select]
cd minimal/1300D
make

Now copy the autoexec.bin file on your bootable card and assuming you got the camera bootflag set it should print "Hello World" on the screen.

Works? Ok--let's try the selftest module.

Commented out stubs probably mean there is some doubt on those addresses. I just did a quick check on them and came up with these values for the 1300D:

Code: [Select]
NSTUB(0xFE120CEC,  SetHPTimerAfterNow)
NSTUB(0xFE120DDC,  SetHPTimerNextTick)

That should give you a working selftest module. No guarantees though.

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #191 on: May 22, 2018, 02:20:50 PM »
I have test only in qemu, not with my camera.
How can i make bootable card?
My camera don't have bootflag set.
P.S.
I tried to put the HELO1303, HELO1302, HELO1300.fir firmware on my camera, but without success. Start update, then the screen is black. I have to remove the battery because it does not respond at all.
Canon 1300D, 500D, EOS M, EOS M2

dfort

  • Guest
Re: Canon EOS 1300D / Rebel T6
« Reply #192 on: May 22, 2018, 09:18:55 PM »
How can i make bootable card?

MacBoot or EOScard

My camera don't have bootflag set.

Can't help you with that. You'll need to ask a1ex.

I can't get QEMU to show the Canon menus, maybe the firmware dump I'm using is invalid?

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #193 on: May 23, 2018, 09:27:59 AM »
I make card bootable, I put autoexec.bin, HELO1303.FIR, and i update, but... the same, updating 2-3 sec, black screen... and need out battery... Not working...
Canon 1300D, 500D, EOS M, EOS M2

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #194 on: May 23, 2018, 07:25:43 PM »
Quote

I can't get QEMU to show the Canon menus, maybe the firmware dump I'm using is invalid?
Do you want me to give you the dump from my camera?
Canon 1300D, 500D, EOS M, EOS M2

RB13

  • Just arrived
  • *
  • Posts: 1
Re: Canon EOS 1300D / Rebel T6
« Reply #195 on: May 23, 2018, 08:05:15 PM »
Not sure if this is why you can't get the Canon menus up, but if you're just getting a gray screen it's probably because you didn't patch the ROM file like so:

Code: [Select]
dd if=ROM1.BIN of=BOOT.BIN bs=64K skip=1 count=1
dd if=BOOT.BIN of=ROM1.BIN bs=64K seek=511

dfort

  • Guest
Re: Canon EOS 1300D / Rebel T6
« Reply #196 on: May 24, 2018, 12:58:09 AM »
@RB13 - Thanks for the tip but it didn't work over here.

Do you want me to give you the dump from my camera?

Sure, but we need to do this via PM.

dfort

  • Guest
Re: Canon EOS 1300D / Rebel T6
« Reply #197 on: May 24, 2018, 08:46:36 PM »
The patched firmware dump from @RB13 is working over here in QEMU but the one from @critix didn't--at least not on my system.

I couldn't get the minimal "Hello World" working but a full ML install does work out of the box:





Benchmark module is also working:



The suggestion I made on Reply #190 does seem to get the selftest module working but you also need to enable CONFIG_PROP_REQUEST_CHANGE. Safe to do in QEMU but heed the warning if you plan to run it on your camera:

platform/1300D/internals.h
Code: [Select]
/** Properties are persistent (saved in NVRAM) => a mistake can cause permanent damage. Undefine this for new ports. */
/** The 1300D port is very early, so I think we should not enable properties. **/
// #undef CONFIG_PROP_REQUEST_CHANGE
#define CONFIG_PROP_REQUEST_CHANGE

As expected the selftest shows several fails in QEMU and even a crash log:

STUBTEST.LOG
Code: [Select]
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x42204084
[Pass] dst = fio_malloc(size) => 0x42a08090
[Pass] memcmp(dst, src, 4097) => 0xffffff26
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a08090
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a08090
[Pass] memcmp(dst, src, size) => 0xffffff2d
[Pass] edmac_memcpy(dst, src, size) => 0x42a08090
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x8a
[Pass] edmac_memcpy_start(dst, src, size) => 0x42a08090
       dt => 0x0
[Pass] copied => 0x800000
[Pass] copied => 0x800000
[Pass] copied => 0x800000
[Pass] memcmp(dst, src, copied) => 0x0
[FAIL] memcmp(dst, src, copied + 16) => 0x0
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x1023b0
[Pass] old => 0x0
[Pass] irq => 0xc0
[FAIL] differences => 0x0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xfe
[Pass] tries[1] => 0xed
[Pass] tries[2] => 0xf3
[Pass] tries[3] => 0x10a
[FAIL] failr[0] => 0x0
[FAIL] failw[0] => 0x0
[FAIL] failr[1] => 0x0
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[FAIL] failw[2] => 0x0
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x4
       times[1] / tries[1] => 0x4
       times[2] / tries[2] => 0x4
       times[3] / tries[3] => 0x4
Cache tests finished.

[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x40bf01a0
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x42204084
[FAIL] FIO_GetFileSize_direct("test.dat") => 0xd3f4000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[FAIL] FIO_SeekSkipFile(f, 0, SEEK_END) => 0xd3f4000
[FAIL] FIO_WriteFile(f, buf, 0x10) => 0xffffffff
[FAIL] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0xd3f3fe0
[FAIL] FIO_WriteFile(f, buf, 0x30) => 0xffffffff
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[FAIL] FIO_GetFileSize_direct("test.dat") => 0xd3f4000
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x5cc4
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[FAIL] ABS((timer_time/1000 - t0) - 1000) => 0x1b
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x5cca
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x330
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x60
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0x0
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xfffff450
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x332
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[FAIL] ABS(DeltaT(timer_time, t0) - 300000) => 0xae0
[FAIL] ABS(DeltaT(timer_arg, ta0) - 300000) => 0xbb0
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xffffdf10
       t0 = *(uint32_t*)0xC0242014 => 0xf0d00
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x2ae00
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0xd
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x0
       Date/time: 2017/09/30 12:15:00
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x0
[FAIL] MOD(s1-s0, 60) => 0x0
[Pass] MOD(s1-s0, 60) => 0x0
       m0 = MALLOC_FREE_MEMORY => 0x3ee80
[Pass] p = (void*)_malloc(50*1024) => 0x1040f0
[Pass] CACHEABLE(p) => 0x1040f0
       m1 = MALLOC_FREE_MEMORY => 0x32670
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x3ee80
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0xc7680
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xbf0198
[Pass] CACHEABLE(p) => 0xbf0198
       m1 = GetFreeMemForAllocateMemory() => 0x87674
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0xc7680
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x3ee80
       m02 = GetFreeMemForAllocateMemory() => 0xc7680
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40bf01a0
[Pass] UNCACHEABLE(p) => 0x40bf01a0
[Pass] CACHEABLE(p) => 0xbf01a0
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40bf01a0
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x42204074
[Pass] UNCACHEABLE(p) => 0x42204074
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x3ee80
       m12 = GetFreeMemForAllocateMemory() => 0xc7680
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0x100e68
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100e90
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x100e68
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1df8000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100e90
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1df8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0x100e68
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100e90
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1df8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100ef0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x257c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x41878064
[Pass] UNCACHEABLE(p) => 0x41878064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100f28
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2610000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf680f4
[Pass] UNCACHEABLE(p) => 0x4bf680f4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100f60
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x100e68
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4300000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100e90
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1df8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100ef0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x257c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x41878064
[Pass] UNCACHEABLE(p) => 0x41878064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100f28
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2610000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf680f4
[Pass] UNCACHEABLE(p) => 0x4bf680f4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100f60
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4300000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4300000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x1ad83c
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x1ad820
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1ad800
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[FAIL] bar => '*****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0xec600c4
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x88
[Pass] task_max => 0x88
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xedc009c
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0xf2e0238
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0xf8a00ca
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf

CRASH00.LOG
Code: [Select]
ASSERT: 0
at SystemIF::KerRLock.c:318, run_test:beb8
lv:1 mode:3

run_test stack: 1ad898 [1ad978-1a5978]
0xUNKNOWN  @ 41fc:1ad968
0xUNKNOWN  @ c850ac:1ad960
0x0000BE28 @ be4bb0:1ad8d8
0x00003CBC @ beb4:1ad8d0
0x00C80378 @ c809b0:1ad898

Magic Lantern version : Nightly.2018May24.1300D110
Mercurial changeset   : d10125f654f9+ (1300D)
Built on 2018-05-24 18:15:10 UTC by rosiefort@Rosie-Forts-Computer.local.
Free Memory  : 223K + 797K

critix

  • Contributor
  • Member
  • *****
  • Posts: 197
Re: Canon EOS 1300D / Rebel T6
« Reply #198 on: May 25, 2018, 07:05:59 AM »
It does not work with my dump because you did not:
ok .. i found the problem, why the dump did not run in qemu .. after reading the forum again. i found this post (http://www.magiclantern.fm/forum/index.php?topic=17969.msg172893#msg172893)

dd if=ROM1.BIN of=BOOT.BIN bs=64K skip=1 count=1
dd if=BOOT.BIN of=ROM1.BIN bs=64K seek=511

I sent you the dump extracted from the camera.
Canon 1300D, 500D, EOS M, EOS M2

dfort

  • Guest
Re: Canon EOS 1300D / Rebel T6
« Reply #199 on: May 25, 2018, 07:33:15 AM »
Understood -- the thing is, I'm on a Mac so maybe that dd command works a little differently because I couldn't patch it as instructed in Reply #7.

Code: [Select]
dd if=ROM1.BIN of=BOOT.BIN bs=64K skip=1 count=1
dd: bs: illegal numeric value

This seems to be the right command on the Mac version of dd but it didn't work in QEMU.

Code: [Select]
dd if=ROM1.BIN of=BOOT.BIN bs=64000 skip=1 count=1