Skip to content

Hexagon: Add support for Qualcomm Hexagon architecture

Richard Kuo lkml 7 versions – In review

Get series with b4
b4 am '[email protected]'

Versions newest first · linked by author and title

  1. v5 Latest posting 2/236 patches 6 repliesIn review
  2. v5 posting 1/236 patches 0 repliesSuperseded
  3. v4 posting 2/20 of 36 patches 0 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v4 posting 1/236 patches9 repliesSuperseded
v336 patches34 repliesSuperseded
v235 patches46 repliesSuperseded
v136 patches32 repliesSuperseded

Patches in v5 posting 2/2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/36Hexagon: Add generic headersarch/hexagon/include/asm/Kbuild arch/hexagon/include/asm/bitsperlong.h arch/hexagon/include/asm/mutex.h +2 more+203 -00 replies
2/36Hexagon: Core arch-specific header filesarch/hexagon/include/asm/byteorder.h arch/hexagon/include/asm/elf.h arch/hexagon/include/asm/fpu.h +9 more+619 -00 replies
3/36Hexagon: Add bitops supportarch/hexagon/include/asm/bitops.h+301 -00 replies
4/36Hexagon: Add atomic ops supportarch/hexagon/include/asm/atomic.h+164 -00 replies
5/36Hexagon: Add syscallsarch/hexagon/include/asm/syscall.h arch/hexagon/include/asm/unistd.h arch/hexagon/kernel/syscall.c +1 more+212 -00 replies
6/36Hexagon: Add processor and system headersarch/hexagon/include/asm/asm-offsets.h arch/hexagon/include/asm/irqflags.h arch/hexagon/include/asm/processor.h +2 more+548 -00 replies
7/36Hexagon: Add threadinfoarch/hexagon/include/asm/thread_info.h+154 -00 replies
8/36Hexagon: Add delay functionsarch/hexagon/include/asm/delay.h+28 -00 replies
9/36Hexagon: Add checksum functionsarch/hexagon/include/asm/checksum.h arch/hexagon/include/asm/intrinsics.h arch/hexagon/lib/checksum.c+279 -00 replies
10/36Hexagon: Add memcpy and memset accelerated functionsarch/hexagon/lib/memcpy.S arch/hexagon/lib/memset.S+859 -00 replies
11/36Hexagon: Add hypervisor interfacearch/hexagon/include/asm/hexagon_vm.h arch/hexagon/include/asm/vm_mmu.h arch/hexagon/kernel/vm_entry.S +5 more+1451 -00 replies
12/36Hexagon: Export ksyms defined in assembly files.arch/hexagon/kernel/hexagon_ksyms.c+42 -00 replies
13/36Hexagon: Support dynamic module loading.arch/hexagon/kernel/module.c+162 -00 replies
14/36Hexagon: Add signal functionsarch/hexagon/include/asm/sigcontext.h arch/hexagon/include/asm/signal.h arch/hexagon/include/asm/vdso.h +3 more+571 -00 replies
15/36Hexagon: Add init_task and process functionsarch/hexagon/kernel/init_task.c arch/hexagon/kernel/process.c+333 -00 replies
16/36Hexagon: Add startup codearch/hexagon/kernel/head.S arch/hexagon/kernel/reset.c arch/hexagon/kernel/setup.c+345 -00 replies
17/36Hexagon: Add interruptsarch/hexagon/include/asm/irq.h arch/hexagon/kernel/irq_cpu.c+126 -00 replies
18/36Hexagon: Add time and timer functionsarch/hexagon/include/asm/time.h arch/hexagon/include/asm/timer-regs.h arch/hexagon/kernel/time.c+318 -00 replies
19/36Hexagon: Add ptrace supportarch/hexagon/include/asm/ptrace.h arch/hexagon/kernel/ptrace.c+215 -00 replies
20/36Hexagon: Provide basic debugging and system trap support.arch/hexagon/include/asm/traps.h arch/hexagon/kernel/traps.c+483 -00 replies
21/36Hexagon: Add SMP supportarch/hexagon/include/asm/smp.h arch/hexagon/kernel/smp.c arch/hexagon/kernel/topology.c+372 -00 replies
22/36Hexagon: Add locking types and functionsarch/hexagon/include/asm/spinlock.h arch/hexagon/include/asm/spinlock_types.h include/asm-generic/rwsem.h+360 -00 replies
23/36Hexagon: Add user access functionsarch/hexagon/include/asm/uaccess.h arch/hexagon/mm/copy_from_user.S arch/hexagon/mm/copy_to_user.S +3 more+706 -00 replies
24/36Hexagon: Provide basic implementation and/or stubs for I/O routines.arch/hexagon/include/asm/io.h arch/hexagon/lib/io.c+417 -00 replies
25/36Hexagon: Implement basic cache-flush supportarch/hexagon/include/asm/cache.h arch/hexagon/include/asm/cacheflush.h arch/hexagon/mm/cache.c+261 -00 replies
26/36Hexagon: Implement basic TLB management routines for Hexagon.arch/hexagon/include/asm/tlb.h arch/hexagon/include/asm/tlbflush.h arch/hexagon/mm/vm_tlb.c+190 -00 replies
27/36Hexagon: Provide DMA implementationarch/hexagon/include/asm/dma-mapping.h arch/hexagon/include/asm/dma.h arch/hexagon/kernel/dma.c+350 -00 replies
28/36Hexagon: Add ioremap supportarch/hexagon/mm/ioremap.c+56 -00 replies
29/36Hexagon: Add page table header files & etc.arch/hexagon/include/asm/fixmap.h arch/hexagon/include/asm/mmu.h arch/hexagon/include/asm/mmu_context.h +4 more+1056 -00 replies
30/36Hexagon: Add page-fault support.arch/hexagon/include/asm/mem-layout.h arch/hexagon/include/asm/vm_fault.h arch/hexagon/mm/init.c +1 more+601 -00 replies
31/36Hexagon: kgdb support filesarch/hexagon/include/asm/kgdb.h arch/hexagon/kernel/kgdb.c+298 -00 replies
32/36Hexagon: Comet platform supportarch/hexagon/configs/comet_defconfig+85 -00 replies
33/36Hexagon: Add configuration and makefiles for the Hexagon architecture.arch/hexagon/Kconfig arch/hexagon/Makefile arch/hexagon/kernel/Makefile +4 more+506 -04 replies
34/36Hexagon: Add basic stacktrace functionality for Hexagon architecture.arch/hexagon/kernel/stacktrace.c+66 -00 replies
35/36Hexagon: Add self to MAINTAINERSMAINTAINERS+6 -00 replies
36/36Add extra arch overrides to asm-generic/checksum.hinclude/asm-generic/checksum.h+4 -00 replies

