Magic Lantern Forum

Developing Magic Lantern => General Development => Topic started by: g3gg0 on April 06, 2013, 01:43:18 PM

Title: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 01:43:18 PM
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. :)

Title: Re: placing ML into shoot memory
Post by: nanomad on April 06, 2013, 01:56:39 PM
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
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 03:25:20 PM
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)
Title: Re: placing ML into shoot memory
Post by: nanomad on April 06, 2013, 03:26:06 PM
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)
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 03:35:55 PM
no, just patch the end address.

change 0x1F300000 to 0x1F100000, do not touch the start address
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 03:37:14 PM
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;
Title: Re: placing ML into shoot memory
Post by: nanomad on April 06, 2013, 03:42:01 PM
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
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 03:44:34 PM
yep, same here. subtract 2MiB from that 0x1F294000 and see if it crashes :)
Title: Re: placing ML into shoot memory
Post by: nanomad on April 06, 2013, 03:48:44 PM
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?
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 04:00:15 PM
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
Title: Re: placing ML into shoot memory
Post by: nanomad on April 06, 2013, 04:03:26 PM
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)
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 04:28:35 PM
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.
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 04:29:52 PM
> 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.
Title: Re: placing ML into shoot memory
Post by: 1% on April 06, 2013, 06:16:45 PM

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.
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 10:22:23 PM
600D: 0xF80138DC

dont patch the instruction. you have to patch the data word 0x1F300000.
Title: Re: placing ML into shoot memory
Post by: 1% on April 06, 2013, 10:55:35 PM
I tried
#define RSCMGR_MEMORY_PATCH_END 0xF80138DC
RESTARTSTART    = 0x1FF00100

Still get solid light :(
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 11:19:54 PM
can you give 0xFF0138DC a try then?

edit: seems not to work.
Title: Re: placing ML into shoot memory
Post by: 1% on April 06, 2013, 11:31:31 PM
Yep, confirmed. Didn't work with FF.

for 6D maybe possible to take a whole MB out of allocatememory?
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 06, 2013, 11:52:32 PM
did you correct the RSCMGR address for 6D too? and still fails?
Title: Re: placing ML into shoot memory
Post by: 1% on April 06, 2013, 11:56:34 PM
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
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 12:01:50 AM
as 6D has NSTUB(0xFF0C5438, init_task), you have to patch 0xFF01.....
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 12:04:52 AM
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.
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 12:59:45 AM
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);
}
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 04:24:27 PM
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.
Title: Re: placing ML into shoot memory
Post by: 1% on April 07, 2013, 04:59:17 PM
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
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 05:33:22 PM
5D3 and 6D have no free mem at bottom :(

see: https://docs.google.com/spreadsheet/ccc?key=0AgQ2MOkAZTFHdFFIcFp1d0R5TzVPTVJXOEVyUndteGc#gid=4
Title: Re: placing ML into shoot memory
Post by: 1% on April 07, 2013, 05:57:28 PM
Wow, doesn't look good. There is a 1.3mb free area at top in 5d3, not useable?
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 06:16:29 PM
that should be useable, right.
but first must be confirmed :)

edit: not usable, seems to be used by something...
Title: Re: placing ML into shoot memory
Post by: 1% on April 07, 2013, 06:45:23 PM
maybe resize the memory of one of the sections? Like take 1/2 away from the player?
Title: Re: placing ML into shoot memory
Post by: g3gg0 on April 07, 2013, 07:01:05 PM
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.
Title: Re: placing ML into shoot memory
Post by: a1ex on May 08, 2016, 06:06:13 PM
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.
Title: Re: placing ML into shoot memory
Post by: nikfreak on May 08, 2016, 09:35:19 PM
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

Title: Re: placing ML into shoot memory
Post by: nikfreak on May 08, 2016, 10:11:50 PM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on May 08, 2016, 10:23:51 PM
(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.
Title: Re: placing ML into shoot memory
Post by: 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:

6D.116: 0xFF20D140
7D.203: 0xFF0E1388
650D.104: 0xFF223604
700D.114: 0xFF225C34
EOSM.202: 0xFF223A94
Title: Re: placing ML into shoot memory
Post by: Licaon_Kter on May 09, 2016, 09:46:37 AM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on May 09, 2016, 09:59:02 AM
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.
Title: Re: placing ML into shoot memory
Post by: mk11174 on May 09, 2016, 10:38:01 AM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on May 09, 2016, 01:16:20 PM
(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)
Title: Re: placing ML into shoot memory
Post by: g3gg0 on May 09, 2016, 10:05:19 PM


  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

Title: Re: placing ML into shoot memory
Post by: a1ex on May 09, 2016, 10:12:54 PM
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/7D.png)

Looks pretty similar to 50D.
Title: Re: placing ML into shoot memory
Post by: josepvm on May 11, 2016, 05:27:14 PM
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 ?
Title: Re: placing ML into shoot memory
Post by: a1ex on May 11, 2016, 05:38:46 PM
Look for the function that prints strings similar to those in the above logs.
Title: Re: placing ML into shoot memory
Post by: josepvm on May 11, 2016, 06:22:33 PM
Ok, for 500D is 0xFF0BC2BC

