Canon EOS 1300D / Rebel T6

Started by the12354, October 03, 2016, 11:51:34 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

critix

OK.
I've made some updates:
https://bitbucket.org/ccritix/magic-lantern/commits/32716ee6e3114f4f497443512be313c96e706026
I also made a PR:
https://bitbucket.org/hudson/magic-lantern/pull-requests/951
I ran Stubs API Test and the result is as follows:
[Pass] is_play_mode() => 0x1
[INFO] Camera model: Canon EOS 1300D 1.1.0 (0x80000404 1300D)
[Pass] is_camera("DIGIC", "*") => 0x1
[Pass] is_camera(__camera_model_short, firmware_version) => 0x1
[Pass] src = fio_malloc(size) => 0x4256c114
[Pass] dst = fio_malloc(size) => 0x42d70120
[Pass] memcmp(dst, src, 4097) => 0xffffff26
[Pass] edmac_memcpy(dst, src, 4097) => 0x42d70120
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42d70120
[Pass] memcmp(dst, src, size) => 0xffffff6c
[Pass] edmac_memcpy(dst, src, size) => 0x42d70120
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x78
[Pass] edmac_memcpy_start(dst, src, size) => 0x42d70120
       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) => 0xa105d0
[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] => 0x101
[Pass] tries[1] => 0x104
[Pass] tries[2] => 0xdf
[Pass] tries[3] => 0x104
[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) => 0x40bd6da0
[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) => 0x4256c114
[FAIL] FIO_GetFileSize_direct("test.dat") => 0xd39c000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[FAIL] FIO_SeekSkipFile(f, 0, SEEK_END) => 0xd39c000
[FAIL] FIO_WriteFile(f, buf, 0x10) => 0xffffffff
[FAIL] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0xd39bfe0
[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") => 0xd39c000
[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) => 0x5fe2
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0xd
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x5ff0
       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) => 0x3fc
       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() - t0) - 110000) => 0xfffff450
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x3fe
       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) => 0x9e0
[FAIL] ABS(DeltaT(timer_arg, ta0) - 300000) => 0xab0
[Pass] ABS((get_us_clock() - t0) - 310000) => 0xffffdf10
       t0 = GET_DIGIC_TIMER() => 0x82f00
       msleep(250)
       t1 = GET_DIGIC_TIMER() => 0xbd400
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0xc
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x0
       Date/time: 2017/09/30 15: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 => 0x3f0e0
