185aed7557
With the PMB enabled, only P1SEG and up are covered by the PMB mappings, meaning that situations where out-of-bounds physical addresses are read from will lead to TLB reset after the PMB miss, allowing for use cases like dd if=/dev/mem to reset the TLB. Fix this up to make sure the reference is between __MEMORY_START (phys) and __pa(high_memory). This is coherent across all variants of sh/sh64 with and without MMU, though the PMB bug itself is only applicable to SH-4A parts. Reported-by: Hideo Saito <saito@densan.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
39 lines
912 B
Text
39 lines
912 B
Text
#
|
|
# Makefile for the Linux SuperH-specific parts of the memory manager.
|
|
#
|
|
|
|
obj-y := init.o extable_32.o consistent.o mmap.o
|
|
|
|
ifndef CONFIG_CACHE_OFF
|
|
cache-$(CONFIG_CPU_SH2) := cache-sh2.o
|
|
cache-$(CONFIG_CPU_SH2A) := cache-sh2a.o
|
|
cache-$(CONFIG_CPU_SH3) := cache-sh3.o
|
|
cache-$(CONFIG_CPU_SH4) := cache-sh4.o
|
|
cache-$(CONFIG_SH7705_CACHE_32KB) += cache-sh7705.o
|
|
endif
|
|
|
|
obj-y += $(cache-y)
|
|
|
|
mmu-y := tlb-nommu.o pg-nommu.o
|
|
mmu-$(CONFIG_MMU) := fault_32.o tlbflush_32.o ioremap_32.o
|
|
|
|
obj-y += $(mmu-y)
|
|
|
|
ifdef CONFIG_DEBUG_FS
|
|
obj-$(CONFIG_CPU_SH4) += cache-debugfs.o
|
|
endif
|
|
|
|
ifdef CONFIG_MMU
|
|
obj-$(CONFIG_CPU_SH3) += tlb-sh3.o
|
|
obj-$(CONFIG_CPU_SH4) += tlb-sh4.o
|
|
ifndef CONFIG_CACHE_OFF
|
|
obj-$(CONFIG_CPU_SH4) += pg-sh4.o
|
|
obj-$(CONFIG_SH7705_CACHE_32KB) += pg-sh7705.o
|
|
endif
|
|
endif
|
|
|
|
obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
|
|
obj-$(CONFIG_PMB) += pmb.o
|
|
obj-$(CONFIG_NUMA) += numa.o
|
|
|
|
EXTRA_CFLAGS += -Werror
|