mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 12:44:23 +08:00
ppc: io.h: Use addrmap_ translation APIs only in post-relocation phase
In phys_to_virt() and virt_to_phys(), if CONFIG_ADDR_MAP is defined, they use addrmap_ translation APIs to do the address translation. However these APIs only work in post-relocation phase. Update the code logic to fall back to use the default one when in pre-relocation phase. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
parent
e010315899
commit
3320656944
@ -10,7 +10,10 @@
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#ifdef CONFIG_ADDR_MAP
|
||||
#include <asm/global_data.h>
|
||||
#include <addr_map.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
#endif
|
||||
|
||||
#define SIO_CONFIG_RA 0x398
|
||||
@ -303,20 +306,20 @@ static inline void out_be32(volatile unsigned __iomem *addr, u32 val)
|
||||
static inline void *phys_to_virt(phys_addr_t paddr)
|
||||
{
|
||||
#ifdef CONFIG_ADDR_MAP
|
||||
return addrmap_phys_to_virt(paddr);
|
||||
#else
|
||||
return (void *)((unsigned long)paddr);
|
||||
if (gd->flags & GD_FLG_RELOC)
|
||||
return addrmap_phys_to_virt(paddr);
|
||||
#endif
|
||||
return (void *)((unsigned long)paddr);
|
||||
}
|
||||
#define phys_to_virt phys_to_virt
|
||||
|
||||
static inline phys_addr_t virt_to_phys(void * vaddr)
|
||||
{
|
||||
#ifdef CONFIG_ADDR_MAP
|
||||
return addrmap_virt_to_phys(vaddr);
|
||||
#else
|
||||
return (phys_addr_t)((unsigned long)vaddr);
|
||||
if (gd->flags & GD_FLG_RELOC)
|
||||
return addrmap_virt_to_phys(vaddr);
|
||||
#endif
|
||||
return (phys_addr_t)((unsigned long)vaddr);
|
||||
}
|
||||
#define virt_to_phys virt_to_phys
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user