arch/tile: finish enabling support for TILE-Gx 64-bit chip
This support was partially present in the existing code (look for
"__tilegx__" ifdefs) but with this change you can build a working
kernel using the TILE-Gx toolchain and ARCH=tilegx.
Most of these files are new, generally adding a foo_64.c file
where previously there was just a foo_32.c file.
The ARCH=tilegx directive redirects to arch/tile, not arch/tilegx,
using the existing SRCARCH mechanism in the top-level Makefile.
Changes to existing files:
- <asm/bitops.h> and <asm/bitops_32.h> changed to factor the
include of <asm-generic/bitops/non-atomic.h> in the common header.
- <asm/compat.h> and arch/tile/kernel/compat.c changed to remove
the "const" markers I had put on compat_sys_execve() when trying
to match some recent similar changes to the non-compat execve.
It turns out the compat version wasn't "upgraded" to use const.
- <asm/opcode-tile_64.h> and <asm/opcode_constants_64.h> were
previously included accidentally, with the 32-bit contents. Now
they have the proper 64-bit contents.
Finally, I had to hack the existing hacky drivers/input/input-compat.h
to add yet another "#ifdef" for INPUT_COMPAT_TEST (same as x86_64).
Signed-off-by:
Chris Metcalf <cmetcalf@tilera.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> [drivers/input]
Showing
- Makefile 5 additions, 0 deletionsMakefile
- arch/tile/configs/tilegx_defconfig 1776 additions, 0 deletionsarch/tile/configs/tilegx_defconfig
- arch/tile/include/arch/chip_tilegx.h 258 additions, 0 deletionsarch/tile/include/arch/chip_tilegx.h
- arch/tile/include/arch/interrupts_64.h 276 additions, 0 deletionsarch/tile/include/arch/interrupts_64.h
- arch/tile/include/arch/spr_def_64.h 173 additions, 0 deletionsarch/tile/include/arch/spr_def_64.h
- arch/tile/include/asm/atomic_64.h 169 additions, 0 deletionsarch/tile/include/asm/atomic_64.h
- arch/tile/include/asm/bitops.h 1 addition, 0 deletionsarch/tile/include/asm/bitops.h
- arch/tile/include/asm/bitops_32.h 0 additions, 1 deletionarch/tile/include/asm/bitops_32.h
- arch/tile/include/asm/bitops_64.h 105 additions, 0 deletionsarch/tile/include/asm/bitops_64.h
- arch/tile/include/asm/compat.h 2 additions, 2 deletionsarch/tile/include/asm/compat.h
- arch/tile/include/asm/opcode-tile_64.h 621 additions, 886 deletionsarch/tile/include/asm/opcode-tile_64.h
- arch/tile/include/asm/opcode_constants_64.h 586 additions, 457 deletionsarch/tile/include/asm/opcode_constants_64.h
- arch/tile/include/asm/pgtable_64.h 175 additions, 0 deletionsarch/tile/include/asm/pgtable_64.h
- arch/tile/include/asm/spinlock_64.h 161 additions, 0 deletionsarch/tile/include/asm/spinlock_64.h
- arch/tile/kernel/futex_64.S 55 additions, 0 deletionsarch/tile/kernel/futex_64.S
- arch/tile/kernel/head_64.S 269 additions, 0 deletionsarch/tile/kernel/head_64.S
- arch/tile/kernel/intvec_64.S 1231 additions, 0 deletionsarch/tile/kernel/intvec_64.S
- arch/tile/kernel/process.c 2 additions, 2 deletionsarch/tile/kernel/process.c
- arch/tile/kernel/regs_64.S 145 additions, 0 deletionsarch/tile/kernel/regs_64.S
- arch/tile/kernel/tile-desc_64.c 2200 additions, 0 deletionsarch/tile/kernel/tile-desc_64.c
arch/tile/configs/tilegx_defconfig
0 → 100644
This diff is collapsed.
arch/tile/include/arch/chip_tilegx.h
0 → 100644
arch/tile/include/arch/interrupts_64.h
0 → 100644
arch/tile/include/arch/spr_def_64.h
0 → 100644
arch/tile/include/asm/atomic_64.h
0 → 100644
arch/tile/include/asm/bitops_64.h
0 → 100644
This diff is collapsed.
This diff is collapsed.
arch/tile/include/asm/pgtable_64.h
0 → 100644
This diff is collapsed.
arch/tile/include/asm/spinlock_64.h
0 → 100644
This diff is collapsed.
arch/tile/kernel/futex_64.S
0 → 100644
arch/tile/kernel/head_64.S
0 → 100644
This diff is collapsed.
arch/tile/kernel/intvec_64.S
0 → 100644
This diff is collapsed.
arch/tile/kernel/regs_64.S
0 → 100644
This diff is collapsed.
arch/tile/kernel/tile-desc_64.c
0 → 100644
This diff is collapsed.
Please register or sign in to comment