diff options
author | Francesco Dolcini <francesco.dolcini@toradex.com> | 2022-08-02 12:18:32 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2022-08-02 15:18:01 +0000 |
commit | d8a9d719d73e2ed4db60bbf3879c6add89ebb3ab (patch) | |
tree | 2e9ba825cb5fbad03de63906f660b65f1c1ef185 /recipes-kernel | |
parent | 456f8989101ae09643cc501c986140bb64d036d7 (diff) |
linux-toradex-mainline: Reduce imx6/7 kernel image size
Reduce kernel image size to be able to fit on the 12MB of flash
currently available on NAND Toradex SOM, without this change it's not
possible to flash these modules.
The following changes are done:
- filesystems non required for the root partition compiled as modules
- disable non-needed i.MX SOCs
- disable non-needed functionality (kexec, swap, spi-nor driver, pata
driver, rc-core drivers).
The new defconfig is generated using merge_config.sh from
imx_v6_v7_defconfig:
```
make imx_v6_v7_defconfig
scripts/kconfig/merge_config.sh -m .config toradex_imx_v6_v7.config
make savedefconfig
```
These steps at the moment need to be executed manually, they are not
currently integrated into the recipe nor the build procedure.
Related-to: ELB-4633
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r-- | recipes-kernel/linux/linux-toradex-mainline-git/defconfig | 44 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-toradex-mainline-git/toradex_imx_v6_v7.config | 70 |
2 files changed, 80 insertions, 34 deletions
diff --git a/recipes-kernel/linux/linux-toradex-mainline-git/defconfig b/recipes-kernel/linux/linux-toradex-mainline-git/defconfig index 00320a5..6d64c94 100644 --- a/recipes-kernel/linux/linux-toradex-mainline-git/defconfig +++ b/recipes-kernel/linux/linux-toradex-mainline-git/defconfig @@ -15,25 +15,14 @@ CONFIG_EXPERT=y CONFIG_PERF_EVENTS=y CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_MXC=y -CONFIG_SOC_IMX31=y -CONFIG_SOC_IMX35=y -CONFIG_SOC_IMX50=y -CONFIG_SOC_IMX51=y -CONFIG_SOC_IMX53=y CONFIG_SOC_IMX6Q=y -CONFIG_SOC_IMX6SL=y -CONFIG_SOC_IMX6SLL=y -CONFIG_SOC_IMX6SX=y CONFIG_SOC_IMX6UL=y CONFIG_SOC_IMX7D=y -CONFIG_SOC_IMX7ULP=y -CONFIG_SOC_VF610=y CONFIG_SMP=y CONFIG_ARM_PSCI=y CONFIG_HIGHMEM=y CONFIG_FORCE_MAX_ZONEORDER=14 CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" -CONFIG_KEXEC=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y @@ -56,6 +45,7 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_BINFMT_MISC=m +# CONFIG_SWAP is not set # CONFIG_COMPAT_BRK is not set CONFIG_NET=y CONFIG_PACKET=y @@ -102,9 +92,7 @@ CONFIG_MTD_DATAFLASH=y CONFIG_MTD_SST25L=y CONFIG_MTD_RAW_NAND=y CONFIG_MTD_NAND_GPMI_NAND=y -CONFIG_MTD_NAND_VF610_NFC=y CONFIG_MTD_NAND_MXC=y -CONFIG_MTD_SPI_NOR=y CONFIG_MTD_UBI=y CONFIG_MTD_UBI_FASTMAP=y CONFIG_MTD_UBI_BLOCK=y @@ -122,7 +110,6 @@ CONFIG_SCSI_SCAN_ASYNC=y CONFIG_ATA=y CONFIG_SATA_AHCI_PLATFORM=y CONFIG_AHCI_IMX=y -CONFIG_PATA_IMX=y CONFIG_NETDEVICES=y # CONFIG_NET_VENDOR_BROADCOM is not set CONFIG_CS89x0_PLATFORM=y @@ -201,15 +188,11 @@ CONFIG_I2C_ALGOPCA=m CONFIG_I2C_GPIO=y CONFIG_I2C_IMX=y CONFIG_SPI=y +CONFIG_SPI_MEM=y CONFIG_SPI_FSL_QUADSPI=y CONFIG_SPI_GPIO=y CONFIG_SPI_IMX=y -CONFIG_SPI_FSL_DSPI=y CONFIG_SPI_SPIDEV=y -CONFIG_PINCTRL_IMX8MM=y -CONFIG_PINCTRL_IMX8MN=y -CONFIG_PINCTRL_IMX8MP=y -CONFIG_PINCTRL_IMX8MQ=y CONFIG_GPIO_SYSFS=y CONFIG_GPIO_MXC=y CONFIG_GPIO_SIOX=m @@ -242,6 +225,7 @@ CONFIG_MFD_MC13XXX_SPI=y CONFIG_MFD_MC13XXX_I2C=y CONFIG_MFD_RN5T618=y CONFIG_MFD_STMPE=y +CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_ANATOP=y CONFIG_REGULATOR_DA9052=y @@ -253,9 +237,6 @@ CONFIG_REGULATOR_MC13783=y CONFIG_REGULATOR_MC13892=y CONFIG_REGULATOR_PFUZE100=y CONFIG_REGULATOR_RN5T618=y -CONFIG_RC_CORE=y -CONFIG_RC_DEVICES=y -CONFIG_IR_GPIO_CIR=y CONFIG_MEDIA_SUPPORT=y CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m @@ -270,7 +251,6 @@ CONFIG_VIDEO_OV5645=m CONFIG_VIDEO_ADV7180=m CONFIG_IMX_IPUV3_CORE=y CONFIG_DRM=y -CONFIG_DRM_MSM=y CONFIG_DRM_PANEL_LVDS=y CONFIG_DRM_PANEL_SIMPLE=y CONFIG_DRM_PANEL_EDP=y @@ -378,6 +358,7 @@ CONFIG_RTC_DRV_PCF8523=y CONFIG_RTC_DRV_PCF8563=y CONFIG_RTC_DRV_M41T80=y CONFIG_RTC_DRV_RC5T619=y +CONFIG_RTC_DRV_RV3029C2=y CONFIG_RTC_DRV_DA9063=y CONFIG_RTC_DRV_MC13XXX=y CONFIG_RTC_DRV_MXC=y @@ -392,12 +373,6 @@ CONFIG_STAGING=y CONFIG_STAGING_MEDIA=y CONFIG_VIDEO_IMX_MEDIA=y CONFIG_COMMON_CLK_PWM=y -CONFIG_CLK_IMX8MM=y -CONFIG_CLK_IMX8MN=y -CONFIG_CLK_IMX8MP=y -CONFIG_CLK_IMX8MQ=y -CONFIG_SOC_IMX8M=y -CONFIG_EXTCON_GPIO=y CONFIG_EXTCON_USB_GPIO=y CONFIG_IIO=y CONFIG_MMA8452=y @@ -413,33 +388,34 @@ CONFIG_PWM_FSL_FTM=y CONFIG_PWM_IMX27=y CONFIG_PWM_IMX_TPM=y CONFIG_NVMEM_IMX_OCOTP=y -CONFIG_NVMEM_VF610_OCOTP=y CONFIG_NVMEM_SNVS_LPGPR=y CONFIG_TEE=y CONFIG_OPTEE=y CONFIG_MUX_MMIO=y CONFIG_SIOX=m CONFIG_SIOX_BUS_GPIO=m -CONFIG_EXT2_FS=y +CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set CONFIG_AUTOFS4_FS=y -CONFIG_FUSE_FS=y +CONFIG_FUSE_FS=m CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=y +CONFIG_NTFS3_FS=m CONFIG_TMPFS_POSIX_ACL=y -CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS=m CONFIG_UBIFS_FS=y CONFIG_NFS_FS=y CONFIG_NFS_V3_ACL=y diff --git a/recipes-kernel/linux/linux-toradex-mainline-git/toradex_imx_v6_v7.config b/recipes-kernel/linux/linux-toradex-mainline-git/toradex_imx_v6_v7.config new file mode 100644 index 0000000..f6f85c5 --- /dev/null +++ b/recipes-kernel/linux/linux-toradex-mainline-git/toradex_imx_v6_v7.config @@ -0,0 +1,70 @@ +## This file contains the differences to imx_v6_v7_defconfig +## it is used to generate toradex defconfig with the following command +## +## make imx_v6_v7_defconfig +## scripts/kconfig/merge_config.sh -m .config toradex_imx_v6_v7.config +## make savedefconfig + +# LZ4 support is better than LZO and provide good boot time performance +CONFIG_KERNEL_LZ4=y + +# USB OTG Role Switch +CONFIG_EXTCON_USB_GPIO=y + +# Usefull for debugging +CONFIG_DYNAMIC_DEBUG=y + +# SPI test and debugging +CONFIG_SPI_SPIDEV=y + +# Colibri Evaluation Board +CONFIG_CAN_MCP251X=m + +# WiFi used on multiple SOM +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m + +# CMA, used by the VPU for example +CONFIG_CMA_SIZE_MBYTES=256 +CONFIG_CMA_SIZE_SEL_MIN=y +CONFIG_CMA_SIZE_PERCENTAGE=50 + +# Others +CONFIG_DRM_SIMPLE_BRIDGE=y + +# Disable not needed SOC/pinctrl/clk +CONFIG_SOC_IMX31=n +CONFIG_SOC_IMX35=n +CONFIG_SOC_IMX50=n +CONFIG_SOC_IMX51=n +CONFIG_SOC_IMX53=n +CONFIG_SOC_VF610=n +CONFIG_SOC_IMX6SL=n +CONFIG_SOC_IMX6SLL=n +CONFIG_SOC_IMX6SX=n +CONFIG_SOC_IMX7ULP=n +CONFIG_SOC_IMX8M=n + +CONFIG_PINCTRL_IMX8MM=n +CONFIG_PINCTRL_IMX8MN=n +CONFIG_PINCTRL_IMX8MP=n +CONFIG_PINCTRL_IMX8MQ=n + +CONFIG_CLK_IMX8MM=n +CONFIG_CLK_IMX8MN=n +CONFIG_CLK_IMX8MP=n +CONFIG_CLK_IMX8MQ=n + +# Non rootfs as module to minimize image size +CONFIG_JFFS2_FS=m +CONFIG_EXT2_FS=m +CONFIG_EXT3_FS=m +CONFIG_FUSE_FS=m +CONFIG_NTFS3_FS=m + +# Disable not needed functionality +CONFIG_KEXEC=n +CONFIG_SWAP=n +CONFIG_RC_CORE=n +CONFIG_MTD_SPI_NOR=n +CONFIG_PATA_IMX=n |