Permalink
Browse files

Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile

Pull Tile arch updates from Chris Metcalf:
 "These changes bring in a bunch of new functionality that has been
  maintained internally at Tilera over the last year, plus other stray
  bits of work that I've taken into the tile tree from other folks.

  The changes include some PCI root complex work, interrupt-driven
  console support, support for performing fast-path unaligned data
  fixups by kernel-based JIT code generation, CONFIG_PREEMPT support,
  vDSO support for gettimeofday(), a serial driver for the tilegx
  on-chip UART, KGDB support, more optimized string routines, support
  for ftrace and kprobes, improved ASLR, and many bug fixes.

  We also remove support for the old TILE64 chip, which is no longer
  buildable"

* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (85 commits)
  tile: refresh tile defconfig files
  tile: rework <asm/cmpxchg.h>
  tile PCI RC: make default consistent DMA mask 32-bit
  tile: add null check for kzalloc in tile/kernel/setup.c
  tile: make __write_once a synonym for __read_mostly
  tile: remove support for TILE64
  tile: use asm-generic/bitops/builtin-*.h
  tile: eliminate no-op "noatomichash" boot argument
  tile: use standard tile_bundle_bits type in traps.c
  tile: simplify code referencing hypervisor API addresses
  tile: change <asm/system.h> to <asm/switch_to.h> in comments
  tile: mark pcibios_init() as __init
  tile: check for correct compiler earlier in asm-offsets.c
  tile: use standard 'generic-y' model for <asm/hw_irq.h>
  tile: use asm-generic version of <asm/local64.h>
  tile PCI RC: add comment about "PCI hole" problem
  tile: remove DEBUG_EXTRA_FLAGS kernel config option
  tile: add virt_to_kpte() API and clean up and document behavior
  tile: support FRAME_POINTER
  tile: support reporting Tilera hypervisor statistics
  ...
  • Loading branch information...
