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

Vinod Koul vkoul at kernel.org
Tue Feb 15 03:20:57 PST 2022


On 23-01-22, 15:08, Stefan Wahren wrote:
> Hi,
> 
> Am 27.12.21 um 13:05 schrieb Stefan Wahren:
> > 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
> would be nice to get some input aka gentle ping.

Somehow patch 10/11 is appearing split from rest of the series. The
series looks fairly okay, dts needs more polishing as Rob indicated

-- 
~Vinod



More information about the linux-arm-kernel mailing list