I will run the test later.


Title: Re: placing ML into shoot memory
Post by: josepvm on May 11, 2016, 08:18:02 PM
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"

Title: Re: placing ML into shoot memory
Post by: josepvm on May 11, 2016, 09:30:05 PM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on May 11, 2016, 10:23:18 PM
(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.
Title: Re: placing ML into shoot memory
Post by: josepvm on May 12, 2016, 09:27:51 AM
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.
Title: Re: placing ML into shoot memory
Post by: a1ex on May 12, 2016, 09:37:30 AM
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.
Title: Re: placing ML into shoot memory
Post by: josepvm on May 12, 2016, 09:32:12 PM
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 ...
Title: Re: placing ML into shoot memory
Post by: g3gg0 on May 12, 2016, 09:50:05 PM
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
Title: Re: placing ML into shoot memory
Post by: josepvm on May 12, 2016, 10:04:52 PM
Ok, thanks for clarifying [emoji6]
Title: Re: placing ML into shoot memory
Post by: dmilligan on May 13, 2016, 03:19:57 AM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on May 13, 2016, 07:44:31 AM
(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/1100D.png)

Only 128MB on this camera?!
Title: Re: placing ML into shoot memory
Post by: dmilligan on May 14, 2016, 12:20:02 AM
What are the grey blocks at the start of all these graphs?
Title: Re: placing ML into shoot memory
Post by: a1ex on May 14, 2016, 12:40:05 AM
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.
Title: Re: placing ML into shoot memory
Post by: a1ex on June 20, 2016, 12:42:07 PM
550D:

(http://a1ex.magiclantern.fm/bleeding-edge/RscMgr/550D.png)

Three unused areas, 1M + 0.4M + 0.3M :)
Title: Re: placing ML into shoot memory
Post by: a1ex on June 25, 2016, 08:29:01 AM
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
Title: Re: placing ML into shoot memory
Post by: hjfilmspeed on June 26, 2016, 04:45:03 PM
Wait does this mean you could possibly run ML without a card?
Title: Re: placing ML into shoot memory
Post by: a1ex on June 26, 2016, 05:13:33 PM
How exactly did you reach this conclusion?
Title: Re: placing ML into shoot memory
Post by: Licaon_Kter on June 26, 2016, 06:24:04 PM
Maybe @hjfilmspeed thinks you can just upload ML there in memory, but that's volatile IIRC, right?
Title: Re: placing ML into shoot memory
Post by: mk11174 on June 29, 2016, 10:41:47 PM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on June 30, 2016, 07:08:04 AM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on July 15, 2016, 01:31:32 AM
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
Title: Re: placing ML into shoot memory
Post by: hjfilmspeed on July 17, 2016, 05:16:02 AM
Oh yeah I'm sorry I must have misunderstood this. I'm useless ha ha
Title: Re: placing ML into shoot memory
Post by: a1ex on July 06, 2017, 05:36:55 PM
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.
Title: Re: placing ML into shoot memory
Post by: a1ex on July 06, 2017, 05:59:38 PM
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.
Title: Re: placing ML into shoot memory
Post by: a1ex on July 06, 2017, 06:22:20 PM
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).
Title: Re: placing ML into shoot memory
Post by: a1ex on September 09, 2017, 06:32:22 PM
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).
Title: Re: placing ML into shoot memory
Post by: a1ex on December 30, 2017, 11:00:32 PM
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
Title: Re: placing ML into shoot memory
Post by: a1ex on February 21, 2018, 10:37:43 PM
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).
Title: Re: placing ML into shoot memory
Post by: dfort on February 22, 2018, 01:19:20 AM
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?
Title: Re: placing ML into shoot memory
Post by: a1ex on February 22, 2018, 05:58:09 AM
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.
Title: Re: placing ML into shoot memory
Post by: ToniX on February 23, 2018, 08:16:56 AM
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?
Title: Re: placing ML into shoot memory
Post by: a1ex on February 23, 2018, 10:37:40 AM
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.
Title: Re: placing ML into shoot memory
Post by: ToniX on February 24, 2018, 01:28:27 AM
Well, I hope this come true.  Talking about memory:  better more than less.. :)
Title: Re: placing ML into shoot memory
Post by: a1ex on February 15, 2019, 03:46:00 PM
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)
Title: Re: placing ML into shoot memory
Post by: DeafEyeJedi on February 15, 2019, 04:58:18 PM
Fabulous work @a1ex and this is all great to read!
Title: Re: placing ML into shoot memory
Post by: a1ex on September 19, 2020, 07:36:04 PM
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.
Title: Re: placing ML into shoot memory
Post by: Walter Schulz on September 20, 2020, 03:36:56 AM
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!     
Title: Re: placing ML into shoot memory
Post by: a1ex on September 20, 2020, 06:46:20 AM
(https://a1ex.magiclantern.fm/bleeding-edge/RscMgr/250D.png)

"Only" 1GB :)
Title: Re: placing ML into shoot memory
Post by: Vector54 on April 17, 2022, 05:37:17 AM
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
Title: Re: placing ML into shoot memory
Post by: kitor on April 17, 2022, 01:58:01 PM
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.