Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - aprofiti

#51
I don't think I can experiments in the next days, but will follow and try something if possible.

Is the new branch cleaner compared to what you posted yesterday?
I mean only strictly necessaries (apart lua_fix which is easy to see) to understand difference between crop_rec_4k and 10-12 branch.

Can you make a "fake PR" to your bitbucket to evidence the difference with the main repository?

I need firstly understand what was changed with the code from Waza57 to make 5d2 works (I saw some commit which "revert" some previous one) and then start investigating on 50D (just " nearly standard" resolution because I'm stuck with incrementing heigth).

Regarding compilation of ml_lite due to lossless.. can't remember if by adding the non definitive changes posted in lossless thread, will allow us to record raw videos... I was trying with silent pictures mainly.
#52
I think it's better to work on a clean fork of crop_rec_4k_mlv_snd.

It will allow to prepare for merging back into the "official" codebase when things will be ready.

Regarding code from Waza, is it still necessary or a better way to allow digic4 to work on this branch was found?

I remember reddeercity has to reverse back some of the code to make it work as current state
#53
Thanks for the reply a1ex; you just confirmed a doubt I had about TIFF based files.

Unfortunately patching for Lens Name besides focal length and aperture, is something which usually require more "space" than the one  reserved for the default value when picture is created...

Rewriting the whole file is not a so feasible way for daily usage, considering also there isn't direct support for CR2 in libexif making things a couple of order more difficult, especially without a good experience on handling this file format.

Maybe just injecting a fixed longer name using ML and then rewriting that part on file could be something to start from (not considering it is a superfluous work comparing to write "correct" data directly), but will require a bit of understanding about image creation process... definitely must be set aside for now

EDIT: Just reading again MPU message thread and format.
Is a fake lens name accepted with a crafted message if no lens chip is present?
Is there a hook for MPU message injection already?
#54
I would like to edit EXIF section of an image directly in-camera (mainly for manual lenses) and because we are not currently aware how Canon code handle this, I made a research and found libexif which is capable of working on saved pictures (jpeg).

There are other library which are able to open CR2 files (libtiff, exiv2,libraw, libopenraw...) and process raw/metadata, but if I didn't understand wrong they only allow to parse IFD without be able to save metadata to the original picture.

Libexif allow to manage directly files in JPEG format but not TIFF (an old patch can be found but doesn't seems to be merged) or CR2 (which is TIFF based); reading the documentation (not so much details can be found) it appears to be able to work on a passed memory buffer.

I'm not sure what should be done after editing that memory buffer and write back changes on disk.
I imagine that there are some offset/reference sparse through the file, so replacing directly that part of the file with the new one is not possible... Anyone know how exiftool or exiv2 manage this step?

@a1ex may be feasible/useful to create a module which is able to edit metadata in-camera?

Is anyone familiar using these libraries and can provide support?
#55
@calle2010 Did you already read a1ex's comments about isr and memory stubs on bitbucket?

I can see you didn't updated your repository with the changes
#56
I can confirm that I copy pasted wrong and lost some values, writeFile/seeSkipFile and closeFile were found like your post.

If I try to use "dump" with bootflag disable, I get this:

K408[1]>dumpf
dumpf returned 0(0x0)
K408[1]>[DM] ERROR : FIO_FindFirstEx fail
ASSERT : ./FileIO/FileIO.c, Task = DbgMgr, Line 86


I have also this error with and without bootflag enabled:

   228:4294889.983 [TA10] ERROR Irregular TotalSheets 0 !!

But I imagine there is something wrong on my side... because none of the debug message from qprintf are printed and led doesn't look like is blinking...
#57
Quote from: calle2010 on March 16, 2019, 01:32:00 PM
FindFirst/FindNext/FindClose seem to come in two flavors: With or without "Ex".
The difference seems to be that FindFirstEx does a FIO_Flush before it does whatever it does.
I think FindNext/FindNextEx and FindClose/FindCloseEx are functionally identical.
Noticed that 2-3 stubs where having some sort of mirror, same code at another offset. Was the same with 200D, where the ones with lower address where used.

Quote from: calle2010 on March 16, 2019, 01:32:00 PM
Your FIO_SeekSkipFile stub I think referred to _FIO_WriteFile.
_FIO_WriteFile was the same as _FIO_CloseFile. (copy&paste error?)
I mixed one time so maybe I missed these when redoing.
Can't check right now...

Offset of FIO stubs should be right, but I may expect some slightly change in code which can broke it, it need to be rechecked.

It's missing uart_printf stub, 200d doesn't use it and I don't have R or M50 rom to check for; maybe can be found using GDB and some breakpoint, message printed can be easily found as string when looking at the disassembly.

Should be possible to temporarily change the code to use something else, to make it compile and experiment with marking unused memory.
#58
Try these one:

/** File I/O **/
NSTUB(0xe04d714d, _FIO_OpenFile)
NSTUB(0xe04d71b7, _FIO_CreateFile)
NSTUB(0xe04d7271, _FIO_ReadFile)
NSTUB(0xe04d7389, _FIO_WriteFile)
NSTUB(0xe04d7317,  FIO_SeekSkipFile)
NSTUB(0xe04d7389,  FIO_CloseFile)
NSTUB(0xe04d7cb1, _FIO_CreateDirectory)
NSTUB(0xe04d7fc1, _FIO_FindFirstEx)
NSTUB(0xe04d804f,  FIO_FindNextEx)
NSTUB(0xe04d80bb,  FIO_FindClose)
NSTUB(0xe04d74a7, _FIO_GetFileSize)
NSTUB(0xe04d7225, _FIO_RemoveFile)
NSTUB(0xe04d7b2b, _FIO_RenameFile)
NSTUB(0xe04d7dd5,  FIO_Flush)               // to be called after FIO_CloseFile?
#59
Quote from: calle2010 on March 13, 2019, 12:53:52 AM
I made some progress.

Now the assertion message in serial console "SystemIF:KerTask.c, Task = init, Line 684" is gone.

Also I got a DEBUGMSG.LOG on the sd.img: https://gist.github.com/calle2010/f6a90f9973cf7d5e191190b45ab3f430

I have not verified all the other stubs yet.
Good work calle2010!

I can't get it to boot main firmware as you got previously... my console is like you up to AUTOEXEC.bin message.

I tried to see what was getting with "-d debugmsg,int,io" but nothing special appened apart a "taking exception 2 [SVC]" message.

./run_canon_fw.sh 77D,firmware=boot=1 -d debugmsg,int,io

DebugMsg=0xDF006E6C (from GDB script)
00000000 - 3FFFFFFF: eos.ram
40000000 - 7FFFFFFF: eos.ram_uncached
DF000000 - DFFFFFFF: eos.ram_extra
E0000000 - E1FFFFFF: eos.rom0
E2000000 - E3FFFFFF: eos.rom0_mirror
E4000000 - E5FFFFFF: eos.rom0_mirror
E6000000 - E7FFFFFF: eos.rom0_mirror
E8000000 - E9FFFFFF: eos.rom0_mirror
EA000000 - EBFFFFFF: eos.rom0_mirror
EC000000 - EDFFFFFF: eos.rom0_mirror
EE000000 - EFFFFFFF: eos.rom0_mirror
F0000000 - F0FFFFFF: eos.rom1
F1000000 - F1FFFFFF: eos.rom1_mirror
F2000000 - F2FFFFFF: eos.rom1_mirror
F3000000 - F3FFFFFF: eos.rom1_mirror
F4000000 - F4FFFFFF: eos.rom1_mirror
F5000000 - F5FFFFFF: eos.rom1_mirror
F6000000 - F6FFFFFF: eos.rom1_mirror
F7000000 - F7FFFFFF: eos.rom1_mirror
F8000000 - F8FFFFFF: eos.rom1_mirror
F9000000 - F9FFFFFF: eos.rom1_mirror
FA000000 - FAFFFFFF: eos.rom1_mirror
FB000000 - FBFFFFFF: eos.rom1_mirror
FC000000 - FCFFFFFF: eos.rom1_mirror
FD000000 - FDFFFFFF: eos.rom1_mirror
FE000000 - FEFFFFFF: eos.rom1_mirror
FF000000 - FFFFFFFF: eos.rom1_mirror
BFE00000 - DEFFFFFF: eos.mmio
[EOS] enabling code execution logging.
[EOS] enabling singlestep.
[EOS] loading './77D/ROM0.BIN' to 0xE0000000-0xE1FFFFFF
[EOS] loading './77D/ROM1.BIN' to 0xF0000000-0xF0FFFFFF
[MPU] FIXME: using generic MPU spells for 77D.
[MPU] FIXME: no MPU button codes for 77D.
Start address: 0xE0000000
Setting BOOTDISK flag to FFFFFFFF
[CPU0] E00075E0: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [DIGIC6]       at 0xE00075F8:00000000 [0xDE000008] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE00075FA:00000000 [0xDE000000] -> 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0007600:00000000 [0xDE000000] <- 0x40      : ???
[CPU0] E0007624: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU0] E0007632: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU0] E0007628: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E0007656: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004AC6: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004AD2: MCR p15, ...          : CACHEMAINT x3 (omitted)
[CPU0] E0004AD6: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
[CPU0] [DIGIC6]       at 0xE0004DCA:E0004E9B [0xD209F208] <- 0x5930    : ???
[CPU0] [DIGIC6]       at 0xE0004DDA:E0004E9B [0xD209F208] <- 0x5932    : ???
[CPU0] [DIGIC6]       at 0xE0004DE2:E0004E9B [0xD209F200] <- 0x6320    : ???
[CPU0] [DIGIC6]       at 0xE0004DF2:E0004E9B [0xD209F200] <- 0x6322    : ???
[CPU0] [DIGIC6]       at 0xE0004DF8:E0004E9B [0xD209F204] <- 0x73F10   : ???
[CPU0] [DIGIC6]       at 0xE0004DFE:E0004E9B [0xD209F204] <- 0x33F10   : ???
[CPU0] [DIGIC6]       at 0xE0004E0C:E0004E9B [0xD209F204] <- 0x13F10   : ???
[CPU0] [DIGIC6]       at 0xE0004E14:E0004E9B [0xD209F204] <- 0x3F10    : ???
[CPU0] [DIGIC6]       at 0xE0004E26:E0004E9B [0xD209F204] <- 0x3F12    : ???
[CPU0] [DIGIC6]       at 0xE0004E2E:E0004E9B [0xD2090040] <- 0x3       : ???
[CPU0] [DIGIC6]       at 0xE0004E36:E0004E9B [0xD209F218] <- 0x4010    : ???
[CPU0] [DIGIC6]       at 0xE0004E4E:E0004E9B [0xD209F218] <- 0x4012    : ???
[CPU0] [DIGIC6]       at 0xDF02000A:E0004EB5 [0xD208005C] <- 0x800040  : ???
[CPU0] [DIGIC6]       at 0xDF020012:E0004EB5 [0xDE000014] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0xDF020016:E0004EB5 [0xDE000010] <- 0x9F      : ???
[CPU0] [DIGIC6]       at 0xDF020018:E0004EB5 [0xDE000010] -> 0x0       : ???
[CPU0] [DIGIC6]       at 0xDF02001C:E0004EB5 [0xDE000010] -> 0x0       : ???
[CPU0] [DIGIC6]       at 0xDF02001E:E0004EB5 [0xDE000010] -> 0x0       : ???
[CPU0] [DIGIC6]       at 0xDF020024:E0004EB5 [0xDE000014] <- 0x1       : ???
[CPU0] [ROMID]        at 0xDF020028:E0004EB5 [0xBFE01FD0] <- 0x0       : SROM ID
[CPU0] [ROMID]        at 0xDF02002C:E0004EB5 [0xBFE01FD2] <- 0x0       : SROM ID
[CPU0] [ROMID]        at 0xDF020030:E0004EB5 [0xBFE01FD4] <- 0x0       : SROM ID
[CPU0] [DIGIC6]       at 0xE0005E14:E0004EBB [0xD2090008] <- 0x430C04  : CLOCK_ENABLE
[CPU0] [DIGIC6]       at 0xE0005E1C:E0004EBB [0xD209002C] <- 0x1000    : ???
[CPU0] [DIGIC6]       at 0xE0005E24:E0004EBB [0xD20900D0] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0xE0005E2A:E0004EBB [0xD209B050] <- 0x98000021: ???
[CPU0] [DIGIC6]       at 0xE0005E32:E0004EBB [0xD209B070] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E3A:E0004EBB [0xD209B080] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E42:E0004EBB [0xD209B100] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E4A:E0004EBB [0xD209B110] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E52:E0004EBB [0xD209B220] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E5A:E0004EBB [0xD209B2D0] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E62:E0004EBB [0xD209B520] <- 0x16000000: ???
[CPU0] [DIGIC6]       at 0xE0005E6A:E0004EBB [0xD209B550] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E72:E0004EBB [0xD209B560] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E7A:E0004EBB [0xD209B590] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E82:E0004EBB [0xD209B600] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E8A:E0004EBB [0xD209B610] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0005E92:E0004EBB [0xD209B620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0xE0004EC0:E0004EBB [0xD2040128] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0xE0004EC8:E0004EBB [0xD204012C] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0xE0004ED0:E0004EBB [0xD2040130] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0xE0004ED8:E0004EBB [0xD2040134] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0xE0004EE0:E0004EBB [0xD2040138] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0xE0004EE8:E0004EBB [0xD204013C] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0xE0004EF0:E0004EBB [0xD2040140] <- 0x80000000: ???

...

[CPU0] [SDIO]         at 0x00106D06:00106B71 [0xC805000C] <- 0x11      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:00106B71 [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00106D00:00106B81 [0xC8050024] <- 0x4000    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:00106B81 [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:00106B81 [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:00106B81 [0xC805000C] <- 0x11      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:00106B81 [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107852:00106B91 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x00107854:00106B91 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:00107873 [0xC8050024] <- 0x4800    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:00107873 [0xC8050020] <- 0x1AA01   : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:00107873 [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:00107873 [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:00107873 [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x0010754C:00106D59 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106D59 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x7700    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x12000   : Response[0]
[CPU0] [SDIO]         at 0x001076AA:00106D79 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x001076AC:00106D79 [0xC805002C] <- 0x80000000: response setup?
[CPU0] [SDIO]         at 0x00106D00:001076CB [0xC8050024] <- 0x6940    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:001076CB [0xC8050020] <- 0x10000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:001076CB [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:001076CB [0xC805000C] <- 0x2       : Command flags?
[CPU0] [SDIO]         at 0x00106D08:001076CB [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x001076D0:001076CB [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x001076D2:001076CB [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x001076D4:001076CB [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x001076D6:001076CB [0xC8050038] -> 0x80      : Response[1]
[CPU0] [SDIO]         at 0x001076D8:001076CB [0xC8050034] -> 0xFFFF0000: Response[0]
[CPU0] [SDIO]         at 0x001075DC:00106BB7 [0xC8050028] <- 0x88      : Response size (bits)
[CPU0] [SDIO]         at 0x001075DE:00106BB7 [0xC805002C] <- 0x7F08    : response setup?
[CPU0] [SDIO]         at 0x00106D00:001075FD [0xC8050024] <- 0x4200    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:001075FD [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:001075FD [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:001075FD [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:001075FD [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107602:001075FD [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107604:001075FD [0xC8050040] -> 0xAA585951: Response[3]
[CPU0] [SDIO]         at 0x00107606:001075FD [0xC805003C] -> 0x454D5521: Response[2]
[CPU0] [SDIO]         at 0x00107608:001075FD [0xC8050038] -> 0x1DEADBE : Response[1]
[CPU0] [SDIO]         at 0x0010760A:001075FD [0xC8050034] -> 0xEF006219: Response[0]
[CPU0] [SDIO]         at 0x001077C2:00106BCF [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x001077C4:00106BCF [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:001077E3 [0xC8050024] <- 0x4300    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:001077E3 [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:001077E3 [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:001077E3 [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:001077E3 [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x001077E8:001077E3 [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x001077EA:001077E3 [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x001077EC:001077E3 [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x001077EE:001077E3 [0xC8050038] -> 0x45      : Response[1]
[CPU0] [SDIO]         at 0x001077F0:001077E3 [0xC8050034] -> 0x67050000: Response[0]
[CPU0] [SDIO]         at 0x001075DC:00106E4B [0xC8050028] <- 0x88      : Response size (bits)
[CPU0] [SDIO]         at 0x001075DE:00106E4B [0xC805002C] <- 0x7F08    : response setup?
[CPU0] [SDIO]         at 0x00106D00:001075FD [0xC8050024] <- 0x4945    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:001075FD [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:001075FD [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:001075FD [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:001075FD [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107602:001075FD [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107604:001075FD [0xC8050040] -> 0x26005A  : Response[3]
[CPU0] [SDIO]         at 0x00107606:001075FD [0xC805003C] -> 0x5F59E0F7: Response[2]
[CPU0] [SDIO]         at 0x00107608:001075FD [0xC8050038] -> 0x7FFFDFFF: Response[1]
[CPU0] [SDIO]         at 0x0010760A:001075FD [0xC8050034] -> 0x92600047: Response[0]
[CPU0] [SDIO]         at 0x0010754C:00106BED [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106BED [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4745    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x70000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00106BFD [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106BFD [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x7745    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x92000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00106C0D [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106C0D [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x6A45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x92000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00106E69 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106E69 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x7745    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x92000   : Response[0]
[CPU0] [SDIO]         at 0x00106E82:00106E69 [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106E84:00106E69 [0xC805007C] <- 0x1       : transfer block count
[CPU0] [SDIO]         at 0x00106E86:00106E69 [0xC8050068] <- 0x40      : read block size
[CPU0] [SDIO]         at 0x001074EA:00106E8D [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106F48:00106E99 [0xC8050024] <- 0x4D00    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:00106E99 [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:00106E99 [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106F4E:00106E99 [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDIO]         at 0x00106EA4:00106E99 [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00106EB4:00106E99 [0xC8050010] <- 0xFFDFFFFE: Status
[CPU0] [SDIO]         at 0x00106EBA:00106E99 [0xC8050010] -> 0x0       : Status
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EBA:00106E99 [0xC8050010] -> 0x0       : Status
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EBA:00106E99 [0xC8050010] -> 0x0       : Status
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EBA:00106E99 [0xC8050010] -> 0x0       : Status
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106EE2:00106E99 [0xC805006C] -> 0x0       : FIFO data
[CPU0] [SDIO]         at 0x00106EEC:00106E99 [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00106EF4:00106E99 [0xC8050084] -> 0x0       : SDREP: Status register/error codes
[CPU0] [SDIO]         at 0x00106C42:00106C11 [0xC8050064] <- 0x61000A  : bus width
[CPU0] [SDIO]         at 0x00106C46:00106C11 [0xC8050058] <- 0x41000A  : bus width
[CPU0] [DIGIC6]       at 0x001074B8:00106C4D [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:00106C4D [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:00106C4D [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:00106C4D [0xD2090608] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010742A:00106C51 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00106C51 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00106C51 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00106C51 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00106C51 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00106C51 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00106C51 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00106C51 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00106C51 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00106C51 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00106C51 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00106C51 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00106C51 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00106C51 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00106C51 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00106C51 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106C58:00106C51 [0xC8050058] -> 0x0       : bus width
[CPU0] [SDIO]         at 0x00106C62:00106C51 [0xC8050058] <- 0x1       : bus width
[CPU0] [SDIO]         at 0x00106C66:00106C51 [0xC8050064] -> 0x0       : bus width
[CPU0] [SDIO]         at 0x00106C70:00106C51 [0xC8050064] <- 0x1       : bus width
[CPU0] [SDIO]         at 0x0010754C:00106C87 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106C87 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x7745    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x92000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00106C97 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00106C97 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4600    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x201     : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x92000   : Response[0]
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x1       : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x44000000: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x200     : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:00106FFF [0xC8050024] <- 0x5100    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:00106FFF [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:00106FFF [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:00106FFF [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:00106FFF [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:00106FFF [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:00106FFF [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:00106FFF [0xC8050080] -> 0x1       : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x1       : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x44000000: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x200     : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:00106FFF [0xC8050024] <- 0x5100    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:00106FFF [0xC8050020] <- 0xC60001  : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:00106FFF [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:00106FFF [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:00106FFF [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:00106FFF [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:00106FFF [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:00106FFF [0xC8050080] -> 0x1       : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
SLOT_A LOAD OK.
[CPU0] [GPIO]         at 0x00101774:00101A57 [0xD208016C] <- 0xD0002   : Card LED
Open file for read : AUTOEXEC.BIN
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x1       : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x44000000: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x200     : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:00106FFF [0xC8050024] <- 0x5100    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:00106FFF [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:00106FFF [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:00106FFF [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:00106FFF [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:00106FFF [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:00106FFF [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:00106FFF [0xC8050080] -> 0x1       : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x1       : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x44000000: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x200     : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:00106FFF [0xC8050024] <- 0x5100    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:00106FFF [0xC8050020] <- 0xC60001  : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:00106FFF [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:00106FFF [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:00106FFF [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:00106FFF [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:00106FFF [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:00106FFF [0xC8050080] -> 0x1       : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x3E      : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x46001E00: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x7C00    : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:0010700B [0xC8050024] <- 0x5200    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:0010700B [0xC8050020] <- 0xC80001  : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:0010700B [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:0010700B [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:0010700B [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:0010700B [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:0010700B [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:0010700B [0xC8050080] -> 0x3E      : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107061 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107061 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4C00    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0xB0000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x20      : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x48001E00: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x4000    : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:0010700B [0xC8050024] <- 0x5200    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:0010700B [0xC8050020] <- 0x1C00001 : cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:0010700B [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:0010700B [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:0010700B [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:0010700B [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:0010700B [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:0010700B [0xC8050080] -> 0x20      : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107061 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107061 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4C00    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0xB0000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
File size : 0x71A0
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x20      : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x44001800: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x4000    : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:0010700B [0xC8050024] <- 0x5200    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:0010700B [0xC8050020] <- 0x23800001: cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:0010700B [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:0010700B [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:0010700B [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:0010700B [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:0010700B [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:0010700B [0xC8050080] -> 0x20      : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107061 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107061 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4C00    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0xB0000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
[CPU0] [SDIO]         at 0x00106FB0:00105C5F [0xC8050010] <- 0x0       : Status
[CPU0] [SDIO]         at 0x00106FB6:00105C5F [0xC8050068] <- 0x200     : read block size
[CPU0] [SDIO]         at 0x00106FBC:00105C5F [0xC805007C] <- 0x20      : transfer block count
[CPU0] [SDIO]         at 0x001074EA:00106FC3 [0xC8050088] <- 0x30      : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x001074B8:001074FB [0xD209063C] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074C0:001074FB [0xD2090614] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x001074D0:001074FB [0xD2090610] <- 0x80000000: ???
[CPU0] [DIGIC6]       at 0x001074D8:001074FB [0xD2090608] <- 0x0       : ???
[CPU0] [SDIO]         at 0x00107508:001074FB [0xC8050088] <- 0x0       : SDBUFCTR: Set to 0x03 before reading
[CPU0] [DIGIC6]       at 0x0010742A:00107511 [0xD209F100] <- 0xA       : ???
[CPU0] [DIGIC6]       at 0x00107430:00107511 [0xD2090600] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107438:00107511 [0xD2090618] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010743E:00107511 [0xD209061C] <- 0x1D000901: ???
[CPU0] [DIGIC6]       at 0x00107446:00107511 [0xD2090620] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010744E:00107511 [0xD209062C] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x00107456:00107511 [0xD2090630] <- 0x807     : ???
[CPU0] [DIGIC6]       at 0x0010745E:00107511 [0xD2090624] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x00107466:00107511 [0xD2090628] <- 0xF       : ???
[CPU0] [DIGIC6]       at 0x0010746E:00107511 [0xD2090638] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x00107476:00107511 [0xD2090604] <- 0x0       : ???
[CPU0] [DIGIC6]       at 0x0010747E:00107511 [0xD209060C] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010748E:00107511 [0xD2090608] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x00107496:00107511 [0xD2090610] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x0010749E:00107511 [0xD2090614] <- 0x1       : ???
[CPU0] [DIGIC6]       at 0x001074A6:00107511 [0xD209063C] <- 0x1       : ???
[CPU0] [SDIO]         at 0x00106FC8:00106FC3 [0xC8050008] <- 0xF1      : DMA
[CPU0] [SDDMA]        at 0x00106FD0:00106FC3 [0xC8020000] <- 0x44001800: Transfer memory address
[CPU0] [SDDMA]        at 0x00106FE0:00106FC3 [0xC8020004] <- 0x4000    : Transfer byte count
[CPU0] [SDDMA]        at 0x00106FE6:00106FC3 [0xC8020018] <- 0x0       : ???
[CPU0] [SDDMA]        at 0x00106FEC:00106FC3 [0xC8020010] <- 0x39      : Command/Status?
[CPU0] [SDIO]         at 0x00106F48:0010700B [0xC8050024] <- 0x5200    : cmd_hi
[CPU0] [SDIO]         at 0x00106F4A:0010700B [0xC8050020] <- 0x23C00001: cmd_lo
[CPU0] [SDIO]         at 0x00106F4C:0010700B [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[EOS] trigger int 0xBE (delayed!)
[CPU0] [SDIO]         at 0x00106F4E:0010700B [0xC805000C] <- 0x14      : Command flags?
[CPU0] [SDDMA]        at 0x0010700C:0010700B [0xC8020010] -> 0x0       : Command/Status?
[CPU0] [SDIO]         at 0x00107016:0010700B [0xC8050010] -> 0x200001  : Status
[CPU0] [SDIO]         at 0x00107024:0010700B [0xC8050008] <- 0x0       : DMA
[CPU0] [SDIO]         at 0x00107032:0010700B [0xC8050080] -> 0x20      : transferred blocks
[CPU0] [SDIO]         at 0x0010754C:00107061 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107061 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4C00    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x1       : cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0xB0000   : Response[0]
[CPU0] [SDIO]         at 0x0010754C:00107071 [0xC8050028] <- 0x30      : Response size (bits)
[CPU0] [SDIO]         at 0x0010754E:00107071 [0xC805002C] <- 0x2701    : response setup?
[CPU0] [SDIO]         at 0x00106D00:0010756D [0xC8050024] <- 0x4D45    : cmd_hi
[CPU0] [SDIO]         at 0x00106D02:0010756D [0xC8050020] <- 0x67000001: cmd_lo
[CPU0] [SDIO]         at 0x00106D04:0010756D [0xC8050010] <- 0x0       : Status
[EOS] trigger int 0xEE (delayed!)
[CPU0] [SDIO]         at 0x00106D06:0010756D [0xC805000C] <- 0x12      : Command flags?
[CPU0] [SDIO]         at 0x00106D08:0010756D [0xC8050010] -> 0x1       : Status
[CPU0] [SDIO]         at 0x00107572:0010756D [0xC8050044] -> 0x0       : ???
[CPU0] [SDIO]         at 0x00107574:0010756D [0xC8050040] -> 0x0       : Response[3]
[CPU0] [SDIO]         at 0x00107576:0010756D [0xC805003C] -> 0x0       : Response[2]
[CPU0] [SDIO]         at 0x00107578:0010756D [0xC8050038] -> 0x0       : Response[1]
[CPU0] [SDIO]         at 0x0010757A:0010756D [0xC8050034] -> 0x90000   : Response[0]
[CPU0] [GPIO]         at 0x00101782:00104E95 [0xD208016C] <- 0xC0003   : Card LED
[CPU0] [DIGIC6]       at 0x0010162C:00101955 [0xD2080114] <- 0x4C0083  : ???
[CPU0] [DIGIC6]       at 0x00101630:00101955 [0xD2080118] <- 0x4C0083  : ???
[CPU0] [DIGIC6]       at 0x00101634:00101955 [0xD208011C] <- 0x4C0083  : ???
[CPU0] [DIGIC6]       at 0x00101638:00101955 [0xD2080120] <- 0x4C0083  : ???
[CPU0] [DIGIC6]       at 0x0010163C:00101955 [0xD2080124] <- 0x4C0083  : ???
[CPU0] [DIGIC6]       at 0x00101640:00101955 [0xD2080128] <- 0x4C0083  : ???
[CPU0] [DIGIC6]       at 0x00101646:00101955 [0xD208015C] <- 0xC0003   : ???
Now jump to AUTOEXEC.BIN(0x00800000)!!
[CPU0] 00800008: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [GPIO]         at 0x008065EE:008064BB [0xD208016C] <- 0x20D0002 : Card LED
[CPU0] 00806ABE: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 001008C0: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU0] 00806AD6: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 00806ADA: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[CPU0] [*unk*]        at 0x00806B46:00000005 [0xC1100730] <- 0x0       : ???
[boot] copy_and_restart 0x1b5700 (1791744)
[BOOT] reserving memory: 0x40000 (262144)
before: user_mem_size = 0x114988 (1132936)
after: user_mem_size = 0xd4988 (870792)
[BOOT] fixing up branch at 0x1b7ba0 (1801120)  (ROM: 0xe0040058 (-536608680) ) to 0x1b5769 (1791849)
[BOOT] fixing up branch at 0x1b7bd8 (1801176)  (ROM: 0xe0040090 (-536608624) ) to 0x1b5769 (1791849)
[BOOT] fixing up branch at 0x1b7baa (1801130)  (ROM: 0xe0040062 (-536608670) ) to 0x1b5759 (1791833)
[BOOT] fixing up branch at 0x1b7be2 (1801186)  (ROM: 0xe004009a (-536608614) ) to 0x1b5759 (1791833)
[BOOT] fixing up branch at 0x1b7bf8 (1801208)  (ROM: 0xe00400b0 (-536608592) ) to 0x1b7c34 (1801268)
[BOOT] fixing up branch at 0x1b7c82 (1801346)  (ROM: 0xe004013a (-536608454) ) to 0x1b5751 (1791825)
[BOOT] fixing up branch at 0x1b7ce4 (1801444)  (ROM: 0xe004019c (-536608356) ) to 0x1b5749 (1791817)
[BOOT] changing init_task from 0xe0040215 (-536608235) to 0x1b577d (1791869)
[CPU0] 001B5F9E: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 00806A98: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B5FB6: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 001B5FBA: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[CPU0] [*unk*]        at 0x001B6026:00000005 [0xC1100730] <- 0x0       : ???
[BOOT] jumping to relocated startup code at 0x1b7b49 (1801033)
[CPU0] 001B5F78: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B7B4A: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE02427A0
[CPU0] 001B7B5C: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
E065E27C: Taking exception 2 [SVC]


Did you only changed stubs values by adding +1 to the address?

I have some warnings while compiling, can you check if you get the same?

../../src/minimal-d678.c: In function 'FIO_WriteFile':
../../src/minimal-d678.c:140:1: warning: control reaches end of non-void function [-Wreturn-type]
int FIO_WriteFile( FILE* stream, const void* ptr, size_t count ) { };
^
[ CC       ]   cache.o
[ CC       ]   font_direct.o
[ AS       ]   ../../platform/77D.100/stubs.o
[ CC       ]   log-d678.o
../../src/log-d678.c: In function 'my_DebugMsg':
../../src/log-d678.c:64:23: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
     char* task_name = get_current_task_name();
                       ^
...

[ XOR_CHK  ]   ../../build_tools/xor_chk
../../build_tools/xor_chk.c:48:88: warning: format specifies type
      'unsigned long' but the argument has type 'uint64_t' (aka
      'unsigned long long') [-Wformat]
  ...error (expected 0x%lX, got 0x%lX)\n", 0xCCCCCCCCE12FFF13, footer_magic);
                                  ~~~                          ^~~~~~~~~~~~
                                  %llX


I need to try using linux to see if this is the problem to me.
#60
Quote from: a1ex on March 09, 2019, 06:58:32 PM
If nothing is happening after autoexec.bin... then it's not booting. There should be plenty of debug messages from Canon.

By default, on 77D, the code on the main repository runs the LED blinking test from reboot-dumper.c. Make sure you have changed that in Makefiles to match 200D.
Forgot about adapt makefile to this commit...

So I started by changing Makefile to this:

# 77D 1.0.2

CANON_NAME_FIR  = 5D300133.FIR
FIRMWARE_ID     = 0x80000408
UPDATE_NAME_FIR = LOG_77D.FIR

# Shrink Canon's malloc heap by changing its end address
#          ("meminfo -m" in drysh)    ("memmap" in drysh)
# Default: 0x000e0fa8 - 0x001f5658, 0x000e0fa0 - 0x001f5928 (total size 0x001146b0 ?)
# Patched: 0x000e0fa8 - 0x001b5658, 0x000e0fa0 - 0x001b5928 ( reserved for ML)
# (TO BE CHECKED)
ROMBASEADDR     = 0xE0040000
RESTARTSTART    = 0x001B5700

# Cortex A9, binaries loaded as Thumb
CFLAG_USER = -mthumb -march=armv7-a -mlong-calls

# these should be removed when porting starts
ML_SRC_PROFILE  = minimal
ML_MINIMAL_OBJ  = minimal-d678.o
ML_SRC_EXTRA_OBJS += log-d678.o stdio.o

# FIXME: should be boot-d6.o
ML_BOOT_OBJ = boot-d78.o

Used qemu and drysh to retrieve values for memory configuration, not sure if reserved space is enough and if rombaseaddr is correct...

At this point to make it compile I had to first find these constants by pattern matching with 200D:

/*
*  77D 1.0.2 consts
*/

#define CARD_LED_ADDRESS            0xD208016C
#define LEDON                       0x20D0002
#define LEDOFF                      0x20C0003

#define HIJACK_FIXBR_DCACHE_CLN_1   0xe0040058   /* first call to dcache_clean, before cstart */
#define HIJACK_FIXBR_ICACHE_INV_1   0xe0040062   /* first call to icache_invalidate, before cstart */
#define HIJACK_FIXBR_DCACHE_CLN_2   0xe0040090   /* second call to dcache_clean, before cstart */
#define HIJACK_FIXBR_ICACHE_INV_2   0xe004009a   /* second call to icache_invalidate, before cstart */
#define HIJACK_INSTR_BL_CSTART      0xe00400b0   /* easier to fix up here */
#define HIJACK_INSTR_HEAP_SIZE      0xe00401c0   /* easier to patch the size; start address is computed */
#define HIJACK_FIXBR_BZERO32        0xe004013a   /* called from cstart */
#define HIJACK_FIXBR_CREATE_ITASK   0xe004019c   /* called from cstart */
#define HIJACK_INSTR_MY_ITASK       0xe00401cc   /* address of init_task passed to create_init_task */


Add more stubs to this list:

NSTUB(0xe0152eb1,  cli_spin_lock)          /* used in AllocateMemory/FreeMemory and others */

// Taken from 200d to make it compile.
NSTUB(    0x4030,  pre_isr_hook)  //Not Good
NSTUB(    0x4034,  post_isr_hook)  //Not Good
NSTUB(   0x6CC14,  isr_table_param)  //Not Good
NSTUB(0xDF007B59, _AllocateMemory)  //Not Good - Maybe 0xDF007E58

Did't figured out yet how to find isr related stubs from interrupt Handler.... Any Hints for me?

Now last thing to figure out was signature of the firmware; started by copying the one from 200D and then changed to this:

#define SIG_200D_101 0xf72c729a // from E0040000
#define SIG_77D_100  0x6dd89c83 // from e0040000

Which come to my surprise from Qemu: (wasn't reaching this point without the faked value)

Boot[CPU0] 00100752: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC6000000
[CPU0] 0010075A: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
[CPU0] 00100752: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC2000000
[CPU0] 0010075A: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
Load
SLOT_A LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0x6D20
Now jump to AUTOEXEC.BIN(0x00800000)!!
[CPU0] 00800008: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[boot] firmware signature: 0x6dd89c83 (1842912387)
                 expected: 0xf72c729a (-148082022)
            computed from: 0xe0040000 (-536608768)


Which ended in what is like make emulation a step ahead:

./run_canon_fw.sh 77D,firmware=boot=1 -d debugmsg

DebugMsg=0xDF006E6C (from GDB script)
00000000 - 3FFFFFFF: eos.ram
40000000 - 7FFFFFFF: eos.ram_uncached
DF000000 - DFFFFFFF: eos.ram_extra
E0000000 - E1FFFFFF: eos.rom0
E2000000 - E3FFFFFF: eos.rom0_mirror
E4000000 - E5FFFFFF: eos.rom0_mirror
E6000000 - E7FFFFFF: eos.rom0_mirror
E8000000 - E9FFFFFF: eos.rom0_mirror
EA000000 - EBFFFFFF: eos.rom0_mirror
EC000000 - EDFFFFFF: eos.rom0_mirror
EE000000 - EFFFFFFF: eos.rom0_mirror
F0000000 - F0FFFFFF: eos.rom1
F1000000 - F1FFFFFF: eos.rom1_mirror
F2000000 - F2FFFFFF: eos.rom1_mirror
F3000000 - F3FFFFFF: eos.rom1_mirror
F4000000 - F4FFFFFF: eos.rom1_mirror
F5000000 - F5FFFFFF: eos.rom1_mirror
F6000000 - F6FFFFFF: eos.rom1_mirror
F7000000 - F7FFFFFF: eos.rom1_mirror
F8000000 - F8FFFFFF: eos.rom1_mirror
F9000000 - F9FFFFFF: eos.rom1_mirror
FA000000 - FAFFFFFF: eos.rom1_mirror
FB000000 - FBFFFFFF: eos.rom1_mirror
FC000000 - FCFFFFFF: eos.rom1_mirror
FD000000 - FDFFFFFF: eos.rom1_mirror
FE000000 - FEFFFFFF: eos.rom1_mirror
FF000000 - FFFFFFFF: eos.rom1_mirror
BFE00000 - DEFFFFFF: eos.mmio
[EOS] enabling code execution logging.
[EOS] loading './77D/ROM0.BIN' to 0xE0000000-0xE1FFFFFF
[EOS] loading './77D/ROM1.BIN' to 0xF0000000-0xF0FFFFFF
[MPU] FIXME: using generic MPU spells for 77D.
[MPU] FIXME: no MPU button codes for 77D.
Start address: 0xE0000000
Setting BOOTDISK flag to FFFFFFFF
[CPU0] E00075E0: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E0007606: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU0] E0007632: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU0] E0007628: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E0007632: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004AC6: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004AC6: MCR p15, ...          : CACHEMAINT x3 (omitted)
[CPU0] E0004AC6: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
<<<<< Musa(PU0) Boot Ver 0.21 >>>>>
[CPU0] E0007672: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU1] E00075E0: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000001
[CPU1] E0004BB2: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU1] E0007606: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU1] E0007632: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU1] E0007628: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E0007632: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU1] E0004AC6: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU1] E0004AC6: MCR p15, ...          : CACHEMAINT x3 (omitted)
[CPU1] E0004AC6: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
[CPU1] E0004AEA: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51878
[CPU1] E0004BA0: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU1] E0004AEA: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU1] E0004AFA: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E0004A5A: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x55555555
[CPU1] E0004A62: MCR p15,0,Rd,cr2,cr0,0:  TTBR0_EL1 <- 0xE0004880
[CPU1] E0004A66: MCR p15,0,Rd,cr2,cr0,1:  TTBR1_EL1 <- 0xE0000080
[CPU1] E0004A6A: MCR p15,0,Rd,cr13,cr0,1: CONTEXTIDR(S) <- 0x1       
[CPU1] E0004A6E: MCR p15,0,Rd,cr2,cr0,2:      TTBCR <- 0x7       
[CPU1] E0004A76: MCR p15,0,Rd,cr8,cr7,0:    TLBIALL <- 0x0       
[CPU1] E0004A7E: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU1] E0004A7E: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50879
[CPU1] E00076D8: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50879
[CPU1] E00076D8: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E00076D8: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51879
[CPU1] E00076F0: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51879
[CPU1] E00076F0: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5187D
[CPU1] E00076FC: MRC p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 -> 0x45
[CPU1] E00076FC: MCR p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 <- 0x45       
[CPU1] E00076FC: MRC p15,0,Rd,cr15,cr0,0:  A9_PWRCTL -> 0x0
[CPU1] E00076FC: MCR p15,0,Rd,cr15,cr0,0:  A9_PWRCTL <- 0x1       
[CPU1] E000771C: MRC p15,0,Rd,cr15,cr0,1:    A9_DIAG -> 0x0
[CPU1] E000771C: MCR p15,0,Rd,cr15,cr0,1:    A9_DIAG <- 0x400000   
[CPU1] E0004A1A: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C5187D
[CPU1] E0004A1A: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5107D
[CPU0] E0004AEA: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51878
[CPU0] E0004AEA: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004AFA: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E0004A5A: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x55555555
[CPU0] E0004A62: MCR p15,0,Rd,cr2,cr0,0:  TTBR0_EL1 <- 0xE0004800
[CPU0] E0004A66: MCR p15,0,Rd,cr2,cr0,1:  TTBR1_EL1 <- 0xE0000080
[CPU0] E0004A6A: MCR p15,0,Rd,cr13,cr0,1: CONTEXTIDR(S) <- 0x0       
[CPU0] E0004A6E: MCR p15,0,Rd,cr2,cr0,2:      TTBCR <- 0x7       
[CPU0] E0004A76: MCR p15,0,Rd,cr8,cr7,0:    TLBIALL <- 0x0       
[CPU0] E0004A7E: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004A7E: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50879
[CPU0] E00076D8: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50879
[CPU0] E00076D8: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E00076D8: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51879
[CPU0] E00076F0: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51879
[CPU0] E00076F0: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5187D
[CPU0] E00076FC: MRC p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 -> 0x45
[CPU0] E00076FC: MCR p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 <- 0x45       
[CPU0] E00076FC: MRC p15,0,Rd,cr15,cr0,0:  A9_PWRCTL -> 0x0
[CPU0] E00076FC: MCR p15,0,Rd,cr15,cr0,0:  A9_PWRCTL <- 0x1       
[CPU0] E000771C: MRC p15,0,Rd,cr15,cr0,1:    A9_DIAG -> 0x0
[CPU0] E000771C: MCR p15,0,Rd,cr15,cr0,1:    A9_DIAG <- 0x400000   
[CPU0] E0004900: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E0004940: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xDF000000
Boot[CPU0] 00100752: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC6000000
[CPU0] 0010075A: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
[CPU0] 00100752: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC2000000
[CPU0] 0010075A: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
Load
SLOT_A LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0x7120
Now jump to AUTOEXEC.BIN(0x00800000)!!
[CPU0] 00800008: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] 00806A46: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 001008BC: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU0] 00806A66: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 00806A6A: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[boot] copy_and_restart 0x1b5700 (1791744)
[BOOT] reserving memory: 0x40000 (262144)
before: user_mem_size = 0x114988 (1132936)
after: user_mem_size = 0xd4988 (870792)
[BOOT] fixing up branch at 0x1b7ba0 (1801120)  (ROM: 0xe0040058 (-536608680) ) to 0x1b5769 (1791849)
[BOOT] fixing up branch at 0x1b7bd8 (1801176)  (ROM: 0xe0040090 (-536608624) ) to 0x1b5769 (1791849)
[BOOT] fixing up branch at 0x1b7baa (1801130)  (ROM: 0xe0040062 (-536608670) ) to 0x1b5759 (1791833)
[BOOT] fixing up branch at 0x1b7be2 (1801186)  (ROM: 0xe004009a (-536608614) ) to 0x1b5759 (1791833)
[BOOT] fixing up branch at 0x1b7bf8 (1801208)  (ROM: 0xe00400b0 (-536608592) ) to 0x1b7c34 (1801268)
[BOOT] fixing up branch at 0x1b7c82 (1801346)  (ROM: 0xe004013a (-536608454) ) to 0x1b5751 (1791825)
[BOOT] fixing up branch at 0x1b7ce4 (1801444)  (ROM: 0xe004019c (-536608356) ) to 0x1b5749 (1791817)
[BOOT] changing init_task from 0xe0040215 (-536608235) to 0x1b577d (1791869)
[CPU0] 001B5F96: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 00806A20: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B5FB6: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 001B5FBA: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[BOOT] jumping to relocated startup code at 0x1b7b49 (1801033)
[CPU0] 001B5F70: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B7B48: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE02427A0
[CPU0] 001B7B52: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000

Now it appears to execute in qemu compiling code from minimal-678.c. (put some garbage in led_blink() to see if compilation fail)
But none of the functions contained is executed (put some qprintf to see if they get called).

I still get that black bar on top and still no log saved to sd unfortunately.
Now the red icon is not blinking anymore, but is solid red instead of blinking half of a second... My hope is it get stuck because of the missing stubs

@a1ex can you check if this is good up to this stage by looking at changes and what is printed by Qemu by using qprintf?

Didn't tried to add +1 to the stubs in ARM address to make it THUMB. May this be valid in this case?


EDIT:
Comparing 200D in Qemu I get:
./run_canon_fw.sh 200D,firmware=boot=1 -d debugmsg

DebugMsg=0xDF006E6C (from GDB script)
00000000 - 1FFFFFFF: eos.ram
40000000 - 5FFFFFFF: eos.ram_uncached
DF000000 - DFFFFFFF: eos.ram_extra
E0000000 - E1FFFFFF: eos.rom0
E2000000 - E3FFFFFF: eos.rom0_mirror
E4000000 - E5FFFFFF: eos.rom0_mirror
E6000000 - E7FFFFFF: eos.rom0_mirror
E8000000 - E9FFFFFF: eos.rom0_mirror
EA000000 - EBFFFFFF: eos.rom0_mirror
EC000000 - EDFFFFFF: eos.rom0_mirror
EE000000 - EFFFFFFF: eos.rom0_mirror
F0000000 - F0FFFFFF: eos.rom1
F1000000 - F1FFFFFF: eos.rom1_mirror
F2000000 - F2FFFFFF: eos.rom1_mirror
F3000000 - F3FFFFFF: eos.rom1_mirror
F4000000 - F4FFFFFF: eos.rom1_mirror
F5000000 - F5FFFFFF: eos.rom1_mirror
F6000000 - F6FFFFFF: eos.rom1_mirror
F7000000 - F7FFFFFF: eos.rom1_mirror
F8000000 - F8FFFFFF: eos.rom1_mirror
F9000000 - F9FFFFFF: eos.rom1_mirror
FA000000 - FAFFFFFF: eos.rom1_mirror
FB000000 - FBFFFFFF: eos.rom1_mirror
FC000000 - FCFFFFFF: eos.rom1_mirror
FD000000 - FDFFFFFF: eos.rom1_mirror
FE000000 - FEFFFFFF: eos.rom1_mirror
FF000000 - FFFFFFFF: eos.rom1_mirror
BFE00000 - DEFFFFFF: eos.mmio
[EOS] enabling code execution logging.
[EOS] loading './200D/ROM0.BIN' to 0xE0000000-0xE1FFFFFF
[EOS] loading './200D/ROM1.BIN' to 0xF0000000-0xF0FFFFFF
[MPU] FIXME: using generic MPU spells for 200D.
[MPU] FIXME: no MPU button codes for 200D.
Start address: 0xE0000000
Setting BOOTDISK flag to FFFFFFFF
[CPU0] E0007618: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E000763E: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU0] E000766A: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU0] E0007660: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E000766A: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004ADA: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004ADA: MCR p15, ...          : CACHEMAINT x2 (omitted)
[CPU0] E0004ADA: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
<<<<< Musa(PU0) Boot Ver 0.17 (DE) >>>>>
[CPU0] E00076AA: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E0004AFE: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51878
[CPU0] E0004BC8: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU0] E0004AFE: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004B0E: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E0004A5A: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x55555555
[CPU0] E0004A62: MCR p15,0,Rd,cr2,cr0,0:  TTBR0_EL1 <- 0xE0004800
[CPU0] E0004A66: MCR p15,0,Rd,cr2,cr0,1:  TTBR1_EL1 <- 0xE0000080
[CPU0] E0004A6A: MCR p15,0,Rd,cr13,cr0,1: CONTEXTIDR(S) <- 0x0       
[CPU0] E0004A6E: MCR p15,0,Rd,cr2,cr0,2:      TTBCR <- 0x7       
[CPU0] E0004A76: MCR p15,0,Rd,cr8,cr7,0:    TLBIALL <- 0x0       
[CPU0] E0004A7E: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004A7E: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50879
[CPU0] E00076EC: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50879
[CPU0] E00076EC: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E00076EC: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51879
[CPU0] E0007704: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51879
[CPU0] E0007704: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5187D
[CPU0] E0007710: MRC p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 -> 0x45
[CPU0] E0007710: MCR p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 <- 0x45       
[CPU0] E0007710: MRC p15,0,Rd,cr15,cr0,0:  A9_PWRCTL -> 0x0
[CPU0] E0007710: MCR p15,0,Rd,cr15,cr0,0:  A9_PWRCTL <- 0x1       
[CPU0] E0007730: MRC p15,0,Rd,cr15,cr0,1:    A9_DIAG -> 0x0
[CPU0] E0007730: MCR p15,0,Rd,cr15,cr0,1:    A9_DIAG <- 0x400000   
[CPU0] E0004900: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E0004940: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xDF000000
Boot[CPU0] 0010074E: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC6000000
[CPU0] 00100756: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
[CPU0] 0010074E: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC2000000
[CPU0] 00100756: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
Load
SLOT_A LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0x5400
Now jump to AUTOEXEC.BIN(0x00800000)!!
[CPU0] 00800008: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] 00804D16: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 001008D4: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU0] 00804D36: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 00804D3A: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[boot] copy_and_restart 0x1b6300 (1794816)
[BOOT] reserving memory: 0x40000 (262144)
before: user_mem_size = 0x114988 (1132936)
after: user_mem_size = 0xd4988 (870792)
[BOOT] fixing up branch at 0x1b87b0 (1804208)  (ROM: 0xe0040068 (-536608664) ) to 0x1b6369 (1794921)
[BOOT] fixing up branch at 0x1b87e8 (1804264)  (ROM: 0xe00400a0 (-536608608) ) to 0x1b6369 (1794921)
[BOOT] fixing up branch at 0x1b87ba (1804218)  (ROM: 0xe0040072 (-536608654) ) to 0x1b6359 (1794905)
[BOOT] fixing up branch at 0x1b87f2 (1804274)  (ROM: 0xe00400aa (-536608598) ) to 0x1b6359 (1794905)
[BOOT] fixing up branch at 0x1b8808 (1804296)  (ROM: 0xe00400c0 (-536608576) ) to 0x1b8845 (1804357)
[BOOT] fixing up branch at 0x1b8892 (1804434)  (ROM: 0xe004014a (-536608438) ) to 0x1b6351 (1794897)
[BOOT] fixing up branch at 0x1b88f4 (1804532)  (ROM: 0xe00401ac (-536608340) ) to 0x1b6349 (1794889)
[BOOT] changing init_task from 0xe0040225 (-536608219) to 0x1b637d (1794941)
[CPU0] 001B6B96: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 00804CF0: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B6BB6: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 001B6BBA: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[BOOT] jumping to relocated startup code at 0x1b8749 (1804105)
[CPU0] 001B6B70: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B8748: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE021CB60
[CPU0] 001B8752: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU1] E0007618: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000001
[CPU1] E000763E: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU1] E000766A: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU1] E0007660: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E000766A: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU1] E0004ADA: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU1] E0004ADA: MCR p15, ...          : CACHEMAINT x2 (omitted)
[CPU1] E0004ADA: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
[CPU1] E0004AFE: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51878
[CPU1] E0004BB8: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU1] E0004AFE: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU1] E0004B0E: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E0004A5A: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x55555555
[CPU1] E0004A62: MCR p15,0,Rd,cr2,cr0,0:  TTBR0_EL1 <- 0xE0004880
[CPU1] E0004A66: MCR p15,0,Rd,cr2,cr0,1:  TTBR1_EL1 <- 0xE0000080
[CPU1] E0004A6A: MCR p15,0,Rd,cr13,cr0,1: CONTEXTIDR(S) <- 0x1       
[CPU1] E0004A6E: MCR p15,0,Rd,cr2,cr0,2:      TTBCR <- 0x7       
[CPU1] E0004A76: MCR p15,0,Rd,cr8,cr7,0:    TLBIALL <- 0x0       
[CPU1] E0004A7E: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU1] E0004A7E: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50879
[CPU1] E00076EC: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50879
[CPU1] E00076EC: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E00076EC: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51879
[CPU1] E0007704: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51879
[CPU1] E0007704: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5187D
[CPU1] E0007710: MRC p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 -> 0x45
[CPU1] E0007710: MCR p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 <- 0x45       
[CPU1] E0007710: MRC p15,0,Rd,cr15,cr0,0:  A9_PWRCTL -> 0x0
[CPU1] E0007710: MCR p15,0,Rd,cr15,cr0,0:  A9_PWRCTL <- 0x1       
[CPU1] E0007730: MRC p15,0,Rd,cr15,cr0,1:    A9_DIAG -> 0x0
[CPU1] E0007730: MCR p15,0,Rd,cr15,cr0,1:    A9_DIAG <- 0x400000   
[CPU1] E0004A1A: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C5187D
[CPU1] E0004A1A: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5107D
[CPU0] 001B8844: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E06BE23C: MCR p15, ...          : CACHEMAINT x8845 (omitted)
[CPU0] E04B43BE: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC6000000
[CPU0] E04B43C6: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
[CPU0] E04B43BE: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC2000000
[CPU0] E04B43C6: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
[BOOT] autoexec.bin loaded at 1B6300 - 1B9A80.
[BOOT] calling pre_init_task 1B6B19...
[DBG] boot_pre_init_task()
[BOOT] reserved 262144 bytes for ML (used 14208)
[BOOT] starting init_task 200BBC...
K417 READY
[CPU0] [        init:e04bdce7 ] (00:05) [MEM] InitializePermanentMemory 0 4636784
[CPU0] [        init:e01b3235 ] (00:01) [HPC] InitializeHPCopy( 0 )
[CPU0] [        init:e01b3235 ] (00:01) [HPC] InitializeHPCopy( 1 )
[CPU0] [        init:e0584607 ] (00:01) [PM] Disable (ID = 137, cnt = 1/1)
[CPU0] [        init:e0041327 ] (89:16)
                                        K417 ICU Firmware Version 1.0.1 ( 5.0.2 )
[CPU0] [        init:e0041333 ] (89:05)
                                        ICU Release DateTime 2017.09.21 12:53:23
[CPU0] [        init:e04c0ec5 ] (02:01) PROPAD_Initialize CreateBinarySemaphore = 0x4e003a
[CPU0] [        init:e04c0f75 ] (02:01) PROPAD_RegisterOmarSysBlockCBR 0xe00406eb 0xe00406b1
[CPU0] [        init:e0139d3f ] (02:01) PROPTUNEAD_RegisterOmarSysBlockCBR 0xe00406eb 0xe00406b1
[CPU0] [        init:e0048fd7 ] (00:03) [SEQ] CreateSequencer (Startup, Num = 6)
[CPU0] [        init:e004909b ] (00:02) [SEQ] NotifyComplete (Startup, Flag = 0x10000)
[CPU0] [        init:e00490d1 ] (00:03) [SEQ] NotifyComplete (Cur = 0, 0x2018000, Flag = 0x10000)
[BOOT] calling post_init_task 1B6B21...
Free memory: 5B1B44
Logging buffer: 7BA4C4 - 9BA4C3
Free memory: 3B1B34
Replacing DF006E6C DebugMsg with 1B854D...
[CPU0] 001B6B96: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] E06BE168: MCR p15, ...          : CACHEMAINT x1680 (omitted)
[CPU0] 001B6B96: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 001B6BBA: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[CPU0] 001B6B96: MRC p15,1,Rd,cr0,cr0,1:      CLIDR -> 0x9200003
[CPU0] 001B6B70: MCR p15, ...          : CACHEMAINT x514 (omitted)
[CPU0] 001B6B96: MCR p15,2,Rd,cr0,cr0,0:     CSSELR <- 0x0       
[CPU0] 001B6BBA: MRC p15,1,Rd,cr0,cr0,0:     CCSIDR -> 0x700FE019
[CPU0] [        init:001b6b23 ] (00:0f) Logging started.
[CPU0] 001B858C: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[DBG] boot_post_init_task()
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dc0000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dc0004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dc2000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dc2004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dc4000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dc4004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dc6000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dc6004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dc8000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dc8004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dca000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dca004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dcc000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dcc004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dce000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dce004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dd0000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dd0004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dd2000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dd2004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dd4000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dd4004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dd6000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dd6004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dd8000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dd8004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dda000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dda004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1ddc000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1ddc004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dde000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dde004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1de0000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1de0004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1de2000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1de2004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1de4000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1de4004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1de6000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1de6004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1de8000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1de8004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dea000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dea004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dec000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dec004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dee000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dee004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1df0000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1df0004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1df2000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1df2004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1df4000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1df4004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1df6000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1df6004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1df8000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1df8004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dfa000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dfa004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dfc000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dfc004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1dfe000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1dfe004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b90 0xe1de0004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e01b32b5 ] (00:01) [HPC] HPCopy() use ch0 !
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[XDMAC0] Copy [0xE1DE0000] -> [0x409BA540], length [0x00001604], flags [0x00000005]
[XDMAC0] OK
[CPU0] [     RomRead:001b6d9b ] (00:0f) >>> INT-11Eh  E013A8F5(11E)
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] 001B6D9E: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:001b6e67 ] (00:0f) <<< INT-11Eh
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b30 0xe1de2000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b34 0xe1de2004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c14af ] (02:05) PROPAD_CreateFROMPropertyHandle DRAMAddr 0x421f8400
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b18 0xe1980000 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b1c 0xe1980004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e04c1fe1 ] (02:01) ReadUncacheFromData 0x205b78 0xe1980004 0x4
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [     RomRead:e01b32b5 ] (00:01) [HPC] HPCopy() use ch0 !
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[XDMAC0] Copy [0xE1980000] -> [0x421F8400], length [0x00155BB8], flags [0x00000005]
[XDMAC0] OK
[CPU0] [      SFRead:e0139f05 ] (02:05) PROPTUNEAD_CreateFROMPropertyHandleToDRAM Addr:0x416a2c00
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [      SFRead:e01c7b0b ] (02:03) PROPCOMBO_LoadProperty(395)
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] [      SFRead:e01b32b5 ] (00:01) [HPC] HPCopy() use ch1 !
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[XDMAC1] Copy [0xF0890000] -> [0x416A2C00], length [0x000FCBD8], flags [0x00000005]
[XDMAC1] OK
[CPU0] [      DbgMgr:e0584607 ] (00:01) [PM] Disable (ID = 10, cnt = 1/2)
[CPU0] 001B8578: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
     0:4294964.223 [STARTUP]
K417 ICU Firmware Version 1.0.1 ( 5.0.2 )

So, it should switch from cpu0 to cpu1 but it freezes. What can cause the boot process to hang up? Some wrong constants?
#61
I'm not sure it's good... no log is saved to virtual SD.

Led icon is blinking too much fast and by trying to modify the timings (ex. msleep related to off period) in led_blink() doesn't seems to matter.
Screen looks gray like when booted with bootflag disabled, but on top left there is a broken black line.

In console I get no debug messages when bootflag is enabled but this: (compiled with make install_qemu ML_MODULES= from platform/77D)

./run_canon_fw.sh 77D,firmware=boot=1 -d debugmsg

DebugMsg=0xDF006E6C (from GDB script)
00000000 - 3FFFFFFF: eos.ram
40000000 - 7FFFFFFF: eos.ram_uncached
DF000000 - DFFFFFFF: eos.ram_extra
E0000000 - E1FFFFFF: eos.rom0
E2000000 - E3FFFFFF: eos.rom0_mirror
E4000000 - E5FFFFFF: eos.rom0_mirror
E6000000 - E7FFFFFF: eos.rom0_mirror
E8000000 - E9FFFFFF: eos.rom0_mirror
EA000000 - EBFFFFFF: eos.rom0_mirror
EC000000 - EDFFFFFF: eos.rom0_mirror
EE000000 - EFFFFFFF: eos.rom0_mirror
F0000000 - F0FFFFFF: eos.rom1
F1000000 - F1FFFFFF: eos.rom1_mirror
F2000000 - F2FFFFFF: eos.rom1_mirror
F3000000 - F3FFFFFF: eos.rom1_mirror
F4000000 - F4FFFFFF: eos.rom1_mirror
F5000000 - F5FFFFFF: eos.rom1_mirror
F6000000 - F6FFFFFF: eos.rom1_mirror
F7000000 - F7FFFFFF: eos.rom1_mirror
F8000000 - F8FFFFFF: eos.rom1_mirror
F9000000 - F9FFFFFF: eos.rom1_mirror
FA000000 - FAFFFFFF: eos.rom1_mirror
FB000000 - FBFFFFFF: eos.rom1_mirror
FC000000 - FCFFFFFF: eos.rom1_mirror
FD000000 - FDFFFFFF: eos.rom1_mirror
FE000000 - FEFFFFFF: eos.rom1_mirror
FF000000 - FFFFFFFF: eos.rom1_mirror
BFE00000 - DEFFFFFF: eos.mmio
[EOS] enabling code execution logging.
[EOS] loading './77D/ROM0.BIN' to 0xE0000000-0xE1FFFFFF
[EOS] loading './77D/ROM1.BIN' to 0xF0000000-0xF0FFFFFF
[MPU] FIXME: using generic MPU spells for 77D.
[MPU] FIXME: no MPU button codes for 77D.
Start address: 0xE0000000
Setting BOOTDISK flag to FFFFFFFF
[CPU0] E00075E0: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E0007606: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU0] E0007632: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU0] E0007628: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E0007632: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004AC6: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004AC6: MCR p15, ...          : CACHEMAINT x3 (omitted)
[CPU0] E0004AC6: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
<<<<< Musa(PU0) Boot Ver 0.21 >>>>>
[CPU0] E0007672: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU1] E00075E0: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000001
[CPU1] E0004BB2: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU1] E0007606: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xE000001D
[CPU1] E0007632: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x8C50078
[CPU1] E0007628: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E0007632: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU1] E0004AC6: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU1] E0004AC6: MCR p15, ...          : CACHEMAINT x3 (omitted)
[CPU1] E0004AC6: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51878
[CPU1] E0004AEA: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51878
[CPU1] E0004BA0: MCR p15, ...          : CACHEMAINT x512 (omitted)
[CPU1] E0004AEA: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU1] E0004AFA: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E0004A5A: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x55555555
[CPU1] E0004A62: MCR p15,0,Rd,cr2,cr0,0:  TTBR0_EL1 <- 0xE0004880
[CPU1] E0004A66: MCR p15,0,Rd,cr2,cr0,1:  TTBR1_EL1 <- 0xE0000080
[CPU1] E0004A6A: MCR p15,0,Rd,cr13,cr0,1: CONTEXTIDR(S) <- 0x1       
[CPU1] E0004A6E: MCR p15,0,Rd,cr2,cr0,2:      TTBCR <- 0x7       
[CPU1] E0004A76: MCR p15,0,Rd,cr8,cr7,0:    TLBIALL <- 0x0       
[CPU1] E0004A7E: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU1] E0004A7E: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50879
[CPU1] E00076D8: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50879
[CPU1] E00076D8: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU1] E00076D8: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51879
[CPU1] E00076F0: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51879
[CPU1] E00076F0: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5187D
[CPU1] E00076FC: MRC p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 -> 0x45
[CPU1] E00076FC: MCR p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 <- 0x45       
[CPU1] E00076FC: MRC p15,0,Rd,cr15,cr0,0:  A9_PWRCTL -> 0x0
[CPU1] E00076FC: MCR p15,0,Rd,cr15,cr0,0:  A9_PWRCTL <- 0x1       
[CPU1] E000771C: MRC p15,0,Rd,cr15,cr0,1:    A9_DIAG -> 0x0
[CPU1] E000771C: MCR p15,0,Rd,cr15,cr0,1:    A9_DIAG <- 0x400000   
[CPU1] E0004A1A: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C5187D
[CPU1] E0004A1A: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5107D
[CPU0] E0004AEA: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51878
[CPU0] E0004AEA: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50878
[CPU0] E0004AFA: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E0004A5A: MCR p15,0,Rd,cr3,cr0,0:       DACR <- 0x55555555
[CPU0] E0004A62: MCR p15,0,Rd,cr2,cr0,0:  TTBR0_EL1 <- 0xE0004800
[CPU0] E0004A66: MCR p15,0,Rd,cr2,cr0,1:  TTBR1_EL1 <- 0xE0000080
[CPU0] E0004A6A: MCR p15,0,Rd,cr13,cr0,1: CONTEXTIDR(S) <- 0x0       
[CPU0] E0004A6E: MCR p15,0,Rd,cr2,cr0,2:      TTBCR <- 0x7       
[CPU0] E0004A76: MCR p15,0,Rd,cr8,cr7,0:    TLBIALL <- 0x0       
[CPU0] E0004A7E: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50878
[CPU0] E0004A7E: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C50879
[CPU0] E00076D8: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C50879
[CPU0] E00076D8: MCR p15, ...          : CACHEMAINT x1 (omitted)
[CPU0] E00076D8: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C51879
[CPU0] E00076F0: MRC p15,0,Rd,cr1,cr0,0:      SCTLR -> 0x48C51879
[CPU0] E00076F0: MCR p15,0,Rd,cr1,cr0,0:      SCTLR <- 0x48C5187D
[CPU0] E00076FC: MRC p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 -> 0x45
[CPU0] E00076FC: MCR p15,0,Rd,cr1,cr0,1:  ACTLR_EL1 <- 0x45       
[CPU0] E00076FC: MRC p15,0,Rd,cr15,cr0,0:  A9_PWRCTL -> 0x0
[CPU0] E00076FC: MCR p15,0,Rd,cr15,cr0,0:  A9_PWRCTL <- 0x1       
[CPU0] E000771C: MRC p15,0,Rd,cr15,cr0,1:    A9_DIAG -> 0x0
[CPU0] E000771C: MCR p15,0,Rd,cr15,cr0,1:    A9_DIAG <- 0x400000   
[CPU0] E0004900: MRC p15,0,Rd,cr0,cr0,5:      MPIDR -> 0x80000000
[CPU0] E0004940: MCR p15,0,Rd,cr12,cr0,0:       VBAR <- 0xDF000000
Boot[CPU0] 00100752: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC6000000
[CPU0] 0010075A: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
[CPU0] 00100752: MCR p15,0,Rd,cr7,cr8,0:        ATS <- 0xC2000000
[CPU0] 0010075A: MRC p15,0,Rd,cr7,cr4,0:        PAR -> 0xB
Load
SLOT_A LOAD OK.
Open file for read : AUTOEXEC.BIN
File size : 0xA0
Now jump to AUTOEXEC.BIN(0x00800000)!!


I should try to put some debug messages (probably qprintf because not sure how to set gdb) to understand what code is executed, but I'm short in time now so will try in next days.
#62
Quote from: a1ex on March 09, 2019, 05:23:42 PM
QEMU error: when in doubt, copy the commands from the guide. You've got an extra space that's not present in the READMEs (at least I couldn't find it). I'm hijacking an option from vanilla QEMU, as their command line parser doesn't seem the easiest thing to figure out.
Yes, put a space when was't needed. Thank You a1ex.

How is debugging process of stubs in qemu minded?
Do I need to call each stubs by modified test code in minimal-d78.c and check for their behaviour using return value or expected outcome?

Currently I can see in qemu only the blinking red icon on bottom right of the screen, I imagine is led_blink() test.
#63
First try using "make install_qemu ML_MODULES=" didn't work; so copied a compiled version of arkanoid.mo (from another camera compiled in the same branch) after the second pass of module compilation, then run "make zip" and got this error:

/Library/Developer/CommandLineTools/usr/bin/make -C ../../minimal/ MODEL=77D FW_VERSION=100
/Library/Developer/CommandLineTools/usr/bin/make -C hello-world/.
[ CC       ]   reboot-dumper.o
[ CC       ]   footer.o
[ LD       ]   autoexec
[ XOR_CHK  ]   ../../build_tools/xor_chk
../../build_tools/xor_chk.c:48:88: warning: format specifies type
      'unsigned long' but the argument has type 'uint64_t' (aka
      'unsigned long long') [-Wformat]
  ...error (expected 0x%lX, got 0x%lX)\n", 0xCCCCCCCCE12FFF13, footer_magic);
                                  ~~~                          ^~~~~~~~~~~~
                                  %llX
1 warning generated.
[ OBJCOPY  ]   autoexec.bin
[ XOR_CHK  ]   autoexec.bin
[ CPP      ]   magiclantern.lds
[ AS       ]   entry.o
[ CC       ]   minimal.o
In file included from minimal.c:5:0:
../../src/dryos.h:37:17: fatal error: gui.h: No such file or directory
compilation terminated.
make[2]: *** [minimal.o] Error 1
make[1]: *** [hello-world/.] Error 2
make: *** [minimal_check] Error 2

retried with "make install_qemu ML_MODULES=" and got no errors.

Unfortunately I still have a problem with qemu I can't solve:

./run_canon_fw.sh 77D, firmware=boot=0

DebugMsg=0xDF006E6C (from GDB script)
qemu-system-arm: -M 77D,: drive with bus=0, unit=0 (index=0) exists

I get that on each try, whether camera model is specified...
I don't know if it screwed after installing/updating packages with brew some days ago, got some errors and had to reinstall some of them.
#64
Tried to compile digic6-dumper for 77D using the partial Stubs.S, but failed when doing "make zip":

.. other failing modules...

Building module edmac...
Updated HGVERSION
[ README   ]   module_strings.h
[ CC       ]   edmac.o
[ CC       ]   edmac_util.o
[ CC       ]   edmac_test.o
[ CC       ]   md5.o
[ HGDIFF   ]   hgdiff.tmp
[ MODULE   ]   edmac.mo
[ STRIP    ]   edmac.mo
[ OBJCOPY  ]   edmac.mo
[ RM       ]   hgdiff.tmp
[ STRIP    ]   edmac.sym
[ STRIP    ]   edmac.sym
[ RM       ]   localsyms
[ EXPORTS  ]   edmac.sym
000018f0 edmac_format_size
[ DEPENDS  ]   edmac.dep
Not checked (compile ML for these cameras first):
    100D, 1100D, 200D, 500D, 50D, 550D, 5D2, 5D3.113, 5D3.123, 5D4, 5DS, 5DSR, 600D, 60D, 650D, 6D, 6D2, 700D, 760D, 77D, 7D, 7D2, 80D, EOSM, M50, R
make[5]: *** [edmac.dep] Error 1

********************************************************
WARNING: module edmac failed to build, deleting
********************************************************

[ RM       ] edmac.o edmac_util.o edmac_test.o md5.o edmac.mo edmac.sym edmac.dep edmac.zip module_strings.h hgdiff.tmp *.o *.d *.dep *.sym hgstamp
[ MKDIR    ]   ML directory structure...
cp ../modules/*/*.mo /Users/alex/Desktop/pullML/official/platform/77D.100/zip/ML/modules/
cp: ../modules/*/*.mo: No such file or directory
make[2]: *** [install] Error 1
make[1]: *** [CONFIG_MODULES_install] Error 2
make: *** [install] Error 2


Should I compile using minimal build or special commands?

Noticed I got the same for 200D... Already tried to reclone repo to get a fresh copy...
#65
I tried to compile for 5D last month using vxworks branch an as you said I got stuck trying to solve a lot of errors...

Many of trubles appear to come due to the custom gui.c and other sources code in platform/5dc folder, which are defined for the vxworks specific cameras; I have no experience with these one, making this harder...

Here is the diff I stopped at: (noting more than change stuffs to be able to move at next errors)

diff --git a/platform/Makefile.platform.map b/platform/Makefile.platform.map
--- a/platform/Makefile.platform.map
+++ b/platform/Makefile.platform.map
@@ -13,11 +13,11 @@
     700D.115 \
     EOSM.202 \
     1100D.105 \
+    5DC.111 \
     6D.116

PLATFORM_MAP_UNMAINTAINED = \
     40D.111 \
-    5DC.111 \
     100D.100 \


diff --git a/src/bmp.h b/src/bmp.h
--- a/src/bmp.h
+++ b/src/bmp.h
@@ -10,17 +10,17 @@

/*
  * Copyright (C) 2009 Trammell Hudson <[email protected]>
- *
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the
  * Free Software Foundation, Inc.,
@@ -39,36 +39,43 @@

/** Returns a pointer to the real BMP vram, as reported by Canon firmware.
  *  Not to be used directly - it may be somewhere in the middle of VRAM! */
-inline uint8_t* bmp_vram_raw() { return bmp_vram_info[1].vram2; }
+inline uint8_t* bmp_vram_raw() { return bmp_vram_info[1].vram2; }

/**
  * The total BMP area starts at 0x***80008 or 0x***00008 and has 960x540 pixels.
- *
- * Normally, only the center part (720x480) is used. So, Canon BMP functions
+ *
+ * Normally, only the center part (720x480) is used. So, Canon BMP functions
  * will return a pointer with an offset equal to 30*960 + 120 => VRAM address will end in 0x7100.
- *
+ *
  * End of BMP VRAM is at 0x***80008 + 0x7E900 (960x540). It's not safe to write past this address.
- *
- * The problem is that HDMI properties are not reliable for telling HDMI size
+ *
+ * The problem is that HDMI properties are not reliable for telling HDMI size
  * (race condition while changing display modes).
- *
+ *
  * Workaround: ML will always use a pointer to the CROPPED (720x480) BMP VRAM.
- *
+ *
  * Advantages:
- *
+ *
  * - Zero chances to write past the end of the VRAM due to race condition when changing display modes
  * - Everything you draw on the screen will be visible and centered well on HDMI
  * - Keeps most of the existing code (designed for LCD) unchanged
- *
+ *
  * Disadvantage:
  * - On HDMI, you may have to draw BEHIND the VRAM pointer (you can go at most 30 lines and 120 columns back).
  *   Could be a bit ugly to code.
- *
+ *
  */

/** These are the hard limits - never ever write outside them! */
#ifdef CONFIG_VXWORKS

+//int D2V(unsigned color);
+void set_ml_palette();
+/** converting dryos palette to vxworks one */
+extern char bmp_palette_lut[80];
+
+#define D2V(color) bmp_palette_lut[COERCE(color, 0, 79)]
+
#define BMP_W_PLUS 720
#define BMP_W_MINUS 0
#define BMP_H_PLUS 480
@@ -400,7 +407,7 @@


/** 5dc bitmap icons (ones that work and what they are) */
-/* 
+/*
  0x9EBDEF   =   squigly line like a tilde
  0x8DBCEF   =   dash
  0xBA96EE   =   play icon
diff --git a/src/fio-ml.c b/src/fio-ml.c
--- a/src/fio-ml.c
+++ b/src/fio-ml.c
@@ -83,7 +83,7 @@

     char drive_path[4];
     snprintf(drive_path, sizeof(drive_path), "%s:/", card->drive_letter);
-   
+
     if (!cf_card_workaround)
     {
         /* save the config with workaround enabled now, because if the test fails, we may no longer able to save it */
@@ -110,7 +110,7 @@
         FIO_CloseFile(f);
         FIO_RemoveFile(testFile);
         bmp_fill(COLOR_BLACK, 0, 0, 400, 38);
-       
+
         if (fail) // fsck!
         {
             int warning_enabling_workaround = (cf_card_workaround==0 && card->drive_letter[0] == 'A');
@@ -132,7 +132,7 @@
                 info_led_blink(1, 1000, 1000);
             }
         }
-       
+
         if (!cf_card_workaround)
         {
             /* test OK, save config once again to make sure we won't end up with the compatibility flag enabled by mistake */
@@ -143,7 +143,7 @@
}
#endif

-/**
+/**
  * Called from debug_init_stuff
  */
void _card_tweaks()
@@ -153,19 +153,19 @@
     {
         if (available_cards[CARD_A].free_space_raw > 10) card_test(&available_cards[CARD_A]);
         if (available_cards[CARD_B].free_space_raw > 10) card_test(&available_cards[CARD_B]);
-       
+
         /* if it reaches this point, the cards are OK */
         card_test_enabled = 0;
     }
#endif
-   
+
#ifdef CONFIG_DUAL_SLOT
     /* on startup enforce selected card.
        if that card type is not available, canon will ignore this change */
     if (card_force_type)
     {
         uint32_t value = card_force_type;
-       
+
         /* ensure valid property value (side effect safe) */
         if ((value == 1 && is_dir("A:/")) ||
             (value == 2 && is_dir("B:/")))
@@ -195,14 +195,14 @@
{
     /* note: this function is called before load_fonts, so in order to print something, we need to load them */
     _load_fonts();
-   
+
     if (!DISPLAY_IS_ON)
     {
         /* force playback mode if we start with display off */
         SetGUIRequestMode(1);
         msleep(1000);
     }
-   
+
     bmp_printf(FONT_LARGE, 0, 0, msg);
     redraw_after(5000);
}
@@ -218,7 +218,7 @@
         ml_cf = is_file("A:/AUTOEXEC.BIN");
         ml_sd = is_file("B:/AUTOEXEC.BIN");
     }
-   
+
     /* maybe todo: if both cards have autoexec, check which one is bootable? important? */

     if (ml_cf && !ml_sd)
@@ -241,7 +241,7 @@
         startup_warning("Could not find ML files.");
     }
}
-
+#if !defined(CONFIG_VXWORKS) // DryOS
PROP_HANDLER(PROP_CARD_SELECT)
{
     int card_select = buf[0] - 1;
@@ -312,7 +312,7 @@
{
     available_cards[CARD_C].folder_number = buf[0];
}
-
+#endif // DryOS
PROP_HANDLER(PROP_DCIM_DIR_SUFFIX)
{
     snprintf(dcim_dir_suffix, sizeof(dcim_dir_suffix), (const char *)buf);
@@ -362,14 +362,14 @@
{
     char new_filename[FIO_MAX_PATH_LENGTH];
     fixup_filename(new_filename, filename, sizeof(new_filename));
-   
+
     FILE* f = _FIO_OpenFile(new_filename, mode);
-   
+
     if (f != PTR_INVALID)
     {
         return f;
     }
-   
+
     return 0;
}

@@ -444,7 +444,7 @@
{
     //~ NotifyBox(2000, "create dir: %s ", path); msleep(2000);
     // B:/ML/something
-   
+
     if (is_dir(path)) return;

     int n = strlen(path);
@@ -498,7 +498,7 @@
     {
         return f;
     }
-   
+
     /* return 0 on error, just like in plain C */
     return 0;
}
@@ -600,13 +600,13 @@
     FIO_CloseFile(f);
     FIO_CloseFile(g);
     fio_free(buf);
-   
+
     if (err)
     {
         FIO_RemoveFile(dst);
         return -1;
     }
-   
+
     /* all OK */
     return 0;
}
@@ -641,7 +641,7 @@
     {
         return 0; // this dir does not exist
     }
-    else
+    else
     {
         FIO_FindClose(dirent);
         return 1; // dir found
@@ -751,13 +751,13 @@
         .children =  (struct menu_entry[]) {
             /*
             {
-                .name = "CF card",
+                .name = "CF card",
                 .update = &card_info_display,
                 .help = "CF card info: make and model."
             },*/
#ifdef CONFIG_5D3
             {
-                .name = "Card test at startup",
+                .name = "Card test at startup",
                 //~ .priv = &card_test_enabled, /* don't use priv, so it doesn't get displayed in the modified settings menu */
                 .select = card_test_toggle,
                 .update = card_test_update,
@@ -772,7 +772,7 @@
             },
#endif
             {
-                .name = "Preferred card",
+                .name = "Preferred card",
                 .priv = &card_force_type,
                 .min = 0,
                 .max = 2,
@@ -790,7 +790,7 @@
     #ifdef CONFIG_DUAL_SLOT
     menu_add( "Prefs", card_menus, COUNT(card_menus) );
     #endif
-   
+
     #ifdef CARD_A_MAKER
     available_cards[CARD_A].maker = (char*) CARD_A_MAKER;
     available_cards[CARD_A].model = (char*) CARD_A_MODEL;
diff --git a/src/gui-common.h b/src/gui-common.h
--- a/src/gui-common.h
+++ b/src/gui-common.h
@@ -36,17 +36,17 @@
  */
/*
  * Copyright (C) 2009 Trammell Hudson <[email protected]>
- *
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the
  * Free Software Foundation, Inc.,
@@ -171,6 +171,8 @@
#define GUISTATE_PLAYMENU 0
#define GUISTATE_MENUDISP 1
#define GUISTATE_QR 2
+#define GUISTATE_QR_ZOOM 12 // QuickReview zoom
+
// 3:   QR erase [unused?]
#define GUISTATE_IDLE 4
#define GUISTATE_QMENU 9
diff --git a/src/mem.c b/src/mem.c
--- a/src/mem.c
+++ b/src/mem.c
@@ -1,11 +1,11 @@
/**
  * Memory management routines that can wrap all malloc-like memory backends in a transparent way.
- *
+ *
  * Instead of a few small allocation functions, from user code you will only see a huge memory pool, ready to use.
- *
- * Temporary hack: in order to work with existing code,
+ *
+ * Temporary hack: in order to work with existing code,
  * it intercepts calls to malloc/free, AllocateMemory, alloc_dma_memory, shoot_malloc and SmallAlloc.
- *
+ *
  * Implementation based on memcheck by g3gg0.
  */
#define NO_MALLOC_REDIRECT
@@ -82,9 +82,9 @@
     mem_free_func free_dma;
     mem_get_free_space_func get_free_space; /* can be null; if unknown, it's assumed to be large enough (30 MB) */
     mem_get_max_region_func get_max_region; /* can be null; if unknown, it's assumed to be free space / 4 */
-   
+
     int is_preferred_for_temporary_space;   /* prefer using this for memory that will be freed shortly after used */
-   
+
     int preferred_min_alloc_size;           /* if size is outside this range, it will try from other allocators */
     int preferred_max_alloc_size;           /* (but if it can't find any, it may still use this buffer) */
     int preferred_free_space;               /* if free space would drop under this, will try from other allocators first */
@@ -92,7 +92,7 @@
     int minimum_alloc_size;                 /* will never allocate a buffer smaller than this */
     int depends_on_malloc;                  /* will not allocate if malloc buffer is critically low */
     int try_next_allocator;                 /* if this allocator fails, try the next one */
-   
+
     /* private stuff */
     int mem_used;
     int num_blocks;
@@ -186,7 +186,7 @@
         .free_dma = _shoot_free,
         .get_free_space = _shoot_get_free_space,
         .get_max_region = _shoot_get_free_space,    /* we usually have a bunch of large contiguous chunks */
-       
+
         .is_preferred_for_temporary_space = 1,  /* if we know we'll free this memory quickly, prefer this one */

         /* AllocateContinuousMemoryResource also calls malloc for each request, and may run out of space (5D3) */
@@ -273,11 +273,11 @@
const char * format_memory_size(uint64_t size)
{
     static char str[16];
-   
+
     const uint32_t kB = 1024;
     const uint32_t MB = 1024*1024;
     const uint64_t GB = 1024*1024*1024;
-   
+
     if (size >= 10*GB)
     {
         int size_gb = (size + GB/2) / GB;
@@ -338,7 +338,7 @@

     unsigned int failed = 0;
     unsigned int failed_pos = 0;
-   
+
     for(int pos = sizeof(struct memcheck_hdr); pos < MEM_SEC_ZONE; pos++)
     {
         unsigned char value = ((unsigned char *)ptr)[pos];
@@ -407,7 +407,7 @@
         {
             task_name = current_task->name;
         }
-       
+
         if (allocator >= 0 && allocator < COUNT(allocators))
         {
             allocator_name = allocators[allocator].name;
@@ -429,25 +429,25 @@
             file, line, task_name
         );
     }
-   
+
     if (entry < COUNT(memcheck_entries))
     {
         memcheck_entries[entry].failed |= failed;
     }
-   
+
     return failed;
}

static unsigned int memcheck_get_failed()
{
     unsigned int buf_pos = 0;
-   
+
     for(buf_pos = 0; buf_pos < MEMCHECK_ENTRIES; buf_pos++)
     {
         if(memcheck_entries[buf_pos].ptr)
         {
             memcheck_check(memcheck_entries[buf_pos].ptr, buf_pos);
-           
+
             /* marked as failed? */
             if(memcheck_entries[buf_pos].failed)
             {
@@ -465,13 +465,13 @@
#endif

     int tries = MEMCHECK_ENTRIES;
-   
+
     unsigned int state = cli();
     while(memcheck_entries[memcheck_bufpos].ptr != 0)
     {
         memcheck_bufpos++;
         memcheck_bufpos %= MEMCHECK_ENTRIES;
-       
+
         if(--tries <= 0)
         {
             ((struct memcheck_hdr *)ptr)->id = UNTRACKED;
@@ -485,9 +485,9 @@
     memcheck_entries[memcheck_bufpos].file = file_name_without_path(file);
     memcheck_entries[memcheck_bufpos].line = line;
     memcheck_entries[memcheck_bufpos].task_name = current_task->name;
-   
+
     ((struct memcheck_hdr *)ptr)->id = memcheck_bufpos;
-   
+
     sei(state);
}

@@ -523,7 +523,7 @@
             {
                 memcheck_entries[i].ptr = (intptr_t) PTR_INVALID;
                 memcheck_entries[i].failed |= (0x00000001 | failed);
-            }           
+            }
         }
     }
     else
@@ -538,7 +538,7 @@
static void *memcheck_malloc( unsigned int len, const char *file, unsigned int line, int allocator_index, unsigned int flags)
{
     unsigned int ptr;
-   
+
     //~ dbg_printf("alloc %d %s:%d\n ", len, file, line);
     //~ int t0 = get_ms_clock_value();

@@ -554,7 +554,7 @@

     //~ int t1 = get_ms_clock_value();
     //~ dbg_printf("alloc returned %x, took %s%d.%03d s\n", ptr, FMT_FIXEDPOINT3(t1-t0));
-   
+
     /* some allocators may return invalid ptr; discard it and return 0, as C malloc does */
     if ((intptr_t)ptr & 1) return 0;
     if (!ptr) return 0;
@@ -574,13 +574,13 @@

     /* did our allocator return a cacheable or uncacheable pointer? */
     unsigned int uncacheable_flag = (ptr == (unsigned int) UNCACHEABLE(ptr)) ? UNCACHEABLE_FLAG : 0;
-   
+
     ((struct memcheck_hdr *)ptr)->length = len;
     ((struct memcheck_hdr *)ptr)->allocator = allocator_index;
     ((struct memcheck_hdr *)ptr)->flags = flags | uncacheable_flag;

     memcheck_add(ptr, file, line);
-   
+
     /* keep track of allocated memory and update history */
     allocators[allocator_index].num_blocks++;
     allocators[allocator_index].mem_used += len + 2 * MEM_SEC_ZONE;
@@ -589,7 +589,7 @@
     alloc_total_peak_with_memcheck = MAX(alloc_total_peak_with_memcheck, alloc_total_with_memcheck);
     history[history_index] = MIN(alloc_total_with_memcheck / 1024, USHRT_MAX);
     history_index = MOD(history_index + 1, HISTORY_ENTRIES);
-   
+
     return (void*)(ptr + MEM_SEC_ZONE);
}

@@ -598,9 +598,9 @@
     unsigned int ptr = ((unsigned int)buf - MEM_SEC_ZONE);

     int failed = memcheck_check(ptr, 0xFFFFFFFF);
-   
+
     memcheck_remove(ptr, failed);
-   
+
     /* if there are errors, do not free this block */
     if (failed)
     {
@@ -641,7 +641,7 @@
         require_tmp == 1 ? "tmp1 " : require_tmp == 2 ? "tmp2 " : require_tmp == -1 ? "tmp_no" : require_tmp ? "err" : "",
         require_dma ? "dma " : ""
     );
-   
+
     for (int a = 0; a < COUNT(allocators); a++)
     {
         int has_non_dma = allocators[a].malloc ? 1 : 0;
@@ -668,17 +668,17 @@
             dbg_printf("%s: tmp mismatch (%d,%d)\n", allocators[a].name, require_tmp, preferred_for_tmp);
             continue;
         }
-       
+
         /* matches preferred size criteria? */
         int preferred_min = allocators[a].preferred_min_alloc_size;
         int preferred_max = allocators[a].preferred_max_alloc_size ? allocators[a].preferred_max_alloc_size : INT_MAX;
-        if
+        if
             (!(
                 (
                     require_preferred_size <= 0||
                     (size >= preferred_min && size <= preferred_max)
                 )
-                &&
+                &&
                 (
                     /* minimum_alloc_size is important, but can be relaxed as a last resort
                      * (e.g. don't allocate 5-byte blocks from shoot_malloc, unless there is no other way) */
@@ -690,7 +690,7 @@
             dbg_printf("%s: pref size mismatch (req=%d, pref=%d..%d, min=%d)\n", allocators[a].name, size, preferred_min, preferred_max, allocators[a].minimum_alloc_size);
             continue;
         }
-       
+
         /* do we have enough free space without exceeding the preferred limit? */
         int free_space = allocators[a].get_free_space ? allocators[a].get_free_space() : 30*1024*1024;
         //~ dbg_printf("%s: free space %s\n", allocators[a].name, format_memory_size(free_space));
@@ -713,7 +713,7 @@
             dbg_printf("%s: free space mismatch (req=%d,free=%d,pref=%d,min=%d)\n", allocators[a].name, size, free_space, allocators[a].preferred_free_space, allocators[a].minimum_free_space);
             continue;
         }
-       
+
         /* do we have a large enough contiguous chunk? */
         /* use a heuristic if we don't know, use a safety margin even if we know */
         int max_region = allocators[a].get_max_region ? allocators[a].get_max_region() - 1024 : free_space / 4;
@@ -722,7 +722,7 @@
             dbg_printf("%s: max region mismatch %s\n", allocators[a].name, format_memory_size(max_region));
             continue;
         }
-       
+
         /* if this allocator requires malloc for its internal data structures,
          * do we have enough free space there? (if not, we risk ERR70) */
         if (allocators[a].depends_on_malloc && GetFreeMemForMalloc() < 8*1024)
@@ -730,7 +730,7 @@
             dbg_printf("%s: not enough space for malloc (%d)\n", allocators[a].name, GetFreeMemForMalloc());
             continue;
         }
-       
+
         /* yes, we do! */
         return a;
     }
@@ -740,12 +740,12 @@
static int choose_allocator(int size, unsigned int flags)
{
     /* note: free space routines may be queried more than once (this can be optimized) */
-   
+
     int needs_dma = (flags & MEM_DMA) ? 1 : 0;
     int prefers_tmp = (flags & MEM_TEMPORARY) ? 1 : (flags & MEM_SRM) ? 2 : -1;
-   
+
     int a;
-   
+
     /* first try to find an allocator that meets all the conditions (preferred size, free space, temporary preference and DMA); */
     a = search_for_allocator(size, 1, 1, prefers_tmp, needs_dma);
     if (a >= 0) return a;
@@ -773,7 +773,7 @@
         a = search_for_allocator(size, 0, 0, 0, needs_dma);
         if (a >= 0) return a;
     }
-   
+
     /* DMA is mandatory, don't relax it */

     /* last resort: try ignoring the free space / block size limits */
@@ -793,13 +793,13 @@
     take_semaphore(mem_sem, 0);

     dbg_printf("alloc(%s) from %s:%d task %s\n", format_memory_size_and_flags(size, flags), file, line, current_task->name);
-   
+
     /* show files without full path in error messages (they are too big) */
     file = file_name_without_path(file);

     /* choose an allocator (a preferred memory pool to allocate memory from it) */
     int allocator_index = choose_allocator(size, flags);
-   
+
     /* did we find one? */
     if (allocator_index >= 0 && allocator_index < COUNT(allocators))
     {
@@ -811,13 +811,13 @@
             allocators[allocator_index].get_free_space ? allocators[allocator_index].get_free_space() : -1,
             allocators[allocator_index].get_max_region ? allocators[allocator_index].get_max_region() : -1
         );
-       
+
         #ifdef MEM_DEBUG
         int t0 = get_ms_clock_value();
         #endif
-       
+
         void* ptr = memcheck_malloc(size, file, line, allocator_index, flags);
-       
+
         if (!ptr && allocators[allocator_index].try_next_allocator)
         {
             ptr = memcheck_malloc(size, file, line, allocator_index + 1, flags);
@@ -826,7 +826,7 @@
         #ifdef MEM_DEBUG
         int t1 = get_ms_clock_value();
         #endif
-       
+
         if (!ptr)
         {
             /* didn't work? */
@@ -842,11 +842,11 @@

             dbg_printf("alloc ok, took %s%d.%03d s => %x (size %x)\n", FMT_FIXEDPOINT3(t1-t0), ptr, size);
         }
-       
+
         give_semaphore(mem_sem);
         return ptr;
     }
-   
+
     /* could not find an allocator (maybe out of memory?) */
     snprintf(last_error_msg_short, sizeof(last_error_msg_short), "alloc(%s)", format_memory_size_and_flags(size, flags));
     snprintf(last_error_msg, sizeof(last_error_msg), "No allocator for %s at %s:%d, %s.", format_memory_size_and_flags(size, flags), file, line, current_task->name);
@@ -870,7 +870,7 @@
     buf = (flags & UNCACHEABLE_FLAG) ? UNCACHEABLE(buf) : CACHEABLE(buf);

     dbg_printf("free(%x %s) from task %s\n", buf, format_memory_size_and_flags(((struct memcheck_hdr *)ptr)->length, flags), current_task->name);
-   
+
     if (allocator_index >= 0 && allocator_index < COUNT(allocators))
     {
         memcheck_free(buf, allocator_index, flags);
@@ -880,7 +880,7 @@
     {
         dbg_printf("free fail\n");
     }
-   
+
     give_semaphore(mem_sem);
}

@@ -1044,7 +1044,7 @@

     /* test the new SRM job allocator */
     struct memSuite * srm_suite = _srm_malloc_suite(0);
-   
+
     if (!srm_suite)
     {
         beep();
@@ -1052,7 +1052,7 @@
         give_semaphore(mem_sem);
         return;
     }
-   
+
     srm_num_buffers = srm_suite->num_chunks;
     currentChunk = GetFirstChunkFromSuite(srm_suite);
     srm_buffer_size = GetSizeOfMemoryChunk(currentChunk);
@@ -1074,7 +1074,7 @@
     ASSERT(srm_buffer_size * srm_num_buffers == srm_suite->size);

     exmem_clear(srm_suite, 0);
-   
+
     _shoot_free_suite(shoot_suite);
     _srm_free_suite(srm_suite);

@@ -1181,12 +1181,12 @@
             MENU_SET_VALUE("%s", format_memory_size(max_shoot_malloc_frag_mem));
             MENU_SET_WARNING(MENU_WARN_INFO, shoot_malloc_frag_desc);
             guess_needed = 1;
-           
+
             /* paint memory map */
             for (int i = 0; i < 720; i++)
                 if (memory_map[i])
                     draw_line(i, 400, i, 410, memory_map[i]);
-           
+
             /* show some common addresses on the memory map */
             for (int i = 0; i < COUNT(common_addresses); i++)
             {
@@ -1228,7 +1228,7 @@
                 MENU_SET_VALUE("%s of ",format_memory_size(ml_used_mem));
                 MENU_APPEND_VALUE("%s", format_memory_size(ml_reserved_mem));
             }
-           
+
             if (ml_reserved_mem < ml_used_mem)
             {
                 MENU_SET_WARNING(MENU_WARN_ADVICE, "ML uses too much memory!!");
@@ -1265,7 +1265,7 @@
         entry->shidden = 1;
         return;
     }
-   
+
     MENU_SET_NAME(allocators[index].name);

     int used = allocators[index].mem_used;
@@ -1282,7 +1282,7 @@
         MENU_SET_VALUE("%s used", format_memory_size(used));
         MENU_SET_HELP("Memory used from %s. %d blocks allocated.", allocators[index].name, allocators[index].num_blocks);
     }
-   
+
     if (allocators[index].get_max_region)
     {
         MENU_SET_WARNING(MENU_WARN_INFO, "Max region: %s.", format_memory_size(allocators[index].get_max_region()));
@@ -1291,7 +1291,7 @@
     {
         MENU_SET_WARNING(MENU_WARN_ADVICE, "This allocator does not implement get_max_region.");
     }
-   
+
     if (free_space > 0 && free_space < allocators[index].preferred_free_space)
     {
         MENU_SET_WARNING(MENU_WARN_ADVICE, "Would be nice to have at least %s free here.", format_memory_size(allocators[index].preferred_free_space));
@@ -1306,7 +1306,7 @@
         /* this will fill last_error strings if there's any error */
         memcheck_get_failed();
     }
-   
+
     if (strlen(last_error_msg))
     {
         MENU_SET_NAME("Memory Error");
@@ -1336,11 +1336,11 @@
         {
             void* ptr = (void*) memcheck_entries[buf_pos].ptr;
             if (!ptr) continue;
-           
+
             int size = ((struct memcheck_hdr *)ptr)->length;
             int flags = ((struct memcheck_hdr *)ptr)->flags;
             int allocator = ((struct memcheck_hdr *)ptr)->allocator;
-           
+
             if (size < 32768 || y > 300)
             {
                 small_blocks++;
@@ -1375,13 +1375,13 @@

         bmp_printf(FONT_MED, x, y, msg);
         y += font_med.height * 2;
-       
+
         /* show history */
-       
+
         int first_index = history_index + 1;
         while (history[first_index] == 0)
             first_index = MOD(first_index + 1, HISTORY_ENTRIES);
-       
+
         int peak_y = y+10;
         int peak = alloc_total_peak_with_memcheck / 1024;
         int total = alloc_total_with_memcheck / 1024;
@@ -1492,8 +1492,9 @@
             MENU_EOL
         },
     },
+    #endif
};
-#endif
+

void mem_menu_init()
{
diff --git a/src/property.h b/src/property.h
--- a/src/property.h
+++ b/src/property.h
@@ -4,17 +4,17 @@
  */
/*
  * Copyright (C) 2009 Trammell Hudson <[email protected]>
- *
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the
  * Free Software Foundation, Inc.,
@@ -245,7 +245,7 @@

// values of PROP_WB_MODE_*:
#define WB_AUTO 0
-#define WB_SUNNY 1
+#define WB_SUNNY 1
#define WB_SHADE 8
#define WB_CLOUDY 2
#define WB_TUNGSTEN 3
@@ -330,7 +330,7 @@
#define PROP_VIDEOSNAP_MODE 0x80000041
//Passwords around 0x77cb4 but no dialog :( Def=0000
//0x2 Restricted Mode (mymenu only) /0x1 Normal? /0x0 Off
-#define PROP_PHOTO_STUDIO_MODE 0x80040016
+#define PROP_PHOTO_STUDIO_MODE 0x80040016
#define PROP_GPS_TIME_SYNC 0x80040045
#define PROP_GUIGROUND_STATE 0x80020011
#define PROP_STROBO_SYNC_AV 0x8000004c //Array 0x77C04
@@ -377,7 +377,7 @@
// buf[1]: 14 if 1080p (20fps), 1e if 720p or 480p (30fps)
// buf[2]: a if 1080p (1/2 of 20fps??), f if 720p or 480p (1/2 of 30fps??)
#else
-#define PROP_VIDEO_MODE 0x80000039
+#define PROP_VIDEO_MODE 0x80000039
// buf[0]: 8 if crop else 0
// buf[1]: 0 if full hd, 1 if 720p, 2 if 680p
// buf[2]: fps
@@ -408,8 +408,22 @@
     #define PROP_CARD_RECORD       0x8003000B
     #define PROP_CLUSTER_SIZE      0x2010004
     #define PROP_FREE_SPACE        0x2010006
+  /*  #define PROP_CARD_SELECT  0x0
+    #define PROP_CLUSTER_SIZE_A 0x1
+    #define PROP_CLUSTER_SIZE_B 0x2
+    #define PROP_CLUSTER_SIZE_C 0x3
+    #define PROP_FREE_SPACE_A 0x4
+    #define PROP_FREE_SPACE_B 0x5
+    #define PROP_FREE_SPACE_C 0x6
+    #define PROP_FILE_NUMBER_A  0x7
+    #define PROP_FILE_NUMBER_B  0x8
+    #define PROP_FILE_NUMBER_C  0x9
+    #define PROP_FOLDER_NUMBER_A  0x10
+    #define PROP_FOLDER_NUMBER_B  0x11
+    #define PROP_FOLDER_NUMBER_C  0x12
+    */
#else // DryOS
-   
+
     #define PROP_CARD_SELECT         0x80040002 //  1=CF, 2=SD

     // CF card
@@ -425,7 +439,7 @@
     #define PROP_CLUSTER_SIZE_B      0x02010007
     #define PROP_FREE_SPACE_B        0x0201000a
     #define PROP_CARD_RECORD_B       0x8003000c
-   
+
     // WFT drive
     #define PROP_FOLDER_NUMBER_C     0x02010002
     #define PROP_FILE_NUMBER_C       0x02010005
@@ -504,7 +518,7 @@
#define PROP_LOUDNESS_BUILT_IN_SPEAKER 0x205001B
#define PROP_LED_LIGHT 0x80030042
#define PROP_AFSHIFT_LVASSIST_STATUS 0x8003003D
-#define PROP_AFSHIFT_LVASSIST_SHIFT_RESULT 0x8003003E
+#define PROP_AFSHIFT_LVASSIST_SHIFT_RESULT 0x8003003E
#define PROP_MULTIPLE_EXPOSURE_CTRL 0x80070001
#define PROP_MIRROR_DOWN_IN_MOVIE_MODE 0x80030034

@@ -534,7 +548,7 @@
#define PROP_DCIM_DIR_SUFFIX 5 // :)
#define PROP_FILE_PREFIX 0x1000007

-#define PROP_AEB 0x8000000B
+#define PROP_AEB 0x8000000B


#ifdef CONFIG_600D
@@ -565,7 +579,7 @@
  * int* data = 0;
  * int len = 0;
  * int err = prop_get_value(prop, &data, &len);
- *
+ *
  * Returns 0 on success.
  */
// int prop_get_value( unsigned property, void** addr, size_t* len );


A1ex pointed me at trying with vxworks-dm-spy intead, as he told me it was compiling for other cameras not so much time ago; but I didn't tried to see if it's better for 5D.
#66
Quote from: AF-OFF on March 03, 2019, 10:43:04 PM
Yes, works for me on 50D . I can zoom in, and record 2000x1078 rav video , zoom out and record 1584x1056 , both 12bit uncompressed and 24fps.
See screenshot of damaged frame - each zoomed clip has two damged frames at the beginnig, frame 002 and 003.
Magnification (5x 10x) is without pink hue, I have had using another build.



Confirmed. Same here with a quick test in 5x mode using mlv_lite.

Tried to record a clip with mlv_rec and it doesn't show broken second and third frames
#67
@dfort Have you already tried to use the "not so good" stub for x5 mode?
Is the different version of patch_hook_function() needed because of the sligthly different disassembly?

Can't test x5 mode on 50D, but I think it should works.
Will try to record a quick video as soon as possible.
#68
Quote from: dfort on February 28, 2019, 08:51:32 PM
Right, on the 7D these stubs show up only once. I did take a close look at them and it seems that the second one (StartImagePass_x5_SetEDmac) can be matched perfectly to what works on the 5D2/50D but the stub you came up with is slightly different. Is there a reason for that? Here's the "perfect" match:
platform/7D.203/stubs.S
NSTUB(0xFF27F43C, StartImagePass_x5_SetEDmac)

Maybe I mixed the the two when looking again at the address before posting. Need to recheck...

To use as reference... this is what is showing on 50D:



Last message in console show up when exiting from LV

Quote from: a1ex on February 28, 2019, 09:17:28 PM
Jump out of range: see the 1300D thread for some background info. On ARM, you cannot jump more than 32 MB with one instruction; you would have to patch two instructions in the original code (i.e. a use long jump).

On 7D, it's easy to fix - in the dm-spy-experiments branch (where I need to patch stuff for logging purposes) I'm starting ML on this camera with the "classic" method (PR #731). I had some trouble with that PR on 60D, though; need to double-check. The new boot method should fix the patch issues.
just to have a better pictures:
Do it need two instructions in ARM mode into one, so 64bit length in total for the long jump instruction?
Is it done automatically by the patchmanger backend or need to manually add a new "instruction patch request" to make it works?
Or Do we need to fork the changes from PR #731 and apply there the patches instead?

Quote from: a1ex on February 28, 2019, 09:17:28 PM
Memory map (including ROM mirrors) is displayed in QEMU at startup.
Yeah, remembered about this, so tried to look at 50D to understand what address range to use, but found that I can't run it anymore...
Something screwed at yesterday after installing exiv2 using packet manager...

./run_canon_fw.sh 50D, firmware=boot=0

DebugMsg=0xFF863B10 (from GDB script)
qemu-system-arm: -M 50D,: drive with bus=0, unit=0 (index=0) exists

Reinstalled QEMU but still there... need to figure out what do do....
Then finally forget to post the message for dfort...

On the PR #731 I read: "enable this on 7D (done, please test), maybe also 50D and 700D"
Is there something I can do?
Testing or looking for something? (in that case need some explanation to understand what to do)
#69
Quote from: dfort on February 28, 2019, 03:29:22 AM
There's a note about the subs needing to start at 0xFF9 but the 7D disassembly doesn't match the mirroring of the 5D2 and 50D which are so far the only two cameras working on that branch--right?
Are we sure that there is a mirroring also on the 7D?

If I look in both 50D and 5D2 disassembly I can find 4 references for the string "StartPass_x1 CrawAddr : %lx / KindOfCraw : %d" / "StartImagePass_x1 CrawAddr : %lx / KindOfCraw : %d", but only 2 for 7D; same for the second stub.

Try inserting some debug messages to check patch execution:

diff --git a/src/patch.c b/src/patch.c
--- a/src/patch.c
+++ b/src/patch.c
@@ -926,6 +926,7 @@

int patch_hook_function(uintptr_t addr, uint32_t orig_instr, patch_hook_function_cbr logging_function, const char * description)
{
+    printf("In patch_hook_function()\n");
     int err = 0;

     /* ensure thread safety */
@@ -944,6 +945,7 @@
     
     if (logging_slot < 0)
     {
+        printf("patch_hook_function() - Error no logging slot available!\n");
         snprintf(last_error, sizeof(last_error), "Patch error at %x (no logging slot)", addr);
         puts(last_error);
         err = E_PATCH_TOO_MANY_PATCHES;
@@ -957,6 +959,7 @@
     if (!check_jump_range((uint32_t) &hook->reloc_insn, (uint32_t) addr + 4) ||
         !check_jump_range((uint32_t) addr,              (uint32_t) hook))
     {
+        printf("patch_hook_function() - Error jump out of range!\n");
         snprintf(last_error, sizeof(last_error), "Patch error at %x (jump out of range)", addr);
         puts(last_error);
         err = E_PATCH_UNKNOWN_ERROR;
@@ -989,12 +992,14 @@

     /* since we have modified some code in RAM, sync the caches */
     sync_caches();
-   
+
+    printf("patch_hook_function() - Patching the original instruction!\n");
     /* patch the original instruction to jump to the logging code */
     err = patch_instruction(addr, orig_instr, B_INSTR(addr, hook), description);
     
     if (err)
     {
+        printf("patch_hook_function() - Error something went wrong?\n");
         /* something went wrong? */
         memset(hook, 0, sizeof(union logging_hook_code));
         goto end;
diff --git a/src/raw.c b/src/raw.c
--- a/src/raw.c
+++ b/src/raw.c
@@ -1755,6 +1755,7 @@
     int ok = raw_lv_get_resolution(&width, &height);
     if (ok)
     {
+      //  printf("raw_lv_setedmac_patch() - Updating EDMAC image size\n");
         /* update EDMAC image size */
         int pitch = width * raw_info.bits_per_pixel / 8;
         static struct edmac_info dst_edmac_info;
@@ -2021,8 +2022,11 @@
#ifndef CONFIG_EDMAC_RAW_SLURP
     call("lv_save_raw", 1);
#ifdef CONFIG_EDMAC_RAW_PATCH
+    printf("patch_hook_function() - Trying to patch RAW LV x1\n");
     patch_hook_function((uint32_t) &StartImagePass_x1_SetEDmac, 0xE3A03202, raw_lv_setedmac_patch, "RAW LV x1");
+    printf("patch_hook_function() - Trying to patch RAW LV x5\n");
     patch_hook_function((uint32_t) &StartImagePass_x5_SetEDmac, 0xE3A03202, raw_lv_setedmac_patch, "RAW LV x5");
+    printf("patch_hook_function() - Done\n");
#endif
#endif

@@ -2066,6 +2070,7 @@
#ifndef CONFIG_EDMAC_RAW_SLURP
     call("lv_save_raw", 0);
#ifdef CONFIG_EDMAC_RAW_PATCH
+    printf("Unpatching RAW LV x1/x5\n");
     unpatch_memory((uint32_t) &StartImagePass_x1_SetEDmac);
     unpatch_memory((uint32_t) &StartImagePass_x5_SetEDmac);
#endif
#70
@zLost I'm trying to understand what attribute is used on each editing software and what metadata need to be rewritten to have correct lens name embedded in the picture.

I selected "Samyang 8mm f/3.5 UMC Fish-Eye CS II" from the script and taken a CR2 picture without a lens installed, so no lens-related metadata were included.

XMP sidecar looks like this: (let's keep it simple for now, no exif:lensModel or others... is exif:lensModel to be preferred to aux:lens instead?)

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c011 79.156380, 2014/05/21-23:38:37        ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:exif="http://ns.adobe.com/exif/1.0/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
    exif:ExifVersion="0230"
    exif:FocalLength="8/1"
    exif:FNumber="35/10"
    aux:SerialNumber="0"
    aux:Lens="Samyang 8mm f/3.5 UMC Fish-Eye CS II"
    exif:MaxApertureValue="35/10"
    exif:MinApertureValue="226/10">
  </rdf:Description>
</rdf:RDF>
</x:xmpmeta>


Lens correction profile is applied automatically with Photoshop and probably also with Lightroom, but other software appear to skip the sidecar and try to recognise lens using metadata...

EXIF looks like this with exiv2 and exiftool:

exiv2 -g Lens -g Aperture -Pknyt IMG_2321.CR2
Exif.Photo.ApertureValue                     ApertureValue               Rational   Finf
Exif.CanonCs.LensType                        LensType                    Short      (0)
Exif.CanonCs.Lens                            Lens                        Short      0.0 mm
Exif.CanonCs.MaxAperture                     MaxAperture                 Short      65504
Exif.CanonCs.MinAperture                     MinAperture                 Short      65504
Exif.CanonCs.DisplayAperture                 DisplayAperture             Short      0
Exif.CanonSi.TargetAperture                  TargetAperture              Short      65504
Exif.CanonSi.ApertureValue                   ApertureValue               Short      65504
Exif.Canon.LensModel                         LensModel                   Ascii


Lens Type                       : Unknown (0)
Lens Model                      :
Lens                            : 0.0 mm
Lens ID                         : Unknown (0)
Lens                            : 0.0 mm (35 mm equivalent: 0.0 mm)


Now let's rewrite metadata with this command line (from one of your posts):

exiv2 -k -M"set Exif.CanonCs.LensType 65535" -M "set Exif.CanonCs.MinAperture 285" -M "set Exif.Photo.ApertureValue 322363/65536" -M "set Exif.CanonCs.Lens 180 180 1" -M "set Exif.Photo.LensSpecification 180/1 180/1 56/10 56/10" -M "set Exif.Photo.MaxApertureValue 322363/65536" -M "set Exif.Photo.LensSerialNumber 1728275" -M "set Exif.CanonSi.TargetAperture 157" -M "set Exif.Canon.LensModel Telemegor 180mm f/5.5" -M "set Exif.Photo.LensModel Telemegor 180mm f/5.5" -M "set Exif.Photo.FocalLength 180/1" -M "set Exif.CanonSi.ApertureValue 157" -M "set Exif.CanonCs.MaxAperture 157" -M "set Exif.Photo.FNumber 55/10" -M "set Xmp.aux.Lens Meyer-Optik Gorlitz Telemegor 180mm f/5.5" -M "set Exif.Image.LensInfo 180/1 180/1 56/10 56/10" -M "set Exif.Photo.LensMake Meyer-Optik Gorlitz" IMG_2321_test.CR2


Exif.Photo.ApertureValue                     ApertureValue               Rational   F5.5
Exif.Photo.MaxApertureValue                  MaxApertureValue            Rational   F5.5
Exif.CanonCs.LensType                        LensType                    Short      n/a
Exif.CanonCs.Lens                            Lens                        Short      180.0 mm
Exif.CanonCs.MaxAperture                     MaxAperture                 Short      F5.5
Exif.CanonCs.MinAperture                     MinAperture                 Short      F22
Exif.CanonCs.DisplayAperture                 DisplayAperture             Short      0
Exif.CanonSi.TargetAperture                  TargetAperture              Short      F5.5
Exif.CanonSi.ApertureValue                   ApertureValue               Short      F5.5
Exif.Canon.LensModel                         LensModel                   Ascii      Telemegor 180mm f/5.5
Exif.Photo.LensSpecification                 LensSpecification           Rational   180/1 180/1 56/10 56/10
Exif.Photo.LensMake                          LensMake                    Ascii      Meyer-Optik Gorlitz
Exif.Photo.LensModel                         LensModel                   Ascii      Telemegor 180mm f/5.5
Exif.Photo.LensSerialNumber                  LensSerialNumber            Ascii      1728275
Exif.Image.LensInfo                          LensInfo                    Rational   180/1 180/1 56/10 56/10
Xmp.aux.Lens                                 Lens                        XmpText    Meyer-Optik Gorlitz Telemegor 180mm f/5.5


Lens is showed differently on each software:

Adobe Photoshop                          -> Telemegor 180mm f/5.5
DxO Optic Pro 10                          -> 180mm
Darktable                                     -> n/a                                            ---> is the same for you zLost?
RawTherapee / Preview(MacOS)     ->  Canon Telemegor 180mm f/5.5   ---> what is causing the prefix?

Let's try compare with a picture taken with an automatic lens: (Tamron SP AF 17-50mm F/2.8 XR Di II LD Aspherical [IF])

exiv2 -g Lens -g Aperture -Pknyt IMG_1874.CR2
Exif.Photo.ApertureValue                     ApertureValue               Rational   F3.5
Exif.CanonCs.LensType                        LensType                    Short      Tamron AF 17-50mm f/2.8 Di-II LD Aspherical
Exif.CanonCs.Lens                            Lens                        Short      17.0 - 50.0 mm
Exif.CanonCs.MaxAperture                     MaxAperture                 Short      F2.8
Exif.CanonCs.MinAperture                     MinAperture                 Short      F32
Exif.CanonCs.DisplayAperture                 DisplayAperture             Short      0
Exif.CanonSi.TargetAperture                  TargetAperture              Short      F3.6
Exif.CanonSi.ApertureValue                   ApertureValue               Short      F3.6
Exif.Canon.LensModel                         LensModel                   Ascii      17-50mm


Lens Type                       : Canon EF 28-70mm f/2.8L USM or Sigma or Tamron Lens
Lens Model                      : 17-50mm
Lens                            : 17.0 - 50.0 mm
Lens ID                         : Tamron AF 17-50mm f/2.8 Di-II LD Aspherical
Lens                            : 17.0 - 50.0 mm (35 mm equivalent: 26.9 - 79.2 mm)


This is what I have observed:

Adobe Photoshop             -> 17-50mm                                                                     ----> is using "Exif.Canon.LensModel" (NO Automatic lens corretion!)
DxO Optic Pro 10             -> Tamron SP AF17-50mm f/2.8 XR DI ii LD Aspherical (IF)
                                           looks like is comparing "Exif.CanonCs.LensType" with an internal lenses database (prompt for downloading correct module)
Darktable                        -> Tamron AF 17-50mm f/2.8 Di-II LD Aspherical                ----> is using "Exif.CanonCs.LensType" straight off exiv2
RawTherapee                   -> Canon 17-50mm                                                          ----> looks like is using "Exif.Canon.LensModel" with "Canon" as prefix (still Bad...)
Preview(MacOS)              -> Tamron AF 17-50mm f/2.8 Di-II LD Aspherical                ----> looks better now... is "Exif.CanonCs.LensType"

So, it's important to override Exif.Canon.LensModel with correct lens name (maker + model), find a way to handle "Exif.CanonCs.LensType" (Lens ID database) plus additional infos about focal length and aperture to make software heuristic happy?

Can someone try to replicate this experiment with your lenses (both Canon and Third Party if possible) and editing software?
#71
Quote from: masc on February 26, 2019, 07:51:43 PM
:o This was never an issue in past, as I can remember.
This issues was potentially already present but not noticed before (it's related to the issue reported from JohanJ in this thread but present in all other branches), because probabily none of the chipped Lenses have long name.

I have previously modified LENS block to safely add termination char as showed in previous links, but then g3gg0 suggested to don't use it as he prefer to not have mandatory "\0" in the string of a MLV block, so stick with this method (you can find it in all the other branches).

In practice: LENS block is without termination character with lens name >= 32 byte (otherwise should be copied from lens_info.lensName when assigning is done but only with the a1ex's fix linked before applied to source code), while ELNS will have it as safety in mlv.c when building block due to snprintf().

Quote from: masc on February 26, 2019, 07:51:43 PM
So what should be the correct name of your lens used? "Samyang 8mm f/3.5 UMC Fish-Eye C" (32 chars) or "Samyang 8mm f/3.5 UMC Fish-Eye " (31 chars)?
It should be none of the above but "Samyang 8mm f/3.5 UMC Fish-Eye CS II", assuming you want to keep info showed in the same way (ie. not replicating some infos in separate textbox).

I would suggest you to retrieve lens name from ELNS block; well... always use it if available :)
It would contain the complete name or the exact name if less than 32 bytes length (corner case of lens with 31 chars + "/0" added from ML code) compared to the one in LENS.

Quote from: masc on February 26, 2019, 07:51:43 PM
Thanks for the clip.
Thank you for adding support to MLV App!
#72
Quote from: masc on February 23, 2019, 07:31:43 PM
Done for MLVApp. But it is 100% untested. Need such a MLV file. Some frames are enough.
Here is a mlv file done with Full-Res Silent Pictures, with 2 different lenses selected from the script.

For your interest:
When printing lens name from LENS block in "Clip Information Windows", it's also printing the serial number at the end of the string; this was fixed in mlv_dump and it's because of the missing null terminator character of the string (it's optional as described in MLV specification and it's not inserted when strncpy a name with more than 31 chars, due to lens_info.lensName being truncated)
#73
Quote from: zLOST on February 08, 2019, 04:52:15 PM
my version of {lens|xmp|ui|logger}.lua is at https://www.zlej.net/manual_lens.tar.gz (you'll just need to delete settings/LENS.LCF, otherwise it will keep on crashing when loading/saving the configuration due to added "Format" select to the lens configuration menu),

Thank you zLost! Had a look to understand why my version of xmp.lua with added support for array of property wasn't working and found i wasn't converting to table before adding them.

It's not currently present in the updated PR at the moment to keep it simple, but I was thinking that is good to add and leave the possibility to use this features in the future.

Quote from: zLOST on February 08, 2019, 04:52:15 PM
With my "exiv2" template the output is not a XMP sidecarfile for each photo, but one bash script (with one line being added for each pic), which i'll run once i'm done with shooting and it updates the exif data of the existing CR2/JPG files, so no messing with metadata during saving the picture. So this should be safe way to get the data there ;)

An example of such line is:

exiv2 -k -M"set Exif.CanonCs.LensType 65535" -M "set Exif.CanonCs.MinAperture 288" -M "set Xmp.aux.Lens Meyer-Optik Gorl
itz Telemegor 180mm f/5.5" -M "set Exif.CanonCs.Lens 180 180 1" -M "set Exif.Photo.LensSpecification 180/1 180/1 56/10 5
6/10" -M "set Exif.Photo.MaxApertureValue 325770/65536" -M "set Exif.Photo.FNumber 55/10" -M "set Exif.Photo.FocalLength
180/1" -M "set Exif.Photo.LensMake Meyer-Optik Gorlitz" -M "set Exif.CanonSi.TargetAperture 157" -M "set Exif.CanonSi.A
pertureValue 157" -M "set Exif.CanonCs.MaxAperture 159" -M "set Exif.Photo.ApertureValue 322363/65536" -M "set Exif.Cano
n.LensModel Telemegor 180mm f/5.5" -M "set Exif.Photo.LensModel Telemegor 180mm f/5.5" -M "set Exif.Photo.LensSerialNumb
er 1728275" -M "set Exif.Image.LensInfo 180/1 180/1 56/10 56/10" IMG_6929.CR2

This looks interesting :)

I would add a new menu (like for Autoload option) to "Lens Pref" instead of inside "Lens" submenu, just to have all the options organised and easy accessible.

"Config.lua" library already support multiple menus and config tables in the same script in this branch

Quote from: zLOST on February 08, 2019, 04:52:15 PM
There are changes all over the place, so it may be better to discuss this by email, skype, icq or irc.
We could add a couple of commits with your features in the PR if we can manage to keep script simple (both usage and code complexity).

Take a look on how mercurial (Sourcetree or equivalent gui) works and how to contribute :)

Quote from: zLOST on February 08, 2019, 05:07:25 PM
What about an external DB of lenses and user will only say, which are of some interest for him/her? ;)
Currently the script already have it in a certain way: It's the table "Lenses" with the commented entry (Carl Zeiss, Nikon, Samyang...).

At the moment on each script update, the user need to insert again his lenses to the table...

It's possible to create a config from that table and add it automatically to the generated configuration file (lens.lcf), but it's a bit ugly:

return {
       [1] = {
        ["name"] = "My Lens",
        ["focal_length"] = 50,
        ["manual_aperture"] = "1.8"
       },
       [2] = {
        ["name"] = "My Other Lens",
        ["focal_length"] = 25,
        ["manual_aperture"] = "2.8",
        ["f_values"] = {
          [1] = "2.8",
          [2] = "4",
          [3] = "5.6",
          [4] = "8"}
        },
["Autoload Lens"] = "ON",
["Manual Lens"] = {
["Lens"] = 1,
["Aperture"] = "1.8",
["Focal Length"] = 50,
},
}

Maybe it's better to put it inside a "Lenses" block so it's a bit easier to understand what is it by looking at the config.

I was trying to add this directly to the library by adding and additional parameter to the function responsible for config creation, but got some problems and was taking too much time.

It can also be done in the script by doing something like this:

ExampleTable = {Lenses = {...}}
lenses_cfg = config.create(ExampleTable)


Quote from: aprofiti on February 08, 2019, 03:18:16 PM
Attribute added locally:
-Fmin,Fmax (from zLOST)
-lens specification (from zLOST)
Would like to calculate aperture min and max from FNumber automatically instead of adding 2 more attribute to lenses.
Quote from: zLOST on February 08, 2019, 05:07:25 PM
I've added a function set_lens_defaults(), which generates certain attributes. Including the Fmax Fmin from f_values (if available)...
Made a in a similiar way. First was added to restore_lens_values, then refactored a bit and added update_aperture_focal_range(), because it was using common code needed when switching lens and autoloading the script.

Quote from: dfort on February 06, 2019, 05:50:35 AM
The Samyang lens didn't do as well in ACR.
The profile should be included.
I'm still a little bit temped to not separate Lens name in Make + Model if possible... but these cases is what is making things hard regarding automatic profile selection...

From what i have understood by reading your posts, is that each editor may look for different attribute when selecting profile (Lens, Lens Make, Lens Model....)
Update the image's attributes by modifying exif like zLost did with exiv2 is something to keep in mind.

Updated the PR with latest tweaks (except for lensSpecification and support for multiple name for the same attribute in xmp.lua), so now it's possible to compile a non crashing build for all cameras to experiment with it.
#74
To all crop_rec_4k users:
I'm currently working in extending and porting manual_lens_info to crop_rec.
Made a PR here and uploaded a compiled version for all supported camera models at this download page.

I need your help with testing because my camera is not supported on this branch, please report you findings!

Some notes:

  • It include ELNS block in metadata, so most editor may fail to open to MLV files.
    @Ilia3101 and all others devs of MLV processing tools. May be a good chance to add support for it or make editor robust and skip unknown blocks
  • Verify metadata with mlv_dump compiled from the new branch
  • Config.lua is different and use .lcf extension instead of .cfg.
    Please verify if there are some conflicts with any existing script (api should be the same).
    It now support multiple separate menus and config in the same script
  • mlv_lite was the biggest diff to check after merging in this branch, so check also for problems or missing features

Please test overal stability especially when recording raw videos!!!
#75
I replaced with _clean_d_cache() and found the reference; error is probably due to some refactor like this commit.
Tried also with sync_caches() and I had to change to _sync_caches()

But it doesn't compile for 7D (no problems for 50D without any changes needed):

Using ~/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-gcc (preferred).
[ VERSION  ]   ../../platform/7D_MASTER.203/version.bin
[ CC       ]   master_boot.o
[ LD       ]   magiclantern
gdb.o: In function `gdb_unarm_bkpt':
gdb.c:(.text+0x2ec): undefined reference to `unpatch_memory'
gdb.o: In function `gdb_arm_bkpt':
gdb.c:(.text+0x380): undefined reference to `patch_instruction'
make: *** [magiclantern] Error 1

It strange because they are defined in patch.c and his header is already included in gdb.c...

@a1ex maybe is there some makefile/external reference/header to update for 7D?