[Pass] p = (void*)_malloc(50*1024) => 0x103938
[Pass] CACHEABLE(p) => 0x103938
       m1 = MALLOC_FREE_MEMORY => 0x328d0
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x3f0e0
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x989e0
[Pass] p = (void*)_AllocateMemory(128*1024) => 0xbd6d90
[Pass] CACHEABLE(p) => 0xbd6d90
       m1 = GetFreeMemForAllocateMemory() => 0x789d4
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x989e0
[Pass] ABS((m0-m1) - 128*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x3f0e0
       m02 = GetFreeMemForAllocateMemory() => 0x989e0
[Pass] p = (void*)_alloc_dma_memory(128*1024) => 0x40bd6da0
[Pass] UNCACHEABLE(p) => 0x40bd6da0
[Pass] CACHEABLE(p) => 0xbd6da0
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40bd6da0
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(16*1024*1024) => 0x4256c104
[Pass] UNCACHEABLE(p) => 0x4256c104
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x3f0e0
       m12 = GetFreeMemForAllocateMemory() => 0x989e0
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(16*1024*1024) => 0x100a10
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100a38
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4256c100
[Pass] UNCACHEABLE(p) => 0x4256c100
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x100a10
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1f68000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100a38
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1f68000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       largest_shoot_block = suite->size => 0x1f68000
[INFO] largest_shoot_block: 31MB
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(largest_shoot_block + 1024*1024) => 0x100a10
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x3
[Pass] suite->size => 0x2068000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100a38
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1a90000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4256c100
[Pass] UNCACHEABLE(p) => 0x4256c100
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100a98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1d18000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42100064
[Pass] UNCACHEABLE(p) => 0x42100064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100ad0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2068000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x41878064
[Pass] UNCACHEABLE(p) => 0x41878064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x2068000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x100a10
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4300000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x100a38
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1a90000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4256c100
[Pass] UNCACHEABLE(p) => 0x4256c100
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100a98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1d18000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42100064
[Pass] UNCACHEABLE(p) => 0x42100064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100ad0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3c80000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x100b08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4300000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x41878064
[Pass] UNCACHEABLE(p) => 0x41878064
       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") => 0x1ad834
[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) => 0x1ad800
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1ad7e0
[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) => 0x29d000ca
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[FAIL] get_task_name_from_id(current_task->taskId) => '?'
[Pass] task_max => 0x88
[Pass] task_max => 0x88
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0x29d200b8
[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) => 0x29d401d2
[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) => 0x29d600ec
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[FAIL] display_idle() => 0x0
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[FAIL] HALFSHUTTER_PRESSED => 0x0
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[FAIL] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[FAIL] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
=========================================================
Test complete, 11501 passed, 21 failed.
.

I ran Memory Benchmarks and the result:




From the all_features.h file I commented on the following lines because with them active qemu is blocked as in the above post:
#define FEATURE_EXPO_APERTURE
#define FEATURE_EXPO_LOCK
#define FEATURE_EXPO_PRESET
#define FEATURE_HDR_BRACKETING
#define FEATURE_FOLLOW_FOCUS
#define FEATURE_RACK_FOCUS
#define FEATURE_FOCUS_STACKING
#define FEATURE_LV_ZOOM_SETTINGS
#define FEATURE_LV_ZOOM_SHARP_CONTRAST
#define FEATURE_LV_ZOOM_AUTO_EXPOSURE
#define FEATURE_LV_FOCUS_BOX_FAST
#define FEATURE_LV_FOCUS_BOX_SNAP
#define FEATURE_POWERSAVE_LIVEVIEW


I'm going to see what I'm with those statements.
At this time, the modules are also compiled, less:
adv_int
ettr
dot_tune
Canon 1300D, 500D, EOS M, EOS M2

dfort

Quote from: critix on January 13, 2019, 11:32:06 AM
I'm trying to run Hello Word from script with definition commented but crash:

Hello World from your PR branch is working over here.



I can't get into the ML menus on a vanilla build but I'm also having a problem with the EOSM2 so it could be my setup. Looks like you're already running tests and creating logs -- nice progress!

critix

Yes, I did not specify this, but Hello World is running smoothly.
Canon 1300D, 500D, EOS M, EOS M2

critix

I have tried to compile the adtg_gui module and the trace module. I set up
CONFIG_GDB = y
CONFIG_GDBSTUB = y

It compiles ok, but when run qemu remains stuck at the line:
Cache patch: [FE0C1B74] <- E3A018C8 (was E3A0160D)
I still can not figure out why it is blocking on that line.
./run_canon_fw.sh 1300D,firmware=boot=1 -d debugmsg &

DebugMsg=0xFE11F394 (from GDB script)
Lockdown read 1
Lockdown read 1
Lockdown read 0
Lockdown read 0
Lockdown read 2
Lockdown read 2
Lockdown read 3
Lockdown read 3
Lockdown read 4
Lockdown read 4
Lockdown read 5
Lockdown read 5
00000000 - 00000FFF: eos.tcm_code
40000000 - 40000FFF: eos.tcm_data
00001000 - 0FFFFFFF: eos.ram
40001000 - 4FFFFFFF: eos.ram_uncached
F0000000 - F1FFFFFF: eos.rom0
F2000000 - F3FFFFFF: eos.rom0_mirror
F4000000 - F5FFFFFF: eos.rom0_mirror
F6000000 - F7FFFFFF: eos.rom0_mirror
F8000000 - F9FFFFFF: eos.rom1
FA000000 - FBFFFFFF: eos.rom1_mirror
FC000000 - FDFFFFFF: eos.rom1_mirror
FE000000 - FFFFFFFF: eos.rom1_mirror
C0000000 - CFFFFFFF: eos.mmio
[EOS] enabling code execution logging.
[EOS] loading './1300D/ROM0.BIN' to 0xF0000000-0xF1FFFFFF
[EOS] mirrored data; unique 0x10 bytes repeated 0x200000 times
[EOS] loading './1300D/ROM1.BIN' to 0xF8000000-0xF9FFFFFF
[MPU] warning: non-empty spell #11 (PROP_CARD2_STATUS) has duplicate(s): #52
[MPU] warning: non-empty spell #20 (PROP_TFT_STATUS) has duplicate(s): #37 #38 #75
[MPU] warning: non-empty spell #35 (PROP_VIDEO_MODE) has duplicate(s): #36
[MPU] warning: non-empty spell #43 (PROP_TFT_STATUS) has duplicate(s): #41 #42 #44 #46

[MPU] Available keys:
- Arrow keys   : Navigation
- [ and ]      : Main dial (top scrollwheel)
- SPACE        : SET
- DELETE       : guess (press only)
- M            : MENU (press only)
- P            : PLAY (press only)
- I            : INFO/DISP (press only)
- Q            : guess (press only)
- L            : LiveView (press only)
- A            : Av
- Z/X          : Zoom in/out
- Shift        : Half-shutter
- 0/9          : Mode dial (press only)
- V            : Movie mode (press only)
- B            : Open battery door
- C            : Open card door
- F10          : Power down switch
- F1           : show this help

Setting BOOTDISK flag to FFFFFFFF
FFFF0AE0: MCR p15,0,Rd,cr6,cr0,0:  946_PRBS0 <- 0x3F       (00000000 - FFFFFFFF, 0x100000000)
FFFF0AE8: MCR p15,0,Rd,cr6,cr1,0:  946_PRBS1 <- 0x3D       (00000000 - 7FFFFFFF, 0x80000000)
FFFF0AF0: MCR p15,0,Rd,cr6,cr2,0:  946_PRBS2 <- 0x37       (00000000 - 0FFFFFFF, 0x10000000)
FFFF0AF8: MCR p15,0,Rd,cr6,cr3,0:  946_PRBS3 <- 0xC0000039 (C0000000 - DFFFFFFF, 0x20000000)
FFFF0B00: MCR p15,0,Rd,cr6,cr4,0:  946_PRBS4 <- 0xF8000031 (F8000000 - F9FFFFFF, 0x2000000)
FFFF0B08: MCR p15,0,Rd,cr6,cr5,0:  946_PRBS5 <- 0xFE000031 (FE000000 - FFFFFFFF, 0x2000000)
FFFF0B10: MCR p15,0,Rd,cr2,cr0,0: DCACHE_CFG <- 0x24
FFFF0B18: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x24
FFFF0B1C: MCR p15,0,Rd,cr2,cr0,1: ICACHE_CFG <- 0x24
FFFF0B20: MCR p15,0,Rd,cr5,cr0,0:    DATA_AP <- 0xFFF
FFFF0B28: MCR p15,0,Rd,cr5,cr0,1:    INSN_AP <- 0xFFF
FFFF0B2C: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x2078
FFFF0B2C: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC000307D
FFFF00C4: MCR p15,0,Rd,cr9,cr1,1:       ITCM <- 0x6
FFFF00CC: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0xC000307D
FFFF00CC: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC004307D
FFFF00D8: MCR p15,0,Rd,cr9,cr1,0:       DTCM <- 0x40000006
FFFF00E0: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0xC004307D
FFFF00E0: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC005307D
FFFF0108: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0xC005307D
FFFF0108: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC005107D
SD LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0x75480
Now jump to AUTOEXEC.BIN!!
00874EAC: MCR p15, ...          : CACHEMAINT x770 (omitted)
00874EAC: MCR p15,0,Rd,cr7,cr5,0: FlushICache <- 0x0
00C80694: MCR p15,0,Rd,cr7,cr5,0: FlushICache <- 0x0
00C8069C: MCR p15,0,Rd,cr9,cr0,1:  ILockDown <- 0x80000000
00C806A4: MCR p15,0,Rd,cr9,cr0,1:  ILockDown <- 0x1
00C806AC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x0
00C806B0: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x20
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x20
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x40
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x40
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x60
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x60
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x80
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x80
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xA0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xA0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xC0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xC0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xE0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xE0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x100
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x100
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x120
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x120
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x140
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x140
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x160
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x160
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x180
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x180
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x1A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x1C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x1E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x200
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x200
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x220
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x220
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x240
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x240
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x260
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x260
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x280
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x280
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x2A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x2C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x2E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x300
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x300
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x320
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x340
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x340
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x360
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x380
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x380
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x3A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x3C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x3E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x400
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x400
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x420
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x420
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x440
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x440
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x460
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x460
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x480
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x480
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x4A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x4C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x4E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x500
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x500
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x520
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x520
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x540
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x540
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x560
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x560
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x580
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x580
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x5A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x5C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x5E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x600
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x600
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x620
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x620
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x640
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x640
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x660
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x660
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x680
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x680
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x6A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x6C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x6E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x700
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x700
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x720
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x720
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x740
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x740
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x760
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x760
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x780
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x780
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x7A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x7C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x7E0
00C806F8: MCR p15, ...          : CACHEMAINT x256 (omitted)
00C80718: MCR p15,0,Rd,cr9,cr0,0:  DLockDown <- 0x80000000
00C80720: MCR p15,0,Rd,cr9,cr0,0:  DLockDown <- 0x1
00C80728: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x0
00C8072C: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x20
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x20
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x40
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x40
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x60
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x60
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x80
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x80
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xA0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xA0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xC0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xC0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xE0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xE0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x100
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x100
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x120
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x120
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x140
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x140
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x160
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x160
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x180
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x180
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x1A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x1C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x1E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x200
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x200
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x220
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x220
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x240
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x240
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x260
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x260
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x280
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x280
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x2A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x2C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x2E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x300
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x300
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x320
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x340
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x340
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x360
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x380
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x380
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x3A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x3C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x3E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x400
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x400
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x420
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x420
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x440
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x440
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x460
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x460
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x480
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x480
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x4A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x4C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x4E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x500
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x500
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x520
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x520
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x540
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x540
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x560
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x560
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x580
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x580
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x5A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x5C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x5E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x600
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x600
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x620
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x620
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x640
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x640
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x660
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x660
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x680
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x680
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x6A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x6C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x6E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x700
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x700
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x720
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x720
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x740
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x740
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x760
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x760
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x780
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x780
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x7A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x7C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x7E0
00C80430: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
Lockdown read 2
00C80434: MRC p15,3,Rd,cr15,cr2,0:  DcacheTag -> 0x0
00C803BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xFE1296C8
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x324
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE12FFF1E
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x328
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE92D400E
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x32C
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE59F0254
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x330
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE3A010FF
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x334
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE5CD1008
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x338
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE3A01000
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x33C
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE58D0000
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xC80480
Cache patch: [FE0C3B20] <- C80480 (was FE1296C8)
00C803F4: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
Lockdown read 1
00C803F8: MRC p15,3,Rd,cr15,cr1,0:  IcacheTag -> 0x0
00C803A8: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE92D4010
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x364
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE24DD018
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x368
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE28F0F9A
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x36C
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEBFFFDB5
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x370
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEB015F55
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A0160D
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x378
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A0082D
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x37C
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEB01961C
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A018C8
Cache patch: [FE0C1B74] <- E3A018C8 (was E3A0160D)


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

critix

When I run ./run_canon_fw.sh 1300D,firmware="boot=1"
I get multiple:
[MPU] Received: 06 04 09 00 00 00  (unknown - PROP_LV_LENS)
[MPU] Received: 08 06 04 20 00 00 00 00  (unknown - unnamed)
[MPU] Received: 06 05 04 1f 00 00  (unknown - unnamed)
[MPU] Received: 06 05 04 1c 0c 00  (unknown - unnamed)
[MPU] Received: 08 07 03 55 00 00 00 00  (unknown - PROP 8003005A)
[MPU] Received: 06 05 03 56 00 00  (unknown - PROP 8003005B)
[MPU] Received: 08 07 01 3b ff ff 00 00  (unknown - PROP_USBDEVICE_CONNECT)
[MPU] Received: 08 07 01 3b ff 00 00 00  (unknown - PROP_USBDEVICE_CONNECT)
[MPU] Received: 06 05 03 07 16 00  (unknown - PROP_BURST_COUNT)
[MPU] Received: 0a 08 03 06 00 00 00 16 00 00  (unknown - PROP_AVAIL_SHOT)

How can I solve these unknowns?
Canon 1300D, 500D, EOS M, EOS M2

rambutan2000

Hi all I'm super keen to help out with T6 work.  Are these instructions still valid to setup my dev environment?
https://www.magiclantern.fm/forum/index.php?topic=991.0


dfort

Quote from: critix on January 16, 2019, 06:51:58 PM
How can I solve these unknowns?

If you look in the qemu-eos/qemu-2.5.0/hw/eos/mpu_spells directory you'll see that there is no file for the 1300D. You can create one. The way to do it is to use one of the branches that will create a startup log with mpu information in the log. Then from the mpu/spells directory run this:

python extract_init_spells.py [path to your startup log] > 1300D.h

I believe I used the dm-spy-experiments branch compiled with the CONFIG_DEBUG_INTERCEPT_STARTUP option. There are other branches like the io_trace branch that can also create startup logs. I remember having to fiddle around with it for a while to get the mpu codes to show up in the log.

critix

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

critix

Hello
At @dfort's advice, I made a new dm-spy-experiments, called 1300D-dm-spy-experiments. I'm working on.
I made a manual merge with the 1300D branch. But there are emulation problems:
./run_canon_fw.sh 1300D,firmware=boot=1 &

DebugMsg=0xFE11F394 (from GDB script)
Lockdown read 1
Lockdown read 1
Lockdown read 0
Lockdown read 0
Lockdown read 2
Lockdown read 2
Lockdown read 3
Lockdown read 3
Lockdown read 4
Lockdown read 4
Lockdown read 5
Lockdown read 5
00000000 - 00000FFF: eos.tcm_code
40000000 - 40000FFF: eos.tcm_data
00001000 - 0FFFFFFF: eos.ram
40001000 - 4FFFFFFF: eos.ram_uncached
F0000000 - F1FFFFFF: eos.rom0
F2000000 - F3FFFFFF: eos.rom0_mirror
F4000000 - F5FFFFFF: eos.rom0_mirror
F6000000 - F7FFFFFF: eos.rom0_mirror
F8000000 - F9FFFFFF: eos.rom1
FA000000 - FBFFFFFF: eos.rom1_mirror
FC000000 - FDFFFFFF: eos.rom1_mirror
FE000000 - FFFFFFFF: eos.rom1_mirror
C0000000 - CFFFFFFF: eos.mmio
[EOS] loading './1300D/ROM0.BIN' to 0xF0000000-0xF1FFFFFF
[EOS] mirrored data; unique 0x4 bytes repeated 0x800000 times
[EOS] loading './1300D/ROM1.BIN' to 0xF8000000-0xF9FFFFFF
[MPU] warning: non-empty spell #11 (PROP_CARD2_STATUS) has duplicate(s): #52
[MPU] warning: non-empty spell #20 (PROP_TFT_STATUS) has duplicate(s): #37 #38 #75
[MPU] warning: non-empty spell #35 (PROP_VIDEO_MODE) has duplicate(s): #36
[MPU] warning: non-empty spell #43 (PROP_TFT_STATUS) has duplicate(s): #41 #42 #44 #46

[MPU] Available keys:
- Arrow keys   : Navigation
- [ and ]      : Main dial (top scrollwheel)
- SPACE        : SET
- DELETE       : guess (press only)
- M            : MENU (press only)
- P            : PLAY (press only)
- I            : INFO/DISP (press only)
- Q            : guess (press only)
- L            : LiveView (press only)
- A            : Av
- Z/X          : Zoom in/out
- Shift        : Half-shutter
- 0/9          : Mode dial (press only)
- V            : Movie mode (press only)
- B            : Open battery door
- C            : Open card door
- F10          : Power down switch
- F1           : show this help

Setting BOOTDISK flag to FFFFFFFF
FFFF0AE0: MCR p15,0,Rd,cr6,cr0,0:  946_PRBS0 <- 0x3F       (00000000 - FFFFFFFF, 0x100000000)
FFFF0AE8: MCR p15,0,Rd,cr6,cr1,0:  946_PRBS1 <- 0x3D       (00000000 - 7FFFFFFF, 0x80000000)
FFFF0AF0: MCR p15,0,Rd,cr6,cr2,0:  946_PRBS2 <- 0x37       (00000000 - 0FFFFFFF, 0x10000000)
FFFF0AF8: MCR p15,0,Rd,cr6,cr3,0:  946_PRBS3 <- 0xC0000039 (C0000000 - DFFFFFFF, 0x20000000)
FFFF0B00: MCR p15,0,Rd,cr6,cr4,0:  946_PRBS4 <- 0xF8000031 (F8000000 - F9FFFFFF, 0x2000000)
FFFF0B08: MCR p15,0,Rd,cr6,cr5,0:  946_PRBS5 <- 0xFE000031 (FE000000 - FFFFFFFF, 0x2000000)
FFFF0B10: MCR p15,0,Rd,cr2,cr0,0: DCACHE_CFG <- 0x24
FFFF0B18: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x24
FFFF0B1C: MCR p15,0,Rd,cr2,cr0,1: ICACHE_CFG <- 0x24
FFFF0B20: MCR p15,0,Rd,cr5,cr0,0:    DATA_AP <- 0xFFF
FFFF0B28: MCR p15,0,Rd,cr5,cr0,1:    INSN_AP <- 0xFFF
FFFF0B2C: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x2078
FFFF0B2C: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC000307D
FFFF00C4: MCR p15,0,Rd,cr9,cr1,1:       ITCM <- 0x6
FFFF00CC: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0xC000307D
FFFF00CC: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC004307D
FFFF00D8: MCR p15,0,Rd,cr9,cr1,0:       DTCM <- 0x40000006
FFFF00E0: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0xC004307D
FFFF00E0: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC005307D
FFFF0108: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0xC005307D
FFFF0108: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0xC005107D
SD LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0x906C0
Now jump to AUTOEXEC.BIN!!
008900EC: MCR p15, ...          : CACHEMAINT x770 (omitted)
008900EC: MCR p15,0,Rd,cr7,cr5,0: FlushICache <- 0x0
00C80694: MCR p15,0,Rd,cr7,cr5,0: FlushICache <- 0x0
00C8069C: MCR p15,0,Rd,cr9,cr0,1:  ILockDown <- 0x80000000
00C806A4: MCR p15,0,Rd,cr9,cr0,1:  ILockDown <- 0x1
00C806AC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x0
00C806B0: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x20
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x20
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x40
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x40
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x60
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x60
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x80
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x80
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xA0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xA0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xC0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xC0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xE0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xE0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x100
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x100
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x120
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x120
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x140
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x140
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x160
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x160
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x180
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x180
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x1A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x1C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x1E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x200
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x200
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x220
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x220
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x240
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x240
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x260
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x260
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x280
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x280
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x2A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x2C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x2E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x300
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x300
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x320
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x340
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x340
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x360
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x380
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x380
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x3A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x3C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x3E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x400
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x400
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x420
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x420
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x440
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x440
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x460
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x460
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x480
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x480
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x4A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x4C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x4E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x500
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x500
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x520
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x520
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x540
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x540
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x560
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x560
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x580
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x580
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x5A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x5C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x5E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x600
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x600
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x620
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x620
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x640
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x640
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x660
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x660
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x680
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x680
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x6A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x6C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x6E0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x700
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x700
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x720
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x720
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x740
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x740
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x760
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x760
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x780
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x780
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7A0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x7A0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7C0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x7C0
00C806BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7E0
00C806B8: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0x7E0
00C806F8: MCR p15, ...          : CACHEMAINT x256 (omitted)
00C80718: MCR p15,0,Rd,cr9,cr0,0:  DLockDown <- 0x80000000
00C80720: MCR p15,0,Rd,cr9,cr0,0:  DLockDown <- 0x1
00C80728: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x0
00C8072C: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x20
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x20
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x40
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x40
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x60
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x60
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x80
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x80
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xA0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xA0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xC0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xC0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0xE0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xE0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x100
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x100
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x120
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x120
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x140
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x140
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x160
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x160
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x180
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x180
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x1A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x1C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x1E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x1E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x200
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x200
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x220
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x220
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x240
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x240
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x260
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x260
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x280
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x280
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x2A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x2C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x2E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x2E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x300
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x300
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x320
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x340
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x340
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x360
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x380
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x380
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x3A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x3C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x3E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x3E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x400
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x400
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x420
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x420
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x440
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x440
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x460
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x460
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x480
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x480
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x4A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x4C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x4E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x4E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x500
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x500
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x520
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x520
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x540
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x540
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x560
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x560
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x580
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x580
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x5A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x5C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x5E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x5E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x600
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x600
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x620
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x620
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x640
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x640
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x660
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x660
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x680
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x680
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x6A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x6C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x6E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x6E0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x700
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x700
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x720
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x720
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x740
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x740
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x760
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x760
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x780
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x780
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7A0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x7A0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7C0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x7C0
00C80738: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x7E0
00C80734: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0x7E0
00C80430: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
Lockdown read 2
00C80434: MRC p15,3,Rd,cr15,cr2,0:  DcacheTag -> 0x0
00C803BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xFE1296C8
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x324
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE12FFF1E
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x328
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE92D400E
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x32C
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE59F0254
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x330
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE3A010FF
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x334
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE5CD1008
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x338
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE3A01000
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x33C
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE58D0000
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xC80480
Cache patch: [FE0C3B20] <- C80480 (was FE1296C8)
00C803F4: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
Lockdown read 1
00C803F8: MRC p15,3,Rd,cr15,cr1,0:  IcacheTag -> 0x0
00C803A8: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE92D4010
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x364
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE24DD018
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x368
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE28F0F9A
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x36C
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEBFFFDB5
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x370
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEB015F55
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A0160D
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x378
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A0082D
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x37C
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEB01961C
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A018C8
Cache patch: [FE0C1B74] <- E3A018C8 (was E3A0160D)


I know the 1300D is different from the other devices, so I think I'm missing something. Here is the link to the branch made with all the changes made so far:
https://bitbucket.org/ccritix/magic-lantern/branch/1300D-dm-spy-experiments

Sometimes it stops at the line:
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A018C8
Cache patch: [FE0C1B74] <- E3A018C8 (was E3A0160D)

@a1ex, can you help me?

Thank you.
Canon 1300D, 500D, EOS M, EOS M2

critix

Now... i got: [BOOT] out of memory.
SD LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0x907C0
Now jump to AUTOEXEC.BIN!!
0089018C: MCR p15, ...          : CACHEMAINT x770 (omitted)
0089018C: MCR p15,0,Rd,cr7,cr5,0: FlushICache <- 0x0
[boot] copy_and_restart 0xc80000 (13107200)
[BOOT] changing init_task from 0xfe1296c8 (-32336184) to 0xc804b0 (13108400)
[BOOT] autoexec.bin loaded at C80000 - D00340.
[BOOT] calling local pre_init_task C803E4...
[BOOT] changing AllocMem end address: D00000 -> C80000.
0xfe0c1b74:  e3a0160d      mov  r1, #13631488   ; 0xd00000
0xfe0c1b78:  e3a0082d      mov  r0, #2949120    ; 0x2d0000
0xfe0c1b74:  e3a018c8      mov  r1, #13107200   ; 0xc80000
0xfe0c1b78:  e3a0082d      mov  r0, #2949120    ; 0x2d0000
[BOOT] calling pre_init_task C80C9C...
[BOOT] installing task dispatch hook at 0x35924 (219428)
[BOOT] reserved 524288 bytes for ML (used 525120)
[BOOT] out of memory.


This is what I get when compiling with:
CONFIG_MMIO_TRACE=y
I'm getting better, right? :D
Canon 1300D, 500D, EOS M, EOS M2

dfort

Is it booting into the Canon menu? Are you able to save a startup log? Compile with:

CONFIG_DEBUG_INTERCEPT_STARTUP=y

critix

Yes, it boots in the Canon menu but does not save any logs. On the contrary, I have a Crash:
ASSERT: 0
at SystemIF::KerSem.c:354, PropMgr:337c
lv:0 mode:0

PropMgr stack: 151240 [151360-150360]
0xUNKNOWN  @ 41fc:151350
0xUNKNOWN  @ fe2c2170:151328
0xFE2BE970 @ fe10bc8c:151310
0xUNKNOWN  @ fe2be9a0:151300
0xUNKNOWN  @ fe2bea28:1512e0
0xUNKNOWN  @ fe294cf4:1512a8
0xUNKNOWN  @ c9c5b8:151280
0x00003CBC @ 3378:151278
0x00C80378 @ c807cc:151240

Magic Lantern version : Nightly.2019Jan21.1300D110
Mercurial changeset   : b8ed21b80b54+ (dm-spy-experiments)
Built on 2019-01-21 07:59:00 UTC by root@cristi.
Free Memory  : 260K + 898K

I compiled with:
CONFIG_DEBUG_INTERCEPT_STARTUP=y
Canon 1300D, 500D, EOS M, EOS M2

critix

I tried with io_trace branch but unfortunately qemu stops ... as in dm-spy-experiments:
00C80430: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
Lockdown read 2
00C80434: MRC p15,3,Rd,cr15,cr2,0:  DcacheTag -> 0x0
00C803BC: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xFE1296C8
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x324
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE12FFF1E
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x328
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE92D400E
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x32C
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE59F0254
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x330
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE3A010FF
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x334
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE5CD1008
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x338
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE3A01000
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x33C
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xE58D0000
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x320
00C803C0: MCR p15,3,Rd,cr15,cr2,0:  DcacheTag <- 0xFE0C3B30
00C803C4: MCR p15,3,Rd,cr15,cr4,0:  DcacheVal <- 0xC80480
Cache patch: [FE0C3B20] <- C80480 (was FE1296C8)
00C803F4: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
Lockdown read 1
00C803F8: MRC p15,3,Rd,cr15,cr1,0:  IcacheTag -> 0x0
00C803A8: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x360
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE92D4010
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x364
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE24DD018
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x368
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE28F0F9A
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x36C
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEBFFFDB5
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x370
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEB015F55
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A0160D
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x378
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A0082D
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x37C
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xEB01961C
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A018C8
Cache patch: [FE0C1B74] <- E3A018C8 (was E3A0160D)

I do not know what else I can do ... what  I do wrong?
Thanks.
Canon 1300D, 500D, EOS M, EOS M2

critix

Looks like I'm wrong ... it looks like qemu is not blocking ....
I run:
./run_canon_fw.sh 1300D,firmware="boot=1"  -d tasks
and here is the result ...
00C80390: MCR p15,3,Rd,cr15,cr0,0: CacheDbgIdx <- 0x374
00C803AC: MCR p15,3,Rd,cr15,cr1,0:  IcacheTag <- 0xFE0C1B70
00C803B0: MCR p15,3,Rd,cr15,cr3,0:  IcacheVal <- 0xE3A018C8
Cache patch: [FE0C1B74] <- E3A018C8 (was E3A0160D)
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
Task switch to idle:fe0c08d0                                                     at [idle:197c:197c]
Task switch to init:5cc                                                          at [init:1d84:1d84]
....

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

dfort

Have you been able to save a startup log yet? I needed a lot of help before I was able to get the first one saved on the EOSM2. Even then it took a few months more work before a1ex felt it was safe to turn on the camera bootflag. Of course you have more coding knowledge that I do so it probably won't take you as long.

critix

I have succeeded with io_trace_full to start in qemu, but the same ... crash:
ASSERT: 0
at SystemIF::KerSem.c:354, PropMgr:337c
lv:0 mode:0

PropMgr stack: 151240 [151360-150360]
0xUNKNOWN  @ 41fc:151350
0xUNKNOWN  @ fe2c2170:151328
0xFE2BE970 @ fe10bc8c:151310
0xUNKNOWN  @ fe2be9a0:151300
0xUNKNOWN  @ fe2bea28:1512e0
0xUNKNOWN  @ fe294cf4:1512a8
0xUNKNOWN  @ c9cbb8:151280
0x00003CBC @ 3378:151278
0x00C80378 @ c80804:151240

Magic Lantern version : Nightly.2019Jan25.1300D110
Mercurial changeset   : 296fdfb5f8d0+ (io_trace_full)
Built on 2019-01-25 16:23:14 UTC by root@cristi.
Free Memory  : 260K + 898K

I do not manage to write my logs at all ...
Canon 1300D, 500D, EOS M, EOS M2

critix

A big step forward ...
I was able to create the DM-0000.LOG file, but with 0 bytes.
I found what was wrong ... now I'm trying to find the solution to save the log ...
I'm not leaving, I want to run ML on 1300D  :D

Unpatch error at fe2993b4 (NOT_PATCHED)
Unpatch error at fe10fa70 (NOT_PATCHED)
Unpatch error at fe11f394 (NOT_PATCHED)
[NotifyBox] dm-0000.log: saved 0 bytes.
Canon 1300D, 500D, EOS M, EOS M2

Walter Schulz

Keep it up! ;-)

