From: Christoph Müllner <[email protected]> Patches on the U-Boot mailing list from Rockchip engineers indicate, that the RK3399's DMA engines are not able to use addresses in high-memory (above 0xf8000000).
This patch models this restriction in an RK3399 specific mach_addr_is_dmaable() function. Signed-off-by: Christoph Müllner <[email protected]> Signed-off-by: Christoph Muellner <[email protected]> --- Changes in v2: - Convert argument type from unsigned long to void pointer. arch/arm/mach-rockchip/rk3399/rk3399.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c index a7ccd4f3ed..8895417bda 100644 --- a/arch/arm/mach-rockchip/rk3399/rk3399.c +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c @@ -109,3 +109,16 @@ void board_debug_uart_init(void) #endif } #endif + +int mach_addr_is_dmaable(void __iomem *ptr) +{ + uintptr_t addr = (uintptr_t)ptr; + + /* + * The RK3399 cannot cope with high-memory DMA targets/sources. + */ + if (addr < 0xf8000000UL) + return 1; + + return 0; +} -- 2.11.0 _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

