Lines Matching +full:arm +full:- +full:io
2 * Based on linux/arch/arm/pmsa-v7.c
4 * ARM PMSAv8 supporting functions.
78 static struct range __initdata io[MPU_MAX_REGIONS]; variable
120 memblock_remove(reg_start, 0 - reg_start); in pmsav8_adjust_lowmem_bounds()
145 return -ENOENT; in __pmsav8_setup_region()
166 return -EINVAL; in pmsav8_setup_ram()
169 lar = (end - 1) & ~(PMSAv8_MINALIGN - 1); in pmsav8_setup_ram()
182 return -EINVAL; in pmsav8_setup_io()
185 lar = (end - 1) & ~(PMSAv8_MINALIGN - 1); in pmsav8_setup_io()
198 return -EINVAL; in pmsav8_setup_fixed()
201 lar = (end - 1) & ~(PMSAv8_MINALIGN - 1); in pmsav8_setup_fixed()
210 return -EINVAL; in pmsav8_setup_fixed()
227 return -EINVAL; in pmsav8_setup_vector()
230 lar = (end - 1) & ~(PMSAv8_MINALIGN - 1); in pmsav8_setup_vector()
251 /* IO: cover full 4G range */ in pmsav8_setup()
252 add_range(io, ARRAY_SIZE(io), 0, 0, 0xffffffff); in pmsav8_setup()
254 /* RAM and IO: exclude kernel */ in pmsav8_setup()
256 subtract_range(io, ARRAY_SIZE(io), __pa(KERNEL_START), __pa(KERNEL_END)); in pmsav8_setup()
259 /* RAM and IO: exclude xip */ in pmsav8_setup()
261 subtract_range(io, ARRAY_SIZE(io), CONFIG_XIP_PHYS_ADDR, __pa(_exiprom)); in pmsav8_setup()
265 /* RAM and IO: exclude vectors */ in pmsav8_setup()
267 subtract_range(io, ARRAY_SIZE(io), vectors_base, vectors_base + 2 * PAGE_SIZE); in pmsav8_setup()
269 /* IO: exclude RAM */ in pmsav8_setup()
271 subtract_range(io, ARRAY_SIZE(io), mem[i].start, mem[i].end); in pmsav8_setup()
283 /* IO */ in pmsav8_setup()
284 for (i = 0; i < ARRAY_SIZE(io); i++) { in pmsav8_setup()
285 if (!io[i].end) in pmsav8_setup()
288 err |= pmsav8_setup_io(region++, io[i].start, io[i].end); in pmsav8_setup()
306 pr_info("Using ARM PMSAv8 Compliant MPU. Used %d of %d regions\n", in pmsav8_setup()