diff mbox series

[v3,12/12] MIPS: generic: Enable all CPUs supported by virt board in Kconfig

Message ID 20230404093351.4233-13-jiaxun.yang@flygoat.com (mailing list archive)
State Accepted
Commit de34007751aaba992373f2d659001a846aeb8811
Headers show
Series MIPS Virt board support | expand

Commit Message

Jiaxun Yang April 4, 2023, 9:33 a.m. UTC
Enable extra CPUs that may be supported by virt board, including
R4x00 (R4000 in QEMU), Cavium Octeon (Octeon68XX in QEMU), loongson2e,
loongson2f.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 arch/mips/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Guenter Roeck April 7, 2023, 5:46 p.m. UTC | #1
On Tue, Apr 04, 2023 at 10:33:51AM +0100, Jiaxun Yang wrote:
> Enable extra CPUs that may be supported by virt board, including
> R4x00 (R4000 in QEMU), Cavium Octeon (Octeon68XX in QEMU), loongson2e,
> loongson2f.
> 
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

This patch results in:

Building mips:allmodconfig ... failed
--------------
Error log:
arch/mips/kernel/cps-vec.S: Assembler messages:
arch/mips/kernel/cps-vec.S:228: Error: invalid operands `mfc0 $8,$16,1'
arch/mips/kernel/cps-vec.S:228: Error: invalid operands `mfc0 $8,$16,2'
arch/mips/kernel/cps-vec.S:228: Error: invalid operands `mfc0 $8,$16,3'
arch/mips/kernel/cps-vec.S:326: Error: invalid operands `mfc0 $14,$16,1'
arch/mips/kernel/cps-vec.S:326: Error: invalid operands `mfc0 $14,$16,2'
arch/mips/kernel/cps-vec.S:326: Error: invalid operands `mfc0 $14,$16,3'
arch/mips/kernel/cps-vec.S:329: Error: invalid operands `mfc0 $9,$0,2'
arch/mips/kernel/cps-vec.S:335: Error: opcode not supported on this processor: r4600 (mips3) `clz $9,$9'
arch/mips/kernel/cps-vec.S:343: Error: invalid operands `mfc0 $25,$15,1'
arch/mips/kernel/cps-vec.S:385: Error: invalid operands `mfc0 $8,$16,1'
arch/mips/kernel/cps-vec.S:385: Error: invalid operands `mfc0 $8,$16,2'
arch/mips/kernel/cps-vec.S:385: Error: invalid operands `mfc0 $8,$16,3'
arch/mips/kernel/cps-vec.S:395: Error: opcode not supported on this processor: r4600 (mips3) `jr.hb $9'
arch/mips/kernel/cps-vec.S:397: Error: invalid operands `mfc0 $9,$0,1'
arch/mips/kernel/cps-vec.S:399: Error: invalid operands `mtc0 $9,$0,1'
arch/mips/kernel/cps-vec.S:412: Error: invalid operands `mfc0 $8,$1,1'
arch/mips/kernel/cps-vec.S:416: Error: invalid operands `mtc0 $8,$1,1'
arch/mips/kernel/cps-vec.S:507: Error: invalid operands `mtc0 $8,$2,4'
arch/mips/kernel/cps-vec.S:509: Error: opcode not supported on this processor: r4600 (mips3) `jr.hb $8'

This is with:

Compiler version: mips64-linux-gcc (GCC) 11.3.0
Assembler version: GNU assembler (GNU Binutils) 2.39

Bisect log attached for reference.

Guenter

---
# bad: [e134c93f788fb93fd6a3ec3af9af850a2048c7e6] Add linux-next specific files for 20230406
# good: [7e364e56293bb98cae1b55fd835f5991c4e96e7d] Linux 6.3-rc5
git bisect start 'HEAD' 'v6.3-rc5'
# bad: [ba6a630973076d0884c86c180cbfffe2fd7ccae3] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
git bisect bad ba6a630973076d0884c86c180cbfffe2fd7ccae3
# bad: [11ed4fef8498d6e90290b0ddae0b9a3a4f84d99f] Merge branch 'for-next' of git:git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux.git
git bisect bad 11ed4fef8498d6e90290b0ddae0b9a3a4f84d99f
# good: [f73baa9938bb8f981aa3d58bab24b028f14fb7ff] Merge branch 'next' of https://github.com/Broadcom/stblinux.git
git bisect good f73baa9938bb8f981aa3d58bab24b028f14fb7ff
# good: [74a7ccd0bd5b39518b9d45e3ea455fcbbdc34632] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
git bisect good 74a7ccd0bd5b39518b9d45e3ea455fcbbdc34632
# good: [7864de002ddd7557ac110a6d594ebbf0ec61773a] Merge branch 'clk-next' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
git bisect good 7864de002ddd7557ac110a6d594ebbf0ec61773a
# bad: [657d2f0b627f20afad9b5253b32d4448a0c514bd] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
git bisect bad 657d2f0b627f20afad9b5253b32d4448a0c514bd
# bad: [04f439aefe3b46cbdc4c547302af567012653fe9] Merge branch 'mips-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
git bisect bad 04f439aefe3b46cbdc4c547302af567012653fe9
# good: [e1aa1dfef69320141f5d00eddbf279b41e70d4e7] MIPS: mips-cm: Check availability of config registers
git bisect good e1aa1dfef69320141f5d00eddbf279b41e70d4e7
# good: [7a0f190098f32bae208689fee6e8f6dc607d2930] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git
git bisect good 7a0f190098f32bae208689fee6e8f6dc607d2930
# bad: [de34007751aaba992373f2d659001a846aeb8811] MIPS: generic: Enable all CPUs supported by virt board in Kconfig
git bisect bad de34007751aaba992373f2d659001a846aeb8811
# good: [b6007ff809682350515936539eb91a2e8a5f799c] MIPS: Octeon: Allow CVMSEG to be disabled
git bisect good b6007ff809682350515936539eb91a2e8a5f799c
# good: [0c6ff92773a9c004c44af47b0609f67dcc97ba82] MIPS: Loongson: Don't select platform features with CPU
git bisect good 0c6ff92773a9c004c44af47b0609f67dcc97ba82
# good: [03be534e1bac6d92cbcebdddfc4242e1e3588350] MIPS: Add board config for virt board
git bisect good 03be534e1bac6d92cbcebdddfc4242e1e3588350
# first bad commit: [de34007751aaba992373f2d659001a846aeb8811] MIPS: generic: Enable all CPUs supported by virt board in Kconfig
Guenter Roeck April 7, 2023, 5:50 p.m. UTC | #2
On Tue, Apr 04, 2023 at 10:33:51AM +0100, Jiaxun Yang wrote:
> Enable extra CPUs that may be supported by virt board, including
> R4x00 (R4000 in QEMU), Cavium Octeon (Octeon68XX in QEMU), loongson2e,
> loongson2f.
> 
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---

Also, again with

Compiler version: mips64-linux-gcc (GCC) 11.3.0
Assembler version: GNU assembler (GNU Binutils) 2.39

and mips:allmodconfig:

In file included from <command-line>:
arch/mips/mm/init.c: In function 'mem_init':
include/linux/compiler_types.h:397:45: error: call to '__compiletime_assert_437' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT)
  397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
      |                                             ^
include/linux/compiler_types.h:378:25: note: in definition of macro '__compiletime_assert'
  378 |                         prefix ## suffix();                             \
      |                         ^~~~~~
include/linux/compiler_types.h:397:9: note: in expansion of macro '_compiletime_assert'
  397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
      |         ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
   39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
      |                                     ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
   50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
      |         ^~~~~~~~~~~~~~~~
arch/mips/mm/init.c:454:9: note: in expansion of macro 'BUILD_BUG_ON'
  454 |         BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
      |         ^~~~~~~~~~~~

Bisect log attached for reference, this time when trying to compile 
arch/mips/mm/init.c.

Guenter

---
# bad: [e134c93f788fb93fd6a3ec3af9af850a2048c7e6] Add linux-next specific files for 20230406
# good: [7e364e56293bb98cae1b55fd835f5991c4e96e7d] Linux 6.3-rc5
git bisect start 'HEAD' 'v6.3-rc5'
# bad: [ba6a630973076d0884c86c180cbfffe2fd7ccae3] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
git bisect bad ba6a630973076d0884c86c180cbfffe2fd7ccae3
# bad: [11ed4fef8498d6e90290b0ddae0b9a3a4f84d99f] Merge branch 'for-next' of git:git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux.git
git bisect bad 11ed4fef8498d6e90290b0ddae0b9a3a4f84d99f
# good: [f73baa9938bb8f981aa3d58bab24b028f14fb7ff] Merge branch 'next' of https://github.com/Broadcom/stblinux.git
git bisect good f73baa9938bb8f981aa3d58bab24b028f14fb7ff
# good: [74a7ccd0bd5b39518b9d45e3ea455fcbbdc34632] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
git bisect good 74a7ccd0bd5b39518b9d45e3ea455fcbbdc34632
# good: [7864de002ddd7557ac110a6d594ebbf0ec61773a] Merge branch 'clk-next' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
git bisect good 7864de002ddd7557ac110a6d594ebbf0ec61773a
# bad: [657d2f0b627f20afad9b5253b32d4448a0c514bd] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
git bisect bad 657d2f0b627f20afad9b5253b32d4448a0c514bd
# bad: [04f439aefe3b46cbdc4c547302af567012653fe9] Merge branch 'mips-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
git bisect bad 04f439aefe3b46cbdc4c547302af567012653fe9
# good: [e1aa1dfef69320141f5d00eddbf279b41e70d4e7] MIPS: mips-cm: Check availability of config registers
git bisect good e1aa1dfef69320141f5d00eddbf279b41e70d4e7
# good: [7a0f190098f32bae208689fee6e8f6dc607d2930] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git
git bisect good 7a0f190098f32bae208689fee6e8f6dc607d2930
# bad: [de34007751aaba992373f2d659001a846aeb8811] MIPS: generic: Enable all CPUs supported by virt board in Kconfig
git bisect bad de34007751aaba992373f2d659001a846aeb8811
# good: [b6007ff809682350515936539eb91a2e8a5f799c] MIPS: Octeon: Allow CVMSEG to be disabled
git bisect good b6007ff809682350515936539eb91a2e8a5f799c
# good: [0c6ff92773a9c004c44af47b0609f67dcc97ba82] MIPS: Loongson: Don't select platform features with CPU
git bisect good 0c6ff92773a9c004c44af47b0609f67dcc97ba82
# good: [03be534e1bac6d92cbcebdddfc4242e1e3588350] MIPS: Add board config for virt board
git bisect good 03be534e1bac6d92cbcebdddfc4242e1e3588350
# first bad commit: [de34007751aaba992373f2d659001a846aeb8811] MIPS: generic: Enable all CPUs supported by virt board in Kconfig
diff mbox series

Patch

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 940ade1c9449..53160d49387c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -155,12 +155,16 @@  config MIPS_GENERIC_KERNEL
 	select PCI_DRIVERS_GENERIC
 	select SMP_UP if SMP
 	select SWAP_IO_SPACE
+	select SYS_HAS_CPU_CAVIUM_OCTEON
+	select SYS_HAS_CPU_LOONGSON2E
+	select SYS_HAS_CPU_LOONGSON2F
 	select SYS_HAS_CPU_MIPS32_R1
 	select SYS_HAS_CPU_MIPS32_R2
 	select SYS_HAS_CPU_MIPS32_R6
 	select SYS_HAS_CPU_MIPS64_R1
 	select SYS_HAS_CPU_MIPS64_R2
 	select SYS_HAS_CPU_MIPS64_R6
+	select SYS_HAS_CPU_R4X00
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_64BIT_KERNEL
 	select SYS_SUPPORTS_BIG_ENDIAN