linux-uconsole/arch/arc/include/asm
Eugeniy Paltsev 705d1e7331 ARC: IOC: panic if kernel was started with previously enabled IOC
[ Upstream commit 3624379d90 ]

If IOC was already enabled (due to bootloader) it technically needs to
be reconfigured with aperture base,size corresponding to Linux memory map
which will certainly be different than uboot's. But disabling and
reenabling IOC when DMA might be potentially active is tricky business.
To avoid random memory issues later, just panic here and ask user to
upgrade bootloader to one which doesn't enable IOC

This was actually seen as issue on some of the HSDK board with a version
of uboot which enabled IOC. There were random issues later with starting
of X or peripherals etc.

Also while I'm at it, replace hardcoded bits in ARC_REG_IO_COH_PARTIAL
and ARC_REG_IO_COH_ENABLE registers by definitions.

Inspired by: https://lkml.org/lkml/2018/1/19/557
Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-13 08:51:12 +01:00
..
arcregs.h ARCv2: don't assume core 0x54 has dual issue 2019-03-23 20:09:51 +01:00
asm-offsets.h
atomic.h ARC: atomics: unbork atomic_fetch_##op() 2018-08-31 10:14:51 -07:00
barrier.h ARC: [plat-eznps] Use dedicated SMP barriers 2016-05-09 09:32:33 +05:30
bitops.h ARC: fix __ffs return value to avoid build warnings 2019-03-05 17:58:48 +01:00
bug.h bug.h: work around GCC PR82365 in BUG() 2018-02-21 15:35:43 -08:00
cache.h ARC: IOC: panic if kernel was started with previously enabled IOC 2019-12-13 08:51:12 +01:00
cacheflush.h ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache 2016-12-19 11:55:17 -08:00
checksum.h ipv4: Update parameters for csum_tcpudp_magic to their original types 2016-03-13 23:55:13 -04:00
cmpxchg.h ARC: fix build warnings 2019-06-25 11:35:55 +08:00
current.h ARC: remove extraneous __KERNEL__ guards 2014-10-13 14:46:20 +05:30
delay.h arc: fix build errors in arc/include/asm/delay.h 2018-07-30 11:48:50 -07:00
disasm.h
dma-mapping.h ARC: dma [IOC] Enable per device io coherency 2018-09-04 13:21:37 -07:00
dma.h ARC: Add PCI support 2016-03-10 14:44:13 -06:00
dwarf.h ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm 2016-09-30 14:48:22 -07:00
elf.h ARC: fix build warning in elf.h 2016-10-19 14:38:53 -07:00
entry-arcv2.h ARCv2: support manual regfile save on interrupts 2019-03-23 20:09:51 +01:00
entry-compact.h ARC: [arcompact] entry.S: minor code movement 2018-07-09 11:25:45 -07:00
entry.h ARC: [arcompact] entry.S: minor code movement 2018-07-09 11:25:45 -07:00
exec.h
fb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
futex.h futex: Remove duplicated code and fix undefined behaviour 2017-08-25 22:49:59 +02:00
highmem.h ARC: mm: HIGHMEM: kmap API implementation 2015-10-28 19:49:04 +05:30
hugepage.h arc: use generic_pmdp_establish as pmdp_establish 2018-01-31 17:18:37 -08:00
io.h ARC: io.h: Implement reads{x}()/writes{x}() 2018-12-21 14:15:16 +01:00
irq.h ARCv2: intc: Use runtime value of irq count for setting up intc 2017-02-06 09:37:57 -08:00
irqflags-arcv2.h ARC: create cpu specific version of arch_cpu_idle() 2017-08-28 15:17:36 -07:00
irqflags-compact.h ARC: create cpu specific version of arch_cpu_idle() 2017-08-28 15:17:36 -07:00
irqflags.h ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
Kbuild Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 20:27:54 -07:00
kdebug.h
kgdb.h ARC: Update order of registers in KGDB to match GDB 7.5 2014-10-13 14:46:20 +05:30
kmap_types.h ARC: mm: HIGHMEM: kmap API implementation 2015-10-28 19:49:04 +05:30
kprobes.h ARC/kprobes: Remove jprobe implementation 2018-06-21 12:33:06 +02:00
linkage.h ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm 2016-09-30 14:48:22 -07:00
mach_desc.h ARC: Enable machine_desc->init_per_cpu for !CONFIG_SMP 2018-06-20 16:12:06 -07:00
mmu.h ARCv2: PAE40: set MSB even if !CONFIG_ARC_HAS_PAE40 but PAE exists in SoC 2017-08-04 13:56:35 +05:30
mmu_context.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h> 2017-03-02 08:42:28 +01:00
mmzone.h ARC: support HIGHMEM even without PAE40 2016-05-05 16:35:46 +05:30
module.h ARC: module: Fix !CONFIG_ARC_DW2_UNWIND builds 2017-01-18 11:17:44 -08:00
page.h ARC: mm: allow mprotect to make stack mappings executable 2018-07-11 11:03:06 -07:00
pci.h PCI: remove PCI_DMA_BUS_IS_PHYS 2018-05-07 07:15:41 +02:00
perf_event.h ARC: perf: map generic branches to correct hardware condition 2019-01-31 08:14:35 +01:00
pgalloc.h arc: get rid of superfluous __GFP_REPEAT 2016-06-24 17:23:52 -07:00
pgtable.h ARC fixes for 4.18-rc6 2018-07-20 11:33:22 -07:00
processor.h arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
ptrace.h ARC: [plat-eznps] handle extra aux regs #2: kernel/entry exit 2017-08-28 15:17:36 -07:00
sections.h of/fdt: consolidate built-in dtb section variables 2014-04-30 00:59:13 -05:00
segment.h
serial.h ARC: Dynamically determine BASE_BAUD from DeviceTree 2015-02-02 17:08:37 +05:30
setup.h ARCv2: IOC: Use actual memory size to setup aperture size 2017-01-18 14:52:43 -08:00
shmparam.h
smp.h ARC: IRQ: Do not use hwirq as virq and vice versa 2016-11-08 12:05:10 -08:00
spinlock.h locking/arch: Remove dummy arch_{read,spin,write}_lock_flags() implementations 2017-10-10 11:50:19 +02:00
spinlock_types.h ARC: LLOCK/SCOND based rwlock 2015-08-04 09:26:33 +05:30
stacktrace.h ARC: Make arc_unwind_core accessible externally 2015-02-27 10:15:00 +05:30
string.h ARC: remove extraneous __KERNEL__ guards 2014-10-13 14:46:20 +05:30
switch_to.h ARC: [plat-eznps] handle extra aux regs #1: save/restore on context switch 2017-08-28 15:17:36 -07:00
syscall.h
syscalls.h ARC: syscall for userspace cmpxchg assist 2016-10-24 09:24:26 -07:00
thread_info.h Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
timex.h
tlb-mmu1.h
tlb.h
tlbflush.h ARC: thp: unbork !CONFIG_TRANSPARENT_HUGEPAGE build 2016-03-17 15:31:45 +05:30
uaccess.h ARC: uacces: remove lp_start, lp_end from clobber list 2019-03-23 20:09:51 +01:00
unaligned.h ARC: rename kconfig option for unaligned emulation 2014-10-13 14:46:15 +05:30
unwind.h ARC: dw2 unwind: Reinstante unwinding out of modules 2015-12-17 11:10:23 +05:30