2018-10-27 04:10:47

by Guo Ren

[permalink] [raw]
Subject: [GIT PULL] C-SKY(csky) Port for Linux 4.20

The following changes since commit 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d:

Linux 4.19 (2018-10-22 07:37:37 +0100)

are available in the git repository at:

https://github.com/c-sky/csky-linux.git tags/csky-for-linus-4.20

for you to fetch changes up to 2347e7e1aea410865e3c3f92014b07ff7d4c5b02:

dt-bindings: interrupt-controller: C-SKY APB intc (2018-10-26 00:54:31 +0800)

----------------------------------------------------------------
This tag contains the Linux port for C-SKY(csky) based on linux-4.19
Release, which has been through 10 rounds of review on mailing list.

We almost got the Acked-by/Reviewed-by of all patches except "Process
management and Signal", but all've been tested.

Here is the LTP-20180118 test report:
-----------------------------------------------
Total Tests: 1298
Total Skipped Tests: 281
Total Failures: 10
Kernel Version: 4.19.0+
Machine Architecture: csky
Hostname: buildroot
-----------------------------------------------

This patchset adds architecture support to Linux for C-SKY's 32-bit embedded

There are two ABI versions with several CPU cores in this patchset:
ABIv1: 610 (16-bit instruction, 32-bit data path, VIPT Cache ...)
ABIv2: 807 810 860 (16/32-bit variable length instruction, PIPT Cache,
SMP ...)

More information: http://en.c-sky.com
The development repo: https://github.com/c-sky/csky-linux
ABI Documentation: https://github.com/c-sky/csky-doc

Here is the pre-built cross compiler for fast test from our CI:
https://gitlab.com/c-sky/buildroot/-/jobs/101608095/artifacts/file/output/images/csky_toolchain_qemu_csky_ck807f_4.18_glibc_defconfig_482b221e52908be1c9b2ccb444255e1562bb7025.tar.xz

We use buildroot as our CI-test enviornment. "LTP, Lmbench ..."
will be tested for every commit. See here for more details:
https://gitlab.com/c-sky/buildroot/pipelines

We'll continouslly improve csky subsystem in future.

Changes in v10:
- Remove duplicated headers in asm/Kbuild and uapi/asm/Kbuild.
- Change to (__NR_arch_specific_syscall + 1) in unistd.h.
- Drop dword access for get_user_size patch.
- Involve the interrupt controller drivers after got Reviewed-by.

Changes in v9:
- Remove unused code in smp.c and use per_cpu for ipi_data.
- Fixup r15 register access in abiv1/alignment.c.
- Improve the changelog comment in commit-msg.

Changes in v8:
- Pass make allmodconfig.
- Implement abiv1 get_user_dword().
- Remove set_irq_mapping() used by driver in smp.c.

Changes in v7:
- Use checkpatch.pl to check all patches and fixup as possible.
- Remove github.com/c-sky print in bootup.
- Give a return in DMA_ATTR_NON_CONSISTENT in csky_dma_alloc_atomic().
- Remove the NSIGXXX in fpu.c and use force_sig_fault() in fpu.c.
- Remove irq.h and add it in asm/Kbuild.
- Use byteswap helpers in abiv1/bswapXi.c.
- Fixup arch_sync_dma() only with one page problem.

Changes in v6:
- use asm-generic/bitops/atomic.h for all in asm/bitops.h
- fix flush_cache_range and tlb_start_vma
- fix compile error with include linux/bug.h in cmpxchg.h
- improve the comment

Changes in v5:
- remove redundant smp_mb operations in spinlock.h
- add commit message for dt-bindings docs
- add CPUHP_AP_CSKY_TIMER_STARTING in hotplug.h for csky_mptimer
- add COMPILE_TEST for timer-gx6605s Kconfig
- seperate csky two interrupt controllers with 2 patches
- add MAINTAINERS patch for csky
- move IPI_IRQ into csky_mptimer, fixup irq_mapping problem
- coding convension

Changes in v4:
- cleanup defconfig
- use ksys_ in syscall.c
- remove wrong comment in vdso.c
- Use GENERIC_IRQ_MULTI_HANDLER
- optimize the memset.c
- fixup dts warnings
- remove big-endian in byteorder.h

