Loading...
/* SPDX-License-Identifier: GPL-2.0-only */ /* * arch/arm/include/asm/map.h * * Copyright (C) 1999-2000 Russell King * * Page table mapping constructs and function prototypes */ #ifndef __ASM_MACH_MAP_H #define __ASM_MACH_MAP_H #include <asm/io.h> struct map_desc { unsigned long virtual; unsigned long pfn; unsigned long length; unsigned int type; }; /* types 0-3 are defined in asm/io.h */ enum { MT_UNCACHED = 4, MT_CACHECLEAN, MT_MINICLEAN, MT_LOW_VECTORS, MT_HIGH_VECTORS, MT_MEMORY_RWX, MT_MEMORY_RW, MT_MEMORY_RO, MT_ROM, MT_MEMORY_RWX_NONCACHED, MT_MEMORY_RW_DTCM, MT_MEMORY_RWX_ITCM, MT_MEMORY_RW_SO, MT_MEMORY_DMA_READY, }; #ifdef CONFIG_MMU extern void iotable_init(struct map_desc *, int); extern void vm_reserve_area_early(unsigned long addr, unsigned long size, void *caller); extern void create_mapping_late(struct mm_struct *mm, struct map_desc *md, bool ng); #ifdef CONFIG_DEBUG_LL extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr); extern void debug_ll_io_init(void); #else static inline void debug_ll_io_init(void) {} #endif struct mem_type; extern const struct mem_type *get_mem_type(unsigned int type); /* * external interface to remap single page with appropriate type */ extern int ioremap_page(unsigned long virt, unsigned long phys, const struct mem_type *mtype); #else #define iotable_init(map,num) do { } while (0) #define vm_reserve_area_early(a,s,c) do { } while (0) #endif #endif |