Hi Christoph,

    The ARM PL330 DMA driver in kernel only relate to:

- DTS kernel used, can be check in /proc/device-tree/

- kernel driver which should mach the compatible name.

This driver should has nothing to do with U-Boot SPL or TF-A, because we don't have any special setting for PL330 in loader stage.


Thanks,

- Kever

On 2023/4/3 03:01, Christoph Fritz wrote:
Hello Kever,

  on a rk3399, booting current U-Boot SPL with mainline TF-A leads to
missing DMA (and no sound) on Linux.

However, when using rockchip its so called mini-loader
(rk3399_miniloader_v1.26.bin) and their BL31 (rk3399_bl31_v1.35.elf) to
boot, DMA works perfectly fine.

Tested on a custom rk3399 board and on ROCK Pi4.

Attached to this mail are two boot logs with some debug prints:

  - good_amba_log.txt (DMA works)
  - no_amba_log.txt (no DMA device)

The main difference I can spot between the two logs is that on Linux
(drivers/amba/bus.c) AMBA_CID (0xb105f00d) cannot be found. Instead,
only some CORESIGHT_CIDs (presumably for debugging) and four 0x00000000
CIDs are detected.

As a result, the "PL330 DMAC-241330" driver does not load. My theory is
that DMA needs to be allowed somewhere in the undocumented syscon-
registers, similar to what U-Boot is already doing for eMMC in
arch_cpu_init() (arch/arm/mach-rockchip/rk3399/rk3399.c).

Any ideas?

Or maybe I'm just missing some configuration?

Since multiple software projects are involved (TF-A, OP-TEE, U-Boot,
Linux), I Cc'ed a bit.

  Thanks
   -- Christoph

Reply via email to