Changes in v3:
dc560f1 csky: change to EM_CSKY 252 for elf.h
2ac3ddf csky: remove gx6605s.dts
af00b8c csky: add defconfig and qemu.dts
6c87efb csky: remove the deprecate name.
f6dda39 csky: add dt-bindings doc.
d9f02a8 csky: remove KERNEL_VERSION in upstream branch
7bd663c csky: Use kernel/dma/noncoherent.c
1544c09 csky: bugfix emmc hang up LINS-976
e963271 csky: cleanup include/asm/Kbuild
cd267ba csky: remove CSKY_DEBUG_INFO
78950da csky: remove dcache invalid.
13fe51d csky: remove csum_ipv6_magic(), use generic one.
a7372db csky: bugfix CK810 access twice error.
1bb7c69 csky: bugfix add gcc asm memory for barrier.
5ea3257 csky: add -msoft-float instead of -mfloat-abi=soft.
38b037d csky: bugfix losing cache flush range.
ab5e8c4 csky: Add ticket-spinlock and qrwlock support.
c9aaec5 csky: rename cskyksyms.c to libgcc_ksyms.c
28c5e48 csky: avoid the MB on failure: trylock
f929c97 csky: bugfix idly4 may cause exception.
09dc496 csky: Use GENERIC_ASHLDI3/ASHRDI3 etc
6ecc99d csky: optimize smp boot code.
16f50df csky: asm/bug.h simple implement.
0ba532a csky: csky asm/atomic.h added.
df66947 csky: asm/compat.h added
275a06f csky: String operations optimization
4c021dd csky: ck860 SMP memory barrier optimize
fc39c66 csky: Add wait/doze/stop
d005144 csky: add GENERIC_ALLOCATOR
4a10074 csky: bugfix cma failed for highmem.
9f2ca70 csky: CMA supported :)
53791f4 csky: optimize csky_dma_alloc_nonatomic
974676e csky: optimize the cpuinfo printf.
2538669 csky: bugfix make headers_install error.
1158d0c csky: prevent hard-float and vdsp instructions.
dc3c856 csky: increase Normal Memory to 1GB
6ee5932 csky: bugfix qemu mmu couldn't support 0xffffe000
1d7dfb8 csky: csky_dma_alloc_atomic added.
caf6610 csky: restruct the fixmap memory layout.
5a17eaa csky: use -Wa,-mcpu=ckxxxfv to the as.
4d51829 csky: use Kconfig.hz.
f3f88fa csky: BUGFIX add -mcpu=ck860f support
6192fd1 csky: support ck860 fpu.
7aa5e01 csky: BUGFIX add smp_mb before ldex.
15758e2 csky: BUGFIX tlbi couldn't handle ASID in another CPU core.
d69640d csky: enable tlbi.vas to flush one tlb entry

Changes in v2:
a29bfc8 csky: add pre_mmu_init, move misc mmu setup to mm/init.c
4eab702 csky: no need kmap for !VM_EXEC.
6770eec csky: Use TEE as the name of CPU Trusted Execution Enviornment.
a56c8c7 csky: update the cache flush api.
1a48a95 csky: add C-SKY Trust Zone.
b7a0a44 csky: use CONFIG_RAM_BASE as the same in memory of dts.
15adf81 csky: remove unused code.
35c0d97 csky: bugfix lost a cacheline flush when start isn't cacheline-aligned.
4e82c8d csky: use tlbi.alls for ck860 smp temporary.
ae7149e csky: bugfix use kmap_atomic() to prevent no mapped addr.
5538795 csky: bugfix user access in kernel space.
a7aa591 csky: add 16bit user space bkpt.
0de70ec csky: add sync.is for cmpxchg in SMP.
c5c08a1 csky: seperate sync.is and sync for SMP and Non-SMP.
dbbf4dc csky: use sync.is for ck860 mb().
f33f8da csky: rewrite the alignment implement.
68152c7 csky: bugfix alignment pt_regs error.
d618d43 csky: support set_affinity for irq balance in SMP
ebf86c9 csky: bugfix compile error without CONFIG_SMP.
8537eea csky: remove debug code.
4ebc051 csky: bugfix compile error with linux-4.9.56
75a938e csky: C-SKY SMP supported.
0eebc07 csky: use internal function for map_sg.
3d29751 csky: bugfix can't support highmem
b545d2a csky: bugfix r26 is the link reg for jsri_to_jsr.
9e3313a csky: bugfix sync tls for abiv1 in ptrace.
587a0d2 csky: use __NR_rt_sigreturn in asm-generic.
f562b46 csky: bugfix gpr_set & fpr_set
f57266f csky: bugfix fpu_fpe_helper excute mtcr mfcr.
c676669 csky: bugfix ave is default enable on reset.
d40d34d csky: remove unused sc_mask in sigcontext.h.
274b7a2 csky: redesign the signal's api
7501771 csky: bugfix forget restore usp.
923e2ca csky: re-struct the pt_regs for regset.
2a1e499 csky: fixup config.
ada81ec csky: bugfix abiv1 compile error.
e34acb9 csky: bugfix abiv1 couldn't support -mno-stack-size.
ec53560 csky: change irq map, reserve soft_irq&private_irq space.
c7576f7 csky: bugfix modpost warning with -mno-stack-size
c8ff9d4 csky: support csky mp timer alpha version.
deabaaf csky: update .gitignore.
574815c csky: bugfix compile error with abiv1 in 4.15
0b426a7 csky: bugfix format of cpu verion id.
083435f csky: irq-csky-v2 alpha init.
21209e5 csky: add .gitignore
73e19b4 csky: remove FMFS_FPU_REGS/FMTS_FPU_REGS
07e8fac csky: add fpu regset in ptrace.c
cac779d csky: add CSKY_VECIRQ_LEGENCY for SOC bug.
54bab1d csky: move usp into pt_regs.
b167422 csky: support regset for ptrace.
a098d4c csky: remove ARCH_WANT_IPC_PARSE_VERSION
fe61a84 csky: add timer-of support.
27702e2 csky: bugfix boot error.
ebe3edb csky: bugfix gx6605s boot failed - add __HEAD to head.section for head.S - move INIT_SECTION together to fix compile warning.
7138cae csky: coding convension for timer-nationalchip.c
fa7f9bb csky: use ffs instead of fls.
ddc9e81 csky: change to generic irq chip for irq-csky.c
e9be8b9 irqchip: add generic irq chip for irq-nationalchip
2ee83fe csky: add set_handle_irq(), ref from openrisc & arm.
74181d6 csky: use irq_domain_add_linear instead of leagcy.
fa45ae4 csky: bugfix setup stroge order for uncached.
eb8030f csky: add HIGHMEM config in Kconfig
4f983d4 csky: remove "default n" in Kconfig
2467575 csky: use asm-generic/signal.h
77438e5 csky: coding conventions for irq.c
2e4a2b4 csky: optimize the cache flush ops.
96e1c58 csky: add CONFIG_CPU_ASID_BITS.
9339666 csky: add cprcr() cpwcr() for abiv1
ff05be4 csky: add THREAD_SHIFT define in asm/page.h
52ab022 csky: add mfcr() mtcr() in asm/reg_ops.h
bdcd8f3 csky: revert back Kconfig select.
590c7e6 csky: bugfix compile error with CONFIG_AUDIT
1989292 csky: revert some back with cleanup unistd.h
f1454fe csky: cleanup unistd.h
5d2985f csky: cleanup Kconfig and Makefile.
423d97e csky: cancel subdirectories
cae2af4 csky: use asm-generic/fcntl.h