Offtopic: If you have some 3 minutes with your 500D: Run this test and report back. Interested if it is 7D specific or affects DIGIC IV cams altogether.

critix

Okay, I'll test, but with what build?
Canon 1300D, 500D, EOS M, EOS M2

Walter Schulz

Quote from: critix on January 26, 2019, 06:41:45 PM
Okay, I'll test, but with what build?

To keep it safe: Recent nightly, please!

Oskawa

Hello !  :)
I can't help you, I'm sorry but I just want to say thank you for what you're doing, and good luck ! I really want to see ML on the 1300D so... I send you lot of love and luck ! :D


critix

Okay ... a small step forward in working with logs ... but ... other problems ...
A1ex, can you help me?
[boot] copy_and_restart 0xc80000 (13107200)
[BOOT] changing init_task from 0xfe1296c8 (-32336184) to 0xc804b0 (13108400)
[BOOT] autoexec.bin loaded at C80000 - CFCE40.
[BOOT] calling local pre_init_task C803E4...
[BOOT] changing AllocMem end address: D00000 -> C80000.
0xfe0c1b74:  e3a0160d      mov  r1, #13631488   ; 0xd00000
0xfe0c1b78:  e3a0082d      mov  r0, #2949120    ; 0x2d0000
0xfe0c1b74:  e3a018c8      mov  r1, #13107200   ; 0xc80000
0xfe0c1b78:  e3a0082d      mov  r0, #2949120    ; 0x2d0000
[BOOT] calling pre_init_task C80CA8...
[BOOT] installing task dispatch hook at 0x35924 (219428)
[BOOT] reserved 524288 bytes for ML (used 511552)
ICache: 8192b, idx=7e0 tag=fffff800 word=1c seg=c0000000
Jump range error: cf37a0 -> fe2993b8
Patch error at fe2993b4 (jump out of range)
Jump range error: cf37a0 -> fe10fa74
Patch error at fe10fa70 (jump out of range)
[BOOT] starting init_task 14B70C...
K404 READY
< Error Exception >
TYPE : undefined
ISR  : FALSE
TASK ID   : 00020002
TASK Name : init
R 0  : 00000000
R 1  : 00000001
R 2  : fe123d6c
R 3  : 00000001
R 4  : 00031e44
R 5  : 00000000
R 6  : 00c804b0
R 7  : 19980218
R 8  : 19980218
R 9  : 19980218
R10  : 19980218
R11  : 19980218
R12  : 0014bb40
R13  : 0014b6d8
R14  : fe123c98
PC   : fccc1a34
CPSR : 80000093
[****] Starting task fe2bafd0(0) PowerMgr
Canon 1300D, 500D, EOS M, EOS M2

