Thanks Scott, I will test to see if returning phys_addr_t in __pa()
works for my setup.
And another thin I will test is to compile without CONFIG_RELOCATABLE
before resubmitting the patch.
On Wed, Dec 25, 2019 at 2:53 PM Scott Wood [off-list ref] wrote:
On Wed, 2019-12-25 at 11:24 +0800, Yingjie Bai wrote:
quoted
Hi Scott,
__pa() returns 64bit in my setup.
in arch/powerpc/include/asm/page.h
#if defined(CONFIG_PPC32) && defined(CONFIG_BOOKE)
#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) +
VIRT_PHYS_OFFSET))
#define __pa(x) ((unsigned long)(x) - VIRT_PHYS_OFFSET)
#else
#ifdef CONFIG_PPC64
...
/* See Description below for VIRT_PHYS_OFFSET */
#if defined(CONFIG_PPC32) && defined(CONFIG_BOOKE)
#ifdef CONFIG_RELOCATABLE
#define VIRT_PHYS_OFFSET virt_phys_offset
#else
#define VIRT_PHYS_OFFSET (KERNELBASE - PHYSICAL_START)
#endif
#endif
OK, so it's the lack of CONFIG_RELOCATABLE causing the build to fail. Ideally
we'd make __pa() consistently return phys_addr_t, even if the upper bits are
known to always be zero in a particular config.
-Scott