----------------------------------------------------------------
Guo Ren (24):
csky: Build infrastructure
csky: defconfig
csky: Kernel booting
csky: Exception handling and mm-fault
csky: System Call
csky: Cache and TLB routines
csky: MMU and page table management
csky: Process management and Signal
csky: VDSO and rt_sigreturn
csky: IRQ handling
csky: Atomic operations
csky: ELF and module probe
csky: Library functions
csky: User access
csky: Debug and Ptrace GDB
csky: SMP support
csky: Misc headers
dt-bindings: csky CPU Bindings
dt-bindings: Add vendor prefix for csky
MAINTAINERS: Add csky
irqchip: add C-SKY SMP interrupt controller
dt-bindings: interrupt-controller: C-SKY SMP intc
irqchip: add C-SKY APB bus interrupt controller
dt-bindings: interrupt-controller: C-SKY APB intc

Documentation/devicetree/bindings/csky/cpus.txt | 73 ++++
.../interrupt-controller/csky,apb-intc.txt | 62 +++
.../bindings/interrupt-controller/csky,mpintc.txt | 40 ++
.../devicetree/bindings/vendor-prefixes.txt | 1 +
MAINTAINERS | 9 +
arch/csky/Kconfig | 205 ++++++++++
arch/csky/Kconfig.debug | 9 +
arch/csky/Makefile | 93 +++++
arch/csky/abiv1/Makefile | 8 +
arch/csky/abiv1/alignment.c | 326 ++++++++++++++++
arch/csky/abiv1/bswapdi.c | 12 +
arch/csky/abiv1/bswapsi.c | 12 +
arch/csky/abiv1/cacheflush.c | 52 +++
arch/csky/abiv1/inc/abi/cacheflush.h | 49 +++
arch/csky/abiv1/inc/abi/ckmmu.h | 75 ++++
arch/csky/abiv1/inc/abi/elf.h | 26 ++
arch/csky/abiv1/inc/abi/entry.h | 160 ++++++++
arch/csky/abiv1/inc/abi/page.h | 27 ++
arch/csky/abiv1/inc/abi/pgtable-bits.h | 37 ++
arch/csky/abiv1/inc/abi/reg_ops.h | 27 ++
arch/csky/abiv1/inc/abi/regdef.h | 26 ++
arch/csky/abiv1/inc/abi/string.h | 13 +
arch/csky/abiv1/inc/abi/vdso.h | 17 +
arch/csky/abiv1/memcpy.S | 347 +++++++++++++++++
arch/csky/abiv1/memset.c | 37 ++
arch/csky/abiv1/mmap.c | 66 ++++
arch/csky/abiv1/strksyms.c | 7 +
arch/csky/abiv2/Makefile | 10 +
arch/csky/abiv2/cacheflush.c | 60 +++
arch/csky/abiv2/fpu.c | 275 ++++++++++++++
arch/csky/abiv2/inc/abi/cacheflush.h | 46 +++
arch/csky/abiv2/inc/abi/ckmmu.h | 87 +++++
arch/csky/abiv2/inc/abi/elf.h | 43 +++
arch/csky/abiv2/inc/abi/entry.h | 156 ++++++++
arch/csky/abiv2/inc/abi/fpu.h | 66 ++++
arch/csky/abiv2/inc/abi/page.h | 14 +
arch/csky/abiv2/inc/abi/pgtable-bits.h | 37 ++
arch/csky/abiv2/inc/abi/reg_ops.h | 17 +
arch/csky/abiv2/inc/abi/regdef.h | 26 ++
arch/csky/abiv2/inc/abi/string.h | 27 ++
arch/csky/abiv2/inc/abi/vdso.h | 23 ++
arch/csky/abiv2/memcmp.S | 152 ++++++++
arch/csky/abiv2/memcpy.S | 110 ++++++
arch/csky/abiv2/memmove.S | 108 ++++++
arch/csky/abiv2/memset.S | 83 ++++
arch/csky/abiv2/strcmp.S | 168 +++++++++
arch/csky/abiv2/strcpy.S | 123 ++++++
arch/csky/abiv2/strksyms.c | 12 +
arch/csky/abiv2/strlen.S | 97 +++++
arch/csky/abiv2/sysdep.h | 30 ++
arch/csky/boot/Makefile | 24 ++
arch/csky/boot/dts/Makefile | 13 +
arch/csky/boot/dts/include/dt-bindings | 1 +
arch/csky/configs/defconfig | 61 +++
arch/csky/include/asm/Kbuild | 49 +++
arch/csky/include/asm/addrspace.h | 10 +
arch/csky/include/asm/atomic.h | 212 +++++++++++
arch/csky/include/asm/barrier.h | 49 +++
arch/csky/include/asm/bitops.h | 82 ++++
arch/csky/include/asm/bug.h | 26 ++
arch/csky/include/asm/cache.h | 30 ++
arch/csky/include/asm/cacheflush.h | 9 +
arch/csky/include/asm/checksum.h | 50 +++
arch/csky/include/asm/cmpxchg.h | 73 ++++
arch/csky/include/asm/elf.h | 85 +++++
arch/csky/include/asm/fixmap.h | 27 ++
arch/csky/include/asm/highmem.h | 51 +++
arch/csky/include/asm/io.h | 24 ++
arch/csky/include/asm/irqflags.h | 49 +++
arch/csky/include/asm/mmu.h | 12 +
arch/csky/include/asm/mmu_context.h | 150 ++++++++
arch/csky/include/asm/page.h | 104 ++++++
arch/csky/include/asm/pgalloc.h | 115 ++++++
arch/csky/include/asm/pgtable.h | 306 +++++++++++++++
arch/csky/include/asm/processor.h | 121 ++++++
arch/csky/include/asm/reg_ops.h | 26 ++
arch/csky/include/asm/segment.h | 19 +
arch/csky/include/asm/shmparam.h | 11 +
arch/csky/include/asm/smp.h | 26 ++
arch/csky/include/asm/spinlock.h | 256 +++++++++++++
arch/csky/include/asm/spinlock_types.h | 37 ++
arch/csky/include/asm/string.h | 13 +
arch/csky/include/asm/switch_to.h | 36 ++
arch/csky/include/asm/syscall.h | 71 ++++
arch/csky/include/asm/syscalls.h | 15 +
arch/csky/include/asm/thread_info.h | 75 ++++
arch/csky/include/asm/tlb.h | 25 ++
arch/csky/include/asm/tlbflush.h | 25 ++
arch/csky/include/asm/traps.h | 44 +++
arch/csky/include/asm/uaccess.h | 416 +++++++++++++++++++++
arch/csky/include/asm/unistd.h | 4 +
arch/csky/include/asm/vdso.h | 12 +
arch/csky/include/uapi/asm/Kbuild | 32 ++
arch/csky/include/uapi/asm/byteorder.h | 9 +
arch/csky/include/uapi/asm/cachectl.h | 13 +
arch/csky/include/uapi/asm/ptrace.h | 104 ++++++
arch/csky/include/uapi/asm/sigcontext.h | 14 +
arch/csky/include/uapi/asm/unistd.h | 10 +
arch/csky/kernel/Makefile | 8 +
arch/csky/kernel/asm-offsets.c | 88 +++++
arch/csky/kernel/atomic.S | 87 +++++
arch/csky/kernel/cpu-probe.c | 79 ++++
arch/csky/kernel/dumpstack.c | 66 ++++
arch/csky/kernel/entry.S | 396 ++++++++++++++++++++
arch/csky/kernel/head.S | 77 ++++
arch/csky/kernel/irq.c | 22 ++
arch/csky/kernel/module.c | 92 +++++
arch/csky/kernel/power.c | 30 ++
arch/csky/kernel/process.c | 136 +++++++
arch/csky/kernel/ptrace.c | 314 ++++++++++++++++
arch/csky/kernel/setup.c | 162 ++++++++
arch/csky/kernel/signal.c | 347 +++++++++++++++++
arch/csky/kernel/smp.c | 237 ++++++++++++
arch/csky/kernel/syscall.c | 43 +++
arch/csky/kernel/syscall_table.c | 14 +
arch/csky/kernel/time.c | 11 +
arch/csky/kernel/traps.c | 169 +++++++++
arch/csky/kernel/vdso.c | 86 +++++
arch/csky/kernel/vmlinux.lds.S | 66 ++++
arch/csky/lib/Makefile | 1 +
arch/csky/lib/delay.c | 39 ++
arch/csky/lib/usercopy.c | 262 +++++++++++++
arch/csky/mm/Makefile | 13 +
arch/csky/mm/cachev1.c | 126 +++++++
arch/csky/mm/cachev2.c | 79 ++++
arch/csky/mm/dma-mapping.c | 254 +++++++++++++
arch/csky/mm/fault.c | 212 +++++++++++
arch/csky/mm/highmem.c | 198 ++++++++++
arch/csky/mm/init.c | 122 ++++++
arch/csky/mm/ioremap.c | 48 +++
arch/csky/mm/syscache.c | 32 ++
arch/csky/mm/tlb.c | 219 +++++++++++
drivers/irqchip/Kconfig | 17 +
drivers/irqchip/Makefile | 2 +
drivers/irqchip/irq-csky-apb-intc.c | 274 ++++++++++++++
drivers/irqchip/irq-csky-mpintc.c | 198 ++++++++++
136 files changed, 11238 insertions(+)
create mode 100644 Documentation/devicetree/bindings/csky/cpus.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/csky,apb-intc.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/csky,mpintc.txt
create mode 100644 arch/csky/Kconfig
create mode 100644 arch/csky/Kconfig.debug
create mode 100644 arch/csky/Makefile
create mode 100644 arch/csky/abiv1/Makefile
create mode 100644 arch/csky/abiv1/alignment.c
create mode 100644 arch/csky/abiv1/bswapdi.c
create mode 100644 arch/csky/abiv1/bswapsi.c
create mode 100644 arch/csky/abiv1/cacheflush.c
create mode 100644 arch/csky/abiv1/inc/abi/cacheflush.h
create mode 100644 arch/csky/abiv1/inc/abi/ckmmu.h
create mode 100644 arch/csky/abiv1/inc/abi/elf.h
create mode 100644 arch/csky/abiv1/inc/abi/entry.h
create mode 100644 arch/csky/abiv1/inc/abi/page.h
create mode 100644 arch/csky/abiv1/inc/abi/pgtable-bits.h
create mode 100644 arch/csky/abiv1/inc/abi/reg_ops.h
create mode 100644 arch/csky/abiv1/inc/abi/regdef.h
create mode 100644 arch/csky/abiv1/inc/abi/string.h
create mode 100644 arch/csky/abiv1/inc/abi/vdso.h
create mode 100644 arch/csky/abiv1/memcpy.S
create mode 100644 arch/csky/abiv1/memset.c
create mode 100644 arch/csky/abiv1/mmap.c
create mode 100644 arch/csky/abiv1/strksyms.c
create mode 100644 arch/csky/abiv2/Makefile
create mode 100644 arch/csky/abiv2/cacheflush.c
create mode 100644 arch/csky/abiv2/fpu.c
create mode 100644 arch/csky/abiv2/inc/abi/cacheflush.h
create mode 100644 arch/csky/abiv2/inc/abi/ckmmu.h
create mode 100644 arch/csky/abiv2/inc/abi/elf.h
create mode 100644 arch/csky/abiv2/inc/abi/entry.h
create mode 100644 arch/csky/abiv2/inc/abi/fpu.h
create mode 100644 arch/csky/abiv2/inc/abi/page.h
create mode 100644 arch/csky/abiv2/inc/abi/pgtable-bits.h
create mode 100644 arch/csky/abiv2/inc/abi/reg_ops.h
create mode 100644 arch/csky/abiv2/inc/abi/regdef.h
create mode 100644 arch/csky/abiv2/inc/abi/string.h
create mode 100644 arch/csky/abiv2/inc/abi/vdso.h
create mode 100644 arch/csky/abiv2/memcmp.S
create mode 100644 arch/csky/abiv2/memcpy.S
create mode 100644 arch/csky/abiv2/memmove.S
create mode 100644 arch/csky/abiv2/memset.S
create mode 100644 arch/csky/abiv2/strcmp.S
create mode 100644 arch/csky/abiv2/strcpy.S
create mode 100644 arch/csky/abiv2/strksyms.c
create mode 100644 arch/csky/abiv2/strlen.S
create mode 100644 arch/csky/abiv2/sysdep.h
create mode 100644 arch/csky/boot/Makefile
create mode 100644 arch/csky/boot/dts/Makefile
create mode 120000 arch/csky/boot/dts/include/dt-bindings
create mode 100644 arch/csky/configs/defconfig
create mode 100644 arch/csky/include/asm/Kbuild
create mode 100644 arch/csky/include/asm/addrspace.h
create mode 100644 arch/csky/include/asm/atomic.h
create mode 100644 arch/csky/include/asm/barrier.h
create mode 100644 arch/csky/include/asm/bitops.h
create mode 100644 arch/csky/include/asm/bug.h
create mode 100644 arch/csky/include/asm/cache.h
create mode 100644 arch/csky/include/asm/cacheflush.h
create mode 100644 arch/csky/include/asm/checksum.h
create mode 100644 arch/csky/include/asm/cmpxchg.h
create mode 100644 arch/csky/include/asm/elf.h
create mode 100644 arch/csky/include/asm/fixmap.h
create mode 100644 arch/csky/include/asm/highmem.h
create mode 100644 arch/csky/include/asm/io.h
create mode 100644 arch/csky/include/asm/irqflags.h
create mode 100644 arch/csky/include/asm/mmu.h
create mode 100644 arch/csky/include/asm/mmu_context.h
create mode 100644 arch/csky/include/asm/page.h
create mode 100644 arch/csky/include/asm/pgalloc.h
create mode 100644 arch/csky/include/asm/pgtable.h
create mode 100644 arch/csky/include/asm/processor.h
create mode 100644 arch/csky/include/asm/reg_ops.h
create mode 100644 arch/csky/include/asm/segment.h
create mode 100644 arch/csky/include/asm/shmparam.h
create mode 100644 arch/csky/include/asm/smp.h
create mode 100644 arch/csky/include/asm/spinlock.h
create mode 100644 arch/csky/include/asm/spinlock_types.h
create mode 100644 arch/csky/include/asm/string.h
create mode 100644 arch/csky/include/asm/switch_to.h
create mode 100644 arch/csky/include/asm/syscall.h
create mode 100644 arch/csky/include/asm/syscalls.h
create mode 100644 arch/csky/include/asm/thread_info.h
create mode 100644 arch/csky/include/asm/tlb.h
create mode 100644 arch/csky/include/asm/tlbflush.h
create mode 100644 arch/csky/include/asm/traps.h
create mode 100644 arch/csky/include/asm/uaccess.h
create mode 100644 arch/csky/include/asm/unistd.h
create mode 100644 arch/csky/include/asm/vdso.h
create mode 100644 arch/csky/include/uapi/asm/Kbuild
create mode 100644 arch/csky/include/uapi/asm/byteorder.h
create mode 100644 arch/csky/include/uapi/asm/cachectl.h
create mode 100644 arch/csky/include/uapi/asm/ptrace.h
create mode 100644 arch/csky/include/uapi/asm/sigcontext.h
create mode 100644 arch/csky/include/uapi/asm/unistd.h
create mode 100644 arch/csky/kernel/Makefile
create mode 100644 arch/csky/kernel/asm-offsets.c
create mode 100644 arch/csky/kernel/atomic.S
create mode 100644 arch/csky/kernel/cpu-probe.c
create mode 100644 arch/csky/kernel/dumpstack.c
create mode 100644 arch/csky/kernel/entry.S
create mode 100644 arch/csky/kernel/head.S
create mode 100644 arch/csky/kernel/irq.c
create mode 100644 arch/csky/kernel/module.c
create mode 100644 arch/csky/kernel/power.c
create mode 100644 arch/csky/kernel/process.c
create mode 100644 arch/csky/kernel/ptrace.c
create mode 100644 arch/csky/kernel/setup.c
create mode 100644 arch/csky/kernel/signal.c
create mode 100644 arch/csky/kernel/smp.c
create mode 100644 arch/csky/kernel/syscall.c
create mode 100644 arch/csky/kernel/syscall_table.c
create mode 100644 arch/csky/kernel/time.c
create mode 100644 arch/csky/kernel/traps.c
create mode 100644 arch/csky/kernel/vdso.c
create mode 100644 arch/csky/kernel/vmlinux.lds.S
create mode 100644 arch/csky/lib/Makefile
create mode 100644 arch/csky/lib/delay.c
create mode 100644 arch/csky/lib/usercopy.c
create mode 100644 arch/csky/mm/Makefile
create mode 100644 arch/csky/mm/cachev1.c
create mode 100644 arch/csky/mm/cachev2.c
create mode 100644 arch/csky/mm/dma-mapping.c
create mode 100644 arch/csky/mm/fault.c
create mode 100644 arch/csky/mm/highmem.c
create mode 100644 arch/csky/mm/init.c
create mode 100644 arch/csky/mm/ioremap.c
create mode 100644 arch/csky/mm/syscache.c
create mode 100644 arch/csky/mm/tlb.c
create mode 100644 drivers/irqchip/irq-csky-apb-intc.c
create mode 100644 drivers/irqchip/irq-csky-mpintc.c


