Skip to contentSkip to conversation

Hexagon: Add support for Qualcomm Hexagon architecture

PATCH In review Richard Kuo 2 participants 3 messages Nov 1, 2011

lore
Share & tools
lore
#0 lore raw

v5 cover 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.

#1 lore raw
Quoted 2 lines · Richard Kuo

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

So there's something odd going on with the Sign-off's, which makes me unhappy. It also makes me wonder if the authorship is properly attributed.

Some of these things are signed off by Linas Vepstas. In fact, some of them are *only* signed off on by him, not by you. Which is definitely wrong. But it makes me wonder if the authorship is buggered up, and those patches maybe should have a "From: Linas Vepstas <[email protected]>" on them too.

Example of this: "[PATCH v5 12/36] Hexagon: Export ksyms defined in assembly files." (but 13/36, 31/36 and 36/36 were that way too).

Others are signed off by both Linas Vepstas and you, but in an odd order. Since you're sending them to me, I'd expect your sign-off to be last, but it isn't. So the sign-off sequence makes it look like they were sent by Linas, even though I got them from you.

So I'd like some clarification on this, and I do need *your* sign-off on them all since you're sending them to me.

You don't have to re-send, but you do have to explain whether perhaps Linas should be author (and why the odd order of sign-offs) and basically do a "yeah, I sign off on those patches" with a full listing of the patches in question so that I have it for the record.

Linus

#2 lore raw
Quoted 26 lines · Richard Kuo
Quoted 3 lines

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

So there's something odd going on with the Sign-off's, which makes me unhappy. It also makes me wonder if the authorship is properly attributed.

Some of these things are signed off by Linas Vepstas. In fact, some of them are *only* signed off on by him, not by you. Which is definitely wrong. But it makes me wonder if the authorship is buggered up, and those patches maybe should have a "From: Linas Vepstas <[email protected]>" on them too.

Example of this: "[PATCH v5 12/36] Hexagon: Export ksyms defined in assembly files." (but 13/36, 31/36 and 36/36 were that way too).

Others are signed off by both Linas Vepstas and you, but in an odd order. Since you're sending them to me, I'd expect your sign-off to be last, but it isn't. So the sign-off sequence makes it look like they were sent by Linas, even though I got them from you.

So I'd like some clarification on this, and I do need *your* sign-off on them all since you're sending them to me.

Quoted 7 lines

You don't have to re-send, but you do have to explain whether perhaps Linas should be author (and why the odd order of sign-offs) and basically do a "yeah, I sign off on those patches" with a full listing of the patches in question so that I have it for the record.

Linus

OK, my mistake on these. Linas did author those patches, but clearly I'm in their path. So, I sign off on:

[PATCH v5 12/36] Hexagon: Export ksyms defined in assembly files. [PATCH v5 13/36] Hexagon: Support dynamic module loading. [PATCH v5 31/36] Hexagon: kgdb support files
[PATCH v5 36/36] Add extra arch overrides to asm-generic/checksum.h

Many other times, I was the author, and Linas also had contributions to the files as well, but again, if they're coming through me, my signed-off should be last. The From: is me because I imported all the files into git from what we were doing previously. The rest of the patches from now on should have proper authorship.

Thanks,
Richard Kuo