Reviews trailers per patch

All 36 patches have a Reviewed-by or Acked-by.

PatchArnd BergmannThomas Gleixner
1/36A-b
2/36A-b
3/36A-b
4/36A-b
5/36A-b
6/36A-b
7/36A-b
8/36A-b
9/36A-b
10/36A-b
11/36A-b
12/36A-b
13/36A-b
14/36A-b
15/36A-b
16/36A-b
17/36A-b R-b
18/36A-b
19/36A-b
20/36A-b
21/36A-b R-b
22/36A-b
23/36A-b
24/36A-b
25/36A-b
26/36A-b
27/36A-b
28/36A-b
29/36A-b
30/36A-b
31/36A-b
32/36A-b
33/36A-b
34/36A-b
35/36A-b
36/36A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v5 thread

Cover letter [PATCH v5 00/36] Hexagon: Add support for Qualcomm Hexagon architecture

Linus,

This is the fifth version of the patchset (with one tiny whitespace fix) to the Linux kernel to support the Qualcomm Hexagon architecture. I believe it has all the acks necessary and is ready for inclusion in your tree.

Please let me know if there's anything else you require of these patches.

Thanks,
Richard Kuo

Richard Kuo (36):
Hexagon: Add generic headers
Hexagon: Core arch-specific header files
Hexagon: Add bitops support
Hexagon: Add atomic ops support
Hexagon: Add syscalls
Hexagon: Add processor and system headers
Hexagon: Add threadinfo
Hexagon: Add delay functions
Hexagon: Add checksum functions
Hexagon: Add memcpy and memset accelerated functions
Hexagon: Add hypervisor interface
Hexagon: Export ksyms defined in assembly files.
Hexagon: Support dynamic module loading.
Hexagon: Add signal functions
Hexagon: Add init_task and process functions
Hexagon: Add startup code
Hexagon: Add interrupts
Hexagon: Add time and timer functions
Hexagon: Add ptrace support
Hexagon: Provide basic debugging and system trap support.
Hexagon: Add SMP support
Hexagon: Add locking types and functions
Hexagon: Add user access functions
Hexagon: Provide basic implementation and/or stubs for I/O routines.
Hexagon: Implement basic cache-flush support
Hexagon: Implement basic TLB management routines for Hexagon.
Hexagon: Provide DMA implementation
Hexagon: Add ioremap support
Hexagon: Add page table header files & etc.
Hexagon: Add page-fault support.
Hexagon: kgdb support files
Hexagon: Comet platform support
Hexagon: Add configuration and makefiles for the Hexagon
architecture.
Hexagon: Add basic stacktrace functionality for Hexagon architecture.
Hexagon: Add self to MAINTAINERS
Add extra arch overrides to asm-generic/checksum.h

 MAINTAINERS                               |    6 +
 arch/hexagon/Kconfig                      |  220 ++++++++++++
 arch/hexagon/Makefile                     |   59 +++
 arch/hexagon/configs/comet_defconfig      |   85 +++++
 arch/hexagon/include/asm/Kbuild           |   59 +++
 arch/hexagon/include/asm/asm-offsets.h    |    1 +
 arch/hexagon/include/asm/atomic.h         |  164 +++++++++
 arch/hexagon/include/asm/bitops.h         |  301 ++++++++++++++++
 arch/hexagon/include/asm/bitsperlong.h    |   26 ++
 arch/hexagon/include/asm/byteorder.h      |   28 ++
 arch/hexagon/include/asm/cache.h          |   34 ++
 arch/hexagon/include/asm/cacheflush.h     |   99 ++++++
 arch/hexagon/include/asm/checksum.h       |   50 +++
 arch/hexagon/include/asm/delay.h          |   28 ++
 arch/hexagon/include/asm/dma-mapping.h    |  101 ++++++
 arch/hexagon/include/asm/dma.h            |   29 ++
 arch/hexagon/include/asm/elf.h            |  229 ++++++++++++
 arch/hexagon/include/asm/fixmap.h         |   73 ++++
 arch/hexagon/include/asm/fpu.h            |    4 +
 arch/hexagon/include/asm/futex.h          |  137 ++++++++
 arch/hexagon/include/asm/hexagon_vm.h     |  281 +++++++++++++++
 arch/hexagon/include/asm/intrinsics.h     |   26 ++
 arch/hexagon/include/asm/io.h             |  326 +++++++++++++++++
 arch/hexagon/include/asm/irq.h            |   36 ++
 arch/hexagon/include/asm/irqflags.h       |   62 ++++
 arch/hexagon/include/asm/kgdb.h           |   43 +++
 arch/hexagon/include/asm/linkage.h        |   25 ++
 arch/hexagon/include/asm/mem-layout.h     |  112 ++++++
 arch/hexagon/include/asm/mmu.h            |   37 ++
 arch/hexagon/include/asm/mmu_context.h    |  100 ++++++
 arch/hexagon/include/asm/module.h         |   26 ++
 arch/hexagon/include/asm/mutex.h          |    8 +
 arch/hexagon/include/asm/page.h           |  157 +++++++++
 arch/hexagon/include/asm/param.h          |   26 ++
 arch/hexagon/include/asm/perf_event.h     |   24 ++
 arch/hexagon/include/asm/pgalloc.h        |  146 ++++++++
 arch/hexagon/include/asm/pgtable.h        |  518 +++++++++++++++++++++++++++
 arch/hexagon/include/asm/processor.h      |  123 +++++++
 arch/hexagon/include/asm/ptrace.h         |   35 ++
 arch/hexagon/include/asm/registers.h      |  236 +++++++++++++
 arch/hexagon/include/asm/setup.h          |   29 ++
 arch/hexagon/include/asm/sigcontext.h     |   33 ++
 arch/hexagon/include/asm/signal.h         |   26 ++
 arch/hexagon/include/asm/smp.h            |   44 +++
 arch/hexagon/include/asm/spinlock.h       |  186 ++++++++++
 arch/hexagon/include/asm/spinlock_types.h |   42 +++
 arch/hexagon/include/asm/string.h         |   32 ++
 arch/hexagon/include/asm/suspend.h        |   27 ++
 arch/hexagon/include/asm/swab.h           |   24 ++
 arch/hexagon/include/asm/syscall.h        |   54 +++
 arch/hexagon/include/asm/system.h         |  126 +++++++
 arch/hexagon/include/asm/thread_info.h    |  154 ++++++++
 arch/hexagon/include/asm/time.h           |   29 ++
 arch/hexagon/include/asm/timer-regs.h     |   39 ++
 arch/hexagon/include/asm/timex.h          |   37 ++
 arch/hexagon/include/asm/tlb.h            |   39 ++
 arch/hexagon/include/asm/tlbflush.h       |   58 +++
 arch/hexagon/include/asm/traps.h          |   29 ++
 arch/hexagon/include/asm/uaccess.h        |  116 ++++++
 arch/hexagon/include/asm/unistd.h         |   36 ++
 arch/hexagon/include/asm/user.h           |   81 +++++
 arch/hexagon/include/asm/vdso.h           |   31 ++
 arch/hexagon/include/asm/vm_fault.h       |   26 ++
 arch/hexagon/include/asm/vm_mmu.h         |  111 ++++++
 arch/hexagon/kernel/Makefile              |   19 +
 arch/hexagon/kernel/asm-offsets.c         |  104 ++++++
 arch/hexagon/kernel/dma.c                 |  220 ++++++++++++
 arch/hexagon/kernel/head.S                |  162 +++++++++
 arch/hexagon/kernel/hexagon_ksyms.c       |   42 +++
 arch/hexagon/kernel/init_task.c           |   54 +++
 arch/hexagon/kernel/irq_cpu.c             |   90 +++++
 arch/hexagon/kernel/kgdb.c                |  255 ++++++++++++++
 arch/hexagon/kernel/module.c              |  162 +++++++++
 arch/hexagon/kernel/process.c             |  279 +++++++++++++++
 arch/hexagon/kernel/ptrace.c              |  180 ++++++++++
 arch/hexagon/kernel/reset.c               |   38 ++
 arch/hexagon/kernel/setup.c               |  145 ++++++++
 arch/hexagon/kernel/signal.c              |  345 ++++++++++++++++++
 arch/hexagon/kernel/smp.c                 |  276 +++++++++++++++
 arch/hexagon/kernel/stacktrace.c          |   66 ++++
 arch/hexagon/kernel/syscall.c             |   90 +++++
 arch/hexagon/kernel/syscalltab.c          |   32 ++
 arch/hexagon/kernel/time.c                |  250 +++++++++++++
 arch/hexagon/kernel/topology.c            |   52 +++
 arch/hexagon/kernel/trampoline.S          |   35 ++
 arch/hexagon/kernel/traps.c               |  454 ++++++++++++++++++++++++
 arch/hexagon/kernel/vdso.c                |  101 ++++++
 arch/hexagon/kernel/vm_entry.S            |  269 ++++++++++++++
 arch/hexagon/kernel/vm_events.c           |  101 ++++++
 arch/hexagon/kernel/vm_init_segtable.S    |  442 +++++++++++++++++++++++
 arch/hexagon/kernel/vm_ops.S              |  102 ++++++
 arch/hexagon/kernel/vm_switch.S           |   95 +++++
 arch/hexagon/kernel/vm_vectors.S          |   50 +++
 arch/hexagon/kernel/vmlinux.lds.S         |   93 +++++
 arch/hexagon/lib/Makefile                 |    4 +
 arch/hexagon/lib/checksum.c               |  203 +++++++++++
 arch/hexagon/lib/io.c                     |   91 +++++
 arch/hexagon/lib/memcpy.S                 |  543 +++++++++++++++++++++++++++++
 arch/hexagon/lib/memset.S                 |  316 +++++++++++++++++
 arch/hexagon/mm/Makefile                  |    7 +
 arch/hexagon/mm/cache.c                   |  128 +++++++
 arch/hexagon/mm/copy_from_user.S          |  114 ++++++
 arch/hexagon/mm/copy_to_user.S            |   92 +++++
 arch/hexagon/mm/copy_user_template.S      |  185 ++++++++++
 arch/hexagon/mm/init.c                    |  276 +++++++++++++++
 arch/hexagon/mm/ioremap.c                 |   56 +++
 arch/hexagon/mm/pgalloc.c                 |   25 ++
 arch/hexagon/mm/strnlen_user.S            |  140 ++++++++
 arch/hexagon/mm/uaccess.c                 |   59 +++
 arch/hexagon/mm/vm_fault.c                |  187 ++++++++++
 arch/hexagon/mm/vm_tlb.c                  |   93 +++++
 include/asm-generic/checksum.h            |    4 +
 include/asm-generic/rwsem.h               |  132 +++++++
 113 files changed, 12747 insertions(+), 0 deletions(-)
 create mode 100644 arch/hexagon/Kconfig
 create mode 100644 arch/hexagon/Makefile
 create mode 100644 arch/hexagon/configs/comet_defconfig
 create mode 100644 arch/hexagon/include/asm/Kbuild
 create mode 100644 arch/hexagon/include/asm/asm-offsets.h
 create mode 100644 arch/hexagon/include/asm/atomic.h
 create mode 100644 arch/hexagon/include/asm/bitops.h
 create mode 100644 arch/hexagon/include/asm/bitsperlong.h
 create mode 100644 arch/hexagon/include/asm/byteorder.h
 create mode 100644 arch/hexagon/include/asm/cache.h
 create mode 100644 arch/hexagon/include/asm/cacheflush.h
 create mode 100644 arch/hexagon/include/asm/checksum.h
 create mode 100644 arch/hexagon/include/asm/delay.h
 create mode 100644 arch/hexagon/include/asm/dma-mapping.h
 create mode 100644 arch/hexagon/include/asm/dma.h
 create mode 100644 arch/hexagon/include/asm/elf.h
 create mode 100644 arch/hexagon/include/asm/fixmap.h
 create mode 100644 arch/hexagon/include/asm/fpu.h
 create mode 100644 arch/hexagon/include/asm/futex.h
 create mode 100644 arch/hexagon/include/asm/hexagon_vm.h
 create mode 100644 arch/hexagon/include/asm/intrinsics.h
 create mode 100644 arch/hexagon/include/asm/io.h
 create mode 100644 arch/hexagon/include/asm/irq.h
 create mode 100644 arch/hexagon/include/asm/irqflags.h
 create mode 100644 arch/hexagon/include/asm/kgdb.h
 create mode 100644 arch/hexagon/include/asm/linkage.h
 create mode 100644 arch/hexagon/include/asm/mem-layout.h
 create mode 100644 arch/hexagon/include/asm/mmu.h
 create mode 100644 arch/hexagon/include/asm/mmu_context.h
 create mode 100644 arch/hexagon/include/asm/module.h
 create mode 100644 arch/hexagon/include/asm/mutex.h
 create mode 100644 arch/hexagon/include/asm/page.h
 create mode 100644 arch/hexagon/include/asm/param.h
 create mode 100644 arch/hexagon/include/asm/perf_event.h
 create mode 100644 arch/hexagon/include/asm/pgalloc.h
 create mode 100644 arch/hexagon/include/asm/pgtable.h
 create mode 100644 arch/hexagon/include/asm/processor.h
 create mode 100644 arch/hexagon/include/asm/ptrace.h
 create mode 100644 arch/hexagon/include/asm/registers.h
 create mode 100644 arch/hexagon/include/asm/setup.h
 create mode 100644 arch/hexagon/include/asm/sigcontext.h
 create mode 100644 arch/hexagon/include/asm/signal.h
 create mode 100644 arch/hexagon/include/asm/smp.h
 create mode 100644 arch/hexagon/include/asm/spinlock.h
 create mode 100644 arch/hexagon/include/asm/spinlock_types.h
 create mode 100644 arch/hexagon/include/asm/string.h
 create mode 100644 arch/hexagon/include/asm/suspend.h
 create mode 100644 arch/hexagon/include/asm/swab.h
 create mode 100644 arch/hexagon/include/asm/syscall.h
 create mode 100644 arch/hexagon/include/asm/system.h
 create mode 100644 arch/hexagon/include/asm/thread_info.h
 create mode 100644 arch/hexagon/include/asm/time.h
 create mode 100644 arch/hexagon/include/asm/timer-regs.h
 create mode 100644 arch/hexagon/include/asm/timex.h
 create mode 100644 arch/hexagon/include/asm/tlb.h
 create mode 100644 arch/hexagon/include/asm/tlbflush.h
 create mode 100644 arch/hexagon/include/asm/traps.h
 create mode 100644 arch/hexagon/include/asm/uaccess.h
 create mode 100644 arch/hexagon/include/asm/unistd.h
 create mode 100644 arch/hexagon/include/asm/user.h
 create mode 100644 arch/hexagon/include/asm/vdso.h
 create mode 100644 arch/hexagon/include/asm/vm_fault.h
 create mode 100644 arch/hexagon/include/asm/vm_mmu.h
 create mode 100644 arch/hexagon/kernel/Makefile
 create mode 100644 arch/hexagon/kernel/asm-offsets.c
 create mode 100644 arch/hexagon/kernel/dma.c
 create mode 100644 arch/hexagon/kernel/head.S
 create mode 100644 arch/hexagon/kernel/hexagon_ksyms.c
 create mode 100644 arch/hexagon/kernel/init_task.c
 create mode 100644 arch/hexagon/kernel/irq_cpu.c
 create mode 100644 arch/hexagon/kernel/kgdb.c
 create mode 100644 arch/hexagon/kernel/module.c
 create mode 100644 arch/hexagon/kernel/process.c
 create mode 100644 arch/hexagon/kernel/ptrace.c
 create mode 100644 arch/hexagon/kernel/reset.c
 create mode 100644 arch/hexagon/kernel/setup.c
 create mode 100644 arch/hexagon/kernel/signal.c
 create mode 100644 arch/hexagon/kernel/smp.c
 create mode 100644 arch/hexagon/kernel/stacktrace.c
 create mode 100644 arch/hexagon/kernel/syscall.c
 create mode 100644 arch/hexagon/kernel/syscalltab.c
 create mode 100644 arch/hexagon/kernel/time.c
 create mode 100644 arch/hexagon/kernel/topology.c
 create mode 100644 arch/hexagon/kernel/trampoline.S
 create mode 100644 arch/hexagon/kernel/traps.c
 create mode 100644 arch/hexagon/kernel/vdso.c
 create mode 100644 arch/hexagon/kernel/vm_entry.S
 create mode 100644 arch/hexagon/kernel/vm_events.c
 create mode 100644 arch/hexagon/kernel/vm_init_segtable.S
 create mode 100644 arch/hexagon/kernel/vm_ops.S
 create mode 100644 arch/hexagon/kernel/vm_switch.S
 create mode 100644 arch/hexagon/kernel/vm_vectors.S
 create mode 100644 arch/hexagon/kernel/vmlinux.lds.S
 create mode 100644 arch/hexagon/lib/Makefile
 create mode 100644 arch/hexagon/lib/checksum.c
 create mode 100644 arch/hexagon/lib/io.c
 create mode 100644 arch/hexagon/lib/memcpy.S
 create mode 100644 arch/hexagon/lib/memset.S
 create mode 100644 arch/hexagon/mm/Makefile
 create mode 100644 arch/hexagon/mm/cache.c
 create mode 100644 arch/hexagon/mm/copy_from_user.S
 create mode 100644 arch/hexagon/mm/copy_to_user.S
 create mode 100644 arch/hexagon/mm/copy_user_template.S
 create mode 100644 arch/hexagon/mm/init.c
 create mode 100644 arch/hexagon/mm/ioremap.c
 create mode 100644 arch/hexagon/mm/pgalloc.c
 create mode 100644 arch/hexagon/mm/strnlen_user.S
 create mode 100644 arch/hexagon/mm/uaccess.c
 create mode 100644 arch/hexagon/mm/vm_fault.c
 create mode 100644 arch/hexagon/mm/vm_tlb.c
 create mode 100644 include/asm-generic/rwsem.h

--

Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.