torvalds committed Sep 6, 2013
2 parents 576c25e + 06da662 commit 4de9ad9bc08b4953fc03336ad38908496e2f8826
Showing with 8,708 additions and 2,893 deletions.
  1. +7 −2 MAINTAINERS
  2. +29 −2 arch/tile/Kconfig
  3. +6 −8 arch/tile/Kconfig.debug
  4. +0 −4 arch/tile/Makefile
  5. +38 −203 arch/tile/configs/tilegx_defconfig
  6. +22 −65 arch/tile/configs/tilepro_defconfig
  7. +5 −0 arch/tile/gxio/Kconfig
  8. +1 −0 arch/tile/gxio/Makefile
  9. +23 −0 arch/tile/gxio/iorpc_trio.c
  10. +77 −0 arch/tile/gxio/iorpc_uart.c
  11. +87 −0 arch/tile/gxio/uart.c
  12. +39 −0 arch/tile/include/arch/trio.h
  13. +300 −0 arch/tile/include/arch/uart.h
  14. +120 −0 arch/tile/include/arch/uart_def.h
  15. +2 −1 arch/tile/include/asm/Kbuild
  16. +52 −0 arch/tile/include/asm/atomic.h
  17. +9 −93 arch/tile/include/asm/atomic_32.h
  18. +2 −40 arch/tile/include/asm/atomic_64.h
  19. +0 −4 arch/tile/include/asm/barrier.h
  20. +3 −38 arch/tile/include/asm/bitops.h
  21. +1 −1 arch/tile/include/asm/bitops_32.h
  22. +3 −5 arch/tile/include/asm/bitops_64.h
  23. +10 −3 arch/tile/include/asm/cache.h
  24. +20 −24 arch/tile/include/asm/cacheflush.h
  25. +74 −19 arch/tile/include/asm/cmpxchg.h
  26. +4 −1 arch/tile/include/asm/device.h
  27. +20 −7 arch/tile/include/asm/dma-mapping.h
  28. +9 −1 arch/tile/include/asm/elf.h
  29. +0 −8 arch/tile/include/asm/fixmap.h
  30. +21 −1 arch/tile/include/asm/ftrace.h
  31. +1 −0 arch/tile/include/asm/futex.h
  32. +1 −10 arch/tile/include/asm/homecache.h
  33. +120 −12 arch/tile/include/asm/io.h
  34. +18 −3 arch/tile/include/asm/irqflags.h
  35. +14 −4 arch/tile/include/asm/{hw_irq.h → kdebug.h}
  36. +71 −0 arch/tile/include/asm/kgdb.h
  37. +79 −0 arch/tile/include/asm/kprobes.h
  38. +1 −0 arch/tile/include/asm/mmu.h
  39. +1 −1 arch/tile/include/asm/mmu_context.h
  40. +1 −1 arch/tile/include/asm/mmzone.h
  41. +29 −32 arch/tile/include/asm/page.h
  42. +16 −6 arch/tile/include/asm/pci.h
  43. +3 −1 arch/tile/include/asm/pgtable_32.h
  44. +18 −9 arch/tile/include/asm/pgtable_64.h
  45. +48 −36 arch/tile/include/asm/processor.h
  46. +3 −3 arch/tile/include/asm/ptrace.h
  47. +7 −1 arch/tile/include/asm/sections.h
  48. +1 −2 arch/tile/include/asm/setup.h
  49. +0 −2 arch/tile/include/asm/smp.h
  50. +2 −2 arch/tile/include/asm/spinlock_64.h
  51. +2 −0 arch/tile/include/asm/string.h
  52. +6 −0 arch/tile/include/asm/thread_info.h
  53. +12 −1 arch/tile/include/asm/traps.h
  54. +6 −31 arch/tile/include/asm/uaccess.h
  55. +9 −5 arch/tile/include/asm/unaligned.h
  56. +49 −0 arch/tile/include/asm/vdso.h
  57. +5 −0 arch/tile/include/gxio/iorpc_trio.h
  58. +40 −0 arch/tile/include/gxio/iorpc_uart.h
  59. +105 −0 arch/tile/include/gxio/uart.h
  60. +6 −2 arch/tile/include/hv/drv_trio_intf.h
  61. +33 −0 arch/tile/include/hv/drv_uart_intf.h
  62. +41 −20 arch/tile/include/hv/hypervisor.h
  63. +0 −1 arch/tile/include/uapi/arch/Kbuild
  64. +1 −3 arch/tile/include/uapi/arch/chip.h
  65. +0 −258 arch/tile/include/uapi/arch/chip_tile64.h
  66. +1 −0 arch/tile/include/uapi/arch/opcode_tilegx.h
  67. +1 −0 arch/tile/include/uapi/arch/opcode_tilepro.h
  68. +0 −2 arch/tile/include/uapi/arch/spr_def_32.h
  69. +2 −1 arch/tile/include/uapi/asm/auxvec.h
  70. +2 −2 arch/tile/include/uapi/asm/cachectl.h
  71. +14 −2 arch/tile/kernel/Makefile
  72. +30 −22 arch/tile/kernel/asm-offsets.c
  73. +2 −1 arch/tile/kernel/compat_signal.c
  74. +11 −36 arch/tile/kernel/early_printk.c
  75. +0 −16 arch/tile/kernel/entry.S
  76. +246 −0 arch/tile/kernel/ftrace.c
  77. +18 −10 arch/tile/kernel/hardwall.c
  78. +8 −9 arch/tile/kernel/head_32.S
  79. +25 −21 arch/tile/kernel/head_64.S
  80. +74 −0 arch/tile/kernel/hvglue.S
  81. +0 −59 arch/tile/kernel/hvglue.lds
  82. +266 −0 arch/tile/kernel/hvglue_trace.c
  83. +33 −81 arch/tile/kernel/intvec_32.S
  84. +275 −30 arch/tile/kernel/intvec_64.S
  85. +5 −3 arch/tile/kernel/irq.c
  86. +499 −0 arch/tile/kernel/kgdb.c
  87. +528 −0 arch/tile/kernel/kprobes.c
  88. +224 −0 arch/tile/kernel/mcount_64.S
  89. +59 −15 arch/tile/kernel/pci-dma.c
  90. +20 −13 arch/tile/kernel/pci.c
  91. +414 −313 arch/tile/kernel/pci_gx.c
  92. +0 −2 arch/tile/kernel/proc.c
  93. +46 −70 arch/tile/kernel/process.c
  94. +17 −2 arch/tile/kernel/ptrace.c
  95. +0 −2 arch/tile/kernel/reboot.c
  96. +2 −2 arch/tile/kernel/regs_32.S
  97. +2 −2 arch/tile/kernel/regs_64.S
  98. +8 −19 arch/tile/kernel/relocate_kernel_32.S
  99. +7 −4 arch/tile/kernel/relocate_kernel_64.S
  100. +134 −28 arch/tile/kernel/setup.c
  101. +2 −1 arch/tile/kernel/signal.c
  102. +63 −55 arch/tile/kernel/single_step.c
  103. +17 −5 arch/tile/kernel/smp.c
  104. +5 −3 arch/tile/kernel/smpboot.c
  105. +39 −12 arch/tile/kernel/stack.c
  106. +3 −1 arch/tile/kernel/sys.c
  107. +76 −0 arch/tile/kernel/sysfs.c
  108. +36 −1 arch/tile/kernel/time.c
  109. +7 −1 arch/tile/kernel/tlb.c
  110. +68 −21 arch/tile/kernel/traps.c
  111. +1,609 −0 arch/tile/kernel/unaligned.c
  112. +212 −0 arch/tile/kernel/vdso.c
  113. +118 −0 arch/tile/kernel/vdso/Makefile
  114. +28 −0 arch/tile/kernel/vdso/vdso.S
  115. +87 −0 arch/tile/kernel/vdso/vdso.lds.S
  116. +28 −0 arch/tile/kernel/vdso/vdso32.S
  117. +107 −0 arch/tile/kernel/vdso/vgettimeofday.c
  118. +30 −0 arch/tile/kernel/vdso/vrt_sigreturn.S
  119. +13 −18 arch/tile/kernel/vmlinux.lds.S
  120. +8 −8 arch/tile/lib/Makefile
  121. +16 −117 arch/tile/lib/atomic_32.c
  122. +1 −0 arch/tile/lib/atomic_asm_32.S
  123. +10 −6 arch/tile/lib/cacheflush.c
  124. +6 −1 arch/tile/lib/exports.c
  125. +1 −1 arch/tile/lib/memchr_64.c
  126. +2 −61 arch/tile/lib/memcpy_32.S
  127. +196 −68 arch/tile/lib/memcpy_64.c
  128. +0 −276 arch/tile/lib/memcpy_tile64.c
  129. +2 −0 arch/tile/lib/memcpy_user_64.c
  130. +1 −109 arch/tile/lib/memset_32.c
  131. +3 −6 arch/tile/lib/memset_64.c
  132. +0 −2 arch/tile/lib/strchr_32.c
  133. +1 −1 arch/tile/lib/strchr_64.c
  134. +12 −1 arch/tile/lib/string-endian.h
  135. +0 −2 arch/tile/lib/strlen_32.c
  136. +47 −0 arch/tile/lib/strnlen_32.c
  137. +48 −0 arch/tile/lib/strnlen_64.c
  138. +12 −24 arch/tile/lib/usercopy_32.S
  139. +12 −24 arch/tile/lib/usercopy_64.S
  140. +50 −49 arch/tile/mm/elf.c
  141. +76 −59 arch/tile/mm/fault.c
  142. +0 −2 arch/tile/mm/highmem.c
  143. +9 −30 arch/tile/mm/homecache.c
  144. +3 −35 arch/tile/mm/hugetlbpage.c
  145. +11 −85 arch/tile/mm/init.c
  146. +2 −2 arch/tile/mm/migrate_32.S
  147. +2 −2 arch/tile/mm/migrate_64.S
  148. +22 −2 arch/tile/mm/mmap.c
  149. +24 −52 arch/tile/mm/pgtable.c
  150. +0 −1 drivers/edac/tile_edac.c
  151. +143 −6 drivers/tty/hvc/hvc_tile.c
  152. +9 −0 drivers/tty/serial/Kconfig
  153. +1 −0 drivers/tty/serial/Makefile
  154. +708 −0 drivers/tty/serial/tilegx.c
  155. +3 −0 include/uapi/linux/serial_core.h
  156. +9 −0 samples/kprobes/kprobe_example.c
  157. +4 −0 scripts/recordmcount.pl
