Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #ifndef __ASM_GENERIC_PAGE_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) #define __ASM_GENERIC_PAGE_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * Generic page.h implementation, for NOMMU architectures.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  * This provides the dummy definitions for the memory management.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #ifdef CONFIG_MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #error need to provide a real asm/page.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) /* PAGE_SHIFT determines the page size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) #define PAGE_SHIFT	12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) #ifdef __ASSEMBLY__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) #define PAGE_SIZE	(1 << PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #define PAGE_SIZE	(1UL << PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #define PAGE_MASK	(~(PAGE_SIZE-1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) #include <asm/setup.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #ifndef __ASSEMBLY__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) #define clear_page(page)	memset((page), 0, PAGE_SIZE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #define copy_page(to,from)	memcpy((to), (from), PAGE_SIZE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) #define clear_user_page(page, vaddr, pg)	clear_page(page)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) #define copy_user_page(to, from, vaddr, pg)	copy_page(to, from)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)  * These are used to make use of C type-checking..
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) typedef struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	unsigned long pte;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) } pte_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) typedef struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	unsigned long pmd[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) } pmd_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) typedef struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	unsigned long pgd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) } pgd_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) typedef struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	unsigned long pgprot;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) } pgprot_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) typedef struct page *pgtable_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) #define pte_val(x)	((x).pte)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) #define pmd_val(x)	((&x)->pmd[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) #define pgd_val(x)	((x).pgd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) #define pgprot_val(x)	((x).pgprot)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) #define __pte(x)	((pte_t) { (x) } )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) #define __pmd(x)	((pmd_t) { (x) } )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) #define __pgd(x)	((pgd_t) { (x) } )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) #define __pgprot(x)	((pgprot_t) { (x) } )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) extern unsigned long memory_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) extern unsigned long memory_end;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) #endif /* !__ASSEMBLY__ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) #ifdef CONFIG_KERNEL_RAM_BASE_ADDRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) #define PAGE_OFFSET		(CONFIG_KERNEL_RAM_BASE_ADDRESS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) #define PAGE_OFFSET		(0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) #ifndef ARCH_PFN_OFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) #define ARCH_PFN_OFFSET		(PAGE_OFFSET >> PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) #ifndef __ASSEMBLY__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) #define __va(x) ((void *)((unsigned long) (x)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) #define __pa(x) ((unsigned long) (x))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) #define virt_to_pfn(kaddr)	(__pa(kaddr) >> PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) #define pfn_to_virt(pfn)	__va((pfn) << PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) #define virt_to_page(addr)	pfn_to_page(virt_to_pfn(addr))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) #define page_to_virt(page)	pfn_to_virt(page_to_pfn(page))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) #ifndef page_to_phys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) #define page_to_phys(page)      ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) #define pfn_valid(pfn)		((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) #define	virt_addr_valid(kaddr)	(((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 				((void *)(kaddr) < (void *)memory_end))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) #endif /* __ASSEMBLY__ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) #include <asm-generic/memory_model.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) #include <asm-generic/getorder.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) #endif /* __ASM_GENERIC_PAGE_H */