2018-10-28 21:12:38

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

Arnd,
I was kind of hoping/expecting to get an explicit ack for this from
you, since it's a new architecture.

Good to merge?

Linus

On Fri, Oct 26, 2018 at 9:08 PM Guo Ren <[email protected]> wrote:
>
> This tag contains the Linux port for C-SKY(csky) based on linux-4.19
> Release, which has been through 10 rounds of review on mailing list.
>
> We almost got the Acked-by/Reviewed-by of all patches except "Process
> management and Signal", but all've been tested.

2018-10-29 09:45:53

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Sun, Oct 28, 2018 at 10:11 PM Linus Torvalds
<[email protected]> wrote:
>
> Arnd,
> I was kind of hoping/expecting to get an explicit ack for this from
> you, since it's a new architecture.
>
> Good to merge?

Yes.

For the pull request (in case you want to add it to the merge changelog):

I did a thorough review of the ABI, which as usual mainly consists of spotting
any files that don't use the asm-generic ABI itself, and having it changed to
it matches exactly what we do on other new architectures.

I also looked at every other patch and commented on maybe half of them
where I saw something that did not quite seem right. Others have reviewed
specific patches in greater depth. I'm sure that one could fine more of the
minor details, but as long as they are not ABI relevant, they can be fixed
later.

