[PATCH] mailbox: Enable BCM2835 mailbox support

Ross Oldfield ross at raspberrypi.org
Mon Oct 27 08:41:26 PDT 2014


On 2014-10-26 02:49:43 +0000, Stephen Warren said:

> On 10/24/2014 08:31 AM, Ross Oldfield wrote:
> ...
>> As an aside, it turns out that we _may_ be able to make this a
>> non-polling driver because it turns out this peripheral has the ability
>> to generate an interrupt when the MAIL1 FIFO is empty.
> 
> Looking at the DT binding, can you confirm that it lists all the HW
> resources (memory ranges, IRQs, clocks, resets, ...) that are connected
> to the mailbox HW module? Since you say this driver is a polling driver,
> I wonder if some of the resources aren't listed in the DT bindi yet.
> It'd be best to have everything present from the start.

There is only one interrupt output ("ARM peripherals" group (apparently 
group "0" in the interrupt controller **), interrupt number "1" ). The 
behaviour of this is controlled by MAIL0_CNF at 0x7e00b89C and it is up 
to the IRQ handler to determine the interrupt reason by reading other 
registers (e.g. by reading MAIL0_CNF bits 4,5 and 6).

There is no configurable clock and no reset. This peripheral is always 
powered if the domain containing the ARM processor is powered. I 
suspect that it runs synchronously with (from?) the AXI bus clock.

The register range looks reasonable (MAIL1_STA @ 0x7e00b8bc is inside 
of 0x7e00b880 + 0x40, right?). Above that we've got semaphores at 0x8e0 
and 'doorbell' interrupts at 0x8e4 which this driver probably shouldn't 
map as it won't be using these.

Thanks,

Ross


** Interrupt controller spec from 
https://github.com/raspberrypi/documentation/tree/master/hardware/raspberrypi/bcm2835 






More information about the linux-rpi-kernel mailing list