[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