The only patch that is part of the ABI and that nobody reviewed is the
signal handling. This is one of the areas I never worked on in much detail.
I did not see anything wrong with it, but I also don't know what the problems
with the other architectures are here, and we seem to be hitting issues
occasionally, and we never managed to generalize this enough for new
architectures to have a trivial implementation.

I was originally hoping that we could have the 64-bit time_t interfaces
ready in time to completely drop the 32-bit ones, but that did not
happen. We might still remove them in the next merge window
depending on whether the libc upstream people prefer to keep them
or not.

Acked-by: Arnd Bergmann <[email protected]>
---
You may note that Guo rebased the series on top of v4.19. I tried
to explain a while ago that it's better not to do that, but I suppose he
was trying to add the last-minute Acks and it seemed like a good idea.

Guo, in the future I recommend to add all patches on top of the latest
-rc1 (or maybe a later -rc) but not rebase them or pull in the mainline
kernel into your own tree.

One more general comment: I think this may well be the last new CPU
architecture we ever add to the kernel. Both nds32 and c-sky are made
by companies that also work on risc-v, and generally speaking risc-v
seems to be killing off any of the minor licensable instruction set projects,
just like ARM has mostly killed off the custom vendor-specific instruction
sets already. If we add another architecture in the future, it may instead
be something like the LLVM bitcode or WebAssembly, who knows?

