ARCv2: ioremap: Support dynamic peripheral address space
authorVineet Gupta <vgupta@synopsys.com>
Sat, 24 Oct 2015 14:01:16 +0000 (19:31 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Sat, 19 Mar 2016 09:04:10 +0000 (14:34 +0530)
commitdeaf7565eb618a80534844300aeacffa14125182
tree1006ac977a3a5419dea2195a12c894298a851337
parentf2e3d55397ff7ad62e159e14281b346760857935
ARCv2: ioremap: Support dynamic peripheral address space

The peripheral address space is architectural address window which is
uncached and typically used to wire up peripherals.

For ARC700 cores (ARCompact ISA based) this was fixed to 1GB region
0xC000_0000 - 0xFFFF_FFFF.

For ARCv2 based HS38 cores the start address is flexible and can be
0xC, 0xD, 0xE, 0xF 000_000 by programming AUX_NON_VOLATILE_LIMIT reg
(typically done in bootloader)

Further in cas of PAE, the physical address can extend beyond 4GB so
need to confine this check, otherwise all pages beyond 4GB will be
treated as uncached

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/cache.h
arch/arc/kernel/setup.c
arch/arc/mm/cache.c
arch/arc/mm/ioremap.c