Re: Re: [PATCH] [PATCH] ARM64: Setup DMA32 zone size by bootargs
From: Catalin Marinas
Date: Fri Sep 25 2020 - 05:12:01 EST
On Thu, Sep 24, 2020 at 10:15:14PM +0800, Phil Chang wrote:
> Actually, In a embedded system with 3GB memory, the memory bus width is not the same among the 3GB.
> (The first 2GB is 48-bit wide, and the latter 1GB is 16-bit wide.)
So I guess that's the data bus width. Devices can still access the whole
memory, though at different throughputs.
Does this narrow data bus apply only to devices or the CPUs are affected
as well?
> For memory throughput reason of hardware IPs, we need allocate memory from the first 2GB for
> the hardware IPs. And that is why we setup the first 2GB as DMA_ZONE, and use GFP_DMA to allocate
> memory from the range.
If it's only a throughput problem, it looks to me more like a NUMA
configuration. I think you can add the first 2GB and the last GB in
separate nodes and define a "numa-node-id" property per device in DT.
--
Catalin