[U-Boot] [PATCH 3/3] rk3399: Add restriction for DMA-able addresses.

Kever Yang kever.yang at rock-chips.com
Tue Jun 4 03:07:09 UTC 2019


Hi Christoph,


On 05/07/2019 05:05 PM, Christoph Muellner wrote:
> 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 Muellner <christoph.muellner at theobroma-systems.com>
> ---
>
>  arch/arm/mach-rockchip/rk3399/rk3399.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
> index a7ccd4f3ed..15b03726eb 100644
> --- a/arch/arm/mach-rockchip/rk3399/rk3399.c
> +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
> @@ -109,3 +109,14 @@ void board_debug_uart_init(void)
>  #endif
>  }
>  #endif
> +
> +int mach_addr_is_dmaable(unsigned long addr)
> +{
> +	/*
> +	 * The RK3399 cannot cope with high-memory DMA target/sources.
> +	 */
> +	if (addr < 0xf8000000UL)
You'd better use SDRAM_MAX_SIZE instead of hard code, and this can
re-used on all Rockchip platform.

Thanks,
- Kever
> +		return 1;
> +
> +	return 0;
> +}





More information about the U-Boot mailing list