Arnd

2018-10-29 10:27:05

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Mon, Oct 29, 2018 at 10:45 AM Arnd Bergmann <[email protected]> wrote:
> One more general comment: I think this may well be the last new CPU
> architecture we ever add to the kernel. Both nds32 and c-sky are made
> by companies that also work on risc-v, and generally speaking risc-v
> seems to be killing off any of the minor licensable instruction set projects,
> just like ARM has mostly killed off the custom vendor-specific instruction
> sets already. If we add another architecture in the future, it may instead
> be something like the LLVM bitcode or WebAssembly, who knows?

Kalray MPPA?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2018-10-29 11:27:58

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Mon, Oct 29, 2018 at 11:26 AM Geert Uytterhoeven
<[email protected]> wrote:
>
> On Mon, Oct 29, 2018 at 10:45 AM Arnd Bergmann <[email protected]> wrote:
> > One more general comment: I think this may well be the last new CPU
> > architecture we ever add to the kernel. Both nds32 and c-sky are made
> > by companies that also work on risc-v, and generally speaking risc-v
> > seems to be killing off any of the minor licensable instruction set projects,
> > just like ARM has mostly killed off the custom vendor-specific instruction
> > sets already. If we add another architecture in the future, it may instead
> > be something like the LLVM bitcode or WebAssembly, who knows?
>
> Kalray MPPA?
>

