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) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2)  * fixmap.h: compile-time virtual memory allocation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * This file is subject to the terms and conditions of the GNU General Public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * License.  See the file "COPYING" in the main directory of this archive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  * for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  * Copyright (C) 1998 Ingo Molnar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  * Copyright (C) 2013 Mark Salter <msalter@redhat.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)  * Adapted from arch/x86 version.
^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) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #ifndef _ASM_ARM64_FIXMAP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) #define _ASM_ARM64_FIXMAP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) #ifndef __ASSEMBLY__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #include <linux/sizes.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) #include <asm/boot.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #include <asm/page.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) #include <asm/pgtable-prot.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)  * Here we define all the compile-time 'special' virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)  * addresses. The point is to have a constant address at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)  * compile time, but to set the physical address only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)  * in the boot process.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)  * Each enum increment in these 'compile-time allocated'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)  * memory buffers is page-sized. Use set_fixmap(idx,phys)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)  * to associate physical memory with a fixmap index.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) enum fixed_addresses {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	FIX_HOLE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	 * Reserve a virtual window for the FDT that is 2 MB larger than the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	 * maximum supported size, and put it at the top of the fixmap region.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	 * The additional space ensures that any FDT that does not exceed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	 * MAX_FDT_SIZE can be mapped regardless of whether it crosses any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	 * 2 MB alignment boundaries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	 *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	 * Keep this at the top so it remains 2 MB aligned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) #define FIX_FDT_SIZE		(MAX_FDT_SIZE + SZ_2M)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	FIX_FDT_END,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	FIX_FDT = FIX_FDT_END + FIX_FDT_SIZE / PAGE_SIZE - 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	FIX_EARLYCON_MEM_BASE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	FIX_TEXT_POKE0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) #ifdef CONFIG_ACPI_APEI_GHES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	/* Used for GHES mapping from assorted contexts */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	FIX_APEI_GHES_IRQ,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	FIX_APEI_GHES_SEA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) #ifdef CONFIG_ARM_SDE_INTERFACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	FIX_APEI_GHES_SDEI_NORMAL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	FIX_APEI_GHES_SDEI_CRITICAL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) #endif /* CONFIG_ACPI_APEI_GHES */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	FIX_ENTRY_TRAMP_TEXT3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	FIX_ENTRY_TRAMP_TEXT2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	FIX_ENTRY_TRAMP_TEXT1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	FIX_ENTRY_TRAMP_DATA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) #define TRAMP_VALIAS		(__fix_to_virt(FIX_ENTRY_TRAMP_TEXT1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) #endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	__end_of_permanent_fixed_addresses,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	 * Temporary boot-time mappings, used by early_ioremap(),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	 * before ioremap() is functional.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) #define NR_FIX_BTMAPS		(SZ_256K / PAGE_SIZE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) #define FIX_BTMAPS_SLOTS	7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) #define TOTAL_FIX_BTMAPS	(NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	FIX_BTMAP_END = __end_of_permanent_fixed_addresses,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTAL_FIX_BTMAPS - 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	 * Used for kernel page table creation, so unmapped memory may be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	 * for tables.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	FIX_PTE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	FIX_PMD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	FIX_PUD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	FIX_PGD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	__end_of_fixed_addresses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) #define FIXADDR_SIZE	(__end_of_permanent_fixed_addresses << PAGE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) #define FIXADDR_START	(FIXADDR_TOP - FIXADDR_SIZE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) #define FIXMAP_PAGE_IO     __pgprot(PROT_DEVICE_nGnRE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) void __init early_fixmap_init(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) #define __early_set_fixmap __set_fixmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) #define __late_set_fixmap __set_fixmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) #define __late_clear_fixmap(idx) __set_fixmap((idx), 0, FIXMAP_PAGE_CLEAR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) extern void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #include <asm-generic/fixmap.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #endif /* !__ASSEMBLY__ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #endif /* _ASM_ARM64_FIXMAP_H */