Altera_Forum
Honored Contributor
20 years agoUnderstanding Altera Mailbox Core
Hi there,
I've got quite a problem in understanding how the Altera Avalon Mailbox Core really works. There are two questions I cannot find an answer to: 1. How is the shared mailbox memory reserved? In addition to using dedicated memory (e.g. on-chip-memory) as mailbox memory, it is possible to use main memory (in my case sdram) for communication. The exact location of the part used by the mailbox is specified by an offset and size. In that case, how is it accomplished, that this part of memory is exclusively used as a shared memory for mailbox communication? How does the linker know not to use this part of (main) memory? I've looked into many files (like generated.x) and could not find any kind of memory reservation. 2. How does cache bypass work when accessing shared mailbox memory? While access to the registers of the mailbox core device uses the "io" instructions for bypassing the data cache, the read and write instructions the HAL implementation uses to access the shared memory are the normal ones. It all boils down to a 'stw' and a 'ldw' instruction. They also don't use the "bit32-bypass", as the address is the normal one (not 'or'-ed with 0x80000000). So how does the write-back of data to the shared memory work in this case? Any ideas / hints appreciated. I really want to know how this thing works (or is supposed to work). Thanks, Jan