Ok, I stand corrected. I found the sources at [1], which look like they
are getting ready for an initial submission.

Arnd

[1] https://github.com/kalray/linux_coolidge/commits/kalray-v4.19-rc8

2018-10-29 12:25:25

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

Hi Arnd,

On Mon, Oct 29, 2018 at 12:27 PM Arnd Bergmann <[email protected]> wrote:
> On Mon, Oct 29, 2018 at 11:26 AM Geert Uytterhoeven
> <[email protected]> wrote:
> > On Mon, Oct 29, 2018 at 10:45 AM Arnd Bergmann <[email protected]> wrote:
> > > One more general comment: I think this may well be the last new CPU
> > > architecture we ever add to the kernel. Both nds32 and c-sky are made
> > > by companies that also work on risc-v, and generally speaking risc-v
> > > seems to be killing off any of the minor licensable instruction set projects,
> > > just like ARM has mostly killed off the custom vendor-specific instruction
> > > sets already. If we add another architecture in the future, it may instead
> > > be something like the LLVM bitcode or WebAssembly, who knows?
> >
> > Kalray MPPA?
> >
>
> Ok, I stand corrected. I found the sources at [1], which look like they
> are getting ready for an initial submission.
>
> Arnd
>
> [1] https://github.com/kalray/linux_coolidge/commits/kalray-v4.19-rc8

Cool, I didn't know they were that close ;-)

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2018-10-29 16:05:10

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Fri, Oct 26, 2018 at 9:08 PM Guo Ren <[email protected]> wrote:
>
> This tag contains the Linux port for C-SKY(csky) based on linux-4.19
> Release, which has been through 10 rounds of review on mailing list.
>
> We almost got the Acked-by/Reviewed-by of all patches except "Process
> management and Signal", but all've been tested.

Pulled,

Linus

2018-10-29 16:23:59

by Guo Ren

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

Thx Arnd,

On Mon, Oct 29, 2018 at 10:44:59AM +0100, Arnd Bergmann wrote:
[...]
> Guo, in the future I recommend to add all patches on top of the latest
> -rc1 (or maybe a later -rc) but not rebase them or pull in the mainline
> kernel into your own tree
Ok, I'll follow the rules.

>
> One more general comment: I think this may well be the last new CPU
> architecture we ever add to the kernel. Both nds32 and c-sky are made
> by companies that also work on risc-v, and generally speaking risc-v
> seems to be killing off any of the minor licensable instruction set projects,
> just like ARM has mostly killed off the custom vendor-specific instruction
> sets already. If we add another architecture in the future, it may instead
> be something like the LLVM bitcode or WebAssembly, who knows?
ISA is like a language, we will learn foreign languages, but we will
not give up our mother tongue. RISC-V is a great ISA, and it will
promote other ISAs to be more open.

From ecology, diversity will make Linux more robust.

We will continue to improve csky subsystem, and now is only the
beginning.

Best Regards
Guo Ren

2018-10-29 16:55:36

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Fri, Oct 26, 2018 at 11:09 PM Guo Ren <[email protected]> wrote:
>
> The following changes since commit 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d:
>
> Linux 4.19 (2018-10-22 07:37:37 +0100)
>
> are available in the git repository at:
>
> https://github.com/c-sky/csky-linux.git tags/csky-for-linus-4.20
>
> for you to fetch changes up to 2347e7e1aea410865e3c3f92014b07ff7d4c5b02:
>
> dt-bindings: interrupt-controller: C-SKY APB intc (2018-10-26 00:54:31 +0800)
>
> ----------------------------------------------------------------
> This tag contains the Linux port for C-SKY(csky) based on linux-4.19
> Release, which has been through 10 rounds of review on mailing list.
>
> We almost got the Acked-by/Reviewed-by of all patches except "Process
> management and Signal", but all've been tested.

I just noticed a couple of build related issues. First, you agreed to
remove the built-in dtb part way back on v1[1], but that's still
there. Please remove it. As Arnd mentioned that is for legacy use and
we shouldn't be adding that for new arches.

