[Letux-kernel] Harmonizing letux_defconfig for OMAP3/4/5 and i.MX6 (and preparing for i.MX8 future)

H. Nikolaus Schaller hns at goldelico.com
Thu Jun 7 17:41:02 CEST 2018


Dear readers,
you may have noticed that Letux OS also runs on the Udoo neo (i.MX6) [1],
but currently needs a differently compiled kernel.

Since we have the device tree to distinguish between SoC architectures,
and the kernel can be compiled for multiple architectures, I have tried
to harmonize both by appending this to letux_defconfig:

CONFIG_ARCH_MXC=y
CONFIG_ARM_ERRATA_643719=y
CONFIG_SOC_IMX6SX=y	# i.MX6SoloX (udoo neo)
CONFIG_SOC_IMX6Q=y	# quad core variant
CONFIG_NR_CPUS=4
CONFIG_ARM_IMX6Q_CPUFREQ=y
CONFIG_NVMEM_IMX_OCOTP=y
CONFIG_PWM_IMX=y
CONFIG_MXS_DMA=y
CONFIG_IMX_SDMA=y
CONFIG_IMX2_WDT=y
CONFIG_IMX_THERMAL=y
CONFIG_SPI_IMX=y
CONFIG_I2C_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
CONFIG_SERIAL_IMX=y
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_IMX6=y
CONFIG_PATA_IMX=y
CONFIG_AHCI_IMX=y
CONFIG_MMC_SDHCI_ESDHC_IMX=y	# for MMC access
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI=y
CONFIG_CAN_FLEXCAN=m	# udoo neo has CAN bus
CONFIG_EEPROM_AT25=m
CONFIG_MICREL_PHY=m
CONFIG_USB_MXS_PHY=m
CONFIG_IMX_IPUV3_CORE=m
CONFIG_LEDS_PWM=m
CONFIG_SND_IMX_SOC=m
CONFIG_FB_MXS=m
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_IMX=m
CONFIG_DRM_IMX_HDMI=m
CONFIG_DRM_IMX_LDB=m
CONFIG_DRM_IMX_TVE=m
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_RTC_DRV_MXC=m
CONFIG_RTC_DRV_SNVS=m	# RTC inside i.MX6
CONFIG_VF610_ADC=m	# ADC inside i.MX6
CONFIG_USB_EHCI_MXC=m

Real changes from =y or =m (and not simple additions) are:

arch/arm/configs/letux_defconfig:5500:warning: override: reassigning to symbol ARCH_MXC
arch/arm/configs/letux_defconfig:5501:warning: override: reassigning to symbol ARM_ERRATA_643719
arch/arm/configs/letux_defconfig:5504:warning: override: reassigning to symbol NR_CPUS
arch/arm/configs/letux_defconfig:5506:warning: override: reassigning to symbol CMDLINE_FROM_BOOTLOADER
arch/arm/configs/letux_defconfig:5506:warning: override: CMDLINE_FROM_BOOTLOADER changes choice state
arch/arm/configs/letux_defconfig:5517:warning: override: reassigning to symbol PCI
arch/arm/configs/letux_defconfig:5523:warning: override: reassigning to symbol MMC_SDHCI_PLTFM
arch/arm/configs/letux_defconfig:5524:warning: override: reassigning to symbol MMC_SDHCI
arch/arm/configs/letux_defconfig:5525:warning: override: reassigning to symbol CAN_FLEXCAN
arch/arm/configs/letux_defconfig:5526:warning: override: reassigning to symbol EEPROM_AT25
arch/arm/configs/letux_defconfig:5527:warning: override: reassigning to symbol MICREL_PHY
arch/arm/configs/letux_defconfig:5529:warning: override: reassigning to symbol IMX_IPUV3_CORE
arch/arm/configs/letux_defconfig:5530:warning: override: reassigning to symbol LEDS_PWM
arch/arm/configs/letux_defconfig:5539:warning: override: reassigning to symbol DRM_PANEL_SIMPLE
arch/arm/configs/letux_defconfig:5541:warning: override: reassigning to symbol RTC_DRV_SNVS
arch/arm/configs/letux_defconfig:5542:warning: override: reassigning to symbol VF610_ADC

I have tested it a little and a GTA04, Pyra and Udoo-neo all seem to
boot fine. But this was a quick test asking for review.

Question to you: do you see any harmful or questionable config
changes for OMAP devices in this list?

Some additional technical notes:

1. There is one minor thing that the console in the CMDLINE must
still be adapted and hence we still get two different uImages,
but this should be moved to U-Boot.

The reason we have the CMDLINE defined in kernel is because U-Boot becomes
incompatible if kernel developers rename the console device...

They rarely do but it happened and switching between two such
kernels becomes a pain if you have to update u-boot each time and
forget about it.

2. the uImage grows by ca. 250kB to 4.7MB

3. installations will now include omap*.dtb and some imx6*.dtb for
the boot partitions

4. One problematic thing in indirectly changed CONFIGS may be

	CONFIG_ARCH_HAS_RESET_CONTROLLER=y

which may stop us from compiling the (OMAP3/AM33xx) PVR/SGX code
if I remember correctly.

5. Udoo neo is missing HDMI and accelerometers (both n/a in mainline
kernel but on github). USB seem to be broken (maybe one more CONFIG
is missing). WiFi (using the same TiWi8 module as the Pyra) and Ethernet
are working fine.

BR,
Nikolaus

[1]: http://shop.goldelico.com/wiki.php?page=Products&vendor=Udoo



More information about the Letux-kernel mailing list