diff options
Diffstat (limited to 'include/asm-arm/domain.h')
-rw-r--r-- | include/asm-arm/domain.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/asm-arm/domain.h b/include/asm-arm/domain.h index da1d960387d9..f8ea2de4848e 100644 --- a/include/asm-arm/domain.h +++ b/include/asm-arm/domain.h | |||
@@ -16,11 +16,29 @@ | |||
16 | * DOMAIN_IO - domain 2 includes all IO only | 16 | * DOMAIN_IO - domain 2 includes all IO only |
17 | * DOMAIN_USER - domain 1 includes all user memory only | 17 | * DOMAIN_USER - domain 1 includes all user memory only |
18 | * DOMAIN_KERNEL - domain 0 includes all kernel memory only | 18 | * DOMAIN_KERNEL - domain 0 includes all kernel memory only |
19 | * | ||
20 | * The domain numbering depends on whether we support 36 physical | ||
21 | * address for I/O or not. Addresses above the 32 bit boundary can | ||
22 | * only be mapped using supersections and supersections can only | ||
23 | * be set for domain 0. We could just default to DOMAIN_IO as zero, | ||
24 | * but there may be systems with supersection support and no 36-bit | ||
25 | * addressing. In such cases, we want to map system memory with | ||
26 | * supersections to reduce TLB misses and footprint. | ||
27 | * | ||
28 | * 36-bit addressing and supersections are only available on | ||
29 | * CPUs based on ARMv6+ or the Intel XSC3 core. | ||
19 | */ | 30 | */ |
31 | #ifndef CONFIG_IO_36 | ||
20 | #define DOMAIN_KERNEL 0 | 32 | #define DOMAIN_KERNEL 0 |
21 | #define DOMAIN_TABLE 0 | 33 | #define DOMAIN_TABLE 0 |
22 | #define DOMAIN_USER 1 | 34 | #define DOMAIN_USER 1 |
23 | #define DOMAIN_IO 2 | 35 | #define DOMAIN_IO 2 |
36 | #else | ||
37 | #define DOMAIN_KERNEL 2 | ||
38 | #define DOMAIN_TABLE 2 | ||
39 | #define DOMAIN_USER 1 | ||
40 | #define DOMAIN_IO 0 | ||
41 | #endif | ||
24 | 42 | ||
25 | /* | 43 | /* |
26 | * Domain types | 44 | * Domain types |