View
@@ -8373,9 +8373,14 @@ M: Chris Metcalf <cmetcalf@tilera.com>
W: http://www.tilera.com/scm/
S: Supported
F: arch/tile/
-F: drivers/tty/hvc/hvc_tile.c
-F: drivers/net/ethernet/tile/
+F: drivers/char/tile-srom.c
F: drivers/edac/tile_edac.c
+F: drivers/net/ethernet/tile/
+F: drivers/rtc/rtc-tile.c
+F: drivers/tty/hvc/hvc_tile.c
+F: drivers/tty/serial/tilegx.c
+F: drivers/usb/host/*-tilegx.c
+F: include/linux/usb/tilegx.h
TLAN NETWORK DRIVER
M: Samuel Chessman <chessman@tux.org>
View
@@ -26,6 +26,7 @@ config TILE
select HAVE_SYSCALL_TRACEPOINTS
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
select HAVE_DEBUG_STACKOVERFLOW
+ select ARCH_WANT_FRAME_POINTERS
# FIXME: investigate whether we need/want these options.
# select HAVE_IOREMAP_PROT
@@ -64,6 +65,9 @@ config HUGETLB_SUPER_PAGES
depends on HUGETLB_PAGE && TILEGX
def_bool y
+config GENERIC_TIME_VSYSCALL
+ def_bool y
+
# FIXME: tilegx can implement a more efficient rwsem.
config RWSEM_GENERIC_SPINLOCK
def_bool y
@@ -112,10 +116,19 @@ config SMP
config HVC_TILE
depends on TTY
select HVC_DRIVER
+ select HVC_IRQ if TILEGX
def_bool y
config TILEGX
- bool "Building with TILE-Gx (64-bit) compiler and toolchain"
+ bool "Building for TILE-Gx (64-bit) processor"
+ select HAVE_FUNCTION_TRACER
+ select HAVE_FUNCTION_TRACE_MCOUNT_TEST
+ select HAVE_FUNCTION_GRAPH_TRACER
+ select HAVE_DYNAMIC_FTRACE
+ select HAVE_FTRACE_MCOUNT_RECORD
+ select HAVE_KPROBES
+ select HAVE_KRETPROBES
+ select HAVE_ARCH_KGDB
config TILEPRO
def_bool !TILEGX
@@ -194,7 +207,7 @@ config SYSVIPC_COMPAT
def_bool y
depends on COMPAT && SYSVIPC
-# We do not currently support disabling HIGHMEM on tile64 and tilepro.
+# We do not currently support disabling HIGHMEM on tilepro.
config HIGHMEM
bool # "Support for more than 512 MB of RAM"
default !TILEGX
@@ -300,6 +313,8 @@ config PAGE_OFFSET
source "mm/Kconfig"
+source "kernel/Kconfig.preempt"
+
config CMDLINE_BOOL
bool "Built-in kernel command line"
default n
@@ -396,8 +411,20 @@ config NO_IOMEM
config NO_IOPORT
def_bool !PCI
+config TILE_PCI_IO
+ bool "PCI I/O space support"
+ default n
+ depends on PCI
+ depends on TILEGX
+ ---help---
+ Enable PCI I/O space support on TILEGx. Since the PCI I/O space
+ is used by few modern PCIe endpoint devices, its support is disabled
+ by default to save the TRIO PIO Region resource for other purposes.
+
source "drivers/pci/Kconfig"
+source "drivers/pci/pcie/Kconfig"
+
config TILE_USB
tristate "Tilera USB host adapter support"
default y
View
@@ -14,14 +14,12 @@ config EARLY_PRINTK
with klogd/syslogd. You should normally N here,
unless you want to debug such a crash.
-config DEBUG_EXTRA_FLAGS
- string "Additional compiler arguments when building with '-g'"
- depends on DEBUG_INFO
- default ""
+config TILE_HVGLUE_TRACE
+ bool "Provide wrapper functions for hypervisor ABI calls"
+ default n
help
- Debug info can be large, and flags like
- `-femit-struct-debug-baseonly' can reduce the kernel file
- size and build time noticeably. Such flags are often
- helpful if the main use of debug info is line number info.
+ Provide wrapper functions for the hypervisor ABI calls
+ defined in arch/tile/kernel/hvglue.S. This allows tracing
+ mechanisms, etc., to have visibility into those calls.
endmenu
View
@@ -30,10 +30,6 @@ endif
# In kernel modules, this causes load failures due to unsupported relocations.
KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
-ifneq ($(CONFIG_DEBUG_EXTRA_FLAGS),"")
-KBUILD_CFLAGS += $(CONFIG_DEBUG_EXTRA_FLAGS)
-endif
-
LIBGCC_PATH := \
$(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name)
Oops, something went wrong.

0 comments on commit 4de9ad9

Please sign in to comment.