a1ex

I'll try, but the solution is not straightforward.

Previously covered in replies #120 and #239.

Edit: confirmed the dm-spy-experiments branch is not working, even with minimal logging options (dm_spy_extra* commented out).

Need to use a long jump for patching DebugMsg. It started to work - to some extent - with this:

        int err = patch_instruction(DebugMsg_addr, MEM(DebugMsg_addr), FAR_CALL_INSTR, "dm-spy: log all DebugMsg calls");
        err |= patch_instruction(DebugMsg_addr + 4, MEM(DebugMsg_addr + 4), &my_DebugMsg, "dm-spy: log all DebugMsg calls");


The semaphore error appears to come from beep() - somebody's calling that before beep_init. Disabled beeps, it went further.

When trying to save the log, it fails with:

[dm-spy] captured 128kB of messages
[NotifyBox] Pretty-printing... (128kB)
[     CtrlSrv:fe49c7fc ] (83:02) DlgShootOlc.c LOCAL_DIALOG_REFRESH
qemu: fatal: Trying to execute code outside RAM or ROM at 0x87274218


That was because I've patched two instructions from DebugMsg, to implement the long call, but when uninstalling the logging hook, I should have "unpatched" both instructions. Rookie mistake.

Now, the hard part - clean up the code and commit it :D

Still need to find a general solution for patching arbitrary functions in Canon code (i.e. to implement long jump support in the patch manager).

Leon51

Hi! When will compile "hello world" or memory benchmark to run on hardware?  :)
I have EOS 1300D and i'm very wait ML on this camera.

Rebel99

Hello i have a 1300d and i have watched this thread for 2 years
Theres unfortunatelly still no magic lantern available for my cam.
So i wanted to ask when it will be available.
And i am new here but do you think that i can help you. If yes how
Can i do it?
Thanks for your reply beforly