Message ID | 20200906192935.107086-12-paul@crapouillou.net (mailing list archive) |
---|---|
State | Accepted |
Commit | f0f4a753079c636d5d43a102edbde0dad1e7de51 |
Headers | show |
Series | MIPS: Convert Ingenic to a generic board v3 | expand |
On Sun, Sep 06, 2020 at 09:29:31PM +0200, Paul Cercueil wrote: > Add support for Ingenic SoCs in arch/mips/generic/. > > The Kconfig changes are here to ensure that it is possible to compile > either a generic kernel that supports Ingenic SoCs, or a Ingenic-only > kernel, both using the same code base, to avoid duplicated code. > > Signed-off-by: Paul Cercueil <paul@crapouillou.net> This patch results in the following build error (mips:allmodconfig). In file included from <command-line>: arch/mips/mm/init.c: In function 'mem_init': include/linux/compiler_types.h:319:38: error: call to '__compiletime_assert_331' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT) Bisect log attached. Guenter --- # bad: [d67bc7812221606e1886620a357b13f906814af7] Add linux-next specific files for 20201009 # good: [549738f15da0e5a00275977623be199fbbf7df50] Linux 5.9-rc8 git bisect start 'HEAD' 'v5.9-rc8' # bad: [b71be15b496cc71a3434a198fc1a1b9e08af6c57] Merge remote-tracking branch 'bpf-next/master' into master git bisect bad b71be15b496cc71a3434a198fc1a1b9e08af6c57 # bad: [6be11f939f380ef14bc94242cb0262197ce2a054] Merge remote-tracking branch 'i2c/i2c/for-next' into master git bisect bad 6be11f939f380ef14bc94242cb0262197ce2a054 # good: [c03a115d8ad8a87b6d275c3c91c13bc111217bf6] Merge remote-tracking branch 'samsung-krzk/for-next' into master git bisect good c03a115d8ad8a87b6d275c3c91c13bc111217bf6 # bad: [bdd0ef71b0d7d6a8f1d59af57dc73d19ddc26ad0] Merge remote-tracking branch 'f2fs/dev' into master git bisect bad bdd0ef71b0d7d6a8f1d59af57dc73d19ddc26ad0 # bad: [0c4bd40a7ccd06122c1942f525b714abcd9efe36] Merge remote-tracking branch 'powerpc/next' into master git bisect bad 0c4bd40a7ccd06122c1942f525b714abcd9efe36 # bad: [744d2c114d58c11fd76d572021d7ef3c55a1a225] Merge remote-tracking branch 'nds32/next' into master git bisect bad 744d2c114d58c11fd76d572021d7ef3c55a1a225 # good: [1e9f9330cea616f9f2baf8144f049e4b405715dd] Merge remote-tracking branch 'csky/linux-next' into master git bisect good 1e9f9330cea616f9f2baf8144f049e4b405715dd # bad: [b350041e6f23a71f63f1eee6d939c846838e7e25] MIPS: alchemy: remove unused ALCHEMY_GPIOINT_AU1000 git bisect bad b350041e6f23a71f63f1eee6d939c846838e7e25 # good: [43df4eb2fc9511e09c66252c3fec4f8933a77c73] MIPS: Replace SIBYTE_1956_WAR by CONFIG_SB1_PASS_2_WORKAROUNDS git bisect good 43df4eb2fc9511e09c66252c3fec4f8933a77c73 # good: [13a0ea28e8c698cc0d600fdeed8da3e4d478b97e] MIPS: generic: Init command line with fw_init_cmdline() git bisect good 13a0ea28e8c698cc0d600fdeed8da3e4d478b97e # bad: [d41afc398fbc9dfb8c40b951e97a7f0283346c6a] MAINTAINERS: Update paths to Ingenic platform code git bisect bad d41afc398fbc9dfb8c40b951e97a7f0283346c6a # bad: [f0f4a753079c636d5d43a102edbde0dad1e7de51] MIPS: generic: Add support for Ingenic SoCs git bisect bad f0f4a753079c636d5d43a102edbde0dad1e7de51 # good: [c3e2ee657418f4f2bff1269c0550f8135ed0c927] MIPS: generic: Add support for zboot git bisect good c3e2ee657418f4f2bff1269c0550f8135ed0c927 # good: [02bd530f888c6d6ba4995c3afcd10f87c136f173] MIPS: generic: Increase NR_IRQS to 256 git bisect good 02bd530f888c6d6ba4995c3afcd10f87c136f173 # first bad commit: [f0f4a753079c636d5d43a102edbde0dad1e7de51] MIPS: generic: Add support for Ingenic SoCs
Hi Guenter, Le lun. 12 oct. 2020 à 7:33, Guenter Roeck <linux@roeck-us.net> a écrit : > On Sun, Sep 06, 2020 at 09:29:31PM +0200, Paul Cercueil wrote: >> Add support for Ingenic SoCs in arch/mips/generic/. >> >> The Kconfig changes are here to ensure that it is possible to >> compile >> either a generic kernel that supports Ingenic SoCs, or a >> Ingenic-only >> kernel, both using the same code base, to avoid duplicated code. >> >> Signed-off-by: Paul Cercueil <paul@crapouillou.net> > > This patch results in the following build error (mips:allmodconfig). > > In file included from <command-line>: > arch/mips/mm/init.c: In function 'mem_init': > include/linux/compiler_types.h:319:38: error: call to > '__compiletime_assert_331' > declared with attribute error: BUILD_BUG_ON failed: > IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT) > > Bisect log attached. This doesn't seem to be something that was added with this patch. This COMPILE_BUG_ON() has been here for quite some time... I'm not sure why it triggers now. The mips:allmodconfig works here as long as I switch to CPU_LITTLE_ENDIAN (no big-endian compiler). But I'm at a different HEAD, and I can't find commit d67bc7812221606e1886620a357b13f906814af7 anywhere, in which repo is that found? Cheers, -Paul > --- > # bad: [d67bc7812221606e1886620a357b13f906814af7] Add linux-next > specific files for 20201009 > # good: [549738f15da0e5a00275977623be199fbbf7df50] Linux 5.9-rc8 > git bisect start 'HEAD' 'v5.9-rc8' > # bad: [b71be15b496cc71a3434a198fc1a1b9e08af6c57] Merge > remote-tracking branch 'bpf-next/master' into master > git bisect bad b71be15b496cc71a3434a198fc1a1b9e08af6c57 > # bad: [6be11f939f380ef14bc94242cb0262197ce2a054] Merge > remote-tracking branch 'i2c/i2c/for-next' into master > git bisect bad 6be11f939f380ef14bc94242cb0262197ce2a054 > # good: [c03a115d8ad8a87b6d275c3c91c13bc111217bf6] Merge > remote-tracking branch 'samsung-krzk/for-next' into master > git bisect good c03a115d8ad8a87b6d275c3c91c13bc111217bf6 > # bad: [bdd0ef71b0d7d6a8f1d59af57dc73d19ddc26ad0] Merge > remote-tracking branch 'f2fs/dev' into master > git bisect bad bdd0ef71b0d7d6a8f1d59af57dc73d19ddc26ad0 > # bad: [0c4bd40a7ccd06122c1942f525b714abcd9efe36] Merge > remote-tracking branch 'powerpc/next' into master > git bisect bad 0c4bd40a7ccd06122c1942f525b714abcd9efe36 > # bad: [744d2c114d58c11fd76d572021d7ef3c55a1a225] Merge > remote-tracking branch 'nds32/next' into master > git bisect bad 744d2c114d58c11fd76d572021d7ef3c55a1a225 > # good: [1e9f9330cea616f9f2baf8144f049e4b405715dd] Merge > remote-tracking branch 'csky/linux-next' into master > git bisect good 1e9f9330cea616f9f2baf8144f049e4b405715dd > # bad: [b350041e6f23a71f63f1eee6d939c846838e7e25] MIPS: alchemy: > remove unused ALCHEMY_GPIOINT_AU1000 > git bisect bad b350041e6f23a71f63f1eee6d939c846838e7e25 > # good: [43df4eb2fc9511e09c66252c3fec4f8933a77c73] MIPS: Replace > SIBYTE_1956_WAR by CONFIG_SB1_PASS_2_WORKAROUNDS > git bisect good 43df4eb2fc9511e09c66252c3fec4f8933a77c73 > # good: [13a0ea28e8c698cc0d600fdeed8da3e4d478b97e] MIPS: generic: > Init command line with fw_init_cmdline() > git bisect good 13a0ea28e8c698cc0d600fdeed8da3e4d478b97e > # bad: [d41afc398fbc9dfb8c40b951e97a7f0283346c6a] MAINTAINERS: Update > paths to Ingenic platform code > git bisect bad d41afc398fbc9dfb8c40b951e97a7f0283346c6a > # bad: [f0f4a753079c636d5d43a102edbde0dad1e7de51] MIPS: generic: Add > support for Ingenic SoCs > git bisect bad f0f4a753079c636d5d43a102edbde0dad1e7de51 > # good: [c3e2ee657418f4f2bff1269c0550f8135ed0c927] MIPS: generic: Add > support for zboot > git bisect good c3e2ee657418f4f2bff1269c0550f8135ed0c927 > # good: [02bd530f888c6d6ba4995c3afcd10f87c136f173] MIPS: generic: > Increase NR_IRQS to 256 > git bisect good 02bd530f888c6d6ba4995c3afcd10f87c136f173 > # first bad commit: [f0f4a753079c636d5d43a102edbde0dad1e7de51] MIPS: > generic: Add support for Ingenic SoCs
On Mon, Oct 12, 2020 at 04:59:01PM +0200, Paul Cercueil wrote: > Hi Guenter, > > Le lun. 12 oct. 2020 à 7:33, Guenter Roeck <linux@roeck-us.net> a écrit : > > On Sun, Sep 06, 2020 at 09:29:31PM +0200, Paul Cercueil wrote: > > > Add support for Ingenic SoCs in arch/mips/generic/. > > > > > > The Kconfig changes are here to ensure that it is possible to > > > compile > > > either a generic kernel that supports Ingenic SoCs, or a > > > Ingenic-only > > > kernel, both using the same code base, to avoid duplicated code. > > > > > > Signed-off-by: Paul Cercueil <paul@crapouillou.net> > > > > This patch results in the following build error (mips:allmodconfig). > > > > In file included from <command-line>: > > arch/mips/mm/init.c: In function 'mem_init': > > include/linux/compiler_types.h:319:38: error: call to > > '__compiletime_assert_331' > > declared with attribute error: BUILD_BUG_ON failed: > > IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT) > > > > Bisect log attached. > > This doesn't seem to be something that was added with this patch. This > COMPILE_BUG_ON() has been here for quite some time... I'm not sure why it > triggers now. > Reverting the offending patch from next-20201009 fixes the problem (after fixing a context conflict). > The mips:allmodconfig works here as long as I switch to CPU_LITTLE_ENDIAN > (no big-endian compiler). But I'm at a different HEAD, and I can't find > commit d67bc7812221606e1886620a357b13f906814af7 anywhere, in which repo is > that found? > d67bc7812221606e1886620a357b13f906814af7 is the tip of next-20201009. The key difference is that the code in linux-next sets CONFIG_CPU_SUPPORTS_HUGEPAGES=y and enables CONFIG_MIPS_HUGE_TLB_SUPPORT. This was not previously the case, and was added/enabled with your patch. As result, _CACHE_SHIFT and with it _PFN_SHIFT is one larger than in mainline, which seems sufficient to trigger the problem. Underlying change is that CONFIG_MACH_INGENIC was not set with mips:allmodconfig prior to your patch, but it is now set. Guenter > Cheers, > -Paul > > > --- > > # bad: [d67bc7812221606e1886620a357b13f906814af7] Add linux-next > > specific files for 20201009 > > # good: [549738f15da0e5a00275977623be199fbbf7df50] Linux 5.9-rc8 > > git bisect start 'HEAD' 'v5.9-rc8' > > # bad: [b71be15b496cc71a3434a198fc1a1b9e08af6c57] Merge remote-tracking > > branch 'bpf-next/master' into master > > git bisect bad b71be15b496cc71a3434a198fc1a1b9e08af6c57 > > # bad: [6be11f939f380ef14bc94242cb0262197ce2a054] Merge remote-tracking > > branch 'i2c/i2c/for-next' into master > > git bisect bad 6be11f939f380ef14bc94242cb0262197ce2a054 > > # good: [c03a115d8ad8a87b6d275c3c91c13bc111217bf6] Merge remote-tracking > > branch 'samsung-krzk/for-next' into master > > git bisect good c03a115d8ad8a87b6d275c3c91c13bc111217bf6 > > # bad: [bdd0ef71b0d7d6a8f1d59af57dc73d19ddc26ad0] Merge remote-tracking > > branch 'f2fs/dev' into master > > git bisect bad bdd0ef71b0d7d6a8f1d59af57dc73d19ddc26ad0 > > # bad: [0c4bd40a7ccd06122c1942f525b714abcd9efe36] Merge remote-tracking > > branch 'powerpc/next' into master > > git bisect bad 0c4bd40a7ccd06122c1942f525b714abcd9efe36 > > # bad: [744d2c114d58c11fd76d572021d7ef3c55a1a225] Merge remote-tracking > > branch 'nds32/next' into master > > git bisect bad 744d2c114d58c11fd76d572021d7ef3c55a1a225 > > # good: [1e9f9330cea616f9f2baf8144f049e4b405715dd] Merge remote-tracking > > branch 'csky/linux-next' into master > > git bisect good 1e9f9330cea616f9f2baf8144f049e4b405715dd > > # bad: [b350041e6f23a71f63f1eee6d939c846838e7e25] MIPS: alchemy: remove > > unused ALCHEMY_GPIOINT_AU1000 > > git bisect bad b350041e6f23a71f63f1eee6d939c846838e7e25 > > # good: [43df4eb2fc9511e09c66252c3fec4f8933a77c73] MIPS: Replace > > SIBYTE_1956_WAR by CONFIG_SB1_PASS_2_WORKAROUNDS > > git bisect good 43df4eb2fc9511e09c66252c3fec4f8933a77c73 > > # good: [13a0ea28e8c698cc0d600fdeed8da3e4d478b97e] MIPS: generic: Init > > command line with fw_init_cmdline() > > git bisect good 13a0ea28e8c698cc0d600fdeed8da3e4d478b97e > > # bad: [d41afc398fbc9dfb8c40b951e97a7f0283346c6a] MAINTAINERS: Update > > paths to Ingenic platform code > > git bisect bad d41afc398fbc9dfb8c40b951e97a7f0283346c6a > > # bad: [f0f4a753079c636d5d43a102edbde0dad1e7de51] MIPS: generic: Add > > support for Ingenic SoCs > > git bisect bad f0f4a753079c636d5d43a102edbde0dad1e7de51 > > # good: [c3e2ee657418f4f2bff1269c0550f8135ed0c927] MIPS: generic: Add > > support for zboot > > git bisect good c3e2ee657418f4f2bff1269c0550f8135ed0c927 > > # good: [02bd530f888c6d6ba4995c3afcd10f87c136f173] MIPS: generic: > > Increase NR_IRQS to 256 > > git bisect good 02bd530f888c6d6ba4995c3afcd10f87c136f173 > > # first bad commit: [f0f4a753079c636d5d43a102edbde0dad1e7de51] MIPS: > > generic: Add support for Ingenic SoCs > >
diff --git a/arch/mips/Kbuild.platforms b/arch/mips/Kbuild.platforms index af336a274a7a..5483e38b5dc7 100644 --- a/arch/mips/Kbuild.platforms +++ b/arch/mips/Kbuild.platforms @@ -13,7 +13,6 @@ platform-$(CONFIG_MIPS_COBALT) += cobalt/ platform-$(CONFIG_MACH_DECSTATION) += dec/ platform-$(CONFIG_MIPS_GENERIC) += generic/ platform-$(CONFIG_MACH_JAZZ) += jazz/ -platform-$(CONFIG_MACH_INGENIC) += jz4740/ platform-$(CONFIG_LANTIQ) += lantiq/ platform-$(CONFIG_MACH_LOONGSON2EF) += loongson2ef/ platform-$(CONFIG_MACH_LOONGSON32) += loongson32/ diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 795b33ad4e64..61e8d32eea1b 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -96,6 +96,23 @@ config MIPS_FIXUP_BIGPHYS_ADDR config MIPS_GENERIC bool +config MACH_INGENIC + bool + select SYS_SUPPORTS_32BIT_KERNEL + select SYS_SUPPORTS_LITTLE_ENDIAN + select SYS_SUPPORTS_ZBOOT + select CPU_SUPPORTS_HUGEPAGES + select DMA_NONCOHERENT + select IRQ_MIPS_CPU + select PINCTRL + select GPIOLIB + select COMMON_CLK + select GENERIC_IRQ_CHIP + select BUILTIN_DTB if MIPS_NO_APPENDED_DTB + select USE_OF + select CPU_SUPPORTS_CPUFREQ + select MIPS_EXTERNAL_TIMER + menu "Machine selection" choice @@ -394,20 +411,11 @@ config MACH_JAZZ Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and Olivetti M700-10 workstations. -config MACH_INGENIC +config MACH_INGENIC_SOC bool "Ingenic SoC based machines" - select SYS_SUPPORTS_32BIT_KERNEL - select SYS_SUPPORTS_LITTLE_ENDIAN + select MIPS_GENERIC + select MACH_INGENIC select SYS_SUPPORTS_ZBOOT_UART16550 - select CPU_SUPPORTS_HUGEPAGES - select DMA_NONCOHERENT - select IRQ_MIPS_CPU - select PINCTRL - select GPIOLIB - select COMMON_CLK - select GENERIC_IRQ_CHIP - select BUILTIN_DTB if MIPS_NO_APPENDED_DTB - select USE_OF config LANTIQ bool "Lantiq based platforms" diff --git a/arch/mips/generic/Kconfig b/arch/mips/generic/Kconfig index 5216c850b7e2..55d9aed7ced9 100644 --- a/arch/mips/generic/Kconfig +++ b/arch/mips/generic/Kconfig @@ -73,6 +73,12 @@ config FIT_IMAGE_FDT_OCELOT from Microsemi in the FIT kernel image. This requires u-boot on the platform. +config BOARD_INGENIC + bool "Support boards based on Ingenic SoCs" + select MACH_INGENIC_GENERIC + help + Enable support for boards based on Ingenic SoCs. + config VIRT_BOARD_RANCHU bool "Support Ranchu platform for Android emulator" help diff --git a/arch/mips/generic/Makefile b/arch/mips/generic/Makefile index 2384a6b09e4c..e37a59bae0a6 100644 --- a/arch/mips/generic/Makefile +++ b/arch/mips/generic/Makefile @@ -11,4 +11,5 @@ obj-y += proc.o obj-$(CONFIG_YAMON_DT_SHIM) += yamon-dt.o obj-$(CONFIG_LEGACY_BOARD_SEAD3) += board-sead3.o obj-$(CONFIG_LEGACY_BOARD_OCELOT) += board-ocelot.o +obj-$(CONFIG_MACH_INGENIC) += board-ingenic.o obj-$(CONFIG_VIRT_BOARD_RANCHU) += board-ranchu.o diff --git a/arch/mips/generic/Platform b/arch/mips/generic/Platform index 4cefecf7d14b..7d511fc28a01 100644 --- a/arch/mips/generic/Platform +++ b/arch/mips/generic/Platform @@ -8,7 +8,10 @@ # option) any later version. # +# Note: order matters, keep the asm/mach-generic include last. +cflags-$(CONFIG_MACH_INGENIC_SOC) += -I$(srctree)/arch/mips/include/asm/mach-jz4740 cflags-$(CONFIG_MIPS_GENERIC) += -I$(srctree)/arch/mips/include/asm/mach-generic + load-$(CONFIG_MIPS_GENERIC) += 0xffffffff80100000 zload-$(CONFIG_MIPS_GENERIC) += 0xffffffff81000000 all-$(CONFIG_MIPS_GENERIC) := vmlinux.gz.itb diff --git a/arch/mips/generic/board-ingenic.c b/arch/mips/generic/board-ingenic.c new file mode 100644 index 000000000000..0d7de8f9713d --- /dev/null +++ b/arch/mips/generic/board-ingenic.c @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Support for Ingenic SoCs + * + * Copyright (C) 2009-2010, Lars-Peter Clausen <lars@metafoo.de> + * Copyright (C) 2011, Maarten ter Huurne <maarten@treewalker.org> + * Copyright (C) 2020 Paul Cercueil <paul@crapouillou.net> + */ + +#include <linux/of_address.h> +#include <linux/of_fdt.h> +#include <linux/pm.h> +#include <linux/sizes.h> +#include <linux/suspend.h> +#include <linux/types.h> + +#include <asm/bootinfo.h> +#include <asm/machine.h> +#include <asm/reboot.h> + +static __init char *ingenic_get_system_type(unsigned long machtype) +{ + switch (machtype) { + case MACH_INGENIC_X1830: + return "X1830"; + case MACH_INGENIC_X1000: + return "X1000"; + case MACH_INGENIC_JZ4780: + return "JZ4780"; + case MACH_INGENIC_JZ4770: + return "JZ4770"; + case MACH_INGENIC_JZ4725B: + return "JZ4725B"; + default: + return "JZ4740"; + } +} + +static __init const void *ingenic_fixup_fdt(const void *fdt, const void *match_data) +{ + /* + * Old devicetree files for the qi,lb60 board did not have a /memory + * node. Hardcode the memory info here. + */ + if (!fdt_node_check_compatible(fdt, 0, "qi,lb60") && + fdt_path_offset(fdt, "/memory") < 0) + early_init_dt_add_memory_arch(0, SZ_32M); + + mips_machtype = (unsigned long)match_data; + system_type = ingenic_get_system_type(mips_machtype); + + return fdt; +} + +static const struct of_device_id ingenic_of_match[] __initconst = { + { .compatible = "ingenic,jz4740", .data = (void *)MACH_INGENIC_JZ4740 }, + { .compatible = "ingenic,jz4725b", .data = (void *)MACH_INGENIC_JZ4725B }, + { .compatible = "ingenic,jz4770", .data = (void *)MACH_INGENIC_JZ4770 }, + { .compatible = "ingenic,jz4780", .data = (void *)MACH_INGENIC_JZ4780 }, + { .compatible = "ingenic,x1000", .data = (void *)MACH_INGENIC_X1000 }, + { .compatible = "ingenic,x1830", .data = (void *)MACH_INGENIC_X1830 }, + {} +}; + +MIPS_MACHINE(ingenic) = { + .matches = ingenic_of_match, + .fixup_fdt = ingenic_fixup_fdt, +}; + +static void ingenic_wait_instr(void) +{ + __asm__(".set push;\n" + ".set mips3;\n" + "wait;\n" + ".set pop;\n" + ); +} + +static void ingenic_halt(void) +{ + for (;;) + ingenic_wait_instr(); +} + +static int __maybe_unused ingenic_pm_enter(suspend_state_t state) +{ + ingenic_wait_instr(); + + return 0; +} + +static const struct platform_suspend_ops ingenic_pm_ops __maybe_unused = { + .valid = suspend_valid_only_mem, + .enter = ingenic_pm_enter, +}; + +static int __init ingenic_pm_init(void) +{ + if (boot_cpu_type() == CPU_XBURST) { + if (IS_ENABLED(CONFIG_PM_SLEEP)) + suspend_set_ops(&ingenic_pm_ops); + _machine_halt = ingenic_halt; + } + + return 0; + +} +late_initcall(ingenic_pm_init); diff --git a/arch/mips/jz4740/Kconfig b/arch/mips/jz4740/Kconfig index c2a6fbf8e411..3238e16febd5 100644 --- a/arch/mips/jz4740/Kconfig +++ b/arch/mips/jz4740/Kconfig @@ -1,15 +1,21 @@ # SPDX-License-Identifier: GPL-2.0 + +config MACH_INGENIC_GENERIC + bool + select MACH_INGENIC + select MACH_JZ4740 + select MACH_JZ4770 + select MACH_JZ4780 + select MACH_X1000 + choice prompt "Machine type" - depends on MACH_INGENIC + depends on MACH_INGENIC_SOC default INGENIC_GENERIC_BOARD config INGENIC_GENERIC_BOARD bool "Generic board" - select MACH_JZ4740 - select MACH_JZ4770 - select MACH_JZ4780 - select MACH_X1000 + select MACH_INGENIC_GENERIC config JZ4740_QI_LB60 bool "Qi Hardware Ben NanoNote"
Add support for Ingenic SoCs in arch/mips/generic/. The Kconfig changes are here to ensure that it is possible to compile either a generic kernel that supports Ingenic SoCs, or a Ingenic-only kernel, both using the same code base, to avoid duplicated code. Signed-off-by: Paul Cercueil <paul@crapouillou.net> --- Notes: v2: Rework the code around "system_type" to match the changes done in the previous patches. v3: For Ingenic-only kernel builds, we will now also include arch/mips/include/mach-jz4740. That way, the cpu-feature-overrides.h functionality is not lost. arch/mips/Kbuild.platforms | 1 - arch/mips/Kconfig | 32 +++++---- arch/mips/generic/Kconfig | 6 ++ arch/mips/generic/Makefile | 1 + arch/mips/generic/Platform | 3 + arch/mips/generic/board-ingenic.c | 108 ++++++++++++++++++++++++++++++ arch/mips/jz4740/Kconfig | 16 +++-- 7 files changed, 149 insertions(+), 18 deletions(-) create mode 100644 arch/mips/generic/board-ingenic.c