mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
sandbox: Use asm-generic/io.h
Convert the sandbox architecture to make use of the new asm-generic/io.h to provide address mapping functions. As sandbox actually performs non-identity mapping between physical & virtual addresses we can't simply make use of the generic mapping functions, but are able to implement phys_to_virt() & make use of it from map_physmem(). Signed-off-by: Paul Burton <paul.burton@imgtec.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
ae07d609e9
commit
f7ae1ca3e8
2 changed files with 20 additions and 10 deletions
|
@ -56,6 +56,16 @@ int cleanup_before_linux_select(int flags)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *phys_to_virt(phys_addr_t paddr)
|
||||||
|
{
|
||||||
|
return (void *)(gd->arch.ram_buf + paddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
phys_addr_t virt_to_phys(void *vaddr)
|
||||||
|
{
|
||||||
|
return (phys_addr_t)((uint8_t *)vaddr - gd->arch.ram_buf);
|
||||||
|
}
|
||||||
|
|
||||||
void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
|
void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_PCI) && !defined(CONFIG_SPL_BUILD)
|
#if defined(CONFIG_PCI) && !defined(CONFIG_SPL_BUILD)
|
||||||
|
@ -73,7 +83,7 @@ void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return (void *)(gd->arch.ram_buf + paddr);
|
return phys_to_virt(paddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void unmap_physmem(const void *vaddr, unsigned long flags)
|
void unmap_physmem(const void *vaddr, unsigned long flags)
|
||||||
|
|
|
@ -7,22 +7,22 @@
|
||||||
#ifndef __SANDBOX_ASM_IO_H
|
#ifndef __SANDBOX_ASM_IO_H
|
||||||
#define __SANDBOX_ASM_IO_H
|
#define __SANDBOX_ASM_IO_H
|
||||||
|
|
||||||
/*
|
void *phys_to_virt(phys_addr_t paddr);
|
||||||
* Given a physical address and a length, return a virtual address
|
#define phys_to_virt phys_to_virt
|
||||||
* that can be used to access the memory range with the caching
|
|
||||||
* properties specified by "flags".
|
phys_addr_t virt_to_phys(void *vaddr);
|
||||||
*/
|
#define virt_to_phys virt_to_phys
|
||||||
#define MAP_NOCACHE (0)
|
|
||||||
#define MAP_WRCOMBINE (0)
|
|
||||||
#define MAP_WRBACK (0)
|
|
||||||
#define MAP_WRTHROUGH (0)
|
|
||||||
|
|
||||||
void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags);
|
void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags);
|
||||||
|
#define map_physmem map_physmem
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Take down a mapping set up by map_physmem().
|
* Take down a mapping set up by map_physmem().
|
||||||
*/
|
*/
|
||||||
void unmap_physmem(const void *vaddr, unsigned long flags);
|
void unmap_physmem(const void *vaddr, unsigned long flags);
|
||||||
|
#define unmap_physmem unmap_physmem
|
||||||
|
|
||||||
|
#include <asm-generic/io.h>
|
||||||
|
|
||||||
/* For sandbox, we want addresses to point into our RAM buffer */
|
/* For sandbox, we want addresses to point into our RAM buffer */
|
||||||
static inline void *map_sysmem(phys_addr_t paddr, unsigned long len)
|
static inline void *map_sysmem(phys_addr_t paddr, unsigned long len)
|
||||||
|
|
Loading…
Add table
Reference in a new issue