[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