Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ce235fa authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM64 updates from Catalin Marinas:
 - KGDB support for arm64
 - PCI I/O space extended to 16M (in preparation of PCIe support
   patches)
 - Dropping ZONE_DMA32 in favour of ZONE_DMA (we only need one for the
   time being), together with swiotlb late initialisation to correctly
   setup the bounce buffer
 - DMA API cache maintenance support (not all ARMv8 platforms have
   hardware cache coherency)
 - Crypto extensions advertising via ELF_HWCAP2 for compat user space
 - Perf support for dwarf unwinding in compat mode
 - asm/tlb.h converted to the generic mmu_gather code
 - asm-generic rwsem implementation
 - Code clean-up

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (42 commits)
  arm64: Remove pgprot_dmacoherent()
  arm64: Support DMA_ATTR_WRITE_COMBINE
  arm64: Implement custom mmap functions for dma mapping
  arm64: Fix __range_ok macro
  arm64: Fix duplicated Kconfig entries
  arm64: mm: Route pmd thp functions through pte equivalents
  arm64: rwsem: use asm-generic rwsem implementation
  asm-generic: rwsem: de-PPCify rwsem.h
  arm64: enable generic CPU feature modalias matching for this architecture
  arm64: smp: make local symbol static
  arm64: debug: make local symbols static
  ARM64: perf: support dwarf unwinding in compat mode
  ARM64: perf: add support for frame pointer unwinding in compat mode
  ARM64: perf: add support for perf registers API
  arm64: Add boot time configuration of Intermediate Physical Address size
  arm64: Do not synchronise I and D caches for special ptes
  arm64: Make DMA coherent and strongly ordered mappings not executable
  arm64: barriers: add dmb barrier
  arm64: topology: Implement basic CPU topology support
  arm64: advertise ARMv8 extensions to 32-bit compat ELF binaries
  ...
parents e38be1b1 196adf2f
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -35,11 +35,13 @@ ffffffbc00000000 ffffffbdffffffff 8GB vmemmap

ffffffbe00000000	ffffffbffbbfffff	  ~8GB		[guard, future vmmemap]

ffffffbffbc00000	ffffffbffbdfffff	   2MB		earlyprintk device
ffffffbffa000000	ffffffbffaffffff	  16MB		PCI I/O space

ffffffbffb000000	ffffffbffbbfffff	  12MB		[guard]

ffffffbffbe00000	ffffffbffbe0ffff	  64KB		PCI I/O space
ffffffbffbc00000	ffffffbffbdfffff	   2MB		earlyprintk device

ffffffbffbe10000	ffffffbcffffffff	  ~2MB		[guard]
ffffffbffbe00000	ffffffbffbffffff	   2MB		[guard]

ffffffbffc000000	ffffffbfffffffff	  64MB		modules

@@ -60,11 +62,13 @@ fffffdfc00000000 fffffdfdffffffff 8GB vmemmap

fffffdfe00000000	fffffdfffbbfffff	  ~8GB		[guard, future vmmemap]

fffffdfffbc00000	fffffdfffbdfffff	   2MB		earlyprintk device
fffffdfffa000000	fffffdfffaffffff	  16MB		PCI I/O space

fffffdfffb000000	fffffdfffbbfffff	  12MB		[guard]

fffffdfffbe00000	fffffdfffbe0ffff	  64KB		PCI I/O space
fffffdfffbc00000	fffffdfffbdfffff	   2MB		earlyprintk device

fffffdfffbe10000	fffffdfffbffffff	  ~2MB		[guard]
fffffdfffbe00000	fffffdfffbffffff	   2MB		[guard]

fffffdfffc000000	fffffdffffffffff	  64MB		modules

+24 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ config ARM64
	select DCACHE_WORD_ACCESS
	select GENERIC_CLOCKEVENTS
	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
	select GENERIC_CPU_AUTOPROBE
	select GENERIC_IOMAP
	select GENERIC_IRQ_PROBE
	select GENERIC_IRQ_SHOW
@@ -26,6 +27,7 @@ config ARM64
	select GENERIC_TIME_VSYSCALL
	select HARDIRQS_SW_RESEND
	select HAVE_ARCH_JUMP_LABEL
	select HAVE_ARCH_KGDB
	select HAVE_ARCH_TRACEHOOK
	select HAVE_DEBUG_BUGVERBOSE
	select HAVE_DEBUG_KMEMLEAK
@@ -38,6 +40,8 @@ config ARM64
	select HAVE_MEMBLOCK
	select HAVE_PATA_PLATFORM
	select HAVE_PERF_EVENTS
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
	select IRQ_DOMAIN
	select MODULES_USE_ELF_RELA
	select NO_BOOTMEM
@@ -73,7 +77,7 @@ config LOCKDEP_SUPPORT
config TRACE_IRQFLAGS_SUPPORT
	def_bool y

config RWSEM_GENERIC_SPINLOCK
config RWSEM_XCHGADD_ALGORITHM
	def_bool y

config GENERIC_HWEIGHT
@@ -85,7 +89,7 @@ config GENERIC_CSUM
config GENERIC_CALIBRATE_DELAY
	def_bool y

config ZONE_DMA32
config ZONE_DMA
	def_bool y

config ARCH_DMA_ADDR_T_64BIT
@@ -164,6 +168,22 @@ config SMP

	  If you don't know what to do here, say N.

config SCHED_MC
	bool "Multi-core scheduler support"
	depends on SMP
	help
	  Multi-core scheduler support improves the CPU scheduler's decision
	  making when dealing with multi-core CPU chips at a cost of slightly
	  increased overhead in some places. If unsure say N here.

config SCHED_SMT
	bool "SMT scheduler support"
	depends on SMP
	help
	  Improves the CPU scheduler's decision making when dealing with
	  MultiThreading at a cost of slightly increased overhead in some
	  places. If unsure say N here.

config NR_CPUS
	int "Maximum number of CPUs (2-32)"
	range 2 32
@@ -301,6 +321,8 @@ menu "CPU Power Management"

source "drivers/cpuidle/Kconfig"

source "drivers/cpufreq/Kconfig"

endmenu

source "net/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ generic-y += poll.h
generic-y += posix_types.h
generic-y += preempt.h
generic-y += resource.h
generic-y += rwsem.h
generic-y += scatterlist.h
generic-y += sections.h
generic-y += segment.h
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#define wfi()		asm volatile("wfi" : : : "memory")

#define isb()		asm volatile("isb" : : : "memory")
#define dmb(opt)	asm volatile("dmb sy" : : : "memory")
#define dsb(opt)	asm volatile("dsb sy" : : : "memory")

#define mb()		dsb()
+7 −0
Original line number Diff line number Diff line
@@ -84,6 +84,13 @@ static inline void flush_cache_page(struct vm_area_struct *vma,
{
}

/*
 * Cache maintenance functions used by the DMA API. No to be used directly.
 */
extern void __dma_map_area(const void *, size_t, int);
extern void __dma_unmap_area(const void *, size_t, int);
extern void __dma_flush_range(const void *, const void *);

/*
 * Copy user data from/to a page which is mapped into a different
 * processes address space.  Really, we want to allow our "user
Loading