Mailbox interface

The mailbox interface is a register that has several channels (“mail accounts”) for different resources on the board, so a driver sends a buffer with a request (an “email”) to one of them and gets answers. This is an abstraction layer mainly useful to communicate with the GPU since its documentation isn’t available, but can be used to get other types of information, not related with the GPU.

This interface will be needed for the Framebuffer driver, and because the memory access has to pass through the arm memory barriers are needed.

The work currently done for the mailbox and memory barriers may be seen at:

Mailbox (GITHUB branch) -> https://github.com/asuol/rtems/tree/Mailbox

Memory Barrier (GITHUB branch) -> https://github.com/asuol/rtems/tree/Memory_barrier

The mailbox code has been based on https://github.com/jncronin/rpi-boot/blob/master/mbox.c.

References:

https://github.com/raspberrypi/firmware/wiki/Mailboxes
https://github.com/raspberrypi/firmware/wiki/Accessing-mailboxes
https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface