mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
mips: add support for noncached_alloc()
This patch adds support for noncached_alloc() which was only supported by ARM platform. Unlike the ARM platform, MMU is not used in u-boot for MIPS. Instead, KSEG is provided to access uncached memory. So most code of this patch is copied from cache.c of ARM platform, with only two differences: 1. MMU is untouched in noncached_set_region() 2. Address returned by noncached_alloc() is converted using KSEG1ADDR() Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
This commit is contained in:
parent
9a3bbb0eba
commit
2948d9cf86
2 changed files with 63 additions and 0 deletions
|
@ -282,4 +282,24 @@ static inline void instruction_hazard_barrier(void)
|
|||
: "=&r"(tmp));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_NONCACHED_MEMORY
|
||||
/* 1MB granularity */
|
||||
#define MMU_SECTION_SHIFT 20
|
||||
#define MMU_SECTION_SIZE (1 << MMU_SECTION_SHIFT)
|
||||
|
||||
/**
|
||||
* noncached_init() - Initialize non-cached memory region
|
||||
*
|
||||
* Initialize non-cached memory area. This memory region will be typically
|
||||
* located right below the malloc() area and be accessed from KSEG1.
|
||||
*
|
||||
* It is called during the generic post-relocation init sequence.
|
||||
*
|
||||
* Return: 0 if OK
|
||||
*/
|
||||
int noncached_init(void);
|
||||
|
||||
phys_addr_t noncached_alloc(size_t size, size_t align);
|
||||
#endif /* CONFIG_SYS_NONCACHED_MEMORY */
|
||||
|
||||
#endif /* _ASM_SYSTEM_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue