-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for early IO or memory mappings which are needed before the normal ioremap() is usable. This also adds fixmap support for permanent fixed mappings such as that used by the earlyprintk device register region. Signed-off-by: Mark Salter <msalter@redhat.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Borislav Petkov <borislav.petkov@amd.com> Cc: Dave Young <dyoung@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Loading branch information
Mark Salter
authored and
Linus Torvalds
committed
Apr 7, 2014
1 parent
0bf757c
commit bf4b558
Showing
11 changed files
with
169 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
/* | ||
* fixmap.h: compile-time virtual memory allocation | ||
* | ||
* This file is subject to the terms and conditions of the GNU General Public | ||
* License. See the file "COPYING" in the main directory of this archive | ||
* for more details. | ||
* | ||
* Copyright (C) 1998 Ingo Molnar | ||
* Copyright (C) 2013 Mark Salter <msalter@redhat.com> | ||
* | ||
* Adapted from arch/x86_64 version. | ||
* | ||
*/ | ||
|
||
#ifndef _ASM_ARM64_FIXMAP_H | ||
#define _ASM_ARM64_FIXMAP_H | ||
|
||
#ifndef __ASSEMBLY__ | ||
#include <linux/kernel.h> | ||
#include <asm/page.h> | ||
|
||
/* | ||
* Here we define all the compile-time 'special' virtual | ||
* addresses. The point is to have a constant address at | ||
* compile time, but to set the physical address only | ||
* in the boot process. | ||
* | ||
* These 'compile-time allocated' memory buffers are | ||
* page-sized. Use set_fixmap(idx,phys) to associate | ||
* physical memory with fixmap indices. | ||
* | ||
*/ | ||
enum fixed_addresses { | ||
FIX_EARLYCON_MEM_BASE, | ||
__end_of_permanent_fixed_addresses, | ||
|
||
/* | ||
* Temporary boot-time mappings, used by early_ioremap(), | ||
* before ioremap() is functional. | ||
*/ | ||
#ifdef CONFIG_ARM64_64K_PAGES | ||
#define NR_FIX_BTMAPS 4 | ||
#else | ||
#define NR_FIX_BTMAPS 64 | ||
#endif | ||
#define FIX_BTMAPS_SLOTS 7 | ||
#define TOTAL_FIX_BTMAPS (NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS) | ||
|
||
FIX_BTMAP_END = __end_of_permanent_fixed_addresses, | ||
FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTAL_FIX_BTMAPS - 1, | ||
__end_of_fixed_addresses | ||
}; | ||
|
||
#define FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT) | ||
#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | ||
|
||
#define FIXMAP_PAGE_IO __pgprot(PROT_DEVICE_nGnRE) | ||
|
||
extern void __early_set_fixmap(enum fixed_addresses idx, | ||
phys_addr_t phys, pgprot_t flags); | ||
|
||
#define __set_fixmap __early_set_fixmap | ||
|
||
#include <asm-generic/fixmap.h> | ||
|
||
#endif /* !__ASSEMBLY__ */ | ||
#endif /* _ASM_ARM64_FIXMAP_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters