[PATCH RFC 00/11] dmaengine: bcm2835: add BCM2711 40-bit DMA support

Shengyu Qu wiagn233 at outlook.com
Sun Jun 18 12:43:48 PDT 2023


Hello Stefan,

Sorry to reply to this old series, but I wonder what happens to this 
series?

Best regards,

Shengyu

> The BCM2711 has 4 DMA channels with a 40-bit address range, allowing them
> to access the full 4GB of memory on a Pi 4. This patch series serves as a
> basis for a discussion (just compile tested, so don't expect anything working)
> which include the following points:
>
> * correct DT binding and representation for BCM2711
>
> According to the vendor DTS [1] the 4 DMA channels are connected to SCB.
> I'm not sure how this is properly adapted to the mainline DT.
>
> * general implementation approach
>
> The vendor approach mapped all the BCM2835 control block bits to the BCM2711
> layout and the rest of the differences are handled by a lot of is_40bit_channel
> conditions. An advantage of this is the small amount of changes to the driver.
> But on the down side the code is now much harder to understand and maintain.
>
> This series tries to implement this feature in a more cleaner way
> while keeping it in the bcm2835-dma driver. Before this series the driver
> has ~ 1000 lines and after that ~ 1500 lines.
>
> So the question is this approach acceptable?
>
> Patches 1 - 3 are just clean-ups.
>
> Disclaimer: my knowledge about the DMA controller is very limited
>
> More information:
>
> https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf
>
> [1] - https://github.com/raspberrypi/linux/blob/561deffcf471ba0f7bd48541d06a79d5aa38d297/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi#L47
> [2] - https://github.com/raspberrypi/linux/commit/44364bd140b0bc9187c881fbdc4ee358961059d5
>
> Stefan Wahren (11):
>    ARM: dts: bcm283x: Update DMA node name per DT schema
>    dt-bindings: dma: Convert brcm,bcm2835-dma to json-schema
>    dmaengine: bcm2835: Support common dma-channel-mask
>    dmaengine: bcm2835: move CB info generation into separate function
>    dmaengine: bcm2835: move CB final extra info generation into function
>    dmaengine: bcm2835: make address increment platform independent
>    dmaengine: bcm2385: drop info parameters
>    dmaengine: bcm2835: pass dma_chan to generic functions
>    dmaengine: bcm2835: introduce multi platform support
>    dmaengine: bcm2835: add BCM2711 40-bit DMA support
>    ARM: dts: bcm2711: add bcm2711-dma node
>
>   .../devicetree/bindings/dma/brcm,bcm2835-dma.txt   |  83 ---
>   .../devicetree/bindings/dma/brcm,bcm2835-dma.yaml  | 107 +++
>   arch/arm/boot/dts/bcm2711.dtsi                     |  18 +-
>   arch/arm/boot/dts/bcm2835-common.dtsi              |   2 +-
>   drivers/dma/bcm2835-dma.c                          | 745 +++++++++++++++++----
>   5 files changed, 734 insertions(+), 221 deletions(-)
>   delete mode 100644 Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
>   create mode 100644 Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE3520CC91929C8E7.asc
Type: application/pgp-keys
Size: 6868 bytes
Desc: OpenPGP public key
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20230619/dd391462/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20230619/dd391462/attachment.sig>


More information about the linux-arm-kernel mailing list