i decided to start a thread about this topic.
in canon's firmware we have three options how to allocate memory and where to place data.
1) malloc
2) AllocateMemory (MemoryManager)
3) AllocateMemoryResource (RscMgr, Srm)
1) malloc
the first one, malloc, i am not sure where the memory is located and where it gets initialized. maybe alex can give some hint.
2) AllocateMemory
the second, AllocateMemory is a memory pool between 0x3D0000 and 0xD00000 on 7D and a few others.
its structures contain a reference to the string "MemoryManager".
it's initialized on startup right after "K250S READY" is written to debug port.
> AllocateMemory_Init(&off_3D0000, 0xD00000)
the structure for every memory is 0x0C bytes big block starts with a pointer to next block, then a poiner to previous block.
Magic Lantern was either placed in malloc or in AllocateMemory region by patching the end address for initialization calls
3) AllocateMemoryResource
the new method that was tested on 60D and 7D in the last days is based on shooting memory where images get buffered when shooting until they are saved to card.
the manager that handles all requests is called RscMgr (ResourceManager) and closely tied to Srm (StorageManager?)
this memory is usually fragmented, which means you cannot simply allocate 1 MiB in one piece.
well, this might succeed, but you are likely to get a list of memory blocks that are in sum your requested size.
the good thing is, you can allocate up to 250 MiB depending on your camera.
it is initialized like that:
> v3 = SRM_Initialize(0x13, 0x40D00000u, 0x1F300000, (int)StartupSequencer_NotifyComplete, 0x20000, startupCacheFreeCallback, 0);
> if ( v3 )
> DryosDebugMsg(0x8B, 6, (char *)&"SRM_Initialize (%#x)", v3);
the value 0x40D00000 tells the start address (0x00D00000 uncached) and its length (the rest of the memory).
so this memory region starts right after the AllocateMemory region-
some will notice that the LV buffers etc are also within that memory range. right. not sure yet how RscMgr manages
the memory chunks and which "application" gets which buffer.
it is likely that the RscMgr has some addresses like the LV buffers hardcoded.
as we now can patch the end of the RscMgr memory pool, simply by replacing 0x1F300000 with 0x1F200000, we
get some memory (2 MiB) at 0x1F200000 that remains unused.
what has to be checked, is the question if the LV buffers or some other memory users that RscMgr handles,
use hardcoded addresses and we cause trouble to them this way.
until now it looks stable. :)
Thanks g3gg0, I'm off finding the right memory locations on the 1100D :)
So, from the 650D code:
ROM:FF0C44C8 LDR R0, =StartupSequencer_NotifyComplete
ROM:FF0C44CC LDR R2, =startupCacheFreeCallback
ROM:FF0C44D0 MOV R3, #0
ROM:FF0C44D4 MOV R1, #0x20000
ROM:FF0C44D8 STMEA SP, {R0-R3}
ROM:FF0C44DC LDR R3, =0x1F2C4000
ROM:FF0C44E0 LDR R2, =0x40D3C000
ROM:FF0C44E4 LDR R0, =0xC0220068
ROM:FF0C44E8 MOV R1, #0x12
ROM:FF0C44EC BL SRM_Initialize
1100D/600D Code (600D starts at ROM:FF01360C)
ROM:FF0135FC LDR R0, =StartupSequencer_NotifyComplete
ROM:FF013600 MOV R3, #0
ROM:FF013604 ADR R2, startupCacheFreeCallback
ROM:FF013608 MOV R1, #0x20000
ROM:FF01360C STMEA SP, {R0-R3}
ROM:FF013610 LDR R3, =0x1F300000
ROM:FF013614 LDR R0, =0xC0220098
ROM:FF013618 MOV R1, #0x12
ROM:FF01361C RSB R2, R3, R3,LSL#9
ROM:FF013620 BL SRM_Initialize
now you have to patch the DATA for the LDR. this is the address where the LDR R3, =0x1F300000 gets the 1F3000000 from.
should be right below the function.
> #define RSCMGR_MEMORY_PATCH_END 0xF80..... (yes, 0xF800!!! also on your cameras)
interesting that the 650D has 0x1F2C4000 bytes only.... hmm
after you defined that struct, make sure you set RESTARTSTART to 0x1FE00100 (original value minus 2MiB)
Am I correct in assuming that we need to patch both the start and end addresses on the 1100D/600D otherwise it may not work properly?
If I only patch LDR R3 , the 0x40D00000 becomes 0x20E00000 (wrong caching bit and a possible waste of memory)
no, just patch the end address.
change 0x1F300000 to 0x1F100000, do not touch the start address
if you are interested where the LV buffer addresses come from, here the code that initializes the addresses.
int __fastcall RscMgr_Init(int zero_1, int zero_2, int priority, unsigned int rscMemoryBase, int memSize, int some_sub, int some_size_maybe, int (__fastcall *startupCacheFreeCallback)(int, int, int, int), int zero)
{
// [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
result = (int)RscMgr;
if ( !RscMgr )
{
pRscMgr_ = (struc_RscMgr *)AllocateMemory(0x2B4);
pRscMgr = pRscMgr_;
if ( !pRscMgr_ )
assert("pRscMgr != NULL", "RscMgr.c", 0xD2);
pRscMgr_->name = "RscMgr";
task = CreateTaskClass((_BYTE *)"RscMgr", priority, 0, 0xC8, srmEventDispatch);
pRscMgr->hTaskClass = task;
if ( task & 1 )
assert("IS_ERROR( pRscMgr->hTaskClass ) == FALSE", "RscMgr.c", 0xD6);
pRscMgr->field_C = zero_1;
srmState = CreateSRMState(pRscMgr);
pRscMgr->hCurrentStateObject = srmState;
if ( srmState & 1 )
assert("IS_ERROR( pRscMgr->hCurrentStateObject ) == FALSE", "RscMgr.c", 0xDA);
if ( SearchFromProperty(0x3003E, (signed int)&pPropData, (int)&v43, v15) & 1 )
assert("IS_ERROR( err ) == FALSE", "RscMgr.c", 0xDD);
property_data = *(_DWORD *)pPropData;
RscMgr = pRscMgr;
pRscMgr->memAddr = rscMemoryBase;
pRscMgr->memSize = memSize;
pRscMgr->YUV422_LV_BUFFER_1.address = rscMemoryBase + property_data + 0xE00000;
v17 = property_data + (((rscMemoryBase >> 0x19) + 1) << 0x19);
pRscMgr->YUV422_LV_BUFFER_2.address = v17 + 0x1A300000;// 0x42000000 +
pRscMgr->YUV422_LV_BUFFER_3.address = v17 + 0x1D116000;// 0x42000000 +
pRscMgr->YUV422_LV_BUFFER_1.flags = 0xFFFFFFFF;
pRscMgr->YUV422_LV_BUFFER_2.flags = 0xFFFFFFFF;
pos = 0;
pRscMgr->YUV422_LV_BUFFER_3.flags = 0xFFFFFFFF;
do
{ // code below refers to ->buf_smth_0 up to ->buf_smth_15
addr = ((((unsigned int)pRscMgr->memAddr >> 0x19) + 1) << 0x19) + 0x36000 * pos + 0x1AA23980;
v20 = (unsigned int *)((char *)pRscMgr + 8 * pos++);
v20[0x29] = addr;
v20[0x2A] = 0xFFFFFFFF;
}
while ( pos < 8 );
pos = 0;
do
{
addr = ((((unsigned int)pRscMgr->memAddr >> 0x19) + 1) << 0x19) + 0x36000 * pos + 0x1D588780;
v23 = (unsigned int *)((char *)pRscMgr + 8 * pos++);
v23[0x39] = addr;
v23[0x3A] = 0xFFFFFFFF;
}
while ( pos < 8 );
v24 = j_CreateMessageQueue("MEMORY_QUEUE_SRM", 6, 4);
RscMgr->hMemoryQueue = v24;
if ( v24 & 1 )
assert("IS_ERROR( this->hMemoryQueue ) == FALSE", "RscMgr.c", 0xF7);
v25 = j_CreateMessageQueue("STORAGE_QUEUE_SRM", 3, 4);
RscMgr->hStorageQueue = v25;
if ( v25 & 1 )
assert("IS_ERROR( this->hStorageQueue ) == FALSE", "RscMgr.c", 0xFA);
DryosDebugMsg(
0x80,
0x16,
(char *)"hMemoryQueue (0x%X) hStorageQueue (0x%X)",
RscMgr->hMemoryQueue,
RscMgr->hStorageQueue);
if ( SearchFromProperty(2, (signed int)&prop_data, (int)&v43, v26) & 1 )
assert("IS_ERROR( err ) == FALSE", "RscMgr.c", 0xFF);
v27 = RscMgr;
EOSM, While the VM boots up
ROM:FF0C47D0 LDR R0, =StartupSequencer_NotifyComplete
ROM:FF0C47D4 LDR R2, =startupCacheFreeCallback
ROM:FF0C47D8 MOV R3, #0
ROM:FF0C47DC MOV R1, #0x20000
ROM:FF0C47E0 STMEA SP, {R0-R3}
ROM:FF0C47E4 LDR R3, =0x1F294000
ROM:FF0C47E8 LDR R2, =0x40D6C000
ROM:FF0C47EC LDR R0, =0xC0220068
ROM:FF0C47F0 MOV R1, #0x12
ROM:FF0C47F4 BL SRM_Initialize
Looks like 650D family cameras have less memory in this pool
yep, same here. subtract 2MiB from that 0x1F294000 and see if it crashes :)
I'm still not totally convinced about patching only the end address though...
Any reason why we can't fix the start one at the correct location?
why would we want to change the start address?
we want to make RscMgr's memory pool smaller to use it partially for magic lantern.
thats the reason why we cut 2 megabytes from the end
But since the start address is computed from the end address, aren't we ending up with a wrong start address too? (and wasting the memory between the old start and the new start)
(That is, if my computations aren't wrong)
btw, the RscMgr uses some data from the properties to determine some memory addresses.
<Property Id="00000002" Length="000001E4">
<String>Canon EOS 7D__...</String>
<Data>
43616E6F 6E20454F 53203744 00000000 00000000 00000000 00000000 00000000
50020080 9A310000 F0140000 C00D0000 F0140000 BC0D0000 F0140000 BC0D0000
300F0000 200A0000 200A0000 C0060000 300F0000 200A0000 200A0000 C0060000
40140000 800D0000 800D0000 00090000 00000000 00000000 00000000 00000000
200A0000 C0060000 40140000 800D0000 A0000000 78000000 9E020000 B0010000
B0010000 20010000 B0010000 20010000 B0010000 20010000 B0010000 20010000
A8000000 38000000 E7140000 B70D0000 00000000 00000000 2F0F0000 1F0A0000
00000000 00000000 1F0A0000 BF060000 00000000 00000000 2F0F0000 1F0A0000
00000000 00000000 1F0A0000 BF060000 15000000 00000000 9C020000 AF010000
00000000 00000000 AF010000 1F010000 00000000 00000000 AF010000 1F010000
00000000 00000000 AF010000 1F010000 00000000 00000000 AF010000 1F010000
0010B446 333B6C46 02000000 C0060000 70070000 08000000 10050000 10050000
05000000 60030000 60030000 08000000 10050000 10050000 05000000 60030000
60030000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 B8040000 F0020000 F0080000 5A030000 F0080000
5A030000
</Data>
</Property>
the red marked words of the properties are used to calculate some internal parmeter .
and this one determines the YUV buffer 1 start address
<Property Id="0003003E" Length="00000004">
<String>_x__</String>
<Data>00780000</Data>
</Property>
pRscMgr->YUV422_LV_BUFFER_1.address = rscMemoryBase + property_data + 0xE00000; // rscMemoryBase is 0x40D00000
the same property 0x3003E is also used in H264 codec as memory offset for some ENGIO operation.
the function PlayBack_H264DecForHdPath_c_H264DataSize get passed that parameter as 7th argument and
passes it again to AJ_stuff_Eng_IO_p3 which access EDMAC registers.
> SRM_Initialize(0x13, 0x40D00000u, 0x1F300000, (int)StartupSequencer_NotifyComplete, 0x20000, startupCacheFreeCallback, 0);
0x40D00000 is the start address
0x1F300000 is the length
now you change 0x1F300000 to 0x1F100000 and keep the start address the same.
nothing else changes.
ROM:FF0C4510 MOV R1, #0x20000
ROM:FF0C4514 STMEA SP, {R0-R3}
ROM:FF0C4518 LDR R3, =0x1F2C4000
ROM:FF0C451C LDR R2, =0x40D3C000
ROM:FF0C4520 LDR R0, =0xC02200B8
ROM:FF0C4524 MOV R1, #0x12
ROM:FF0C4528 BL sub_FF0EFDF4
ROM:FF0C452C CMP R0, #0
ROM:FF0C4530 MOVNE R3, R0
ROM:FF0C4534 ADRNE R2, aSrm_initialize ; "SRM_Initialize (%#x)"
6D. So far no luck booting. Light stays solid.
Ok, I had to make clean, it wasn't taking the restart restart address. Now I boot without LV :(
#define RSCMGR_MEMORY_PATCH_END 0xF80C4518
RESTARTSTART = 0x1FE00100
FF01361C: e88d000f stm sp, {r0, r1, r2, r3} ⬁
FF013620: e59f32b4 ldr r3, [pc, #692] ; 0xff0138dc: pointer to 0x1f300000 ⬁
FF013624: e59f02b4 ldr r0, [pc, #692] ; 0xff0138e0: pointer to 0xc0220098 ⬁
FF013628: e3a01012 mov r1, #18 ⬁
FF01362C: e0632483 rsb r2, r3, r3, lsl #9 ⬁
FF013630: eb0058ed bl AJ_SRM_Initialize
600D:
#define RSCMGR_MEMORY_PATCH_END 0xF8013620
#RESTARTSTART = 0x1FF00100
I get a solid light and no boot.
600D: 0xF80138DC
dont patch the instruction. you have to patch the data word 0x1F300000.
I tried
#define RSCMGR_MEMORY_PATCH_END 0xF80138DC
RESTARTSTART = 0x1FF00100
Still get solid light :(
can you give 0xFF0138DC a try then?
edit: seems not to work.
Yep, confirmed. Didn't work with FF.
for 6D maybe possible to take a whole MB out of allocatememory?
did you correct the RSCMGR address for 6D too? and still fails?
I'll look and see if it has a dword. But no solid light just patching F80C4518.
0xff0c47a8: pointer to 0x1f2c4000
Changed this and still boots with no LV.
https://bitbucket.org/OtherOnePercent/tragic-lantern-6d/commits/c65c6377a5593462812c493a5fddf6657f92c19b
https://bitbucket.org/OtherOnePercent/tragic-lantern-6d/commits/f4b15f0551aacf06dfb7ac13098a63d678981265
as 6D has NSTUB(0xFF0C5438, init_task), you have to patch 0xFF01.....
btw now i understand what you meant with start address patching :)
i didnt notice that the start address is calculated based on length via RSB instruction to save space.
there we see all memory addresses the RscMgr handles.
memAddr is 0x40D00000.
DryosDebugMsg(0x80, 0x16, &"--- Common Top ----");
DryosDebugMsg(0x80, 0x16, &"IMGPLAY_WORK 0x%X 0x%08X %d", pRscMgr_->memAddr, 0xE00000, 0xE00000);
DryosDebugMsg(0x80, 0x16, &"IMGVRAM1 0x%X 0x%08X %d", pRscMgr_->memAddr + 0xE00000, 0x410000, 0x410000);
DryosDebugMsg(0x80, 0x16, &"DEVELOP_WORK 0x%X 0x%08X %d", pRscMgr_->memAddr + 0x1210000, 0x40000, 0x40000);
DryosDebugMsg(0x80, 0x16, &"FENCING_WORK 0x%X 0x%08X %d", pRscMgr_->memAddr + 0x1250000, 0x10000, 0x10000);
DryosDebugMsg(0x80, 0x16, &"LV_QUARK1 0x%X 0x%08X %d", pRscMgr_->memAddr + 0x1260000, 0x62780, 0x62780);
memAddr = pRscMgr_->memAddr;
DryosDebugMsg(0x80, 0x16, &"FREE1 0x%X 0x%08X %d", memAddr + 0x12C2780, (((memAddr >> 0x19) + 1) << 0x19) - memAddr - 0x12C2780, (((memAddr >> 0x19) + 1) << 0x19) - memAddr - 0x12C2780);
DryosDebugMsg(0x80, 0x16, &"EXMEM3_AREA 0x%X 0x%08X %d", ((pRscMgr_->memAddr >> 0x19) + 1) << 0x19, 0x1B00000, 0x1B00000);
DryosDebugMsg(0x80, 0x16, &"FILE_HEADER 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x3B00000, 0x400000, 0x400000);
DryosDebugMsg(0x80, 0x16, &"BMPVRAM1 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x3F00000, 0x80000, 0x80000);
DryosDebugMsg(0x80, 0x16, &"BMPVRAM2 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x3F80000, 0x80000, 0x80000);
DryosDebugMsg(0x80, 0x16, &"--- Usually Mode ----");
DryosDebugMsg(0x80, 0x16, &"MEMORY_MGR 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x4000000, 0x18000000, 0x18000000);
DryosDebugMsg(0x80, 0x16, &"--- NR Mode ----");
DryosDebugMsg(0x80, 0x16, &"NR_MEMORY_MGR 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x4000000, 0x16000000, 0x16000000);
DryosDebugMsg(0x80, 0x16, &"COMPOSITION_WORK_TOP 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1A000000, 0x1116000, 0x1116000);
DryosDebugMsg(0x80, 0x16, &"COMPOSITION_WORK_BOTTOM 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1B116000, 0x1116000, 0x1116000);
DryosDebugMsg(0x80, 0x16, &"--- DP Mode ----");
DryosDebugMsg(0x80, 0x16, &"DP_MULTI 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x4000000, 0x8000000, 0x8000000);
DryosDebugMsg(0x80, 0x16, &"DP_SINGLE 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0xC000000, 0x10000000, 0x10000000);
DryosDebugMsg(0x80, 0x16, &"--- Common Bottom ----");
DryosDebugMsg(0x80, 0x16, &"IMGVRAM2 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C300000, 0x410000, 0x410000);
DryosDebugMsg(0x80, 0x16, &"DCFNO 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C710000, 0x4000, 0x4000);
DryosDebugMsg(0x80, 0x16, &"LV_WB 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C714000, 0x2BC00, 0x2BC00);
DryosDebugMsg(0x80, 0x16, &"LV_FACEYUV 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C73FC00, 0xE1080, 0xE1080);
DryosDebugMsg(0x80, 0x16, &"LV_HIST 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C820C80, 0x1880, 0x1880);
DryosDebugMsg(0x80, 0x16, &"LV_ANGEL 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C822500, 0x2080, 0x2080);
DryosDebugMsg(0x80, 0x16, &"LV_FENCING 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C824580, 0x20C80, 0x20C80);
DryosDebugMsg(0x80, 0x16, &"ENGINE_MIRROR 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C845200, 0x80000, 0x80000);
DryosDebugMsg(0x80, 0x16, &"VSHADING_COMP_WORK 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C8C5200, 0xDC000, 0xDC000);
DryosDebugMsg(0x80, 0x16, &"DARKCUR_COMP_WORK 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C9A1200, 0x20000, 0x20000);
DryosDebugMsg(0x80, 0x16, &"LV_QUARK2 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1C9C1200, 0x62780, 0x62780);
DryosDebugMsg(0x80, 0x16, &"CAPTURE_WORK1 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1CA23980, 0x1B0000, 0x1B0000);
DryosDebugMsg(0x80, 0x16, &"FREE2 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1CBD3980, 0x316680, 0x316680);
DryosDebugMsg(0x80, 0x16, &"AVERAGE_WORK_TOP 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1CEEA000, 0x1116000, 0x1116000);
DryosDebugMsg(0x80, 0x16, &"AVERAGE_WORK_BOTTOM 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1E000000, 0x1116000, 0x1116000);
DryosDebugMsg(0x80, 0x16, &"IMGVRAM3 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1F116000, 0x410000, 0x410000);
DryosDebugMsg(0x80, 0x16, &"LV_QUARK3 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1F526000, 0x62780, 0x62780);
DryosDebugMsg(0x80, 0x16, &"CAPTURE_WORK2 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1F588780, 0x1B0000, 0x1B0000);
DryosDebugMsg(0x80, 0x16, &"LV_MARGE_PDEF1 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1F738780, 0x10000, 0x10000);
DryosDebugMsg(0x80, 0x16, "LV_MARGE_PDEF2 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1F748780, 0x10000, 0x10000);
DryosDebugMsg(0x80, 0x16, "FREE3 0x%X 0x%08X %d", (pRscMgr_->memAddr & 0xFE000000) + 0x1F758780, 0xFE000000 * (pRscMgr_->memAddr >> 0x19) + 0x408A7880, 0xFE000000 * (pRscMgr_->memAddr >> 0x19) + 0x408A7880);
}
okay some updates to this topic.
i investigated RscMgr and the memory areas it handles.
there are some good and some bad news...
good:
i understand RscMgr far better than before.
bad:
it doesnt work like thought it would work
bad:
memory addresses passed on initialization and total size is ignored for most blocks.
so we cannot simply make it smaller by changing the RscMgr memory size as i thought.
very good:
on 7D there is a 8MiB block unused memory at the end of RscMgr's RAM we can freely use.
we dont have to patch anything to use that memory.
also, we dont change anything to canons memory layout when using that memory.
good:
this could be true for other models aswell
bad:
models like the 600D and 1100D dont have that free region.
6D seems to have that free block... this is why it doesn't do solid light?
ROM:FF20DA30 dword_FF20DA30 DCD 0x41FC0000 ; DATA XREF: ROM:FF20D778r
ROM:FF20DA34 aBank1_free30xX DCB "BANK1_FREE3 0x%X 0x%08X %d",0
I don't think its at the end though.
2 More:
ROM:FF20D6CC dword_FF20D6CC DCD 0x41DD9B00 ; DATA XREF: ROM:FF20D3A4r
ROM:FF20D6D0 aBank1_free20xX0x08xD DCB "BANK1_FREE2 0x%X 0x%08X %d",0
ROM:FF20D6D0 ; DATA XREF: ROM:FF20D3A8o
ROM:FF20D524 dword_FF20D524 DCD 0x29200 ; DATA XREF: ROM:FF20D214r
ROM:FF20D528 aBank1_free10xX0x08xD DCB "BANK1_FREE1 0x%X 0x%08X %d",0
5D3 and 6D have no free mem at bottom :(
see: https://docs.google.com/spreadsheet/ccc?key=0AgQ2MOkAZTFHdFFIcFp1d0R5TzVPTVJXOEVyUndteGc#gid=4
Wow, doesn't look good. There is a 1.3mb free area at top in 5d3, not useable?
that should be useable, right.
but first must be confirmed :)
edit: not usable, seems to be used by something...
maybe resize the memory of one of the sections? Like take 1/2 away from the player?
thats what i basically want to do.
but i guess the most areas have their adresses hardcoded in the using code too.
so i'd better check the dynamic memories.
Some graphs for RscMgr memory map, from sMemShowFix logs (this is the function g3gg0 investigated earlier in this thread (http://www.magiclantern.fm/forum/index.php?topic=5071.msg30298#msg30298)):
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/5D%20Mark%20III.png)
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/60D.png)
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/70D.png)
You may ask - why I'm still investigating this?
The small allocators are sometimes too small for our needs, for example when loading too many modules, or when loading some memory-intensive ones. On small cameras like 1100D, you don't even need to do that.
Okay, but we have two large allocators (shoot_malloc and SRM), right?
Yes, but these have some restrictions:
- you can't keep them allocated forever:
- srm_malloc: you can no longer take pictures if anything is allocated from there (so it's useless as general-purpose memory)
- shoot_malloc: Canon code expects it to be completely free when doing certain things (for example, in-camera raw development, or enabling certain noise reduction modes, or - on 60D - simply switching between photo and movie mode). It works most of the time, but those rarely-used actions will fail (ERR70 or camera lockup).
- you can't allocate too many blocks from there (about 1000 from shoot_malloc, or a very small number from SRM).
- for this reason, the memory backend tries to avoid them - until the small allocators get full
In particular, Lua is memory-intensive, allocating thousands of small blocks using realloc. Our current allocators are not ready for that - loading many scripts gives ERR70, even if you have plenty of memory available, because of fragmentation.
I managed to get better results here (https://bitbucket.org/hudson/magic-lantern/pull-requests/724/use-umm_malloc-for-lua-to-reduce-memory/diff), by pre-allocating a fairly large block (512K) and managing it with a custom allocator optimized for small blocks. However, that large block may end up in shoot_malloc, which I prefer to avoid.
Other reasons for investigating the RscMgr:
On 70D, the RscMgr "allocates" (with hardcoded address) memory for IMGPLAY overlapping the first raw buffer right after a still photo was captured (which interferes with raw overlays). For that case, I'm seriously thinking to change the memory map somehow, so these two buffers no longer overlap. (discussion (https://bitbucket.org/hudson/magic-lantern/pull-requests/620/add-support-for-eos-70d-111-both-revisions/diff#comment-6621570))
Finally, some cameras still have memory that cannot be allocated by shoot+SRM. For example, 5D3 can allocate 438MB outside LiveView, but only 284MB in LiveView. I kinda doubt the LiveView actually uses 150MB. On 60D, the numbers are 436 outside LV, and 374 in LV - a little better. That extra memory could be useful for raw recording, but unfortunately it's not visible on these maps.
From the memory maps above, on 60D on the maps above, you can see a 7MB block at the end that appears unused (similar to the one g3gg0 found on 7D). Currently, autoexec.bin is loaded there, but it has some side effects - you cannot run the dm-spy-experiments branch, and not all this memory is available for ML. I'm thinking to move autoexec.bin to AllocateMemory, and use the 7MB block as general-purpose memory for ML, using some custom allocator (maybe Canon's).
I've got logs from 5D3, 60D, and also from 70D (nikfreak). For other cameras, I'd like you to get the log output for sMemShowFix, so I can generate similar graphs. To do that:
- find the stub (tutorial here (http://www.magiclantern.fm/forum/index.php?topic=12177.0); look here (http://www.magiclantern.fm/forum/index.php?topic=5071.msg30298#msg30298) for strings to look for)
- compile the dm-spy-experiments branch, with CONFIG_DEBUG_INTERCEPT=y in Makefile.user
- put this in don't click me (example for 70D):
void debug_intercept();
debug_intercept();
void (*smemShowFix)(void) = 0xFF202DE8;
smemShowFix();
debug_intercept();
- run this code and upload dm.log from your card
Thanks in advance.
Tried it additionally on 50D.109:
run_test:ff8297d8:80:16: --- Common Top ----
run_test:ff829800:80:16: IMGPLAY_WORK 0x40D00000 0x00E00000 14680064
run_test:ff829828:80:16: IMGVRAM1 0x41B00000 0x00410000 4259840
run_test:ff829854:80:16: DEVELOP_WORK 0x41F10000 0x00040000 262144
run_test:ff829880:80:16: FENCING_WORK 0x41F50000 0x00010000 65536
run_test:ff8298b0:80:16: EXMEM3_AREA 0x42000000 0x01D00000 30408704
run_test:ff8298dc:80:16: FILE_HEADER 0x43D00000 0x00200000 2097152
run_test:ff829908:80:16: BMPVRAM1 0x43F00000 0x00080000 524288
run_test:ff829934:80:16: BMPVRAM2 0x43F80000 0x00080000 524288
run_test:ff829944:80:16: --- Usually Mode ----
run_test:ff829970:80:16: MEMORY_MGR 0x44000000 0x18000000 402653184
run_test:ff829980:80:16: --- NR Mode ----
run_test:ff8299ac:80:16: NR_MEMORY_MGR 0x44000000 0x14000000 335544320
run_test:ff8299dc:80:16: COMPOSITION_WORK_TOP 0x591A4A00 0x00E5B600 15054336
run_test:ff829a08:80:16: COMPOSITION_WORK_BOTTOM 0x5A000000 0x01600000 23068672
run_test:ff829a18:80:16: --- DP Mode ----
run_test:ff829a44:80:16: DP_MULTI 0x44000000 0x08000000 134217728
run_test:ff829d18:80:16: DP_SINGLE 0x4C000000 0x10000000 268435456
run_test:ff829d28:80:16: --- Common Bottom ----
run_test:ff829d54:80:16: IMGVRAM2 0x5C000000 0x00410000 4259840
run_test:ff829d84:80:16: DCFNO 0x5C410000 0x00004000 16384
run_test:ff829db4:80:16: LV_WORK2 0x5C414000 0x00200000 2097152
run_test:ff829de4:80:16: ENGINE_MIRROR 0x5C614000 0x00080000 524288
run_test:ff829e14:80:16: VSHADING_COMP_WORK 0x5C694000 0x00080000 524288
run_test:ff829e44:80:16: BATHTUB_COMP_WORK 0x5C714000 0x00010000 65536
run_test:ff829e70:80:16: AVERAGE_WORK_TOP 0x5D1A4A00 0x00E5B600 15054336
run_test:ff829e9c:80:16: AVERAGE_WORK_BOTTOM 0x5E000000 0x01600000 23068672
run_test:ff829ecc:80:16: IMGVRAM3 0x5F600000 0x00410000 4259840
run_test:ff829efc:80:16: LV_WORK 0x5FA10000 0x00480000 4718592
And here is 100D:
run_test:ff214510:80:16: --- Common Top ----
run_test:ff21452c:80:16: [TOP1] 0x40C3C000
run_test:ff214550:80:16: SSS_DEVELOP_WORK 0x40C3C000 0x00038000 229376
run_test:ff214578:80:16: SDS_DEVELOP_WORK 0x40C74000 0x00038000 229376
run_test:ff2145a0:80:16: DARKCUR_COMP_WORK 0x40CAC000 0x00020000 131072
run_test:ff2145c8:80:16: FENCING_WORK 0x40CCC000 0x00010000 65536
run_test:ff2145f0:80:16: DCFNO 0x40CDC000 0x00004000 16384
run_test:ff214618:80:16: LVMARGE_P_DEF_DATA_1 0x40CE0000 0x0000A000 40960
run_test:ff214640:80:16: LVMARGE_P_DEF_DATA_2 0x40CEA000 0x0000A000 40960
run_test:ff214668:80:16: LVMARGE_P_DEF_DATA_ZOOM 0x40CF4000 0x0000C000 49152
run_test:ff214690:80:16: FILE_HEADER 0x40D00000 0x00240000 2359296
run_test:ff2146b8:80:16: CAPTURE_WORK1 0x40F40000 0x00240000 2359296
run_test:ff2146e4:80:16: BMPVRAM1 0x41180000 0x00080000 524288
run_test:ff214710:80:16: BMPVRAM2 0x41200000 0x00080000 524288
run_test:ff21473c:80:16: ENGINE_MIRROR 0x41280000 0x00044000 278528
run_test:ff214768:80:16: VSHADING_COMP_WORK 0x412C4000 0x000DC000 901120
run_test:ff214788:80:16: STILL SCAR 0x413A0000 0x00075B00 482048
run_test:ff2147a8:80:16: TUNEDATA 0x41415B00 0x00140000 1310720
run_test:ff2147c8:80:16: TUNEDATA2 0x41555B00 0x00140000 1310720
run_test:ff214b00:80:16: FIXDATA 0x41695B00 0x00340000 3407872
run_test:ff214b20:80:16: LVMARGE_P_DEF_DATA_CROP 0x419D5B00 0x0000C000 49152
run_test:ff214b40:80:16: EEKO 0x41E00000 0x001E0000 1966080
run_test:ff214b60:80:16: SHOOTING_CREATIVEFILTER 0x41FE0000 0x00010000 65536
run_test:ff214b80:80:16: SAF WORK 0x42000000 0x00200000 2097152
run_test:ff214b90:80:16: --- Usually Mode ----
run_test:ff214bb0:80:16: ONLY MEM1 1 0x48000000 0x02000000 33554432
run_test:ff214bd0:80:16: ONLY MEM1 2 0x0 0x02000000 33554432
run_test:ff214bf4:80:16: EXMEM3_AREA_2 0x42200000 0x01E00000 31457280
run_test:ff214c14:80:16: MEMORY_MGR 0x44000000 0x04000000 67108864
run_test:ff214c34:80:16: EXMEM3_AREA_1 0x4A000000 0x019C0000 27000832
run_test:ff214c54:80:16: SS_DEVELOP1 0x4B9C0000 0x02000000 33554432
run_test:ff214c74:80:16: IMGVRAM1 0x4B9D0000 0x00410000 4259840
run_test:ff214c98:80:16: IMGVRAM2 0x4BDE0000 0x00410000 4259840
run_test:ff214cbc:80:16: IMGVRAM3 0x4C1F0000 0x00410000 4259840
run_test:ff214ce0:80:16: IMGPLAY_WORK 0x4C600000 0x00A00000 10485760
run_test:ff214d00:80:16: IMGPLAY_WORK2 0x4D000000 0x00400000 4194304
run_test:ff214d20:80:16: SS_DEVELOP_OTHER_WORK 0x4D9C0000 0x00400000 4194304
run_test:ff214d44:80:16: EXMEM3_AREA_3 0x4DDC0000 0x0222C000 35831808
run_test:ff214d64:80:16: AVERAGE_WORK_TOP 0x4DDC0000 0x01116000 17915904
run_test:ff214d80:80:16: AVERAGE_WORK_BOTTOM 0x4EED6000 0x01116000 17915904
run_test:ff214d90:80:16: --- GIS Mode ----
run_test:ff214db0:80:16: TEMPMEM1 0x48200000 0x02000000 33554432
run_test:ff214dd0:80:16: SLIDE_SHOW_WORK 0x48200000 0x00800000 8388608
run_test:ff2151b8:80:16: MOVIE_PLAY_WORK 0x4A600000 0x00126000 1204224
run_test:ff2151d8:80:16: IMGVRAM1 0x4B9D0000 0x00410000 4259840
run_test:ff2151f8:80:16: IMGVRAM2 0x4BDE0000 0x00410000 4259840
run_test:ff215218:80:16: IMGVRAM3 0x4C1F0000 0x00410000 4259840
run_test:ff215238:80:16: IMGPLAY_WORK 0x4C600000 0x00A00000 10485760
run_test:ff215258:80:16: IMGPLAY_WORK2 0x4D000000 0x00400000 4194304
run_test:ff21527c:80:16: MOVIE_REC_WORK 0x4D800000 0x01400000 20971520
run_test:ff2152a0:80:16: MOVIE_STREAM 0x4EC00000 0x01400000 20971520
run_test:ff2152c0:80:16: WORK 0x4A200000 0x05E00000 98566144
run_test:ff2152dc:80:16: EXMEM3_1_AREA 0x0 0x00000000 0
run_test:ff2152fc:80:16: EXMEM3_2_AREA 0x42200000 0x06000000 100663296
run_test:ff21530c:80:16: --- HDR Mode ----
run_test:ff21532c:80:16: TEMPMEM1 0x48200000 0x02000000 33554432
run_test:ff21534c:80:16: SLIDE_SHOW_WORK 0x48200000 0x00800000 8388608
run_test:ff21536c:80:16: MOVIE_PLAY_WORK 0x4A600000 0x00126000 1204224
run_test:ff21538c:80:16: IMGVRAM1 0x4B9D0000 0x00410000 4259840
run_test:ff2153ac:80:16: IMGVRAM2 0x4BDE0000 0x00410000 4259840
run_test:ff2153cc:80:16: IMGVRAM3 0x4C1F0000 0x00410000 4259840
run_test:ff2153ec:80:16: IMGPLAY_WORK 0x4C600000 0x00A00000 10485760
run_test:ff21540c:80:16: IMGPLAY_WORK2 0x4D000000 0x00400000 4194304
run_test:ff21542c:80:16: MOVIE_REC_WORK 0x4D800000 0x01400000 20971520
run_test:ff21544c:80:16: MOVIE_STREAM 0x4EC00000 0x01400000 20971520
run_test:ff21546c:80:16: WORK 0x48200000 0x07E00000 132120576
run_test:ff215488:80:16: EXMEM3_1_AREA 0x0 0x00000000 0
run_test:ff2154a8:80:16: EXMEM3_2_AREA 0x42200000 0x06000000 100663296
run_test:ff2154b8:80:16: --- NR Mode ----
run_test:ff2154d8:80:16: NR_MEMORY_MGR 0x44000000 0x08000000 134217728
run_test:ff2154f4:80:16: COMPOSITION_WORK_TOP 0x0 0x00000000 0
run_test:ff215510:80:16: COMPOSITION_WORK_BOTTOM 0x0 0x00000000 0
run_test:ff215520:80:16: --- DP Mode ----
run_test:ff215540:80:16: DP_MULTI 0x47E00000 0x02E00000 48234496
run_test:ff215740:80:16: DP_SINGLE 0x42200000 0x05C00000 96468992
run_test:ff215750:80:16: --- Indev Mode ----
run_test:ff215764:80:16: [INDVMGR] 0x49000000
run_test:ff215780:80:16: YUV 0x4DDC0000 0x0222C000 35831808
run_test:ff21579c:80:16: YUV_OUT 0x42200000 0x0222C000 35831808
run_test:ff2157b8:80:16: INDV_WORK 0x0 0x00000000 0
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/50D.png)
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/100D.png)
50D: looks like we might have found a 10MB block. This camera has enough RAM for the current needs, so enabling it will not give obvious benefits - maybe only under very heavy workloads, with lots of Lua scripts loaded. Or maybe it could be used to buffer 2 or 3 extra frames while recording.
SRM figures are here (http://www.magiclantern.fm/forum/index.php?topic=12528.msg121840#msg121840) - looks like there is potential to squeeze a little more memory for raw recording, if the two "AVERAGE_WORK" blocks are unused in LiveView (about 47 MB, which might be noticeable).
100D: Nothing obvious, unfortunately.
To speed up things for other cams one can modify the code from a1ex's post to the values below:
6D.116: 0xFF20D140
7D.203: 0xFF0E1388
650D.104: 0xFF223604
700D.114: 0xFF225C34
EOSM.202: 0xFF223A94
Quote from: nikfreak on May 08, 2016, 10:25:45 PM
To speed up things for other cams one can modify the code from a1ex's post to the values below:
EOSM.202: 0xFF223A94
Thanks
EOS-M log: https://gist.github.com/licaon-kter/a9488b7043ea68dfb13392eb766219b0
EOS M:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/EOS%20M.png)
There are some overlaps (also in 100D) not yet handled in the current graphs (solved). For example:
0x4a000000 ... 0x4a9fffff : IMGPLAY_WORK (10.0 MB)
0x4a000000 ... 0x4adfffff : SS_DEVELOP1 (14.0 MB)
0x4aa00000 ... 0x4adfffff : IMGPLAY_WORK2 (4.0 MB)
so Canon code probably assumes IMGPLAY and SS_DEVELOP1 will never be used both at the same time.
Thanks nikfreak!
Sorry guys, mothers day had to come first, but after all the times alex helped me, I will return favor when I can.
700D
run_test:ff225c48:80:16:
run_test:ff225c64:80:16: --- Common Top ----
run_test:ff225c80:80:16: [TOP1] 0x40D3C000
run_test:ff225ca4:80:16: SSS_DEVELOP_WORK 0x40D3C000 0x00038000 229376
run_test:ff225ccc:80:16: SDS_DEVELOP_WORK 0x40D74000 0x00038000 229376
run_test:ff225cf4:80:16: DARKCUR_COMP_WORK 0x40DAC000 0x00020000 131072
run_test:ff225d1c:80:16: FENCING_WORK 0x40DCC000 0x00010000 65536
run_test:ff225d44:80:16: DCFNO 0x40DDC000 0x00004000 16384
run_test:ff225d6c:80:16: LVMARGE_P_DEF_DATA_1 0x40DE0000 0x0000A000 40960
run_test:ff225d94:80:16: LVMARGE_P_DEF_DATA_2 0x40DEA000 0x0000A000 40960
run_test:ff225db4:80:16: LVMARGE_P_DEF_DATA_3 0x41FD0000 0x0000A000 40960
run_test:ff225ddc:80:16: LVMARGE_P_DEF_DATA_ZOOM 0x40DF4000 0x0000C000 49152
run_test:ff225e04:80:16: FILE_HEADER 0x40E00000 0x00280000 2621440
run_test:ff225e2c:80:16: CAPTURE_WORK1 0x41080000 0x00280000 2621440
run_test:ff225e58:80:16: BMPVRAM1 0x41300000 0x00080000 524288
run_test:ff225e84:80:16: BMPVRAM2 0x41380000 0x00080000 524288
run_test:ff225eb0:80:16: ENGINE_MIRROR 0x41400000 0x00044000 278528
run_test:ff225edc:80:16: VSHADING_COMP_WORK 0x41444000 0x000DC000 901120
run_test:ff225efc:80:16: STILL SCAR 0x41520000 0x00075B00 482048
run_test:ff225f1c:80:16: SAF WORK 0x41595B00 0x00100000 1048576
run_test:ff226258:80:16: SAF RAW 0x41695B00 0x0035D540 3528000
run_test:ff226278:80:16: LVMARGE_P_DEF_DATA_CROP 0x419F3040 0x0000C000 49152
run_test:ff226298:80:16: EEKO 0x41E00000 0x001C0000 1835008
run_test:ff2262b8:80:16: SHOOTING_CREATIVEFILTER 0x41FC0000 0x00010000 65536
run_test:ff2262d8:80:16: TUNEDATA 0x42000000 0x00030D40 200000
run_test:ff2262e8:80:16: --- Usually Mode ----
run_test:ff226304:80:16: ONLY MEM1 1 0x0 0x00000000 0
run_test:ff226320:80:16: ONLY MEM1 2 0x0 0x00000000 0
run_test:ff226344:80:16: EXMEM3_AREA_2 0x42200000 0x01E00000 31457280
run_test:ff226364:80:16: MEMORY_MGR 0x44000000 0x06000000 100663296
run_test:ff226384:80:16: EXMEM3_AREA_1 0x4A000000 0x019C0000 27000832
run_test:ff2263a4:80:16: SS_DEVELOP1 0x4B9C0000 0x02000000 33554432
run_test:ff2263c4:80:16: IMGVRAM1 0x4B9D0000 0x00410000 4259840
run_test:ff2263e8:80:16: IMGVRAM2 0x4BDE0000 0x00410000 4259840
run_test:ff22640c:80:16: IMGVRAM3 0x4C1F0000 0x00410000 4259840
run_test:ff226430:80:16: IMGPLAY_WORK 0x4C600000 0x00A00000 10485760
run_test:ff226450:80:16: IMGPLAY_WORK2 0x4D000000 0x00400000 4194304
run_test:ff226470:80:16: SS_DEVELOP_OTHER_WORK 0x4D9C0000 0x00400000 4194304
run_test:ff226494:80:16: EXMEM3_AREA_3 0x4DDC0000 0x0222C000 35831808
run_test:ff2264b4:80:16: AVERAGE_WORK_TOP 0x4DDC0000 0x01116000 17915904
run_test:ff2264d0:80:16: AVERAGE_WORK_BOTTOM 0x4EED6000 0x01116000 17915904
run_test:ff2264e0:80:16: --- GIS Mode ----
run_test:ff226500:80:16: TEMPMEM1 0x48200000 0x02000000 33554432
run_test:ff2268c4:80:16: SLIDE_SHOW_WORK 0x48200000 0x00800000 8388608
run_test:ff2268e4:80:16: MOVIE_PLAY_WORK 0x4A600000 0x00126000 1204224
run_test:ff226904:80:16: IMGVRAM1 0x4B9D0000 0x00410000 4259840
run_test:ff226924:80:16: IMGVRAM2 0x4BDE0000 0x00410000 4259840
run_test:ff226944:80:16: IMGVRAM3 0x4C1F0000 0x00410000 4259840
run_test:ff226964:80:16: IMGPLAY_WORK 0x4C600000 0x00A00000 10485760
run_test:ff226984:80:16: IMGPLAY_WORK2 0x4D000000 0x00400000 4194304
run_test:ff2269a8:80:16: MOVIE_REC_WORK 0x4D800000 0x01400000 20971520
run_test:ff2269cc:80:16: MOVIE_STREAM 0x4EC00000 0x01400000 20971520
run_test:ff2269ec:80:16: WORK 0x4A200000 0x05E00000 98566144
CtrlSrv:ff52d698:83:01: DlgLiveView.c LOCAL_OLC_BLINK
CtrlSrv:ff52b784:83:01: StartOlcBlinkTimer
run_test:ff226a08:80:16: EXMEM3_1_AREA 0x0 0x00000000 0
run_test:ff226a28:80:16: EXMEM3_2_AREA 0x42200000 0x06000000 100663296
run_test:ff226a38:80:16: --- HDR Mode ----
run_test:ff226a58:80:16: TEMPMEM1 0x48200000 0x02000000 33554432
run_test:ff226a78:80:16: SLIDE_SHOW_WORK 0x48200000 0x00800000 8388608
run_test:ff226a98:80:16: MOVIE_PLAY_WORK 0x4A600000 0x00126000 1204224
run_test:ff226ab8:80:16: IMGVRAM1 0x4B9D0000 0x00410000 4259840
run_test:ff226ad8:80:16: IMGVRAM2 0x4BDE0000 0x00410000 4259840
run_test:ff226af8:80:16: IMGVRAM3 0x4C1F0000 0x00410000 4259840
run_test:ff226b18:80:16: IMGPLAY_WORK 0x4C600000 0x00A00000 10485760
run_test:ff226b38:80:16: IMGPLAY_WORK2 0x4D000000 0x00400000 4194304
run_test:ff226b58:80:16: MOVIE_REC_WORK 0x4D800000 0x01400000 20971520
run_test:ff226b78:80:16: MOVIE_STREAM 0x4EC00000 0x01400000 20971520
run_test:ff226b98:80:16: WORK 0x48200000 0x07E00000 132120576
run_test:ff226bb4:80:16: EXMEM3_1_AREA 0x0 0x00000000 0
run_test:ff226bd4:80:16: EXMEM3_2_AREA 0x42200000 0x06000000 100663296
run_test:ff226be4:80:16: --- NR Mode ----
run_test:ff226c04:80:16: NR_MEMORY_MGR 0x44000000 0x08000000 134217728
run_test:ff226c20:80:16: COMPOSITION_WORK_TOP 0x0 0x00000000 0
run_test:ff226c3c:80:16: COMPOSITION_WORK_BOTTOM 0x0 0x00000000 0
run_test:ff226c4c:80:16: --- DP Mode ----
run_test:ff226e4c:80:16: DP_MULTI 0x47E00000 0x02E00000 48234496
run_test:ff226e6c:80:16: DP_SINGLE 0x42200000 0x05C00000 96468992
run_test:ff226e7c:80:16: --- Indev Mode ----
run_test:ff226e90:80:16: [INDVMGR] 0x0
run_test:ff226eac:80:16: YUV 0x4DDC0000 0x0222C000 35831808
run_test:ff226ec8:80:16: YUV_OUT 0x42200000 0x0222C000 35831808
run_test:ff226ee4:80:16: INDV_WORK 0x0 0x00000000 0
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/700D.png)
Looks like we have a 4MB free block. Nice!
(I've also rebuilt all other graphs to show overlaps)
run_test:ff0e139c:80:16:
run_test:ff0e13b8:80:16: --- Common Top ----
run_test:ff0e13e0:80:16: IMGPLAY_WORK 0x40D00000 0x00E00000 14680064
run_test:ff0e1408:80:16: IMGVRAM1 0x41B00000 0x00410000 4259840
run_test:ff0e1434:80:16: DEVELOP_WORK 0x41F10000 0x00040000 262144
run_test:ff0e1460:80:16: FENCING_WORK 0x41F50000 0x00010000 65536
run_test:ff0e148c:80:16: LV_QUARK1 0x41F60000 0x00062780 403328
run_test:ff0e14c8:80:16: FREE1 0x41FC2780 0x0003D880 252032
run_test:ff0e14f4:80:16: EXMEM3_AREA 0x42000000 0x01B00000 28311552
run_test:ff0e1520:80:16: FILE_HEADER 0x43B00000 0x00400000 4194304
run_test:ff0e154c:80:16: BMPVRAM1 0x43F00000 0x00080000 524288
run_test:ff0e1578:80:16: BMPVRAM2 0x43F80000 0x00080000 524288
run_test:ff0e1588:80:16: --- Usually Mode ----
run_test:ff0e15b4:80:16: MEMORY_MGR 0x44000000 0x18000000 402653184
run_test:ff0e15c4:80:16: --- NR Mode ----
run_test:ff0e15f0:80:16: NR_MEMORY_MGR 0x44000000 0x16000000 369098752
run_test:ff0e161c:80:16: COMPOSITION_WORK_TOP 0x5A000000 0x01116000 17915904
run_test:ff0e1648:80:16: COMPOSITION_WORK_BOTTOM 0x5B116000 0x01116000 17915904
run_test:ff0e1658:80:16: --- DP Mode ----
run_test:ff0e1684:80:16: DP_MULTI 0x44000000 0x08000000 134217728
run_test:ff0e1998:80:16: DP_SINGLE 0x4C000000 0x10000000 268435456
run_test:ff0e19a8:80:16: --- Common Bottom ----
run_test:ff0e19d8:80:16: IMGVRAM2 0x5C300000 0x00410000 4259840
run_test:ff0e1a08:80:16: DCFNO 0x5C710000 0x00004000 16384
run_test:ff0e1a38:80:16: LV_WB 0x5C714000 0x0002BC00 179200
run_test:ff0e1a68:80:16: LV_FACEYUV 0x5C73FC00 0x000E1080 921728
run_test:ff0e1a98:80:16: LV_HIST 0x5C820C80 0x00001880 6272
run_test:ff0e1ac8:80:16: LV_ANGEL 0x5C822500 0x00002080 8320
run_test:ff0e1af8:80:16: LV_FENCING 0x5C824580 0x00020C80 134272
run_test:ff0e1b28:80:16: ENGINE_MIRROR 0x5C845200 0x00080000 524288
run_test:ff0e1b58:80:16: VSHADING_COMP_WORK 0x5C8C5200 0x000DC000 901120
run_test:ff0e1b88:80:16: DARKCUR_COMP_WORK 0x5C9A1200 0x00020000 131072
run_test:ff0e1bb4:80:16: LV_QUARK2 0x5C9C1200 0x00062780 403328
run_test:ff0e1be4:80:16: CAPTURE_WORK1 0x5CA23980 0x001B0000 1769472
run_test:ff0e1c14:80:16: FREE2 0x5CBD3980 0x00316680 3237504
run_test:ff0e1c40:80:16: AVERAGE_WORK_TOP 0x5CEEA000 0x01116000 17915904
run_test:ff0e1c68:80:16: AVERAGE_WORK_BOTTOM 0x5E000000 0x01116000 17915904
run_test:ff0e1c98:80:16: IMGVRAM3 0x5F116000 0x00410000 4259840
run_test:ff0e1cc4:80:16: LV_QUARK3 0x5F526000 0x00062780 403328
run_test:ff0e1cf4:80:16: CAPTURE_WORK2 0x5F588780 0x001B0000 1769472
run_test:ff0e1d24:80:16: LV_MARGE_PDEF1 0x5F738780 0x00010000 65536
run_test:ff0e20d4:80:16: LV_MARGE_PDEF2 0x5F748780 0x00010000 65536
run_test:ff0e2110:80:16: FREE3 0x5F758780 0x008A7880 9074816
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/7D.png)
Looks pretty similar to 50D.
I have found the stubs for 500D:
/** Low-level allocators */
NSTUB(0xFF06A4CC, init_memory_pool)
NSTUB(0xFF06AB44, allocate_memory_from_pool)
NSTUB(0xFF06ADB0, free_memory_to_pool)
NSTUB(0xFF06A970, get_max_region_of_pool)
I will try to run the test later, but I don't know which value should I put on the sample code that a1ex has posted for 70D. 500D is not included in the list with values that Nikfreak has provided for several cameras. Is the same value of init_memory_pool ?
Look for the function that prints strings similar to those in the above logs.
Ok, for 500D is 0xFF0BC2BC
I will run the test later.
Sorry for the dumb question: which is the file where I have to insert the code for the "Don't click me" test? I have been looking everywhere in ML source tree and I still don't find it ... :-[ It's "debug.c" file?
Edit: I found it, is the "run_test()" function in "debug.c"
Here is the log, for 500D:
run_test:ff0bc2c8:80:16:
run_test:ff0bc2e4:80:16: --- Common Top ----
run_test:ff0bc30c:80:16: IMGPLAY_WORK 0x40D00000 0x00E00000 14680064
run_test:ff0bc334:80:16: IMGVRAM1 0x41B00000 0x00410000 4259840
run_test:ff0bc360:80:16: DEVELOP_WORK 0x41F90000 0x00040000 262144
run_test:ff0bc38c:80:16: FENCING_WORK 0x41FD0000 0x00010000 65536
run_test:ff0bc3b8:80:16: LV_MARGE_PDEFDATA 0x41FE0000 0x00010000 65536
run_test:ff0bc3e4:80:16: LV_MARGE_PDEFDATA2 0x41FF0000 0x00010000 65536
run_test:ff0bc414:80:16: EXMEM3_AREA 0x42000000 0x01431000 21172224
run_test:ff0bc444:80:16: FILE_HEADER 0x43431000 0x00200000 2097152
run_test:ff0bc474:80:16: BMPVRAM1 0x43631000 0x00080000 524288
run_test:ff0bc4a4:80:16: BMPVRAM2 0x436B1000 0x00080000 524288
run_test:ff0bc4b4:80:16: --- Usually Mode ----
run_test:ff0bc4e0:80:16: MEMORY_MGR 0x44000000 0x0A000000 167772160
run_test:ff0bc4f0:80:16: --- NR Mode ----
run_test:ff0bc51c:80:16: NR_MEMORY_MGR 0x44000000 0x08000000 134217728
run_test:ff0bc548:80:16: COMPOSITION_WORK_TOP 0x4C000000 0x00E5B600 15054336
run_test:ff0bc574:80:16: COMPOSITION_WORK_BOTTOM 0x4CE5B600 0x00E5B600 15054336
run_test:ff0bc584:80:16: --- DP Mode ----
run_test:ff0bc5b0:80:16: DP_MULTI 0x44000000 0x04000000 67108864
run_test:ff0bc8c4:80:16: DP_SINGLE 0x48000000 0x06000000 100663296
run_test:ff0bc8d4:80:16: --- Common Bottom ----
run_test:ff0bc904:80:16: IMGVRAM2 0x43731000 0x00410000 4259840
run_test:ff0bc934:80:16: DCFNO 0x4FFEAC00 0x00004000 16384
run_test:ff0bc964:80:16: LV_WORK2 0x4FCB6C00 0x002A4000 2768896
run_test:ff0bc994:80:16: ENGINE_MIRROR 0x4FF5AC00 0x00080000 524288
run_test:ff0bc9c0:80:16: VSHADING_COMP_WORK 0x41F10000 0x00080000 524288
run_test:ff0bc9f0:80:16: BATHTUB_COMP_WORK 0x4FFDAC00 0x00010000 65536
run_test:ff0bca18:80:16: AVERAGE_WORK_TOP 0x4E000000 0x00E5B600 15054336
run_test:ff0bca44:80:16: AVERAGE_WORK_BOTTOM 0x4EE5B600 0x00E5B600 15054336
run_test:ff0bca74:80:16: IMGVRAM3 0x43B41000 0x00410000 4259840
run_test:ff0bcaa4:80:16: LV_WORK 0x43F51000 0x000AF000 716800
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/500D.png)
Not much interesting here...
The good part is that 500D doesn't have issues with the general-purpose memory, so it's fine the way it is.
Quote from: a1ex on May 11, 2016, 10:23:18 PM
Not much interesting here...
The good part is that 500D doesn't have issues with the general-purpose memory, so it's fine the way it is.
Yes, ML works perfectly on my little old 500D, no issues at all. And it is a nice, lighweight camera for stills work, very capable, thanks to ML ;)
Are the "Low-level allocators" stubs useful for your investigation ? Do you need them for other cameras?. I could search them for 50D or EOS-M.
Could be interesting for 50D, since there appears to be a large free block. The 50D doesn't have memory problems either, so it would be more like future-proofing it.
I have found the stubs for 50D. But there is something in this cam that does not happen in 60D and 500D. The stubs for 50D are duplicated, they can be found in two different places, with a fixed offset of 0x800000 (8MB block?).
These stubs are valid, keeping untouched all the previously used memory related stubs:
/** Memory allocation **/
NSTUB(0xFF8680C8, GetMemoryInformation)
NSTUB(0xFF868074, GetSizeOfMaxRegion)
NSTUB(0xFF867B54, _AllocateMemory) // thanks Alex
NSTUB(0xFF867D18, _FreeMemory) // release_mem in Indy's IDC
NSTUB(0xFF991018, _alloc_dma_memory)
NSTUB(0xFF818DC8, _free)
NSTUB(0xFF99104C, _free_dma_memory)
NSTUB(0xFF818CF4, _malloc) // maybe it's better to use Allocate/Free?
/** Low-level allocators */
NSTUB(0xFF86755C, init_memory_pool) // used to init the AllocateMemory pool and others
NSTUB(0xFF8679E4, allocate_memory_from_pool) // called from AllocateMemory
NSTUB(0xFF867B84, free_memory_to_pool) // called from FreeMemory
NSTUB(0xFF867FE0, get_max_region_of_pool) // called from GetSizeOfMaxRegion
But also this will be possible:
NSTUB(0xFF068074, GetSizeOfMaxRegion)
NSTUB(0xFF067B54, _AllocateMemory)
NSTUB(0xFF067D18, _FreeMemory)
/** Low-level allocators */
NSTUB(0xFF06755C, init_memory_pool) // used to init the AllocateMemory pool and others
NSTUB(0xFF0679E4, allocate_memory_from_pool) // called from AllocateMemory
NSTUB(0xFF067B84, free_memory_to_pool) // called from FreeMemory
NSTUB(0xFF067FE0, get_max_region_of_pool) // called from GetSizeOfMaxRegion
The functions are identical in both cases.
So a1ex, you will see which option is better. I suppose the second option could require changing the addresses of other stubs ...
0xFF000000 and 0xFF800000 are the same flash offset and thus contain the same data.
see http://www.magiclantern.fm/forum/index.php?topic=6785.msg58899#msg58899
Ok, thanks for clarifying [emoji6]
1100D:
GetTaskName: 0xFF06FCC4
sMemShowFix: 0xFF0D85E0
run_test:ff0d8610:80:16: --- Common ----
run_test:ff0d8638:80:16: FILE_HEADER 0x40D00000 0x001F7000 2060288
run_test:ff0d8664:80:16: BMPVRAM1 0x40EF7000 0x00080000 524288
run_test:ff0d8690:80:16: BMPVRAM2 0x40F77000 0x00080000 524288
run_test:ff0d86bc:80:16: ENGINE_MIRROR 0x40FF7000 0x00080000 524288
run_test:ff0d86e8:80:16: DEVELOP_WORK 0x41077000 0x00070000 458752
run_test:ff0d8714:80:16: VSHADING_COMP_WORK 0x410E7000 0x00080000 524288
run_test:ff0d8740:80:16: FENCING_WORK 0x41167000 0x00010000 65536
run_test:ff0d876c:80:16: DARKCUR_COMP_WORK 0x41177000 0x00017800 96256
run_test:ff0d8798:80:16: CAPTURE_WORK1 0x4118E800 0x00076800 485376
run_test:ff0d87c4:80:16: CAPTURE_WORK2 0x41205000 0x0003B400 242688
run_test:ff0d87f0:80:16: LV_WB 0x41240400 0x0000C000 49152
run_test:ff0d881c:80:16: LV_HIST 0x4124C400 0x00002000 8192
run_test:ff0d8848:80:16: LV_ANGEL 0x4124E400 0x00004040 16448
run_test:ff0d8874:80:16: LV_FENCING 0x41252440 0x00020C80 134272
run_test:ff0d88a0:80:16: LV_MARGE_PDEFDATA1 0x412730C0 0x0000EA60 60000
run_test:ff0d88c8:80:16: LV_MARGE_PDEFDATA2 0x41281B20 0x0000EA60 60000
run_test:ff0d8bc8:80:16: LV_MARGE_CROP 0x41290580 0x00000000 0
run_test:ff0d8bf4:80:16: LV_MARGE_ZOOM 0x41290580 0x0000A450 42064
run_test:ff0d8c20:80:16: DCFNO 0x4129A9D0 0x00002C00 11264
run_test:ff0d8c4c:80:16: LV_FACEYUV 0x4129D5D0 0x00024080 147584
run_test:ff0d8c78:80:16: IMGVRAM1 0x412C1650 0x00410000 4259840
run_test:ff0d8ca4:80:16: IMGVRAM2 0x416D1650 0x00410000 4259840
run_test:ff0d8cd0:80:16: IMGVRAM3 0x41AE1650 0x00410000 4259840
run_test:ff0d8cfc:80:16: IMGPLAY_WORK 0x41EF1650 0x00800000 8388608
run_test:ff0d8d28:80:16: IMGPLAY_WORK2 0x426F1650 0x00400000 4194304
run_test:ff0d8d54:80:16: EXMEM3-2_AREA 0x42AF1650 0x0030E9B0 3205552
run_test:ff0d8d74:80:16: EXMEM3_AREA 0x45E00000 0x00ACB400 11318272
run_test:ff0d8d94:80:16: AVERAGE_WORK_TOP 0x468CB400 0x00B9A600 12166656
run_test:ff0d8db0:80:16: AVERAGE_WORK_BOTTOM 0x47465A00 0x00B9A600 12166656
run_test:ff0d8dc0:80:16: --- Usually Mode ----
run_test:ff0d8de8:80:16: MEMORY_MGR 0x42E00000 0x03000000 50331648
run_test:ff0d8df8:80:16: --- NR Mode ----
run_test:ff0d8e20:80:16: NR_MEMORY_MGR 0x42E00000 0x03000000 50331648
run_test:ff0d8e44:80:16: COMPOSITION_WORK_TOP 0x412C1650 0x00B9A600 12166656
run_test:ff0d8e6c:80:16: COMPOSITION_WORK_BOTTOM 0x41E5BC50 0x00B9A600 12166656
run_test:ff0d8e7c:80:16: --- DP Mode ----
run_test:ff0d8ea8:80:16: DP_MULTI 0x467F1650 0x01800000 25165824
run_test:ff0d8ed0:80:16: DP_SINGLE 0x42AF1650 0x03D00000 63963136
run_test:ff0d8ee0:80:16: --- Indev Mode ----
run_test:ff0d8ef4:80:16: [INDVMGR] 0x0
run_test:ff0d92bc:80:16: YUV 0x0 0x00000000 0
run_test:ff0d92d8:80:16: YUV_OUT 0x0 0x00000000 0
run_test:ff0d92f4:80:16: INDV_WORK 0x0 0x00000000 0
run_test:ff0d9304:80:16: --- Ta10 Mode ----
run_test:ff0d9318:80:16: [TA10MGR] 0x0
run_test:ff0d9334:80:16: FULL_SIZE_YUV 0x0 0x00000000 0
run_test:ff0d9350:80:16: HALF_SIZE_YUV 0x0 0x00000000 0
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/1100D.png)
Only 128MB on this camera?!
What are the grey blocks at the start of all these graphs?
That's where DryOS runs, followed by AllocateMemory.
AllocateMemory on 1100D (and others) is from 0x3d0000 to 0xd00000. On 5D3 it's from 0x44C000 to 0xD3C000.
You can get more info about this block with meminfo and memmap from drysh.
550D:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/550D.png)
Three unused areas, 1M + 0.4M + 0.3M :)
1200D, qemu:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/1200D-qemu.png)
(nothing interesting 0.88M free block, named BANK8_FREE1)
--- Common ----
IMGVRAM1 0x40D00000 0x00410000 4259840
FILE_HEADER 0x41110000 0x00200000 2097152
DEVELOP_WORK 0x41310000 0x00074000 475136
FENCING_WORK 0x41384000 0x00010000 65536
LV_QUARK1 0x41394000 0x00064000 409600
EXMEM3_AREA 0x413F8000 0x00C08000 12615680
BMPVRAM1 0x42000000 0x00080000 524288
BMPVRAM2 0x42080000 0x00080000 524288
EXMEM3_2_AREA 0x42100000 0x01F00000 32505856
--- Usually Mode ----
MEMORY_MGR 0x44000000 0x08000000 134217728
--- NR Mode ----
NR_MEMORY_MGR 0x44000000 0x06000000 100663296
COMPOSITION_WORK_TOP 0x4A000000 0x01116000 17915904
COMPOSITION_WORK_BOTTOM 0x4B116000 0x01116000 17915904
--- DP Mode ----
DP_MULTI 0x48000000 0x04000000 67108864
DP_SINGLE 0x42100000 0x05F00000 99614720
--- Indev Mode ----
[INDVMGR] 0x44000000
YUV 0x4CEEA000 0x0222C000 35831808
YUV_OUT 0x4A000000 0x0222C000 35831808
INDV_WORK 0x44000000 0x06000000 100663296
--- Common Bottom ----
[BOTTOM1] 0x4C22C000
IMGVRAM2 0x4C22C000 0x00410000 4259840
LV_QUARK2 0x4C63C000 0x00064000 409600
IMGPLAY_WORK1 0x4C6A0000 0x00800000 8388608
AVERAGE_WORK_TOP 0x4CEEA000 0x01116000 17915904
AVERAGE_WORK_BOTTOM 0x4E000000 0x01116000 17915904
IMGVRAM3 0x4F116000 0x00410000 4259840
LV_WB 0x4F526000 0x0002BC00 179200
LV_FACEYUV 0x4F551C00 0x000E1080 921728
LV_HIST 0x4F632C80 0x00002000 8192
LV_ANGEL 0x4F634C80 0x00004040 16448
LV_FENCING 0x4F638CC0 0x00020C80 134272
LV_QUARK3 0x4F659940 0x00064000 409600
BANK8_FREE1 0x4F6BD940 0x000E2740 927552
VSHADING_COMP_WORK 0x4F7A0080 0x000DC000 901120
DARKCUR_COMP_WORK 0x4F87C080 0x00020000 131072
CAPTURE_WORK1 0x4F89C080 0x00280000 2621440
ENGINE_MIRROR 0x4FB1C080 0x00080000 524288
DCFNO 0x4FB9C080 0x00004000 16384
IMGPLAY_WORK2 0x4FBA0080 0x00400000 4194304
LV_MARGE_PDEFDATA1 0x4FFA0080 0x00010000 65536
LV_MARGE_PDEFDATA2 0x4FFB0080 0x00010000 65536
LV_MARGE_CROP 0x4FFC0080 0x00010000 65536
LV_MARGE_ZOOM 0x4FFD0080 0x00010000 65536
LV_WORK 0x4FFE0080 0x0001FF80 130944
7D2 master, qemu:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/7D2%20qemu.png)
(I've expected more RAM on this one)
--- Common Top ----
[TOP1] 0x4124C000
FILE_HEADER 0x4124C000 0x0200000 2097152
JOB 0x4144C000 0x0200000 2097152
ENGINE_MIRROR 0x4164C000 0x0060000 393216
SMAC_TRIC_WORK 0x416AC000 0x021B000 2207744
AE_WORK 0x418C7000 0x0038000 229376
VGAIMG_VRAM1 0x418FF000 0x00AC800 706560
VGAIMG_VRAM2 0x419AB800 0x00AC800 706560
VGAIMG_VRAM3 0x41A58000 0x00AC800 706560
BMP_VRAM 0x41B04800 0x02F7C00 3111936
OMAR_COM 0x41DFC400 0x0003400 13312
OMAR 0x41E00000 0x0200000 2097152
ZICO 0x42000000 0x0180000 1572864
ARIMA 0x42180000 0x0008000 32768
SHIRAHAMA 0x42188000 0x0007400 29696
APROC 0x4218F400 0x000C000 49152
DCFNO 0x4219B400 0x0004000 16384
USB30 0x4219F400 0x0025800 153600
RENDERING WORK 0x421C4C00 0x0A7A800 10987520
CAPTURE_WORK1 0x42C3F400 0x0600000 6291456
VSHADING_COMP_WORK 0x4323F400 0x00109800 1087488
DARKCUR_COMP_WORK 0x43348C00 0x0001E800 124928
AUDIO_WORK 0x5BF8D800 0x0120000 1179648
DANCING 0x43367400 0x0300000 3145728
IMG_VRAM1 0x5F02E000 0x03F4800 4147200
IMG_VRAM2 0x5F422800 0x03F4800 4147200
IMG_VRAM3 0x5F817000 0x03F4800 4147200
IMG_VRAM4 0x5FC0B800 0x03F4800 4147200
--- Usually Mode ----
MEMORY_MGR 0x44078000 0x8C60000 147193856
SS_DEVELOP_FINDER 0x4CCD8000 0x1E9C000 32096256
SS_DEVELOP_PIM 0x53620000 0x1E9C000 32096256
AE_SHOOTING_WORK 0x4EB74000 0x0432000 4399104
AE_SHOOTING_WORK_PIM 0x554BC000 0x0432000 4399104
EXMEM3_AREA 0x43667400 0x0A10C00 10554368
EXMEM3_AREA_2 0x5CBC0000 0x246E000 38199296
IMGPLAY_WORK 0x55938000 0x1400000 20971520
IMGPLAY_WORK2 0x00000000 0x0000000 0 [Cacheable!!]
YUV 0x55938000 0x4F70000 83296256
1st_YUV 0x55938000 0x4F70000 83296256
2nd_YUV 0x5A8A8000 0x0B08000 11567104
--- DP Mode ----
DP_MULTI 0x4C667400 0x9000000 150994944
DP_SINGLE 0x43667400 0x9000000 150994944
--- Indev Mode ----
[INDVMGR] 0x44078000
YUV 0x48800000 0x2800000 41943040
YUV_OUT 0x4F000000 0x2800000 41943040
INDV_WORK 0x51800000 0x98AF000 160100352
--- Movie Mode ----
REC_WORK 0x4CCD8000 0x3328000 53641216
STREAM 0x50000000 0x35C2C00 56372224
REC_YUV 0x5B3B0000 0x0BDD800 12441600
Wait does this mean you could possibly run ML without a card?
How exactly did you reach this conclusion?
Maybe @hjfilmspeed thinks you can just upload ML there in memory, but that's volatile IIRC, right?
600D
run_test:ff0da32c:80:16: IMGVRAM1 0x40D00000 0x00410000 4259840
run_test:ff0da354:80:16: FILE_HEADER 0x41110000 0x00200000 2097152
run_test:ff0da37c:80:16: DEVELOP_WORK 0x41310000 0x00074000 475136
run_test:ff0da3a8:80:16: FENCING_WORK 0x41384000 0x00010000 65536
run_test:ff0da3d4:80:16: LV_QUARK1 0x41394000 0x00064000 409600
run_test:ff0da400:80:16: EXMEM3_AREA 0x413F8000 0x00C08000 12615680
run_test:ff0da428:80:16: BMPVRAM1 0x42000000 0x00080000 524288
run_test:ff0da450:80:16: BMPVRAM2 0x42080000 0x00080000 524288
run_test:ff0da478:80:16: EXMEM3_2_AREA 0x42100000 0x01F00000 32505856
run_test:ff0da488:80:16: --- Usually Mode ----
run_test:ff0da4b0:80:16: MEMORY_MGR 0x44000000 0x08000000 134217728
run_test:ff0da4c0:80:16: --- NR Mode ----
run_test:ff0da4e8:80:16: NR_MEMORY_MGR 0x44000000 0x06000000 100663296
run_test:ff0da510:80:16: COMPOSITION_WORK_TOP 0x4A000000 0x01116000 17915904
run_test:ff0da538:80:16: COMPOSITION_WORK_BOTTOM 0x4B116000 0x01116000 17915904
run_test:ff0da548:80:16: --- DP Mode ----
run_test:ff0da570:80:16: DP_MULTI 0x48000000 0x04000000 67108864
run_test:ff0da598:80:16: DP_SINGLE 0x42100000 0x05F00000 99614720
run_test:ff0da5a8:80:16: --- Indev Mode ----
run_test:ff0da5c4:80:16: [INDVMGR] 0x44000000
run_test:ff0da8f8:80:16: YUV 0x4CEEA000 0x0222C000 35831808
run_test:ff0da91c:80:16: YUV_OUT 0x4A000000 0x0222C000 35831808
run_test:ff0da944:80:16: INDV_WORK 0x44000000 0x06000000 100663296
run_test:ff0da954:80:16: --- Common Bottom ----
run_test:ff0da974:80:16: [BOTTOM1] 0x4C22C000
run_test:ff0da9a0:80:16: IMGVRAM2 0x4C22C000 0x00410000 4259840
run_test:ff0da9cc:80:16: LV_QUARK2 0x4C63C000 0x00064000 409600
run_test:ff0da9f8:80:16: IMGPLAY_WORK1 0x4C6A0000 0x00800000 8388608
run_test:ff0daa20:80:16: AVERAGE_WORK_TOP 0x4CEEA000 0x01116000 17915904
run_test:ff0daa44:80:16: AVERAGE_WORK_BOTTOM 0x4E000000 0x01116000 17915904
run_test:ff0daa70:80:16: IMGVRAM3 0x4F116000 0x00410000 4259840
run_test:ff0daa9c:80:16: LV_WB 0x4F526000 0x0002BC00 179200
run_test:ff0daac8:80:16: LV_FACEYUV 0x4F551C00 0x000E1080 921728
run_test:ff0daaf4:80:16: LV_HIST 0x4F632C80 0x00002000 8192
run_test:ff0dab20:80:16: LV_ANGEL 0x4F634C80 0x00004040 16448
run_test:ff0dab4c:80:16: LV_FENCING 0x4F638CC0 0x00020C80 134272
run_test:ff0dab78:80:16: LV_QUARK3 0x4F659940 0x00064000 409600
run_test:ff0daba4:80:16: BANK8_FREE1 0x4F6BD940 0x000E2740 927552
run_test:ff0dabd0:80:16: VSHADING_COMP_WORK 0x4F7A0080 0x000DC000 901120
run_test:ff0dabfc:80:16: DARKCUR_COMP_WORK 0x4F87C080 0x00020000 131072
run_test:ff0dac28:80:16: CAPTURE_WORK1 0x4F89C080 0x00280000 2621440
run_test:ff0dac54:80:16: ENGINE_MIRROR 0x4FB1C080 0x00080000 524288
run_test:ff0db014:80:16: DCFNO 0x4FB9C080 0x00004000 16384
run_test:ff0db040:80:16: IMGPLAY_WORK2 0x4FBA0080 0x00400000 4194304
run_test:ff0db06c:80:16: LV_MARGE_PDEFDATA1 0x4FFA0080 0x00010000 65536
run_test:ff0db098:80:16: LV_MARGE_PDEFDATA2 0x4FFB0080 0x00010000 65536
run_test:ff0db0c4:80:16: LV_MARGE_CROP 0x4FFC0080 0x00010000 65536
run_test:ff0db0f0:80:16: LV_MARGE_ZOOM 0x4FFD0080 0x00010000 65536
run_test:ff0db11c:80:16: LV_WORK 0x4FFE0080 0x0001FF80 130944
600D:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/600D.png)
I've noticed some of the memory blocks are labeled as FREE, so I've updated all graphs to show them as unused. Full list:
5D Mark III BANK1_FREE1 0x4153C000 0x00029200 168448
60D FREE2 0x5CC280E0 0x002C1F20 2891552
600D BANK8_FREE1 0x4F6BD940 0x000E2740 927552
1200D BANK8_FREE1 0x4F6BD940 0x000E2740 927552
7D FREE1 0x41FC2780 0x0003D880 252032
7D FREE2 0x5CBD3980 0x00316680 3237504
7D FREE3 0x5F758780 0x008A7880 9074816
70D BANK1_FREE1 0x4153C000 0x00029200 168448
70D BANK1_FREE2 0x41DD9B00 0x0000E900 59648
70D BANK1_FREE3 0x41FC6000 0x00001000 4096
80D, QEMU:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/80D-qemu.png)
1GB RAM 8)
--- Common Lower ----
NETWORK_HEAP 0x40D6C000 0x00380000 3670016
SMAC_TRIC_WORK 0x410EC000 0x0021B000 2207744
TUNE2 0x41307000 0x00180000 1572864
TUNE 0x41487000 0x00120000 1179648
FIX 0x415A7000 0x00160000 1441792
BITMAP_VRAM 0x41707000 0x002F7C00 3111936
OMAR 0x41A00000 0x00480000 4718592
OMAR_NETWORK 0x41E80000 0x00180000 1572864
ZICO 0x42000000 0x00180000 1572864
ARIMA 0x42180000 0x00008000 32768
SHIRAHAMA 0x42188000 0x00007400 29696
APROC 0x4218F400 0x0000D000 53248
DARKCUR_COMP_WORK 0x4219C400 0x00022000 139264
VSHADING_COMP_WORK 0x421BE400 0x0021F800 2226176
FACTORY/TVAFDEBUG 0x423DDC00 0x0004B000 307200
ENGINE_MIRROR 0x42428C00 0x00060000 393216
MOVIE_CFILTER_SEED 0x42488C00 0x00100000 1048576
CAPTURE_WORK 0x42588C00 0x01560000 22413312
DCFNO 0x43AE8C00 0x00004000 16384
OMAR_COM 0x43AECC00 0x00003400 13312
RENDERING_WORK 0x43AF0000 0x00AFA800 11511808
JOB_OBJECT 0x445EA800 0x00380000 3670016
FILE_HEADER 0x4496A800 0x00200000 2097152
--- Common Upper ----
DANCING 0x7F122800 0x00300000 3145728
IMG_VRAM1 0x7F422800 0x003F4800 4147200
IMG_VRAM2 0x7F817000 0x003F4800 4147200
IMG_VRAM3 0x7FC0B800 0x003F4800 4147200
--- Normal ----
SS-1 0x44BC0000 0x010D0000 17629184
YUV_1st-1 0x45C90000 0x02F40000 49545216
YUV_2nd-1 0x48BD0000 0x0060AE00 6336000
EXMEM3_AREA 0x491DAE00 0x01924000 26361856
MEMORY_MGR1 0x4AAFEE00 0x02AA0000 44695552
OnlyMem1-1 0x4D59EE00 0x02AA0000 44695552
OnlyMem1-2 0x5003EE00 0x02AA0000 44695552
OnlyMem1-3 0x52ADEE00 0x02AA0000 44695552
OnlyMem1-4 0x5557EE00 0x02AA0000 44695552
OnlyMem1-5 0x5801EE00 0x02AA0000 44695552
OnlyMem1-6 0x5AABEE00 0x02AA0000 44695552
OnlyMem1-7 0x5D55EE00 0x02AA0000 44695552
OnlyMem1-8 0x60000000 0x02AA0000 44695552
OnlyMem1-9 0x62AA0000 0x02AA0000 44695552
OnlyMem1-10 0x65540000 0x02AA0000 44695552
OnlyMem1-11 0x67FE0000 0x02AA0000 44695552
OnlyMem1-12 0x6AA80000 0x02AA0000 44695552
OnlyMem1-13 0x6D520000 0x02AA0000 44695552
OnlyMem1-14 0x6FFC0000 0x02AA0000 44695552
MEMORY_MGR2 0x72A60000 0x02AA0000 44695552
EXMEM3_AREA_2 0x75500000 0x048A8000 76185600
SS-2 0x79DA8000 0x010D0000 17629184
YUV_1st-2 0x7AE78000 0x02F40000 49545216
YUV_2nd-1 0x7DDB8000 0x0060AE00 6336000
YUV_Thumb 0x7E3C4C00 0x00180000 1572864
--- Movie ----
MOVIE_RECWORK 0x5AAC0000 0x03400000 54525952
AUDIO_WORK 0x5DEC0000 0x000C1800 792576
MOVIE_STREAM 0x5DF81800 0x03600000 56623104
CINEMA_FILTER_WORK 0x61581800 0x00E00000 14680064
LV_WORK 0x63680000 0x04960000 76939264
MOVIE_RECYUV 0x7E544C00 0x00BDDC00 12442624
--- Play ----
MOVIE_PLAYWORK 0x63FE0000 0x02400000 37748736
IMGPLAY_WORK 0x663E0000 0x01400000 20971520
SLIDESHOW_WORK 0x677E0000 0x00800000 8388608
--- Multishot ----
HDR/GIS_FLEXIBLE_MEM3_1 0x00000000 0x00000000 0 [Cacheable!!]
HDR/GIS_FLEXIBLE_MEM3_2 0x00000000 0x00000000 0 [Cacheable!!]
HDR/GIS_SS-1 0x44BC0000 0x010D0000 17629184
HDR/GIS_YUV 1st-1 0x45C90000 0x02F40000 49545216
HDR/GIS_YUV 2nd-1 0x48BD0000 0x0060AE00 6336000
HDR/GIS_WORK3 0x491DAE00 0x02C00000 46137344
HDR/GIS_WORK1 0x4BDDAE00 0x02C00000 46137344
HDR/GIS_WORK2 0x4E9DAE00 0x02C00000 46137344
HDR/GIS_WORK4 0x515DAE00 0x02C00000 46137344
HDR/GIS_COMP_WORK 0x541DAE00 0x0F4A5200 256528896
HDR/GIS_MOVIE_RECWORK 0x5AAC0000 0x03400000 54525952
HDR/GIS_AUDIO_WORK 0x5DEC0000 0x000C1800 792576
HDR/GIS_MOVIE_STREAM 0x5DF81800 0x03600000 56623104
HDR/GIS_LV_WORK 0x63680000 0x04960000 76939264
HDR/GIS_MOVIE_PLAYWORK 0x63FE0000 0x02400000 37748736
HDR/GIS_IMGPLAY_WORK 0x663E0000 0x01400000 20971520
HDR/GIS_SLIDE_SHOW_WORK 0x677E0000 0x00800000 8388608
HDR/GIS_EXMEM3_AREA 0x67FE0000 0x11DC8000 299663360
HDR/GIS_SS-2 0x79DA8000 0x010D0000 17629184
HDR/GIS_YUV_1st-2 0x7AE78000 0x02F40000 49545216
HDR/GIS_YUV_2nd-2 0x7DDB8000 0x0060AE00 6336000
HDR/GIS_YUV_Thumb 0x7E3C4C00 0x00180000 1572864
HDR/GIS_MOVIE_RECYUV 0x7E544C00 0x00BDDC00 12442624
--- Indev ----
INDEV_SS-1 0x44BC0000 0x010D0000 17629184
INDEV_YUV_1st-1 0x45C90000 0x02F40000 49545216
INDEV_YUV_2nd-1 0x48BD0000 0x0060AE00 6336000
INDEV_EXMEM3_AREA 0x491DAE00 0x092B5200 153833984
INDEV_YUV_IN 0x52490000 0x02DC6C00 48000000
INDEV_YUV_OUT 0x55256C00 0x02DC6C00 48000000
INDEV_BASIC 0x58020000 0x02AA0000 44695552
INDEV_WORK 0x67FE0000 0x0A8E8000 177111040
INDEV_EXMEM3_AREA 0x728C8000 0x074E0000 122552320
INDEV_SS-2 0x79DA8000 0x010D0000 17629184
INDEV_YUV_1st-2 0x7AE78000 0x02F40000 49545216
INDEV_YUV_2nd-2 0x7DDB8000 0x0060AE00 6336000
INDEV_YUV_Thumb 0x7E3C4C00 0x00180000 1572864
INDV_MOVIE_REC_YUV 0x7E544C00 0x00BDDC00 12442624
--- DP ----
DP_SS-1 0x44BC0000 0x010D0000 17629184
DP_YUV_1st-1 0x45C90000 0x02F40000 49545216
DP_YUV_2nd-1 0x48BD0000 0x0060AE00 6336000
DP_YUV_IN 0x491DAE00 0x02DC6C00 48000000
DP_YUV_OUT 0x4BFA1A00 0x02DC6C00 48000000
DP_MULTI_CHUNK 0x4ED68600 0x17677A00 392657408
DP_WORK 0x67FE0000 0x0A8E8000 177111040
DP_SINGLE_CHUNK 0x728C8000 0x074E0000 122552320
DP_SS-2 0x79DA8000 0x010D0000 17629184
DP_YUV_1st-2 0x7AE78000 0x02F40000 49545216
DP_YUV_2nd-2 0x7DDB8000 0x0060AE00 6336000
DP_YUV_Thumb 0x7E3C4C00 0x00180000 1572864
DP_MOVIE_REC_YUV 0x7E544C00 0x00BDDC00 12442624
Oh yeah I'm sorry I must have misunderstood this. I'm useless ha ha
EOS M2, QEMU:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/EOSM2%20qemu.png)
1062: 48619.520 [RSC] --- Common Top ----
1063: 48619.520 [RSC] [TOP1] 0x40C2A000
1064: 48619.776 [RSC] REPLACE_IMAGE_VRAM 0x40C2A000 0x00032000 204800
1065: 48623.104 [RSC] SSS_DEVELOP_WORK 0x40C5C000 0x00038000 229376
1066: 48626.432 [RSC] SDS_DEVELOP_WORK 0x40C94000 0x00038000 229376
1067: 48629.760 [RSC] DARKCUR_COMP_WORK 0x40CCC000 0x00020000 131072
1069: 48637.440 [RSC] FENCING_WORK 0x40CEC000 0x00010000 65536
1070: 48640.768 [RSC] DCFNO 0x40CFC000 0x00004000 16384
1071: 48644.096 [RSC] LVMARGE_P_DEF_DATA_1 0x40D00000 0x0000A000 40960
1072: 48647.424 [RSC] LVMARGE_P_DEF_DATA_2 0x40D0A000 0x0000A000 40960
1074: 48654.848 [RSC] LVMARGE_P_DEF_DATA_3 0x41FF0000 0x0000A000 40960
1075: 48657.920 [RSC] LVMARGE_P_DEF_DATA_ZOOM 0x40D14000 0x0000C000 49152
1076: 48661.504 [RSC] FILE_HEADER 0x40D20000 0x00240000 2359296
1077: 48664.320 [RSC] SAF WORK 0x40FA0000 0x00200000 2097152
1078: 48667.136 [RSC] BMPVRAM1 0x411A0000 0x00080000 524288
1080: 48676.864 [RSC] BMPVRAM2 0x41220000 0x00080000 524288
1081: 48680.704 [RSC] ENGINE_MIRROR 0x412A0000 0x00044000 278528
1082: 48688.640 [RSC] VSHADING_COMP_WORK 0x412E4000 0x000DC000 901120
1084: 48692.992 [RSC] STILL SCAR 0x413C0000 0x00075B00 482048
1085: 48692.992 [RSC] TUNEDATA 0x41435B00 0x00140000 1310720
1086: 48692.992 [RSC] TUNEDATA2 0x41575B00 0x00160000 1441792
1087: 48693.504 [RSC] FIXDATA 0x416D5B00 0x0021E500 2221312
1088: 48693.504 [RSC] LVMARGE_P_DEF_DATA_CROP 0x418F4000 0x0000C000 49152
1089: 48693.760 [RSC] WIRELESS_WORK2 0x41900000 0x00300000 3145728
1090: 48699.648 [RSC] WIRELESS_WORK1 * 0x41C00000 0x00200000 2097152
1091: 48702.464 [RSC] ADAPTER_TRANSFER * 0x0 0x00000000 0
1092: 48702.464 [RSC] EEKO 0x41E00000 0x001E0000 1966080
1093: 48702.720 [RSC] SHOOTING_CREATIVEFILTER 0x41FE0000 0x00010000 65536
1094: 48704.512 [RSC] EXMEM3_AREA_4 0x0 0x00000000 0
1095: 48706.304 [RSC] --- Usually Mode ----
1096: 48708.352 [RSC] MEMORY_MGR 0x42000000 0x04000000 67108864
1098: 48715.520 [RSC] ONLY MEM1 1 0x46000000 0x02000000 33554432
1099: 48717.568 [RSC] ONLY MEM1 2 0x48000000 0x02000000 33554432
1100: 48721.152 [RSC] IMGPLAY_WORK 0x4A000000 0x00A00000 10485760
1101: 48724.736 [RSC] IMGPLAY_WORK2 0x4AA00000 0x00400000 4194304
1102: 48727.808 [RSC] SS_DEVELOP1 0x4A000000 0x00E00000 14680064
1104: 48734.976 [RSC] EXMEM3_AREA_2 0x4AE00000 0x000EA000 958464
1105: 48738.816 [RSC] AVERAGE_WORK_TOP 0x4AEEA000 0x01116000 17915904
1106: 48742.144 [RSC] AVERAGE_WORK_BOTTOM 0x4C000000 0x01116000 17915904
1107: 48745.472 [RSC] SS_DEVELOP_OTHER_WORK 0x4D116000 0x00400000 4194304
1109: 48752.384 [RSC] SLIDE_SHOW_WORK 0x4D516000 0x00800000 8388608
1110: 48753.920 [RSC] CAPTURE_WORK1 0x4D600000 0x00240000 2359296
1111: 48760.576 [RSC] EXMEM3_AREA_1 0x4DD16000 0x016BA000 23830528
1112: 48764.416 [RSC] IMGVRAM1 0x4F3D0000 0x00410000 4259840
1113: 48764.928 [RSC] IMGVRAM2 0x4F7E0000 0x00410000 4259840
1114: 48765.184 [RSC] IMGVRAM3 0x4FBF0000 0x00410000 4259840
1116: 48771.584 [RSC] --- GIS Mode ----
1117: 48772.352 [RSC] TEMPMEM1 0x48000000 0x02000000 33554432
1118: 48775.680 [RSC] WORK 0x4A000000 0x08600000 140509184
1119: 48775.680 [RSC] IMGPLAY_WORK 0x4A000000 0x00A00000 10485760
1120: 48775.680 [RSC] IMGPLAY_WORK2 0x4AA00000 0x00400000 4194304
1121: 48779.520 [RSC] MOVIE_REC_WORK 0x4AE00000 0x00FA0000 16384000
1122: 48779.520 [RSC] MOVIE_PLAY_WORK 0x4BE00000 0x00E00000 14680064
1123: 48782.848 [RSC] SLIDE_SHOW_WORK 0x4D516000 0x00800000 8388608
1124: 48787.200 [RSC] MOVIE_STREAM 0x4DD16000 0x01400000 20971520
1126: 48790.528 [RSC] IMGVRAM1 0x4F3D0000 0x00410000 4259840
1127: 48796.160 [RSC] IMGVRAM2 0x4F7E0000 0x00410000 4259840
1128: 48796.160 [RSC] IMGVRAM3 0x4FBF0000 0x00410000 4259840
1129: 48797.696 [RSC] EXMEM3_1_AREA 0x42000000 0x06000000 100663296
1130: 48800.256 [RSC] EXMEM3_2_AREA 0x4CC40000 0x004D6000 5070848
1131: 48802.304 [RSC] --- HDR Mode ----
1133: 48806.912 [RSC] TEMPMEM1 0x48000000 0x02000000 33554432
1134: 48808.192 [RSC] WORK 0x4800000 0x0A600000 174063616
1135: 48813.312 [RSC] IMGPLAY_WORK 0x4A000000 0x00A00000 10485760
1136: 48815.360 [RSC] IMGPLAY_WORK2 0x4AA00000 0x00400000 4194304
1137: 48815.360 [RSC] MOVIE_REC_WORK 0x4AE00000 0x00FA0000 16384000
1138: 48815.360 [RSC] MOVIE_PLAY_WORK 0x4BE00000 0x00E00000 14680064
1139: 48815.872 [RSC] SLIDE_SHOW_WORK 0x4D516000 0x00800000 8388608
1140: 48816.896 [RSC] MOVIE_STREAM 0x4DD16000 0x01400000 20971520
1141: 48817.920 [RSC] IMGVRAM1 0x4F3D0000 0x00410000 4259840
1142: 48817.920 [RSC] IMGVRAM2 0x4F7E0000 0x00410000 4259840
1143: 48817.920 [RSC] IMGVRAM3 0x4FBF0000 0x00410000 4259840
1144: 48820.224 [RSC] EXMEM3_1_AREA 0x42000000 0x06000000 100663296
1145: 48823.808 [RSC] EXMEM3_2_AREA 0x4CC40000 0x004D6000 5070848
1146: 48824.320 [RSC] --- NR Mode ----
1148: 48829.952 [RSC] NR_MEMORY_MGR 0x42000000 0x08000000 134217728
1149: 48833.024 [RSC] COMPOSITION_WORK_TOP 0x0 0x00000000 0
1150: 48836.096 [RSC] COMPOSITION_WORK_BOTTOM 0x0 0x00000000 0
1151: 48839.424 [RSC] --- DP Mode ----
1152: 48841.216 [RSC] DP_SINGLE 0x42000000 0x05E00000 98566144
1153: 48841.216 [RSC] DP_MULTI 0x47E00000 0x04D94000 81346560
1154: 48843.520 [RSC] DP_CAPTURE_WORK1 0x4CB94000 0x00040000 262144
1155: 48844.288 [RSC] DP_AVERAGE_TOP 0x4DBD4000 0x01116000 17915904
1157: 48848.128 [RSC] DP_AVERAGE_BOTTOM 0x4ECEA000 0x01116000 17915904
1158: 48849.408 [RSC] --- Indev Mode ----
1159: 48851.200 [RSC] [INDVMGR] 0x0
1160: 48852.480 [RSC] YUV 0x4AEEA000 0x0222C000 35831808
1161: 48852.480 [RSC] YUV_OUT 0x42000000 0x0222C000 35831808
1162: 48853.760 [RSC] INDV_WORK 0x0 0x00000000 0
256MB. Note the WORK region has invalid size (it would overflow), so I've patched it to get a proper graph.
No unused areas for us.
1300D, QEMU:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/1300D%20qemu.png)
--- Common Top ----
IMGVRAM1 0x40D00000 0x00410000 4259840
FILE_HEADER 0x41110000 0x00200000 2097152
DEVELOP_WORK 0x41310000 0x00074000 475136
FENCING_WORK 0x41384000 0x00010000 65536
LV_QUARK1 0x41394000 0x00064000 409600
EXMEM3_AREA 0x41878000 0x00788000 7897088
BMPVRAM1 0x42000000 0x00080000 524288
BMPVRAM2 0x42080000 0x00080000 524288
EXMEM3_2_AREA 0x42100000 0x01F00000 32505856
--- Usually Mode ----
MEMORY_MGR 0x44000000 0x08000000 134217728
--- NR Mode ----
NR_MEMORY_MGR 0x44000000 0x06000000 100663296
COMPOSITION_WORK_TOP 0x4A000000 0x01116000 17915904
COMPOSITION_WORK_BOTTOM 0x4B116000 0x01116000 17915904
--- DP Mode ----
DP_MULTI 0x48000000 0x04000000 67108864
DP_SINGLE 0x42100000 0x05F00000 99614720
--- Indev Mode ----
[INDVMGR] 0x44000000
YUV 0x4CEEA000 0x0222C000 35831808
YUV_OUT 0x4A000000 0x0222C000 35831808
INDV_WORK 0x44000000 0x06000000 100663296
--- Common Bottom ----
[BOTTOM1] 0x4C22C000
IMGVRAM2 0x4C22C000 0x00410000 4259840
LV_QUARK2 0x4C63C000 0x00064000 409600
IMGPLAY_WORK1 0x4C6A0000 0x00800000 8388608
AVERAGE_WORK_TOP 0x4CEEA000 0x01116000 17915904
AVERAGE_WORK_BOTTOM 0x4E000000 0x01116000 17915904
IMGVRAM3 0x4F116000 0x00410000 4259840
LV_WB 0x4F526000 0x0002BC00 179200
LV_FACEYUV 0x4F551C00 0x000E1080 921728
LV_HIST 0x4F632C80 0x00002000 8192
LV_ANGEL 0x4F634C80 0x00004040 16448
LV_FENCING 0x4F638CC0 0x00020C80 134272
LV_QUARK3 0x4F659940 0x00064000 409600
BANK8_FREE1 0x4F6BD940 0x000E2740 927552
VSHADING_COMP_WORK 0x4F7A0080 0x000DC000 901120
DARKCUR_COMP_WORK 0x4F87C080 0x00020000 131072
CAPTURE_WORK1 0x4F89C080 0x00280000 2621440
ENGINE_MIRROR 0x4FB1C080 0x00080000 524288
DCFNO 0x4FB9C080 0x00004000 16384
IMGPLAY_WORK2 0x4FBA0080 0x00400000 4194304
LV_MARGE_PDEFDATA1 0x4FFA0080 0x00010000 65536
LV_MARGE_PDEFDATA2 0x4FFB0080 0x00010000 65536
LV_MARGE_CROP 0x4FFC0080 0x00010000 65536
LV_MARGE_ZOOM 0x4FFD0080 0x00010000 65536
LV_WORK 0x4FFE0080 0x0001FF80 130944
Another 256MB cam. There is a gap between LV_QUARK1 and EXMEM3 that might be useful.
5D Mark IV, QEMU:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/5D%20Mark%20IV%20qemu.png)
--- Common Lower ----
[TOP1] 0x40D6C000
ENGINE_MIRROR 0x40D6C000 0x0008E000 581632
GIMLET_WORK 0x40DFA000 0x00010000 65536
DANCING 0x40E0A000 0x00300000 3145728
SMAC TRIC WORK 0x4110A000 0x0021B000 2207744
DCFNO 0x41325000 0x00004000 16384
OMAR COM 0x41329000 0x00003400 13312
BITMAP VRAM 0x4132C400 0x0034C400 3458048
VGAIMG_VRAM1 0x41678800 0x0012C000 1228800
VGAIMG_VRAM2 0x417A4800 0x0012C000 1228800
VGAIMG_VRAM3 0x418D0800 0x0012C000 1228800
OMAR 0x41A00000 0x00480000 4718592
OMAR_NETWORK_BSS 0x41E80000 0x00180000 1572864
ZICO 0x42000000 0x00180000 1572864
ARIMA 0x42180000 0x00024000 147456
SHIRAHAMA 0x421A4000 0x0000A000 40960
APROC 0x421AE000 0x00016800 92160
VSHADING_COMP_WORK 0x421C4800 0x0002C6A0 181920
DARKCUR_COMP_WORK 0x421F1000 0x000250A0 151712
CAPTURE_WORK 0x42216400 0x0014A800 1353728
FACTORY/TVAFDEBUG 0x43049C00 0x0004B000 307200
RENDERING WORK 0x43094C00 0x00AAF9DC 11205084
DAF_PROGRAM 0x43B44800 0x00007530 30000
--- Common Upper ----
JOB OBJECT 0x7D98D400 0x00200000 2097152
FILE HEADER 0x7DB8D400 0x00200000 2097152
NETWORK HEAP 0x7DD8D400 0x00380000 3670016
FIX_DATA 0x7E10D400 0x00140000 1310720
TUNE_DATA 0x7E24D400 0x003C0000 3932160
TUNE_DATA2 0x7E60D400 0x00760000 7733248
TUNE_DATA3 0x7ED6D400 0x002C0000 2883584
IMG_VRAM1 0x7F02D400 0x003F4800 4147200
IMG_VRAM2 0x7F421C00 0x003F4800 4147200
IMG_VRAM3 0x7F816400 0x003F4800 4147200
IMG_VRAM4 0x7FC0AC00 0x003F4800 4147200
--- Normal ----
LV_SERVO_WORK-1 0x43B50000 0x011F3A80 18823808
SS-1 0x44D48000 0x029B0000 43712512
YUV 1st-1 0x476F8000 0x03BE8000 62816256
YUV 2nd-1 0x4B2E0000 0x00A8FC00 11074560
EXMEM3_AREA 0x4BD6FC00 0x00851C00 8723456
OnlyMem1-1 0x4C5C1800 0x0345FC00 54918144
OnlyMem1-2 0x4FA21400 0x0345FC00 54918144
MEMORY_MGR1 0x52E81000 0x0D17F000 219672576
MEMORY_MGR2 0x60000000 0x0D17F000 219672576
OnlyMem1-3 0x6D17F000 0x0345FC00 54918144
OnlyMem1-4 0x705DEC00 0x0345FC00 54918144
EXMEM3_AREA_2 0x73A3E800 0x02768C00 41323520
SS-2 0x761A8000 0x029B0000 43712512
YUV 1st-2 0x78B58000 0x03BE8000 62816256
YUV 2nd-2 0x7C740000 0x00A8FC00 11074560
YUV Thumb 0x7D1CFC00 0x000CB700 833280
LV_SERVO_WORK-2 0x7D2A0000 0x006ED280 7262848
--- Movie ----
LV_WORK-1 0x43B50000 0x03D4E5E4 64284132
REC_DATA-1 0x4C5C1800 0x01580000 22544384
MOVIE_STREAM 0x562E0C00 0x10400000 272629760
REC_DATA-2 0x6D17F000 0x01580000 22544384
AUDIO WORK 0x7D2A0000 0x00263048 2502728
LV_WORK-2 0x761A8000 0x028C45E8 42747368
--- Play ----
MOVIE_PLAYWORK 0x4784E800 0x024FD9F8 38787576
IMGPLAY_WORK 0x4C5C8000 0x01400000 20971520
SLIDESHOW_WORK 0x4D9C8000 0x007E9000 8294400
--- DLO ----
IMG_RECOVERY_WORK 0x59800000 0x14000000 335544320
--- Multishot ----
HDR/GIS_WORK1 0x69E00000 0x03600000 56623104
HDR/GIS_WORK2 0x6D400000 0x03600000 56623104
HDR/GIS_WORK3 0x66800000 0x03600000 56623104
HDR/GIS_WORK4 0x70A00000 0x03600000 56623104
HDR/GIS_COMP_WORK-1 0x4C600000 0x0FA00000 262144000
HDR/GIS_COMP_WORK-2 0x74000000 0x01A00000 27262976
HDR/GIS_EXMEM3 0x4BD6FC00 0x00851C00 8723456
HDR/GIS_FLEXIBLE_MEM3_1 0x66800000 0x0D800000 226492416
HDR/GIS_FLEXIBLE_MEM3_2 0x4C600000 0x1A200000 438304768
--- Indev ----
INDEV_EXMEM3_AREA_1 0x4BD6FC00 0x00851C00 8723456
INDEV_MEMORY_MGR1 0x4FA21400 0x068BF800 109836288
INDEV_IMG_RECOVERY_WORK 0x56400000 0x14000000 335544320
INDEV_INPUT_YUV 0x6A400000 0x03C00000 62914560
INDEV_OUTPUT_YUV 0x6E000000 0x03C00000 62914560
INDEV_EXMEM3_AREA_2 0x71C00000 0x045A8000 73039872
--- DP ----
DP_SINGLE_CHUNK 0x52000000 0x08C00000 146800640
DP_MULTI_CHUNK 0x5B000000 0x0C800000 209715200
DP_INPUT_YUV 0x6A400000 0x03C00000 62914560
DP_OUTPUT_YUV 0x6E000000 0x03C00000 62914560
1 GB RAM (on main core).
5DS - master core, QEMU:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/5DS-Master-qemu.png)
--- Common Lower ----
[TOP1] 0x4168E000
FILE HEADER 0x434C9400 0x00200000 2097152
JOB OBJECT 0x436C9400 0x00200000 2097152
BITMAP VRAM 0x4168E000 0x002F7C00 3111936
DARKCUR_COMP_WORK 0x41985C00 0x00030400 197632
AE WORK 0x419B6000 0x00038000 229376
DCFNO 0x419EE000 0x00004000 16384
TVAF WORK 0x419F2000 0x0000C800 51200
OMAR 0x41A00000 0x00380000 3670016
ZICO 0x42000000 0x00180000 1572864
ARIMA 0x42180000 0x00008000 32768
SHIRAHAMA 0x42188000 0x00007400 29696
APROC 0x4218F400 0x0000D000 53248
FACTORY/TVAFDEBUG 0x4219C400 0x0004B000 307200
SMAC TRIC WORK 0x421E7400 0x0021B000 2207744
USB30 0x42402400 0x00025800 153600
ENGINE_MIRROR 0x41D80000 0x00060000 393216
VSHADING_COMP_WORK 0x42427C00 0x001A7000 1732608
CAPTURE_WORK 0x425CEC00 0x00480000 4718592
RENDERING WORK 0x42A4EC00 0x00A7A800 10987520
OMAR COM 0x41DE0000 0x00003400 13312
--- Common Upper ----
REC_YUV 0x7DD50400 0x00BDDC00 12442624
AE SHOOT WORK 0x7E92E000 0x00400000 4194304
DANCING 0x7ED2E000 0x00300000 3145728
IMG_VRAM1 0x7F02E000 0x003F4800 4147200
IMG_VRAM2 0x7F422800 0x003F4800 4147200
IMG_VRAM3 0x7F817000 0x003F4800 4147200
IMG_VRAM4 0x7FC0B800 0x003F4800 4147200
--- Normal ----
EXMEM3_AREA 0x438C9400 0x03136C00 51604480
SS-1 0x46A00000 0x01844000 25444352
YUV 1st-1 0x48248000 0x060B0000 101384192
YUV Thumb 0x4E300000 0x00180000 1572864
OnlyMem1-1 0x4E480000 0x058B8800 93030400
OnlyMem1-2 0x53D38800 0x058B8800 93030400
OnlyMem1-3 0x595F1000 0x058B8800 93030400
OnlyMem1-4 0x60000000 0x058B8800 93030400
OnlyMem1-5 0x658B8800 0x058B8800 93030400
SS-2 0x70A29800 0x01844000 25444352
YUV 1st-2 0x72270000 0x060B0000 101384192
LV_WORK 0x72270000 0x060B0000 101384192
EXMEM3_AREA_2 0x78329800 0x05A26C00 94530560
--- Movie ----
IMGPLAY_WORK 0x65F40000 0x02000000 33554432
MOVIE_PLAYWORK 0x67F40000 0x02333400 36910080
MOVIE_RECWORK 0x595F8000 0x0339E800 54126592
MOVIE_STREAM 0x5C996800 0x0353EC00 55831552
MOVIE_RECYUV 0x7DD50400 0x00BDDC00 12442624
AUDIO WORK 0x5FED5400 0x0011F400 1176576
--- Play ----
IMGPLAY_WORK 0x65F40000 0x02000000 33554432
MOVIE_PLAYWORK 0x67F40000 0x02333400 36910080
--- Multishot ----
HDR/GIS_WORK1 0x4C670000 0x05A00000 94371840
HDR/GIS_WORK2 0x52070000 0x05A00000 94371840
HDR/GIS_WORK3 0x46C70000 0x05A00000 94371840
HDR/GIS_WORK4 0x57A70000 0x05A00000 94371840
HDR/GIS_COMP_WORK 0x5D470000 0x1B230000 455278592
HDR/GIS_IMGPLAY_WORK 0x65F40000 0x02000000 33554432
HDR/GIS_MOVIE_PLAYWORK 0x67F40000 0x02333400 36910080
HDR/GIS_MOVIE_RECWORK 0x438D1000 0x0339E800 54126592
HDR/GIS_MOVIE_STREAM 0x5D470000 0x0353EC00 55831552
HDR/GIS_MOVIE_RECYUV 0x7DD50400 0x00BDDC00 12442624
HDR/GIS_AUDIO WORK 0x609AEC00 0x0011F400 1176576
HDR/GIS_FLEXIBLE_MEM3_1 0x46A70000 0x16800000 377487360
HDR/GIS_FLEXIBLE_MEM3_2 0x5D470000 0x135B9800 324769792
--- Indev ----
INDEV_YUV_IN 0x4E480000 0x064A7200 105542144
INDEV_YUV_OUT 0x54927200 0x064A7200 105542144
INDEV_WORK 0x67F40000 0x096E9800 158242816
INDEV_DISTOR_WORK 0x70A29800 0x06C00000 113246208
INDV_IMGPLAY_WORK 0x65F40000 0x02000000 33554432
Possibly unused block at 41DE3400 - 41FFFC00 (2.11 MB).
750D/760D, QEMU, "only" 512MB:
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/750D-qemu.png)
--- Common Top ----
[TOP1] 0x40D6C000
FIX_DATA 0x40D6C000 0x0200000 2097152
TUNE_DATA 0x40F6C000 0x0120000 1179648
TUNE_DATA2 0x4108C000 0x0260000 2490368
LENS_DATA2 0x412EC000 0x0060000 393216
SAF_WORK 0x4134C000 0x0100000 1048576
ENGINE_MIRROR 0x4144C000 0x0060000 393216
VSHADING_COMP_WORK 0x414AC000 0x00121800 1185792
DARKCUR_COMP_WORK 0x415CD800 0x00021000 135168
OMAR COM 0x415EE800 0x0003400 13312
TVAF_WORK 0x415F1C00 0x000C800 51200
DCFNO 0x415FE400 0x0004000 16384
FACTORY_PROGRAM 0x41602400 0x004B000 307200
TVAF_DEBUG 0x41602400 0x004B000 307200
NETWORK_HEAP 0x41680000 0x0380000 3670016
OMAR 0x41A00000 0x0480000 4718592
OMAR_NET_BSS 0x41E80000 0x0180000 1572864
ZICO 0x42000000 0x0180000 1572864
ARIMA 0x42180000 0x0008000 32768
SHIRAHAMA 0x42188000 0x0007400 29696
APROC 0x4218F400 0x000D000 53248
RENDERING WORK 0x4219C400 0x0A7A800 10987520
FILE_HEADER 0x42C16C00 0x0200000 2097152
JOB 0x42E16C00 0x0200000 2097152
CAPTURE_WORK1 0x5EA74800 0x06AE000 7004160
DANCING 0x5F122800 0x0300000 3145728
SMAC TRIC WORK 0x43016C00 0x021B000 2207744
BMP VRAM 0x43231C00 0x02F7C00 3111936
IMG_VRAM1 0x5F422800 0x03F4800 4147200
IMG_VRAM2 0x5F817000 0x03F4800 4147200
IMG_VRAM3 0x5FC0B800 0x03F4800 4147200
IMG_VRAM4 0x00000000 0x03F4800 4147200 [Cacheable!!]
--- Usually Mode ----
MEMORY_MGR 0x483B0000 0x2970000 43450368
SS_DEVELOP FINDER 0x438B0000 0x2190000 35192832
SS_DEVELOP(Lower) 0x43D9C000 0x10C8000 17596416
SS_DEVELOP(Upper) 0x5BE2C000 0x10C8000 17596416
EXMEM3_AREA 0x43529800 0x0872800 8857600
EXMEM3_AREA_2 0x5D014000 0x1A60800 27658240
IMGPLAY_WORK 0x58830000 0x1400000 20971520
IMGPLAY_WORK2 0x00000000 0x0000000 0 [Cacheable!!]
MOVPLAY_WORK 0x59C30000 0x2400000 37748736
SLIDESHOW_WORK 0x5C030000 0x0800000 8388608
YUV 0x58830000 0x6B48000 112492544
REC_YUV 0x57C50000 0x0BDD800 12441600
1st_YUV(Lower) 0x44E64000 0x2F40000 49545216
1st_YUV(Upper) 0x58830000 0x2F40000 49545216
2nd_YUV(Lower) 0x47DA4000 0x060B000 6336512
2nd_YUV(Upper) 0x5B770000 0x060B000 6336512
THUMBNAIL_YUV 0x5BD7C000 0x00AF000 716800
LV_WORK 0x58830000 0x46C4000 74203136
--- DP Mode ----
DP_SINGLE 0x483B0000 0x8200000 136314880
DP_MULTI 0x505B0000 0x8200000 136314880
DP_SS_DEVELOP 0x5BA00000 0x2190000 35192832
DP_SS_DEVELOP(Lower) 0x43D9C000 0x10C8000 17596416
DP_SS_DEVELOP(Upper) 0x5BE2C000 0x10C8000 17596416
DP_1st_YUV(Lower) 0x44E64000 0x2F40000 49545216
DP_1st_YUV(Upper) 0x58830000 0x2F40000 49545216
DP_2nd_YUV(Lower) 0x47DA4000 0x060B000 6336512
DP_2nd_YUV(Upper) 0x5B770000 0x060B000 6336512
DP_THUMBNAIL_YUV 0x5BD7C000 0x00AF000 716800
--- Indev Mode ----
[INDVMGR] 0x45F2C000
YUV_IN 0x4B20C000 0x3000000 50331648
YUV_OUT 0x4E20C000 0x3000000 50331648
INDV_WORK 0x5260C000 0xA8E4000 177094656
INDV_SS_DEVELOP(Lower) 0x43D9C000 0x10C8000 17596416
INDV_SS_DEVELOP(Upper) 0x44E64000 0x10C8000 17596416
INDV_1st_YUV(Lower) 0x5260C000 0x2F40000 49545216
INDV_1st_YUV(Upper) 0x5554C000 0x2F40000 49545216
INDV_2nd_YUV(Lower) 0x5848C000 0x060B000 6336512
INDV_2nd_YUV(Upper) 0x58A97000 0x060B000 6336512
INDV_THUMBNAIL_YUV 0x590A2000 0x00AF000 716800
--- Movie Mode ----
REC WORK 0x4AD20000 0x3328000 53641216
STREAM 0x4E048000 0x35C2C00 56372224
AUDIO WORK 0x5CEF4000 0x0120000 1179648
BTW, getting these logs is a LOT easier now - just type this at the serial console (https://bitbucket.org/hudson/magic-lantern/src/qemu/contrib/qemu/HACKING.rst#rst-header-serial-console) in QEMU:
akashimorino
smemShowFix
From this EOSM2 quirk (https://www.magiclantern.fm/forum/index.php?topic=15895.msg197669#msg197669):
The ENGINE_MIRROR region from the above logs is used by engio_read / EngDrvOut to store the values written to hardware registers, as these registers cannot be read back. This address must be aligned at 0x40000 bytes, but the block allocated for it might be a bit larger.
Some examples:
60D: ENGINE_MIRROR 0x5C849960 0x00080000
Actual mirror address is 0x5c880000 (rounded up near 0xff1c566c), used until 0x5c8c0000.
0x5c880000 - 0x5C849960 = 217K free before this block.
0x5C849960 + 0x00080000 - 0x5c8c0000 = 38K free after this block.
1100D: ENGINE_MIRROR 0x40FF7000 0x00080000
Actual mirror address is 0x41000000 (rounded up near 0xff1d4890), used until 0x41040000.
0x41000000 - 0x40FF7000 = 36K free before this block.
0x40FF7000 + 0x00080000 - 0x41040000 = 225K free after this block. Not bad!
EOSM2: ENGINE_MIRROR 0x412A0000 0x00044000
Actual mirror address 0x412A0000 (somebody forgot to round it up). Good luck fixing that...
550D: ENGINE_MIRROR 0x4F757200 0x00040000
Actual mirror address: 0x4f780000 (rounded up near 0xff1c1228), used until 0x4f7c0000. Buffer overflow?! (overlaps VSHADING_COMP_WORK)
The above is just theory; I did not verify whether the addresses are really unused or not. Procedure: CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP, then use the camera in any mode you may think of, including taking pictures in burst mode until the buffer gets full, then look for changes in the tested memory region. See also PR #731 (https://bitbucket.org/hudson/magic-lantern/pull-requests/731/rscmgr-memory-60d-todo-7d-maybe-also-50d/diff).
Quote from: a1ex on February 21, 2018, 10:37:43 PM
EOSM2: ENGINE_MIRROR 0x412A0000 0x00044000
Actual mirror address 0x412A0000 (somebody forgot to round it up). Good luck fixing that...
You mean someone else? Looking up the addresses for the other cameras the EOSM2 should be rounding up near ff2c6bf8 but the code looks quite a bit different. So the rounding up isn't happening?
Looked up PR #731 (https://bitbucket.org/hudson/magic-lantern/commits/e799e89f67877825c6a4dc2868f87bed1196432b) and it seems like the EOSM2 needs to sprout yet another branch--RscMgr_memory, right?
Not really; it was linked as documentation for the above procedure (to make sure some possibly free memory area is really unused). This extra memory is only available for DIGIC 4 models (they allocate 0x80000 - twice as much - to be able to align this buffer). That's not needed in my opinion - they could have just used ADD instead of ORR...
The models that would benefit even from this - small - extra memory are 1100D and 600D.
Quote from: a1ex on February 22, 2018, 05:58:09 AM
The models that would benefit even from this - small - extra memory are 1100D and 600D.
This is the only part I understand in this topic, so my question is : how much is for 600D? (it is not mentioned) in wich these benefits would consist?
600D is linked earlier (you can do the math). In some cases, ML runs out of general-purpose memory and allocates from shoot_malloc (Debug -> Free Memory); whenever such memory is used for a longer time (such as, many/large modules loaded), certain operations in Canon menu can not be performed (such as switching some ISO options (https://www.magiclantern.fm/forum/index.php?topic=8358.msg76717#msg76717), or developing raw photos in camera, maybe others) and will result in ERR70.
You can tell exactly what these situations are.
Having 256K of additional memory could make the difference between having to use shoot_malloc (with the problems it has) or not.
The issue is probably subtle enough that nobody would ever bother narrowing it down to report it (they would probably just reset ML to defaults).
Edit: a quick test in QEMU, with dual_iso.mo and lua.mo loaded (but no features actually used) gives error on shutdown (might or might not translate to ERR70 on real hardware, not sure):
167: 22539.008 [MEM] NG AllocateMemory 262176
168: 22539.008 [MEM] Total = 0x8a0000, Free = 0x81320, MaxReg = 0x2e248
169: 22539.520 [MEM] Num Alloc = 3463, Num Free = 287
170: 22542.080 [STARTUP] ERROR ASSERT : Memory\Memory.c, Task = GuiMainTask
171: 22542.080 [STARTUP] ERROR ASSERT : Line 188
172: 22542.080 [STARTUP] ERROR ASSERT : FALSE
Loading Lua alongside with a few other modules will result in shoot_malloc being used. Try changing everything you can think of in Canon menu in this configuration, and I'm sure you'll find more issues, not just the ones I know about.
Well, I hope this come true. Talking about memory: better more than less.. :)
DIGIC 7:
200D-qemu.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/200D-qemu.log) -> 512MB RAM
800D-qemu.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/800D-qemu.log) -> 1GB RAM (!) [yes, triple-checked to make sure I didn't use the 77D log by mistake]
77D-qemu.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/77D-qemu.log) -> 1GB RAM
77D.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/77D.log) -> tested on real hardware
6D2-qemu.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/6D2-qemu.log) -> 1GB RAM
77D tested both in QEMU and on real hardware, with identical results.
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/200D-qemu.png) (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/800D-qemu.png)
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/77D.png) (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/6D2-qemu.png)
DIGIC 8 (both tested on real hardware):
M50.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/M50.log) -> 1GB RAM (!)
EOSR.log (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/EOSR.log) -> 2GB RAM (!!)
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/m50.png) (https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/EOS-R.png)
8)
Fabulous work @a1ex and this is all great to read!
SX740, based on log from srsa (https://www.magiclantern.fm/forum/index.php?topic=25305.msg231075#msg231075):
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/SX740.png)
1 GB RAM?! Roughly similar to M50.
RP, log from coon:
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/RP.png)
2 GB RAM, similar to EOS R.
250D:
2440: 6987.295 [RSC] --- Common Lower ----
2441: 6987.322 [RSC] LIME_HEAP 0x00000000 0x00000000 0 [Cacheable!
2442: 6987.330 [RSC] OMAR COM 0x00000000 0x00000000 0 [Cacheable!
2443: 6987.335 [RSC] ENGINE_MIRROR 0x00000000 0x00000000 0 [Cacheable!
2444: 6987.342 [RSC] TUNE 0x4048C000 0x00160000 1441792
2445: 6987.347 [RSC] FIX 0x405EC000 0x00190000 1638400
2446: 6987.352 [RSC] DCFNO 0x4077C000 0x00004000 16384
2447: 6987.358 [RSC] FACTORY/TVAFDEBUG 0x40780000 0x00080000 524288
2448: 6987.364 [RSC] LIME 0x41800000 0x00500000 5242880
2449: 6987.369 [RSC] NETWORK_HEAP 0x41D00000 0x00300000 3145728
2450: 6987.373 [RSC] ZICO 0x42000000 0x00180000 1572864
2451: 6987.379 [RSC] APROC 0x42180000 0x00021000 135168
2452: 6987.384 [RSC] ARIMA 0x421A1000 0x0006C000 442368
2453: 6987.389 [RSC] SHIRAHAMA 0x4220D000 0x0002E000 188416
2454: 6987.395 [RSC] RENDERING WORK 0x4223B000 0x00CE3800 13514752
2455: 6987.400 [RSC] FILE HEADER 0x42FB3000 0x00100000 1048576
2456: 6987.407 [RSC] VSHADING_COMP_WORK 0x430B3000 0x00027C00 162816
2457: 6987.412 [RSC] DARKCUR_COMP_WORK 0x430DAC00 0x00022000 139264
2458: 6987.417 [RSC] FANCING_WORK 0x430FCC00 0x001C2000 1843200
2459: 6987.423 [RSC] DAF_WORK 0x43304C00 0x0007A000 499712
2460: 6987.428 [RSC] JOB OBJECT 0x4337EC00 0x00320000 3276800
2461: 6987.433 [RSC] TUNE2 0x4369EC00 0x002C0000 2883584
2462: 6987.438 [RSC] SITTERVCODEC WORK 0x4395EC00 0x00204000 2113536
2463: 6987.443 [RSC] CAPTURE_WORK 0x43F27600 0x01441000 21237760
2464: 6987.448 [RSC] DAF_RAW 0x7ECA0000 0x002E2800 3024896
2465: 6987.453 [RSC] MOVIE_CFILTER_SEED 0x7EF82800 0x00196000 1662976
2466: 6987.458 [RSC] DANCING 0x7F118800 0x00309800 3184640
2467: 6987.464 [RSC] --- Common Upper ----
2468: 6987.472 [RSC] BITMAP VRAM 0x41100000 0x00482000 4726784
2469: 6987.477 [RSC] IMG_VRAM1 0x7F422000 0x003F4800 4147200
2470: 6987.482 [RSC] IMG_VRAM2 0x7F816800 0x003F4800 4147200
2471: 6987.488 [RSC] IMG_VRAM3 0x7FC0B000 0x003F4800 4147200
2472: 6987.492 [RSC] --- Normal ----
2473: 6987.521 [RSC] LV_SERVO_WORK 0x00000000 0x00000000 0 [Cacheable!
2474: 6987.527 [RSC] YUV 2nd_U 0x00000000 0x00000000 0 [Cacheable!
2475: 6987.533 [RSC] DIGEST_STREAM 0x00000000 0x00000000 0 [Cacheable!
2476: 6987.540 [RSC] DIGEST_RECWORK 0x00000000 0x00000000 0 [Cacheable!
2477: 6987.546 [RSC] LV_AE_WORK 0x43B62C00 0x0007D000 512000
2478: 6987.551 [RSC] LV_SERVO_WORK_L 0x45370000 0x00A10000 10551296
2479: 6987.556 [RSC] EXMEM3_AREA 0x45D80000 0x01DC6000 31219712
2480: 6987.562 [RSC] ALGS_AREA_1L 0x47B46000 0x02AB1000 44765184
2481: 6987.568 [RSC] GP_MEM1_1_L 0x47B46000 0x02AB1000 44765184
2482: 6987.573 [RSC] ALGS_AREA_2L 0x4A5F7000 0x02AB1000 44765184
2483: 6987.577 [RSC] GP_MEM1_2_L 0x4A5F7000 0x02AB1000 44765184
2484: 6987.582 [RSC] EXALGS_AREA_L 0x4D0A8000 0x00D00000 13631488
2485: 6987.587 [RSC] CAPMEM1_AREA_L 0x4DDA8000 0x02AB1000 44765184
2486: 6987.592 [RSC] TWAIN_AREA_L 0x50859000 0x002F5000 3100672
2487: 6987.597 [RSC] DECMEM1_AREA_L 0x50B4E000 0x02AB1000 44765184
2488: 6987.601 [RSC] SS_L 0x535FF000 0x05F81000 100143104
2489: 6987.607 [RSC] YUV 1st_L 0x59580000 0x03540000 55836672
2490: 6987.613 [RSC] WORK_GAIN_MAP 0x59580000 0x02E24B00 48384768
2491: 6987.618 [RSC] YUV 2nd_L 0x5CAC0000 0x03540000 55836672
2492: 6987.623 [RSC] YUV 1st_U 0x60000000 0x03540000 55836672
2493: 6987.628 [RSC] YUV Thumb 0x63540000 0x027E4000 41828352
2494: 6987.633 [RSC] SUSANYUV 0x65D24000 0x03A32000 61022208
2495: 6987.638 [RSC] SS_U 0x69756000 0x05F81000 100143104
2496: 6987.645 [RSC] DECMEM1_AREA_U 0x6F6D7000 0x02AB1000 44765184
2497: 6987.649 [RSC] CAPMEM1_AREA_U 0x72188000 0x02AB1000 44765184
2498: 6987.655 [RSC] TWAIN_AREA_U 0x74C39000 0x002F5000 3100672
2499: 6987.660 [RSC] ALGS_AREA_1U 0x74F2E000 0x02AB1000 44765184
2500: 6987.666 [RSC] GP_MEM1_1_U 0x74F2E000 0x02AB1000 44765184
2501: 6987.671 [RSC] ALGS_AREA_2U 0x779DF000 0x02AB1000 44765184
2502: 6987.676 [RSC] GP_MEM1_2_U 0x779DF000 0x02AB1000 44765184
2503: 6987.681 [RSC] EXALGS_AREA_U 0x7A490000 0x00D00000 13631488
2504: 6987.686 [RSC] EXMEM3_AREA_2 0x7B190000 0x02D80000 47710208
2505: 6987.692 [RSC] LV_SERVO_WORK_U 0x7DF10000 0x00D90000 14221312
2506: 6987.698 [RSC] --- Movie ----
2507: 6987.706 [RSC] LV_WORK_L 0x00000000 0x00000000 0 [Cacheable!
2508: 6987.712 [RSC] MOVIE_RECYUV 0x00000000 0x00000000 0 [Cacheable!
2509: 6987.716 [RSC] AUDIO WORK 0x4158A000 0x00241380 2364288
2510: 6987.721 [RSC] MOVIE_STREAM 0x47B46000 0x04D00000 80740352
2511: 6987.726 [RSC] MOVIE_RECWORK_L 0x4E9A8400 0x0E7D9000 243109888
2512: 6987.731 [RSC] MOVIE_RECWORK_U 0x5D181400 0x01A00000 27262976
2513: 6987.736 [RSC] 4K_LINEVRAM 0x60000000 0x03B53800 62208000
2514: 6987.742 [RSC] CINEMA_FILTER_WORK 0x64850000 0x00E00000 14680064
2515: 6987.746 [RSC] LV_WORK_U 0x65650000 0x0CB2C400 213042176
2516: 6987.751 [RSC] --- Play ----
2517: 6987.758 [RSC] MOVIE_PLAYWORK 0x4DDB0000 0x1083D400 277074944
2518: 6987.764 [RSC] SLIDE_SHOW_WORK 0x65650000 0x01FA4000 33177600
2519: 6988.901 [RSC] JPEG_WORK_4K 0x6DA23C00 0x00FD2000 16588800
2520: 6988.909 [RSC] IMGPLAY_WORK 0x6EAFC400 0x05400000 88080384
2521: 6988.915 [RSC] --- Multishot ----
2522: 6990.381 [RSC] HDR/GIS_YUV 2nd-2 0x00000000 0x00000000 0 [Cacheable!
2523: 6990.389 [RSC] HDR/GIS_MOVIE_RECWORK 0x00000000 0x00000000 0 [Cacheable!
2524: 6990.396 [RSC] HDR/GIS_LV_WORK_L 0x00000000 0x00000000 0 [Cacheable!
2525: 6990.402 [RSC] HDR/GIS_MOVIE_RECYUV 0x00000000 0x00000000 0 [Cacheable!
2526: 6990.408 [RSC] HDR/GIS_KAITO_YUV 0x00000000 0x00000000 0 [Cacheable!
2527: 6990.414 [RSC] HDR/GIS_LV_SERVO_WORK 0x00000000 0x00000000 0 [Cacheable!
2528: 6990.420 [RSC] HDR/GIS_FLEXIBLE_MEM3_1 0x00000000 0x00000000 0 [Cacheable!
2529: 6990.427 [RSC] HDR/GIS_FLEXIBLE_MEM3_2 0x00000000 0x00000000 0 [Cacheable!
2530: 6990.433 [RSC] HDR/GIS_AUDIO WORK 0x4158A000 0x00241380 2364288
2531: 6990.440 [RSC] HDR/GIS_EXMEM3_AREA 0x45D40000 0x01E06000 31481856
2532: 6990.446 [RSC] HDR/GIS_MOVIE_STREAM 0x47B46000 0x04D00000 80740352
2533: 6990.451 [RSC] HDR/GIS_COMP_WORK 0x4DDA8000 0x25800000 629145600
2534: 6990.457 [RSC] HDR/GIS_WORK1 0x4DDA8000 0x02AB1000 44765184
2535: 6990.462 [RSC] HDR/GIS_WORK3 0x4DDA8000 0x02AB1000 44765184
2536: 6990.467 [RSC] HDR/GIS_MOVIE_PLAYWORK 0x4DDB0000 0x1083D400 277074944
2537: 6990.473 [RSC] HDR/GIS_SS-1 0x535FF000 0x05F81000 100143104
2538: 6990.479 [RSC] HDR/GIS_YUV 1st-1 0x59580000 0x03540000 55836672
2539: 6990.484 [RSC] HDR/GIS_YUV 2nd-1 0x5CAC0000 0x03540000 55836672
2540: 6990.491 [RSC] HDR/GIS_YUV 1st-2 0x60000000 0x03540000 55836672
2541: 6990.495 [RSC] HDR/GIS_4K_LINEVRAM 0x60000000 0x03B53800 62208000
2542: 6990.501 [RSC] HDR/GIS_YUV Thumb 0x63540000 0x027E4000 41828352
2543: 6990.507 [RSC] HDR/GIS_LV_WORK_U 0x65650000 0x0CB2C400 213042176
2544: 6990.512 [RSC] HDR/GIS_SLIDE_SHOW_WORK 0x65650000 0x01FA4000 33177600
2545: 6990.518 [RSC] HDR/GIS_SUSAN_YUV 0x65D24000 0x03A32000 61022208
2546: 6990.524 [RSC] HDR/GIS_SS-2 0x69756000 0x05F81000 100143104
2547: 6990.529 [RSC] HDR/GIS_JPEG_WORK 0x6DA23C00 0x00FD2000 16588800
2548: 6990.536 [RSC] HDR/GIS_IMGPLAY_WORK 0x6EAFC400 0x05400000 88080384
2549: 6990.541 [RSC] HDR/GIS_WORK4 0x72188000 0x02AB1000 44765184
2550: 6990.546 [RSC] HDR/GIS_WORK2 0x72188000 0x02AB1000 44765184
2551: 6990.552 [RSC] HDR/GIS_EXMEM3_2 0x7B190000 0x02D80000 47710208
2552: 6990.557 [RSC] HDR/GIS_DANCING_WORK 0x7F118800 0x00309800 3184640
2553: 6990.562 [RSC] HDR/GIS_IMGVRAM 0x7F422000 0x00BDD800 12441600
2554: 6990.568 [RSC] --- Indev ----
2555: 6990.584 [RSC] INDEV_SS-1 0x00000000 0x00000000 0 [Cacheable!
2556: 6990.589 [RSC] INDEV_YUV 1st-1 0x00000000 0x00000000 0 [Cacheable!
2557: 6990.595 [RSC] INDEV_YUV 2nd-1 0x00000000 0x00000000 0 [Cacheable!
2558: 6990.600 [RSC] INDEV_BASIC 0x00000000 0x00000000 0 [Cacheable!
2559: 6990.605 [RSC] INDEV_SS-2 0x00000000 0x00000000 0 [Cacheable!
2560: 6990.611 [RSC] INDEV_YUV 1st-2 0x00000000 0x00000000 0 [Cacheable!
2561: 6990.616 [RSC] INDEV_YUV 2nd-2 0x00000000 0x00000000 0 [Cacheable!
2562: 6990.621 [RSC] INDEV_YUV Thumb 0x00000000 0x00000000 0 [Cacheable!
2563: 6990.627 [RSC] INDEV_SUSAN_YUV 0x00000000 0x00000000 0 [Cacheable!
2564: 6990.632 [RSC] INDEV_KAITO_YUV 0x00000000 0x00000000 0 [Cacheable!
2565: 6990.639 [RSC] INDEV_MOVIE_REC_YUV 0x00000000 0x00000000 0 [Cacheable!
2566: 6990.644 [RSC] INDEV_EXMEM3_AREA 0x45D40000 0x01E06000 31481856
2567: 6990.650 [RSC] INDEV_WORK 0x4DDB0000 0x0BE00000 199229440
2568: 6990.654 [RSC] INDEV_YUV_IN 0x59BB0000 0x03B10000 61931520
2569: 6990.660 [RSC] INDEV_TRIMING_VIEW_WORK 0x5D820000 0x02200000 35651584
2570: 6990.666 [RSC] INDEV_SLIDE_SHOW_WORK 0x65650000 0x01FA4000 33177600
2571: 6990.671 [RSC] INDEV_YUV_OUT 0x675F4000 0x03938800 60000256
2572: 6990.676 [RSC] INDEV_IMGPLAYWORK 0x6EAFC400 0x05400000 88080384
2573: 6990.680 [RSC] INDEV_EXMEM3_AREA 0x7B190000 0x02D80000 47710208
2574: 6990.686 [RSC] --- DP ----
2575: 6990.698 [RSC] DP_SS-1 0x00000000 0x00000000 0 [Cacheable!
2576: 6990.702 [RSC] DP_YUV 1st-1 0x00000000 0x00000000 0 [Cacheable!
2577: 6990.708 [RSC] DP_YUV 2nd-1 0x00000000 0x00000000 0 [Cacheable!
2578: 6990.714 [RSC] DP_YUV_IN 0x00000000 0x00000000 0 [Cacheable!
2579: 6990.720 [RSC] DP_YUV_OUT 0x00000000 0x00000000 0 [Cacheable!
2580: 6990.725 [RSC] DP_MULTI_CHUNK 0x00000000 0x00000000 0 [Cacheable!
2581: 6990.730 [RSC] DP_WORK 0x00000000 0x00000000 0 [Cacheable!
2582: 6990.735 [RSC] DP_SINGLE_CHUNK 0x00000000 0x00000000 0 [Cacheable!
2583: 6990.739 [RSC] DP_SS-2 0x00000000 0x00000000 0 [Cacheable!
2584: 6990.745 [RSC] DP_YUV 1st-2 0x00000000 0x00000000 0 [Cacheable!
2585: 6990.750 [RSC] DP_YUV 2nd-2 0x00000000 0x00000000 0 [Cacheable!
2586: 6990.755 [RSC] DP_YUV Thumb 0x00000000 0x00000000 0 [Cacheable!
2587: 6990.761 [RSC] DP_SLIDE_SHOW_WORK 0x00000000 0x00000000 0 [Cacheable!
2588: 6990.766 [RSC] DP_SUSAN_YUV 0x00000000 0x00000000 0 [Cacheable!
2589: 6990.771 [RSC] DP_KAITO_YUV 0x00000000 0x00000000 0 [Cacheable!
2590: 6990.777 [RSC] DP_MOVIE_REC_YUV 0x00000000 0x00000000 0 [Cacheable!
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/250D.png)
"Only" 1GB :)
90d (on real hardware)
4399: 3591.502 [RSC] --- Common Lower ----
4400: 3591.535 [RSC] LIME_HEAP 0x00000000 0x00000000 0 [Cacheable! 4401: 3591.542 [RSC] OMAR COM 0x00000000 0x00000000 0 [Cacheable! 4402: 3591.549 [RSC] ENGINE_MIRROR 0x00000000 0x00000000 0 [Cacheable! 4403: 3591.555 [RSC] SITTERVCODEC WORK 0x4048C000 0x00207000 2125824
4404: 3591.560 [RSC] DCFNO 0x40693000 0x00004000 16384
4405: 3591.566 [RSC] DAF_WORK 0x40798400 0x00051000 331776
4406: 3591.588 [RSC] TUNE 0x41100000 0x00370000 3604480
4407: 3591.594 [RSC] FIX 0x41470000 0x001F4000 2048000
4408: 3591.599 [RSC] FACTORY/TVAFDEBUG 0x416E1000 0x00080000 524288
4409: 3591.604 [RSC] VSHADING_COMP_WORK 0x41761000 0x0002EC00 191488
4410: 3591.609 [RSC] DARKCUR_COMP_WORK 0x4178FC00 0x00026C00 158720
4411: 3591.615 [RSC] LIME 0x41800000 0x00500000 5242880
4412: 3591.619 [RSC] NETWORK_HEAP 0x41D00000 0x00300000 3145728
4413: 3591.624 [RSC] ZICO 0x42000000 0x00180000 1572864
4414: 3591.628 [RSC] APROC 0x42180000 0x00021000 135168
4415: 3591.633 [RSC] ARIMA 0x421A1000 0x0006C000 442368
4416: 3591.638 [RSC] SHIRAHAMA 0x4220D000 0x0002E000 188416
4417: 3591.643 [RSC] RENDERING WORK 0x423BB000 0x00D00000 13631488
4418: 3591.647 [RSC] JOB OBJECT 0x43151000 0x00320000 3276800
4419: 3591.652 [RSC] MOVIE_CFILTER_SEED 0x43DBF000 0x00196000 1662976
4420: 3591.657 [RSC] TUNE2 0x443D5800 0x00880000 8912896
4421: 3591.662 [RSC] FILE HEADER 0x44C55800 0x00200000 2097152
4422: 3591.667 [RSC] FANCING_WORK 0x45253800 0x001C2000 1843200
4423: 3591.672 [RSC] CAPTURE_WORK 0x45415800 0x04236000 69427200
4424: 3591.678 [RSC] DAF_RAW 0x7F63A000 0x00697800 6912000
4425: 3591.683 [RSC] DANCING 0x7FCD1800 0x0032E800 3336192
4426: 3591.690 [RSC] --- Common Upper ----
4427: 3591.697 [RSC] BITMAP VRAM 0x43F55000 0x00480800 4720640
4428: 3591.702 [RSC] IMG_VRAM1 0x9F420000 0x003F4800 4147200
4429: 3591.707 [RSC] IMG_VRAM2 0x9F814800 0x003F4800 4147200
4430: 3591.713 [RSC] IMG_VRAM3 0x9FC09000 0x003F4800 4147200
4431: 3591.719 [RSC] --- Normal ----
4432: 3591.748 [RSC] LV_SERVO_WORK 0x00000000 0x00000000 0 [Cacheable! 4433: 3591.753 [RSC] DARK_MEM1_1 0x00000000 0x00000000 0 [Cacheable! 4434: 3591.758 [RSC] DARK_MEM1_2 0x00000000 0x00000000 0 [Cacheable! 4435: 3591.764 [RSC] WORK_HILLTON_1 0x00000000 0x00000000 0 [Cacheable! 4436: 3591.769 [RSC] WORK_HILLTON_2 0x00000000 0x00000000 0 [Cacheable! 4437: 3591.774 [RSC] LV_AE_WORK 0x41664000 0x0007D000 512000
4438: 3591.780 [RSC] EXMEM3_AREA 0x4964B800 0x03494800 55134208
4439: 3591.785 [RSC] DIGEST_RECWORK 0x4CAE0000 0x09450000 155516928
4440: 3591.790 [RSC] EXALGS_AREA_L 0x53BE0000 0x01D50000 30736384
4441: 3591.796 [RSC] CAPMEM1_AREA_L 0x55930000 0x03880000 59244544
4442: 3591.801 [RSC] TWAIN_AREA_L 0x591B0000 0x00300000 3145728
4443: 3591.807 [RSC] YUV 2nd_L 0x5B760000 0x048A0000 76152832
4444: 3591.812 [RSC] SS_U 0x60000000 0x08090000 134807552
4445: 3591.818 [RSC] WORK_GAIN_MAP 0x68090000 0x03FE0000 66977792
4446: 3591.823 [RSC] YUV 1st_U 0x68090000 0x03FE0000 66977792
4447: 3591.828 [RSC] YUV 2nd_U 0x6C070000 0x048A0000 76152832
4448: 3591.833 [RSC] SUSANYUV 0x70910000 0x04E20000 81920000
4449: 3591.838 [RSC] YUV Thumb 0x75730000 0x03040000 50593792
4450: 3591.843 [RSC] EXMEM3_AREA_2 0x78F70000 0x060CA000 101490688
4451: 3591.849 [RSC] TWAIN_AREA_U 0x80000000 0x00300000 3145728
4452: 3591.854 [RSC] CAPMEM1_AREA_U 0x80300000 0x03880000 59244544
4453: 3591.859 [RSC] DECMEM1_AREA_U 0x83B80000 0x03880000 59244544
4454: 3591.864 [RSC] ALGS_AREA_1U 0x87400000 0x03880000 59244544
4455: 3591.869 [RSC] ALGS_AREA_2U 0x8AC80000 0x03880000 59244544
4456: 3591.874 [RSC] EXALGS_AREA_U 0x9C700000 0x01D50000 30736384
4457: 3591.879 [RSC] DECMEM1_AREA_L 0xA0000000 0x03880000 59244544
4458: 3591.884 [RSC] YUV 1st_L 0xA3880000 0x03FE0000 66977792
4459: 3591.888 [RSC] SS_L 0xA7860000 0x08090000 134807552
4460: 3591.894 [RSC] DIGEST_STREAM 0xAF8F0000 0x05340000 87293952
4461: 3591.899 [RSC] ALGS_AREA_2L 0xB69F0000 0x03880000 59244544
4462: 3591.904 [RSC] ALGS_AREA_1L 0xBA270000 0x03880000 59244544
4463: 3591.909 [RSC] --- Movie ----
4464: 3591.919 [RSC] MOVIE_RECYUV 0x00000000 0x00000000 0 [Cacheable! 4465: 3591.924 [RSC] AUDIO WORK 0x43667000 0x00258000 2457600
4466: 3591.929 [RSC] MOVIE_RECWORK_L 0x4CAE0000 0x0FC40000 264503296
4467: 3591.933 [RSC] LV_WORK_L 0x5C720000 0x038E0000 59637760
4468: 3591.938 [RSC] LV_WORK_U 0x60000000 0x07190000 119078912
4469: 3591.943 [RSC] MOVIE_RECWORK_U 0x68090000 0x01A00000 27262976
4470: 3591.949 [RSC] CINEMA_FILTER_WORK 0x69A90000 0x00E00000 14680064
4471: 3591.953 [RSC] 4K_LINEVRAM 0x74C10000 0x0B1FA800 186624000
4472: 3591.959 [RSC] MOVIE_STREAM 0xA7860000 0x0FC00000 264241152
4473: 3591.963 [RSC] --- Play ----
4474: 3591.971 [RSC] SLIDE_SHOW_WORK 0x5E05C000 0x01FA4000 33177600
4475: 3591.976 [RSC] IMGPLAY_WORK 0x60181800 0x05800000 92274688
4476: 3591.981 [RSC] JPEG_WORK_4K 0x65981800 0x00FD2000 16588800
4477: 3591.986 [RSC] MOVIE_PLAYWORK 0xA0000000 0x10840000 277086208
4478: 3591.990 [RSC] --- Multishot ----
4479: 3592.024 [RSC] HDR/GIS_MOVIE_RECWORK 0x00000000 0x00000000 0 [Cacheable! 4480: 3592.030 [RSC] HDR/GIS_MOVIE_STREAM 0x00000000 0x00000000 0 [Cacheable! 4481: 3592.035 [RSC] HDR/GIS_MOVIE_RECYUV 0x00000000 0x00000000 0 [Cacheable! 4482: 3592.040 [RSC] HDR/GIS_KAITO_YUV 0x00000000 0x00000000 0 [Cacheable! 4483: 3592.045 [RSC] HDR/GIS_LV_SERVO_WORK 0x00000000 0x00000000 0 [Cacheable! 4484: 3592.051 [RSC] HDR/GIS_FLEXIBLE_MEM3_1 0x00000000 0x00000000 0 [Cacheable! 4485: 3592.057 [RSC] HDR/GIS_FLEXIBLE_MEM3_2 0x00000000 0x00000000 0 [Cacheable! 4486: 3592.062 [RSC] HDR/GIS_AUDIO WORK 0x43667000 0x00258000 2457600
4487: 3592.067 [RSC] HDR/GIS_EXMEM3_AREA 0x4964B800 0x064D4800 105728000
4488: 3592.073 [RSC] HDR/GIS_COMP_WORK 0x4FE20000 0x2BC00000 734003200
4489: 3592.079 [RSC] HDR/GIS_YUV 2nd-1 0x5B760000 0x048A0000 76152832
4490: 3592.083 [RSC] HDR/GIS_LV_WORK_L 0x5C720000 0x038E0000 59637760
4491: 3592.089 [RSC] HDR/GIS_SLIDE_SHOW_WORK 0x5E05C000 0x01FA4000 33177600
4492: 3592.094 [RSC] HDR/GIS_LV_WORK_U 0x60000000 0x07190000 119078912
4493: 3592.099 [RSC] HDR/GIS_SS-2 0x60000000 0x08090000 134807552
4494: 3592.104 [RSC] HDR/GIS_IMGPLAY_WORK 0x60181800 0x05800000 92274688
4495: 3592.110 [RSC] HDR/GIS_JPEG_WORK 0x65981800 0x00FD2000 16588800
4496: 3592.116 [RSC] HDR/GIS_YUV 2nd-2 0x68090000 0x048A0000 76152832
4497: 3592.121 [RSC] HDR/GIS_YUV 1st-2 0x6C930000 0x03FE0000 66977792
4498: 3592.127 [RSC] HDR/GIS_SUSAN_YUV 0x70910000 0x04E20000 81920000
4499: 3592.132 [RSC] HDR/GIS_4K_LINEVRAM 0x74C10000 0x03B53800 62208000
4500: 3592.138 [RSC] HDR/GIS_YUV Thumb 0x75730000 0x03040000 50593792
4501: 3592.143 [RSC] HDR/GIS_EXMEM3_2 0x7C2C3800 0x02D76800 47671296
4502: 3592.148 [RSC] HDR/GIS_DANCING_WORK 0x7FCD1800 0x0032E800 3336192
4503: 3592.153 [RSC] HDR/GIS_WORK2 0x80300000 0x03880000 59244544
4504: 3592.158 [RSC] HDR/GIS_WORK4 0x80300000 0x03880000 59244544
4505: 3592.163 [RSC] HDR/GIS_IMGVRAM 0x9F420000 0x00BDD800 12441600
4506: 3592.169 [RSC] HDR/GIS_WORK3 0xA0000000 0x03880000 59244544
4507: 3592.174 [RSC] HDR/GIS_WORK1 0xA0000000 0x03880000 59244544
4508: 3592.179 [RSC] HDR/GIS_MOVIE_PLAYWORK 0xA0000000 0x10840000 277086208
4509: 3592.185 [RSC] HDR/GIS_YUV 1st-1 0xA7100000 0x03FE0000 66977792
4510: 3592.190 [RSC] HDR/GIS_SS-1 0xAB0E0000 0x08090000 134807552
4511: 3592.197 [RSC] --- Indev ----
4512: 3592.213 [RSC] INDEV_SS-1 0x00000000 0x00000000 0 [Cacheable! 4513: 3592.217 [RSC] INDEV_YUV 1st-1 0x00000000 0x00000000 0 [Cacheable! 4514: 3592.222 [RSC] INDEV_YUV 2nd-1 0x00000000 0x00000000 0 [Cacheable! 4515: 3592.227 [RSC] INDEV_BASIC 0x00000000 0x00000000 0 [Cacheable! 4516: 3592.232 [RSC] INDEV_SS-2 0x00000000 0x00000000 0 [Cacheable! 4517: 3592.237 [RSC] INDEV_YUV 1st-2 0x00000000 0x00000000 0 [Cacheable! 4518: 3592.242 [RSC] INDEV_YUV 2nd-2 0x00000000 0x00000000 0 [Cacheable! 4519: 3592.247 [RSC] INDEV_YUV Thumb 0x00000000 0x00000000 0 [Cacheable! 4520: 3592.252 [RSC] INDEV_SUSAN_YUV 0x00000000 0x00000000 0 [Cacheable! 4521: 3592.256 [RSC] INDEV_KAITO_YUV 0x00000000 0x00000000 0 [Cacheable! 4522: 3592.262 [RSC] INDEV_MOVIE_REC_YUV 0x00000000 0x00000000 0 [Cacheable! 4523: 3592.267 [RSC] INDEV_EXMEM3_AREA 0x4964B800 0x03494800 55134208
4524: 3592.272 [RSC] INDEV_YUV_OUT 0x4CAE0000 0x04CFEF00 80736000
4525: 3592.277 [RSC] INDEV_TRIMING_VIEW_WORK 0x56B60000 0x02200000 35651584
4526: 3592.282 [RSC] INDEV_SLIDE_SHOW_WORK 0x5E05C000 0x01FA4000 33177600
4527: 3592.287 [RSC] INDEV_IMGPLAYWORK 0x60181800 0x05800000 92274688
4528: 3592.292 [RSC] INDEV_EXMEM3_AREA 0x6A890000 0x0A380000 171442176
4529: 3592.297 [RSC] INDEV_WORK 0x80000000 0x11300000 288358400
4530: 3592.301 [RSC] INDEV_YUV_IN 0x91300000 0x05B40000 95682560
4531: 3592.306 [RSC] --- DP ----
4532: 3592.317 [RSC] DP_SS-1 0x00000000 0x00000000 0 [Cacheable! 4533: 3592.322 [RSC] DP_YUV 1st-1 0x00000000 0x00000000 0 [Cacheable! 4534: 3592.327 [RSC] DP_YUV 2nd-1 0x00000000 0x00000000 0 [Cacheable! 4535: 3592.331 [RSC] DP_YUV_IN 0x00000000 0x00000000 0 [Cacheable! 4536: 3592.336 [RSC] DP_YUV_OUT 0x00000000 0x00000000 0 [Cacheable! 4537: 3592.341 [RSC] DP_MULTI_CHUNK 0x00000000 0x00000000 0 [Cacheable! 4538: 3592.346 [RSC] DP_WORK 0x00000000 0x00000000 0 [Cacheable! 4539: 3592.351 [RSC] DP_SINGLE_CHUNK 0x00000000 0x00000000 0 [Cacheable! 4540: 3592.356 [RSC] DP_SS-2 0x00000000 0x00000000 0 [Cacheable! 4541: 3592.361 [RSC] DP_YUV 1st-2 0x00000000 0x00000000 0 [Cacheable! 4542: 3592.366 [RSC] DP_YUV 2nd-2 0x00000000 0x00000000 0 [Cacheable! 4543: 3592.371 [RSC] DP_YUV Thumb 0x00000000 0x00000000 0 [Cacheable! 4544: 3592.376 [RSC] DP_SLIDE_SHOW_WORK 0x00000000 0x00000000 0 [Cacheable! 4545: 3592.381 [RSC] DP_SUSAN_YUV 0x00000000 0x00000000 0 [Cacheable! 4546: 3592.386 [RSC] DP_KAITO_YUV 0x00000000 0x00000000 0 [Cacheable! 4547: 3592.391 [RSC] DP_MOVIE_REC_YUV 0x00000000 0x00000000 0 [Cacheable! 4548: 3592.407 [TSTLOG2] dumpf
2GB, nice.
EOS R5, DIGIC X in general
Resource Manager is gone. Now we have Resource Manager 2...
Some "old" functions exists, but they contain only assert:
debug_assert(0,"Resource::RscMgrOldApiStub.c",0x2b);
smemShowFix DNE. Replacement is res_memshow that requires numerical argument. Output is not yet understood.
R5 has 1GB(2x512) + 4GB(2x2GB) DDR4 memory. ICU bootloader / FROMUTIL says it has 1GB. How it works it is unknown.