summaryrefslogtreecommitdiff
path: root/recipes-kernel
diff options
context:
space:
mode:
authorFrancesco Dolcini <francesco.dolcini@toradex.com>2022-08-02 12:18:32 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2022-08-02 15:18:01 +0000
commitd8a9d719d73e2ed4db60bbf3879c6add89ebb3ab (patch)
tree2e9ba825cb5fbad03de63906f660b65f1c1ef185 /recipes-kernel
parent456f8989101ae09643cc501c986140bb64d036d7 (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/defconfig44
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-git/toradex_imx_v6_v7.config70
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