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