AVM cross cpu communication driver ------------------------------------------------------------- Required properties: - compatible: "avm,cpunet" - reg: Address and length of the "MPS2" register set. - mailbox-rx: <phandle offset len> of the rx mailbox - mailbox-tx: <phandle offset len> of the tx mailbox - mempool-rx: <phandle offset len> of the rx mempool - mempool-rx: <phandle offset len> of the rx mempool - interrupts: Interrupt number for mps2 irq (not on bootcore) The mailbox memory is remapped using ioremap() into an uncached address. The assumption is that this is 'fast' static memory with atomic u32 access. The mempool memory is used to carry the packet payload and is expected to be in a memory area where for which a lowmem virtual address exists. The minimum sizes of all these areas are determined by the driver and verified at load time. Examples: interaptiv: cpunet { compatible = "avm,cpunet"; reg = <0x1f107400 0x400>; mailbox-rx = <&mps2mbx 0x0 0x48>; mailbox-tx = <&mps2mbx 0x48 0x48>; mempool-rx = <&cpunet_mempool 0x0 0x20000>; mempool-tx = <&cpunet_mempool 0x20000 0x20000>; interrupt-parent = <&gic>; interrupts = <GIC_SHARED 215 IRQ_TYPE_LEVEL_HIGH>; }; bootcore: cpunet { compatible = "avm,cpunet"; reg = <0x1f107400 0x400>; mailbox-rx = <&mps2mbx 0x48 0x48>; mailbox-tx = <&mps2mbx 0x0 0x48>; mempool-rx = <&cpunet_mempool 0x20000 0x20000>; mempool-tx = <&cpunet_mempool 0x0 0x20000>; };