From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Mon, 22 Feb 2016 19:38:13 -0600 Subject: [U-Boot] [PATCH 2/3][v3] Data types defined for 64 bit physical address In-Reply-To: References: <1442486796-28308-1-git-send-email-aneesh.bansal@freescale.com> <1442486796-28308-2-git-send-email-aneesh.bansal@freescale.com> <1455081033.2463.2.camel@buserror.net> Message-ID: <1456191493.2463.129.camel@buserror.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, 2016-02-10 at 05:20 +0000, york sun wrote: > On 02/09/2016 09:10 PM, Scott Wood wrote: > > On Wed, 2016-02-10 at 02:30 +0000, york sun wrote: > > > > > > > > > Aneesh and Scott, > > > > > > I need to revisit this patch. Would it be better to change it as below? > > > > > > +#if defined(CONFIG_PHYS_64BIT) && !defined(CONFIG_ARM64) > > > +typedef unsigned long long dma_addr_t; > > > +typedef unsigned long long phys_addr_t; > > > +typedef unsigned long long phys_size_t; > > > +#else > > > +/* DMA addresses are 32-bits wide */ > > > typedef u32 dma_addr_t; > > > - > > > typedef unsigned long phys_addr_t; > > > typedef unsigned long phys_size_t; > > > +#endif > > > > > > I am debugging another patch and found changing phys_addr_t makes some > > > trouble > > > for ARM64, especially to mix with ulong. > > > > What sort of trouble is it causing? And why would you mix it with ulong? > > > > I am debugging this patch http://patchwork.ozlabs.org/patch/514590/. > ulong is used a lot for image related calls. I tried to change to > phys_addr_t, > but only buried myself even deeper. Basically I am battling on three sides > > 1. All 32-bit SoCs should continue to work without using 64-bit variables > for > addresses. > 2. 64-bit SoCs such as ARMv8 will support FIT with addresses beyond 32 bits. > 3. Host tool such as mkimage should work on both 32- and 64-bit host OS. > > Any suggestion is welcomed. Is there any situation where we'd support loading images to addresses that don't fit in ulong? Why do you need to switch it to phys_addr_t? mkimage is another matter -- since it could be generating images for any target, it should be using a fixed 64-bit type for internally representing target addresses. Not ulong and not phys_addr_t (which shouldn't exist in userspace). In any case, the answer isn't to undo this patch or make an exception for ARM64. -Scott