[Lenny400] [Letux-kernel] JZ4730/Minibook framebuffer driver updates

H. Nikolaus Schaller hns at goldelico.com
Wed Sep 13 08:14:26 CEST 2017


Hi Paul,

> Am 13.09.2017 um 07:43 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> Why are CPU and board connected by Kconfig at all?
> 
> On ARM I am used to that we can configure the kernel to support OMAP3, OMAP4 and
> OMAP5 in parallel. During runtime the DT will choose which code path for CPU
> initialization is running.
> 
> And independently of that we can configure to build a DT for different OMAP3,
> OMAP4 and OMAP5 boards and again only the right DTB is loaded by U-Boot.
> 
> So the Kconfigs are independent and the Board-DT config does not automatically
> choose a CPU config (select MACH_JZ4730).
> 
> Maybe this is historic for MIPS.

I have studied the Kconfig and wasn't fully aware that there is just a single
Kconfig file for Board and CPU type...

choice
	prompt "Machine type"
	depends on MACH_INGENIC
	default JZ4740_QI_LB60

config JZ4730_MIPSBOOK_400
	bool "JZ4730 based small Netbook (e.g. Skytone Alpha 400, Razorbook 400, Letux 400)"
	select MACH_JZ4730

config JZ4740_QI_LB60
	bool "Qi Hardware Ben NanoNote"
	select MACH_JZ4740

config JZ4780_CI20
	bool "MIPS Creator CI20"
	select MACH_JZ4780

endchoice

config MACH_JZ4730
	bool
	select SYS_HAS_CPU_MIPS32_R1

config MACH_JZ4740
	bool
	select SYS_HAS_CPU_MIPS32_R1

config MACH_JZ4780
	bool
	select MIPS_CPU_SCACHE
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_SUPPORTS_HIGHMEM

So the MACH_JZ4* configs are hidden and not user-visible.

Maybe MACH_JZ4730 and MACH_JZ4740 and MACH_JZ4780 are mutually exclusive and
this is done indirectly by the "choice Machine type".

This does not allow for the "single uImage, multiple DTB" principle for supporting
multiple boards by a single distribution. It seems as there is work in progress:

config MIPS_GENERIC
	bool "Generic board-agnostic MIPS kernel"
	help
	  Select this to build a kernel which aims to support multiple boards,
	  generally using a flattened device tree passed from the bootloader
	  using the boot protocol defined in the UHI (Unified Hosting
	  Interface) specification.

...
config MACH_INGENIC
	bool "Ingenic SoC based machines"

but does not yet support Ingenic SoC based systems.

In this situation it is probably the best to live with a single Kconfig and defconfig
patch in one feature branch.

BR,
Nikolaus



More information about the Lenny400 mailing list