Hi Paul,
在 2020/8/8 上午12:45, Paul Cercueil 写道:
Hi Zhou,
Le sam. 8 août 2020 à 0:23, Zhou Yanjie <zhouyanjie@xxxxxxxxxxxxxx> a
écrit :
Hi Paul,
I'm not too sure if remove "cpu-feature-overrides.h" will cause some
problems for X2000, because according to my current test on X2000, I
found that it is somewhat different from the SoCs using XBurst1 CPU
core, with the kernel source code provided by Ingenic, for example,
we must configure "#define cpu_has_tlbinv 1" in
"cpu-feature-overrides.h" to make the X2000 work normally, otherwise
the kernel will get stuck. And X2000's interrupt controller has also
been redesigned. If these differences make it impossible to share
code, should we set a subdirectory of "xburst" and "xburst2" in
"arch/mips/ingenic"? (I am just worried about this situation, so far
I have not been able to successfully run the mainline kernel on X2000).
The <cpu-feature-overrides.h> is kind of a hack, to hardcode settings
in case the CPU is not properly detected. The cpu-probe.c should be
able to auto-detect these settings, including the inverted TLB that
the X2000 has, reading from the CPU config registers ("TLB INV" info
should be in config4). Right now cpu_probe_ingenic() doesn't read
config4 (not present on older SoCs) but that's trivial to add.
As for your other question, I don't see any reason why we wouldn't be
able to support the X2000 aside the others in a generic kernel, so
don't worry :)
OK, this is good news for me.
Cheers,
-Paul
I have added some related engineers from Ingenic to CC
Thanks and best regards!
在 2020/8/4 上午1:01, Paul Cercueil 写道:
Hi Thomas & list,
Here is a set of patches for 5.10 (no rush) to move Ingenic support
from
arch/mips/jz4740/ to arch/mips/generic/.
There are some Kconfig changes that I think should be reviewed in
detail
to avoid breakages elsewhere. The idea behind these changes is to allow
the Ingenic "generic" code to be built in a non-generic kernel, since
generic kernels bring lots of dependencies which result in a +7% size
increase.
Support for booting the generic kernel with a built-in and/or appended
devicetree, as well as support for compressed (vmlinuz) kernels, has
been added as well.
Cheers,
-Paul
Paul Cercueil (13):
MIPS: cpu-probe: Set Ingenic's writecombine to _CACHE_CACHABLE_WA
MIPS: cpu-probe: Mark XBurst CPU as having vtagged caches
MIPS: cpu-probe: ingenic: Fix broken BUG_ON
MIPS: Kconfig: add MIPS_GENERIC_KERNEL symbol
MIPS: machine: Add get_system_type callback
MIPS: generic: Call the machine's .get_system_type callback if
provided
MIPS: generic: Support booting with built-in or appended DTB
MIPS: generic: Add support for zboot
MIPS: generic: Increase NR_IRQS to 256
MIPS: generic: Add support for Ingenic SoCs
MIPS: jz4740: Drop folder
MIPS: configs: Regenerate configs of Ingenic boards
MAINTAINERS: Update paths to Ingenic platform code
MAINTAINERS | 4 +-
arch/mips/Kbuild.platforms | 1 -
arch/mips/Kconfig | 43 ++++--
arch/mips/configs/ci20_defconfig | 4 +-
arch/mips/configs/cu1000-neo_defconfig | 16 +-
arch/mips/configs/gcw0_defconfig | 2 +-
arch/mips/configs/qi_lb60_defconfig | 5 +-
arch/mips/configs/rs90_defconfig | 4 +-
arch/mips/generic/Kconfig | 8 +-
arch/mips/generic/Makefile | 2 +-
arch/mips/generic/Platform | 1 +
arch/mips/generic/board-ingenic.c | 108 +++++++++++++
arch/mips/generic/init.c | 28 +++-
arch/mips/generic/proc.c | 25 ---
arch/mips/include/asm/mach-generic/irq.h | 2 +-
.../asm/mach-jz4740/cpu-feature-overrides.h | 50 ------
arch/mips/include/asm/mach-jz4740/irq.h | 13 --
arch/mips/include/asm/machine.h | 1 +
arch/mips/include/asm/pgtable-bits.h | 5 -
arch/mips/{jz4740 => ingenic}/Kconfig | 16 +-
arch/mips/jz4740/Makefile | 9 --
arch/mips/jz4740/Platform | 3 -
arch/mips/jz4740/setup.c | 145
------------------
arch/mips/kernel/cpu-probe.c | 8 +-
24 files changed, 198 insertions(+), 305 deletions(-)
create mode 100644 arch/mips/generic/board-ingenic.c
delete mode 100644 arch/mips/generic/proc.c
delete mode 100644
arch/mips/include/asm/mach-jz4740/cpu-feature-overrides.h
delete mode 100644 arch/mips/include/asm/mach-jz4740/irq.h
rename arch/mips/{jz4740 => ingenic}/Kconfig (91%)
delete mode 100644 arch/mips/jz4740/Makefile
delete mode 100644 arch/mips/jz4740/Platform
delete mode 100644 arch/mips/jz4740/setup.c