All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guo Ren <ren_guo@c-sky.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arch <linux-arch@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Jason Cooper <jason@lakedaemon.net>,
	c-sky_gcc_upstream@c-sky.com, gnu-csky@mentor.com,
	thomas.petazzoni@bootlin.com, wbx@uclibc-ng.org
Subject: Re: [PATCH 15/19] csky: Build infrastructure
Date: Tue, 20 Mar 2018 21:13:46 +0800	[thread overview]
Message-ID: <20180320131342.GA31542@guoren> (raw)
In-Reply-To: <CAK8P3a1rzS+MmubYqTE-8H89QnULcGbKth=eWTA5mJ5VLRNL0Q@mail.gmail.com>

Hi arnd,

On Mon, Mar 19, 2018 at 11:45:23PM +0800, Arnd Bergmann wrote:
> > +       select ARCH_WANT_IPC_PARSE_VERSION
> 
> Drop ipc_parse_version here, it's only for old architectures.
>
I will remove it.

> > +       select HAVE_OPROFILE
> > +       select HAVE_PERF_EVENTS
> 
> Do you still need oprofile when you have perf?
I'll remove HAVE_OPROFILE and arch/csky/oprofile.

> > +       select MODULES_USE_ELF_REL if MODULES
> > +       select MODULES_USE_ELF_RELA if MODULES
> 
> You should only need one of these two.
Yes, I will keep RELA and current csky-gcc only give .rela section.

> > +       select OLD_SIGACTION
> > +       select OLD_SIGSUSPEND3
> 
> These should not be needed.
Ok, remove them.

> > +config CPU_HAS_TLBI
> > +       bool
> > +       default n
> 
> 'default n' is redundant and can be dropped.
Ok

> > +config GENERIC_CALIBRATE_DELAY
> > +       bool
> > +       default y
> 
> Does your architecture provide a reliable high-reslution clocksource?
> If yes, you
> could use that for the delay, rather than a calibrated loop.
Currently, all boards have clocksource drivers and the reslution is depend on SOC.
I'll try to remove it.

> > +       select HIGHMEM
> > +       select CPU_HAS_TLBI
> > +       select CPU_HAS_CACHEV2
> > +endchoice
> 
> Why select 'HIGHMEM' based on the CPU type? You should only need it
> when you have more than 1GB of RAM, and it can be a performance
> problem when it's enabled without need.
OK, I'll give a HIGHMEM option.
 
> Usually the kernel should allow multiple CPU types to be selected
> together, or ask for a "minimum architecture" level to be selected
> by allow newer cores to be used as a superset.
No, I need keep them seperate.

> > +config CPU_TLB_SIZE
> > +       int
> > +       default "128"   if(CPU_CK610 || CPU_CK807 || CPU_CK810)
> > +       default "1024"  if(CPU_CK860)
> > +
> > +config L1_CACHE_SHIFT
> > +       int
> > +       default "4"     if(CPU_CK610)
> > +       default "5"     if(CPU_CK807 || CPU_CK810)
> > +       default "6"     if(CPU_CK860)
> 
> I think you then need to reverse the order of the list here: When e.g. CK860
> and CK810 are both enabled, L1_CACHE_SHIFT should be the largest
> possible size.
No, I use L1_CACHE_SHIFT to determine the size of cache_line.
When I flush cache for a range of memory, I need the size to loop flush cache line.

> > +config SSEG0_BASE
> > +       hex "Direct mapping physical address"
> > +       default 0x0
> > +       help
> > +         There are MSAx regs can be used to change the base physical address
> > +         of direct mapping. The default base physical address is 0x0.
> > +
> > +config RAM_BASE
> > +       hex "DRAM base address offset from SSEG0_BASE, it must be the same with dts memory."
> > +       default 0x08000000
> 
> To allow one kernel to run on multiple boards, it's better to detect
> these two at runtime.
CK-CPUs have a mips-like direct-mapping, and I use the macros to calculate the virtual-addr 
in headers.