Second, the dtb build infrastructure was re-worked for 4.20. See
commit 37c8a5fafa3b ("kbuild: consolidate Devicetree dtb build
rules"). You'll need similar changes for c-sky as other arches. It's
mostly deleting lines.

Rob

[1] https://lkml.org/lkml/2018/3/21/332

2018-10-29 17:41:08

by Guo Ren

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Mon, Oct 29, 2018 at 11:54:26AM -0500, Rob Herring wrote:
> On Fri, Oct 26, 2018 at 11:09 PM Guo Ren <[email protected]> wrote:
> >
> > The following changes since commit 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d:
> >
> > Linux 4.19 (2018-10-22 07:37:37 +0100)
> >
> > are available in the git repository at:
> >
> > https://github.com/c-sky/csky-linux.git tags/csky-for-linus-4.20
> >
> > for you to fetch changes up to 2347e7e1aea410865e3c3f92014b07ff7d4c5b02:
> >
> > dt-bindings: interrupt-controller: C-SKY APB intc (2018-10-26 00:54:31 +0800)
> >
> > ----------------------------------------------------------------
> > This tag contains the Linux port for C-SKY(csky) based on linux-4.19
> > Release, which has been through 10 rounds of review on mailing list.
> >
> > We almost got the Acked-by/Reviewed-by of all patches except "Process
> > management and Signal", but all've been tested.
>
> I just noticed a couple of build related issues. First, you agreed to
> remove the built-in dtb part way back on v1[1], but that's still
> there. Please remove it. As Arnd mentioned that is for legacy use and
> we shouldn't be adding that for new arches.
>
> Second, the dtb build infrastructure was re-worked for 4.20. See
> commit 37c8a5fafa3b ("kbuild: consolidate Devicetree dtb build
> rules"). You'll need similar changes for c-sky as other arches. It's
> mostly deleting lines.
Ok, I'll give an another patch include deleting built-in dtb and
deleting lines in Makefile for 4.20 dtb build infrastructure.

> Rob
>
> [1] https://lkml.org/lkml/2018/3/21/332

2018-10-30 11:57:30

by Yoshinori Sato

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On Mon, 29 Oct 2018 18:44:59 +0900,
Arnd Bergmann wrote:
>
> On Sun, Oct 28, 2018 at 10:11 PM Linus Torvalds
> <[email protected]> wrote:
> >
> > Arnd,
> > I was kind of hoping/expecting to get an explicit ack for this from
> > you, since it's a new architecture.
> >
> > Good to merge?
>
> Yes.
>
> For the pull request (in case you want to add it to the merge changelog):
>
> I did a thorough review of the ABI, which as usual mainly consists of spotting
> any files that don't use the asm-generic ABI itself, and having it changed to
> it matches exactly what we do on other new architectures.
>
> I also looked at every other patch and commented on maybe half of them
> where I saw something that did not quite seem right. Others have reviewed
> specific patches in greater depth. I'm sure that one could fine more of the
> minor details, but as long as they are not ABI relevant, they can be fixed
> later.
>
> The only patch that is part of the ABI and that nobody reviewed is the
> signal handling. This is one of the areas I never worked on in much detail.
> I did not see anything wrong with it, but I also don't know what the problems
> with the other architectures are here, and we seem to be hitting issues
> occasionally, and we never managed to generalize this enough for new
> architectures to have a trivial implementation.
>
> I was originally hoping that we could have the 64-bit time_t interfaces
> ready in time to completely drop the 32-bit ones, but that did not
> happen. We might still remove them in the next merge window
> depending on whether the libc upstream people prefer to keep them
> or not.
>
> Acked-by: Arnd Bergmann <[email protected]>
> ---
> You may note that Guo rebased the series on top of v4.19. I tried
> to explain a while ago that it's better not to do that, but I suppose he
> was trying to add the last-minute Acks and it seemed like a good idea.
>
> Guo, in the future I recommend to add all patches on top of the latest
> -rc1 (or maybe a later -rc) but not rebase them or pull in the mainline
> kernel into your own tree.
>
> One more general comment: I think this may well be the last new CPU
> architecture we ever add to the kernel. Both nds32 and c-sky are made
> by companies that also work on risc-v, and generally speaking risc-v
> seems to be killing off any of the minor licensable instruction set projects,
> just like ARM has mostly killed off the custom vendor-specific instruction
> sets already. If we add another architecture in the future, it may instead
> be something like the LLVM bitcode or WebAssembly, who knows?
>

I have one another port.
Now we have a build environment so we can not merge right away,
but I'd like to update it to the latest within a few months.

> Arnd

--
Yosinori Sato

2018-10-30 13:36:28

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [GIT PULL] C-SKY(csky) Port for Linux 4.20

On 10/30/18, Yoshinori Sato <[email protected]> wrote:
> On Mon, 29 Oct 2018 18:44:59 +0900, Arnd Bergmann wrote:
>> just like ARM has mostly killed off the custom vendor-specific
>> instruction
>> sets already. If we add another architecture in the future, it may
>> instead
>> be something like the LLVM bitcode or WebAssembly, who knows?
>>
>
> I have one another port.
> Now we have a build environment so we can not merge right away,
> but I'd like to update it to the latest within a few months.

Ok, cool. Which one is that?

Arnd