> > +config CSKY_NR_IRQS
> > +       int "NR_IRQS to max virtual interrupt numbers of the whole system"
> > +       range 64 8192
> > +       default "128"
> > +endmenu
> 
> This should no longer be needed, with the IRQ domain code, any number
> of interrupts
> can be used without noticeable overhead.
Not I use it, some of our users need it to expand the GPIO irqs. Because
they don't use irq domain code properly. I move it to Kconfig.debug, OK?

> Make it either
> 
>             def_bool y
> 
> or
> 
>            bool
>            default y
OK

> > +config CSKY_BUILTIN_DTB
> > +       bool "Use kernel builtin dtb"
> > +       default n
> > +
> > +config CSKY_BUILTIN_DTB_NAME
> > +       string "kernel builtin dtb name"
> > +       depends on CSKY_BUILTIN_DTB
> 
> It's generally better not to use a builtin dtb, but use the bootloader
> to pass a dtb.
> 
> If you need to support existing bootloaders, the best way is to allow
> appending the dtb to the kernel.
Most of our boards use bootloader to pass the dtb, but Hangzhou
Nationalchip want dtb compiled in the vmlinux. So I keep it in
Kconfig.debug.

> > +ifeq ($(VERSION)_$(PATCHLEVEL), 4_9)
> > +COMPAT_KERNEL_4_9 = -DCOMPAT_KERNEL_4_9
> > +endif
> 
> Should not be needed
May I keep it? It's a very internal macro for arch/csky and I can
maintain the linux-4.9 together.


> > +KBUILD_CFLAGS +=       -ffreestanding \
> 
> -ffreestanding usually results in worse code and should not be needed
OK, remove it.

> > +                       -fno-tree-dse \
> > +                       -pipe \
> > +                       -Wno-uninitialized \
> 
> For -Wno-uninitialized, better fix the bugs properly. Can you explain
> why you want
It will mask some warnings :P, and I will remove it.

> -fno-tree-dse?
This is from "gcc-4.5 compile linux-4.7" and it will cause wrong code without
-fno-tree-dse for list.h. Now we use gcc-6.3, so I will try to remove it.

> > +++ b/arch/csky/abiv1/Makefile
> > @@ -0,0 +1,8 @@
> > +obj-y +=       src/bswapdi.o
> > +obj-y +=       src/bswapsi.o
> > +obj-y +=       src/cacheflush.o
> > +obj-y +=       src/memcpy.o
> > +obj-y +=       src/mmap.o
> > +
> > +obj-$(CONFIG_CPU_NEED_SOFTALIGN) +=    src/alignment.o
> 
> Better not use subdirectories like that.
Ok, I will change them like this:
  obj-y +=	bswapdi.o
  obj-y +=	bswapsi.o
  ...

> Can you explain why you need the alignement fixups?
For abiv1 ck610 couldn't handle the unalignment address access, so we
need soft-alignment exception to fixup. There is no problem in abiv2 cpus.

Best Regards
  Guo Ren

  reply	other threads:[~2018-03-20 13:13 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-18 19:51 [PATCH 00/19] C-SKY(csky) Linux Kernel Port Guo Ren
2018-03-18 19:51 ` [PATCH 01/19] csky: Kernel booting Guo Ren
2018-03-18 19:51 ` [PATCH 02/19] csky: Exception handling and syscall Guo Ren
2018-03-19  1:48   ` Mark Rutland
2018-03-19  6:47     ` Guo Ren
2018-03-19  8:50   ` Dominik Brodowski
2018-03-19 11:03     ` Guo Ren
2018-03-18 19:51 ` [PATCH 03/19] csky: Cache and TLB routines Guo Ren
2018-03-18 19:51 ` [PATCH 04/19] csky: MMU and page talbe management Guo Ren
2018-03-18 19:51 ` [PATCH 05/19] csky: Process management Guo Ren
2018-03-18 19:51 ` [PATCH 06/19] csky: IRQ handling Guo Ren
2018-03-19 13:16   ` Thomas Gleixner
2018-03-20  2:06     ` Guo Ren
2018-03-18 19:51 ` [PATCH 07/19] csky: Atomic operations Guo Ren
2018-03-18 19:51 ` [PATCH 08/19] csky: ELF and module probe Guo Ren
2018-03-18 19:51 ` [PATCH 09/19] csky: VDSO and rt_sigreturn Guo Ren
2018-03-18 19:51 ` [PATCH 10/19] csky: Signal handling Guo Ren
2018-03-26 13:04   ` Arnd Bergmann
2018-03-27  2:41     ` Guo Ren
2018-03-18 19:51 ` [PATCH 11/19] csky: Library functions Guo Ren
2018-03-18 19:51 ` [PATCH 12/19] csky: Debug and Ptrace GDB Guo Ren
2018-03-26 13:06   ` Arnd Bergmann
2018-03-18 19:51 ` [PATCH 13/19] csky: User access Guo Ren
2018-03-18 19:51 ` [PATCH 14/19] csky: Misc headers Guo Ren
2018-03-19 16:11   ` Arnd Bergmann
2018-03-20  3:36     ` Guo Ren
2018-03-20  7:54       ` Arnd Bergmann
2018-03-20 13:22         ` Guo Ren
2018-03-18 19:51 ` [PATCH 15/19] csky: Build infrastructure Guo Ren
2018-03-19 15:45   ` Arnd Bergmann
2018-03-20 13:13     ` Guo Ren [this message]
2018-03-21  7:36       ` Arnd Bergmann
2018-03-21 12:41         ` Guo Ren
2018-03-26 13:00           ` Arnd Bergmann
2018-03-27  2:39             ` Guo Ren
2018-03-27  7:38               ` Arnd Bergmann
2018-03-28  3:49                 ` Guo Ren
2018-03-28  7:40                   ` Arnd Bergmann
2018-03-28  8:04                     ` Guo Ren
2018-03-18 19:51 ` [PATCH 16/19] csky: Device tree Guo Ren
2018-03-19 15:28   ` Arnd Bergmann
2018-03-20 13:55     ` Guo Ren
2018-03-18 19:51 ` [PATCH 17/19] csky: defconfig Guo Ren
2018-03-26 13:16   ` Arnd Bergmann
2018-03-27  2:21     ` Guo Ren
2018-03-27  7:48       ` Arnd Bergmann
2018-03-28  3:59         ` Guo Ren
2018-03-18 19:51 ` [PATCH 18/19] clocksource: add timer-nationalchip.c Guo Ren
2018-03-18 22:07   ` Daniel Lezcano
2018-03-19  6:59     ` Guo Ren
2018-03-19  4:15   ` Mark Rutland
2018-03-19  7:03     ` Guo Ren
2018-03-18 19:51 ` [PATCH 19/19] irqchip: add irq-nationalchip.c and irq-csky.c Guo Ren
2018-03-19  4:26   ` Mark Rutland
2018-03-19  7:08     ` Guo Ren
2018-03-19 13:30   ` Thomas Gleixner
2018-03-20 14:23     ` Guo Ren
2018-03-18 20:25 ` [PATCH 00/19] C-SKY(csky) Linux Kernel Port Joe Perches
2018-03-19  7:11   ` Guo Ren
2018-03-26 13:30 ` Arnd Bergmann
2018-03-26 15:06   ` [gnu-csky] " Sandra Loosemore
2018-03-26 15:06     ` Sandra Loosemore
2018-03-26 15:11     ` Arnd Bergmann
2018-03-27  1:58   ` Guo Ren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180320131342.GA31542@guoren \
    --to=ren_guo@c-sky.com \
    --cc=arnd@arndb.de \
    --cc=c-sky_gcc_upstream@c-sky.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=gnu-csky@mentor.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=wbx@uclibc-ng.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.