summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/configs/debug.config10
-rw-r--r--kernel/configs/no_smp.config6
-rw-r--r--kernel/configs/ti_arm64_prune.config485
-rw-r--r--kernel/configs/ti_early_display.config185
-rw-r--r--kernel/configs/ti_multi_v7_prune.config173
-rw-r--r--kernel/configs/ti_rt.config188
-rw-r--r--kernel/dma/coherent.c7
-rw-r--r--kernel/reboot.c3
8 files changed, 1056 insertions, 1 deletions
diff --git a/kernel/configs/debug.config b/kernel/configs/debug.config
index e8db8d938661..c636510201ec 100644
--- a/kernel/configs/debug.config
+++ b/kernel/configs/debug.config
@@ -104,3 +104,13 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
+
+#
+# Power Management
+#
+CONFIG_PM_DEBUG=y
+
+#
+# Crypto Libraries
+#
+CONFIG_CRYPTO_TEST=m
diff --git a/kernel/configs/no_smp.config b/kernel/configs/no_smp.config
new file mode 100644
index 000000000000..676f99d16b6d
--- /dev/null
+++ b/kernel/configs/no_smp.config
@@ -0,0 +1,6 @@
+##################################################
+# NO SMP Config
+##################################################
+
+CONFIG_SMP=n
+CONFIG_CPUSETS=n
diff --git a/kernel/configs/ti_arm64_prune.config b/kernel/configs/ti_arm64_prune.config
new file mode 100644
index 000000000000..ad41cda81c7d
--- /dev/null
+++ b/kernel/configs/ti_arm64_prune.config
@@ -0,0 +1,485 @@
+# Add config flags here that appear in the multi_v7_defconfig but are not
+# used by a kernel targetting only the currently supported TI EVMs
+
+# Non-TI Architectures
+CONFIG_ARCH_ACTIONS=n
+CONFIG_ARCH_SUNXI=n
+CONFIG_ARCH_AGILEX=n
+CONFIG_ARCH_ALPINE=n
+CONFIG_ARCH_APPLE=n
+CONFIG_ARCH_BCM=n
+CONFIG_ARCH_BCM2835=n
+CONFIG_ARCH_BCM_IPROC=n
+CONFIG_ARCH_BCMBCA=n
+CONFIG_ARCH_BERLIN=n
+CONFIG_ARCH_BRCMSTB=n
+CONFIG_ARCH_EXYNOS=n
+CONFIG_ARCH_LAYERSCAPE=n
+CONFIG_ARCH_LG1K=n
+CONFIG_ARCH_HISI=n
+CONFIG_ARCH_KEEMBAY=n
+CONFIG_ARCH_MEDIATEK=n
+CONFIG_ARCH_MESON=n
+CONFIG_ARCH_MVEBU=n
+CONFIG_ARCH_NXP=n
+CONFIG_ARCH_MXC=n
+CONFIG_ARCH_NPCM=n
+CONFIG_ARCH_QCOM=n
+CONFIG_ARCH_ROCKCHIP=n
+CONFIG_ARCH_SEATTLE=n
+CONFIG_ARCH_RENESAS=n
+CONFIG_ARCH_R8A7795=n
+CONFIG_ARCH_R8A7796=n
+CONFIG_ARCH_S32=n
+CONFIG_ARCH_STRATIX10=n
+CONFIG_ARCH_INTEL_SOCFPGA=n
+CONFIG_ARCH_SYNQUACER=n
+CONFIG_ARCH_TEGRA=n
+CONFIG_ARCH_SPRD=n
+CONFIG_ARCH_THUNDER=n
+CONFIG_ARCH_THUNDER2=n
+CONFIG_ARCH_UNIPHIER=n
+CONFIG_ARCH_VEXPRESS=n
+CONFIG_ARCH_VISCONTI=n
+CONFIG_ARCH_XGENE=n
+CONFIG_ARCH_ZX=n
+CONFIG_ARCH_ZYNQMP=n
+CONFIG_ARCH_TEGRA_132_SOC=n
+CONFIG_ARCH_TEGRA_210_SOC=n
+CONFIG_ARCH_TEGRA_186_SOC=n
+
+CONFIG_QCOM_FALKOR_ERRATUM_1003=n
+CONFIG_QCOM_FALKOR_ERRATUM_1009=n
+CONFIG_QCOM_QDF2400_ERRATUM_0065=n
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=n
+
+CONFIG_CAVIUM_ERRATUM_22375=n
+CONFIG_CAVIUM_ERRATUM_23144=n
+CONFIG_CAVIUM_ERRATUM_23154=n
+CONFIG_CAVIUM_ERRATUM_27456=n
+CONFIG_CAVIUM_ERRATUM_30115=n
+
+CONFIG_HISILICON_ERRATUM_161600802=n
+
+# Disable Errata fixes not relevant for Cortex A53 and Cortext A72 cores.
+# The Socionext Synquacer GICv3 pre-ITS workaround is used on K3 devices
+# as well, thats why its left enabled.
+CONFIG_AMPERE_ERRATUM_AC03_CPU_38=n
+CONFIG_ARM64_ERRATUM_832075=n
+CONFIG_ARM64_ERRATUM_1024718=n
+CONFIG_ARM64_ERRATUM_1418040=n
+CONFIG_ARM64_ERRATUM_1165522=n
+CONFIG_ARM64_ERRATUM_1530923=n
+CONFIG_ARM64_ERRATUM_2441007=n
+CONFIG_ARM64_ERRATUM_1286807=n
+CONFIG_ARM64_ERRATUM_1463225=n
+CONFIG_ARM64_ERRATUM_1542419=n
+CONFIG_ARM64_ERRATUM_1508412=n
+CONFIG_ARM64_ERRATUM_2051678=n
+CONFIG_ARM64_ERRATUM_2077057=n
+CONFIG_ARM64_ERRATUM_2658417=n
+CONFIG_ARM64_ERRATUM_2054223=n
+CONFIG_ARM64_ERRATUM_2067961=n
+CONFIG_ARM64_ERRATUM_2441009=n
+CONFIG_CAVIUM_TX2_ERRATUM_219=n
+CONFIG_FUJITSU_ERRATUM_010001=n
+CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=n
+
+# Serial
+CONFIG_SERIAL_8250_FSL=n
+CONFIG_SERIAL_8250_DW=n
+CONFIG_SERIAL_AMBA_PL011=n
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=n
+CONFIG_SERIAL_XILINX_PS_UART=n
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=n
+
+CONFIG_ARM_SCPI_PROTOCOL=n
+CONFIG_ARM_SCPI_POWER_DOMAIN=n
+CONFIG_ARM_SCPI_CPUFREQ=n
+CONFIG_SENSORS_ARM_SCPI=n
+CONFIG_COMMON_CLK_SCPI=n
+
+CONFIG_ARM_MHU=n
+CONFIG_PLATFORM_MHU=n
+
+CONFIG_ACPI=n
+
+CONFIG_NUMA=n
+
+CONFIG_XEN=n
+CONFIG_KVM=n
+
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=n
+
+CONFIG_PCI_XGENE=n
+CONFIG_PCI_HISI=n
+CONFIG_PCIE_KIRIN=n
+
+# DRM
+CONFIG_DRM_NOUVEAU=n
+CONFIG_DRM_I2C_ADV7511=n
+CONFIG_DRM_ETNAVIV=n
+CONFIG_DRM_HISI_HIBMC=n
+CONFIG_DRM_HISI_KIRIN=n
+CONFIG_DRM_MXSFB=n
+CONFIG_DRM_PL111=n
+CONFIG_DRM_LIMA=n
+CONFIG_DRM_PANFROST=n
+
+# Video
+CONFIG_VGA_ARB=n
+CONFIG_FB_EFI=n
+
+# V4L2
+CONFIG_RC_CORE=n
+
+# Sound
+CONFIG_SND_SPI=n
+CONFIG_SND_SOC_FSL_SAI=n
+CONFIG_SND_SOC_AK4613=n
+CONFIG_SND_SOC_ES7134=n
+CONFIG_SND_SOC_ES7241=n
+CONFIG_SND_SOC_TAS571X=n
+
+# USB
+CONFIG_USB_MUSB_HDRC=n
+CONFIG_USB_DWC2=n
+CONFIG_USB_CHIPIDEA=n
+CONFIG_USB_ISP1760=n
+CONFIG_USB_HSIC_USB3503=n
+
+# Generic kernel
+
+# We recommend to turn off Real-Time group scheduling in the
+# kernel when using systemd. RT group scheduling effectively
+# makes RT scheduling unavailable for most userspace, since it
+# requires explicit assignment of RT budgets to each unit whose
+# processes making use of RT. As there's no sensible way to
+# assign these budgets automatically this cannot really be
+# fixed, and it's best to disable group scheduling hence.
+CONFIG_RT_GROUP_SCHED=n
+
+# Remove debug features.
+CONFIG_SLUB_DEBUG=n
+
+# We are not a crash kernel
+CONFIG_CRASH_DUMP=n
+
+# ARM Scalable Vector Extension (SVE) is available only with ARMv8.2-A
+# and above. Since current TI SoCs are based on ARMv8.0, disable SVE
+CONFIG_ARM64_SVE=n
+
+# Plan 9 is a distributed resource sharing protocol thats not
+# typically used on TI processors
+CONFIG_NET_9P=n
+
+# Non-TI hardware vendor specific drivers
+CONFIG_KEYBOARD_CROS_EC=n
+CONFIG_I2C_CROS_EC_TUNNEL=n
+CONFIG_QRTR=n
+CONFIG_SPI_NXP_FLEXSPI=n
+CONFIG_GPIO_ALTERA=n
+CONFIG_GPIO_DWAPB=n
+CONFIG_GPIO_MB86S7X=n
+CONFIG_GPIO_PL061=n
+CONFIG_GPIO_XGENE=n
+CONFIG_POWER_RESET_XGENE=n
+CONFIG_ARM_SP805_WATCHDOG=n
+CONFIG_ARM_SBSA_WATCHDOG=n
+CONFIG_DW_WATCHDOG=n
+CONFIG_MFD_SEC_CORE=n
+CONFIG_REGULATOR_QCOM_SPMI=n
+CONFIG_DRM_MALI_DISPLAY=n
+CONFIG_DRM_RCAR_DW_HDMI=n
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=n
+CONFIG_DRM_DW_HDMI_CEC=n
+CONFIG_FB_SSD1307=n
+CONFIG_MMC_ARMMMCI=n
+CONFIG_MMC_SDHCI_XENON=n
+CONFIG_RTC_DRV_S5M=n
+CONFIG_RTC_DRV_CROS_EC=n
+CONFIG_RTC_DRV_PL031=n
+CONFIG_FSL_EDMA=n
+CONFIG_MV_XOR_V2=n
+CONFIG_PL330_DMA=n
+CONFIG_QCOM_HIDMA_MGMT=n
+CONFIG_QCOM_HIDMA=n
+CONFIG_CHROME_PLATFORMS=n
+CONFIG_CROS_EC=n
+CONFIG_CROS_EC_I2C=n
+CONFIG_CROS_EC_SPI=n
+CONFIG_CROS_EC_CHARDEV=n
+CONFIG_SURFACE_PLATFORMS=n
+CONFIG_COMMON_CLK_S2MPS11=n
+CONFIG_COMMON_CLK_VC5=n
+CONFIG_COMMON_CLK_BD718XX=n
+CONFIG_FSL_ERRATUM_A008585=n
+CONFIG_HISILICON_ERRATUM_161010101=n
+CONFIG_RPMSG_QCOM_GLINK_RPM=n
+CONFIG_SOUNDWIRE_QCOM=n
+CONFIG_EXTCON_USBC_CROS_EC=n
+CONFIG_QCOM_SPMI_ADC5=n
+CONFIG_IIO_CROS_EC_SENSORS_CORE=n
+CONFIG_IIO_CROS_EC_SENSORS=n
+CONFIG_IIO_CROS_EC_LIGHT_PROX=n
+CONFIG_IIO_CROS_EC_BARO=n
+CONFIG_PWM_CROS_EC=n
+CONFIG_SLIM_QCOM_CTRL=n
+CONFIG_SPI_PL022=n
+CONFIG_SLIMBUS=n
+CONFIG_REGMAP_SLIMBUS=n
+CONFIG_SCSI_HISI_SAS=n
+CONFIG_AHCI_CEVA=n
+CONFIG_AHCI_XGENE=n
+CONFIG_AHCI_QORIQ=n
+CONFIG_SATA_SIL24=n
+CONFIG_BCMGENET=n
+CONFIG_SYSTEMPORT=n
+CONFIG_HNS_DSAF=n
+CONFIG_HNS_ENET=n
+CONFIG_HNS3=n
+CONFIG_NET_VENDOR_NVIDIA=n
+CONFIG_NET_VENDOR_RENESAS=n
+CONFIG_NET_VENDOR_SAMSUNG=n
+CONFIG_NET_VENDOR_STMICRO=n
+CONFIG_NET_VENDOR_XILINX=n
+CONFIG_BROADCOM_PHY=n
+CONFIG_BCM54140_PHY=n
+CONFIG_ROCKCHIP_PHY=n
+CONFIG_PCS_XPCS=n
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=n
+CONFIG_HW_RANDOM_CN10K=n
+CONFIG_I2C_CADENCE=n
+CONFIG_I2C_DESIGNWARE_SLAVE=n
+CONFIG_I2C_DESIGNWARE_PLATFORM=n
+CONFIG_I2C_RK3X=n
+CONFIG_PINCTRL_MAX77620=n
+CONFIG_DRM_RCAR_USE_LVDS=n
+CONFIG_DRM_RCAR_USE_MIPI_DSI=n
+CONFIG_SND_SOC_FSL_ASRC=n
+CONFIG_SND_SOC_FSL_AUDMIX=n
+CONFIG_SND_SOC_FSL_SSI=n
+CONFIG_SND_SOC_FSL_SPDIF=n
+CONFIG_SND_SOC_FSL_ESAI=n
+CONFIG_SND_SOC_FSL_MICFIL=n
+CONFIG_SND_SOC_IMX_AUDMUX=n
+CONFIG_MMC_SDHCI_OF_DWCMSHC=n
+CONFIG_MMC_SDHCI_CADENCE=n
+CONFIG_MMC_SDHCI_F_SDH30=n
+CONFIG_MMC_DW=n
+CONFIG_MMC_MTK=n
+CONFIG_PCIE_ALTERA=n
+CONFIG_PCI_HOST_THUNDER_PEM=n
+CONFIG_PCI_HOST_THUNDER_ECAM=n
+CONFIG_PCI_MESON=n
+CONFIG_BRCMSTB_GISB_ARB=n
+CONFIG_VEXPRESS_CONFIG=n
+CONFIG_MTD_NAND_DENALI_DT=n
+CONFIG_MTD_NAND_BRCMNAND=n
+CONFIG_B53=n
+CONFIG_NET_DSA_BCM_SF2=n
+CONFIG_CAN_FLEXCAN=n
+CONFIG_SPI_DESIGNWARE=n
+CONFIG_SPI_ROCKCHIP=n
+CONFIG_DRM_HDLCD=n
+CONFIG_DRM_KOMEDA=n
+CONFIG_COMMON_CLK_RK808=n
+CONFIG_COMMON_CLK_XGENE=n
+CONFIG_SOC_BRCMSTB=n
+CONFIG_NET_VENDOR_ALACRITECH=n
+CONFIG_NET_VENDOR_AMAZON=n
+CONFIG_NET_VENDOR_AMD=n
+CONFIG_NET_VENDOR_AQUANTIA=n
+CONFIG_NET_VENDOR_ARC=n
+CONFIG_NET_VENDOR_ASIX=n
+CONFIG_NET_VENDOR_CORTINA=n
+CONFIG_NET_VENDOR_DAVICOM=n
+CONFIG_NET_VENDOR_ENGLEDER=n
+CONFIG_NET_VENDOR_EZCHIP=n
+CONFIG_NET_VENDOR_GOOGLE=n
+CONFIG_NET_VENDOR_HISILICON=n
+CONFIG_NET_VENDOR_LITEX=n
+CONFIG_NET_VENDOR_MICREL=n
+CONFIG_NET_VENDOR_MICROCHIP=n
+CONFIG_NET_VENDOR_MICROSEMI=n
+CONFIG_NET_VENDOR_NATSEMI=n
+CONFIG_NET_VENDOR_NI=n
+CONFIG_NET_VENDOR_QUALCOMM=n
+CONFIG_NET_VENDOR_ROCKER=n
+CONFIG_NET_VENDOR_SEEQ=n
+CONFIG_NET_VENDOR_SMSC=n
+CONFIG_NET_VENDOR_SOCIONEXT=n
+CONFIG_NET_VENDOR_SOLARFLARE=n
+CONFIG_NET_VENDOR_SYNOPSYS=n
+CONFIG_NET_VENDOR_VERTEXCOM=n
+CONFIG_NET_VENDOR_VIA=n
+CONFIG_NET_VENDOR_WANGXUN=n
+CONFIG_NET_VENDOR_WIZNET=n
+CONFIG_NET_VENDOR_BROADCOM=n
+CONFIG_NET_VENDOR_MICROSOFT=n
+CONFIG_NET_VENDOR_FUNGIBLE=n
+CONFIG_NET_VENDOR_CAVIUM=n
+CONFIG_NET_VENDOR_PENSANDO=n
+CONFIG_NET_VENDOR_CADENCE=n
+CONFIG_NET_VENDOR_MELLANOX=n
+CONFIG_NET_VENDOR_NETRONOME=n
+CONFIG_NET_VENDOR_MARVELL=n
+CONFIG_NET_VENDOR_INTEL=n
+CONFIG_NET_VENDOR_HUAWEI=n
+
+# Serial Power Management Interface (SPMI) has not been used on TI
+# platforms (yet)
+CONFIG_SPMI=n
+
+# DVB and TV tuner cards are rarely used on TI platforms, if at all
+CONFIG_CXD2880_SPI_DRV=n
+CONFIG_MEDIA_TUNER_E4000=n
+CONFIG_MEDIA_TUNER_FC0011=n
+CONFIG_MEDIA_TUNER_FC0012=n
+CONFIG_MEDIA_TUNER_FC0013=n
+CONFIG_MEDIA_TUNER_FC2580=n
+CONFIG_MEDIA_TUNER_IT913X=n
+CONFIG_MEDIA_TUNER_M88RS6000T=n
+CONFIG_MEDIA_TUNER_MAX2165=n
+CONFIG_MEDIA_TUNER_MC44S803=n
+CONFIG_MEDIA_TUNER_MSI001=n
+CONFIG_MEDIA_TUNER_MT2060=n
+CONFIG_MEDIA_TUNER_MT2063=n
+CONFIG_MEDIA_TUNER_MT20XX=n
+CONFIG_MEDIA_TUNER_MT2131=n
+CONFIG_MEDIA_TUNER_MT2266=n
+CONFIG_MEDIA_TUNER_MXL301RF=n
+CONFIG_MEDIA_TUNER_MXL5005S=n
+CONFIG_MEDIA_TUNER_MXL5007T=n
+CONFIG_MEDIA_TUNER_QM1D1B0004=n
+CONFIG_MEDIA_TUNER_QM1D1C0042=n
+CONFIG_MEDIA_TUNER_QT1010=n
+CONFIG_MEDIA_TUNER_R820T=n
+CONFIG_MEDIA_TUNER_SI2157=n
+CONFIG_MEDIA_TUNER_SIMPLE=n
+CONFIG_MEDIA_TUNER_TDA18212=n
+CONFIG_MEDIA_TUNER_TDA18218=n
+CONFIG_MEDIA_TUNER_TDA18250=n
+CONFIG_MEDIA_TUNER_TDA18271=n
+CONFIG_MEDIA_TUNER_TDA827X=n
+CONFIG_MEDIA_TUNER_TDA8290=n
+CONFIG_MEDIA_TUNER_TDA9887=n
+CONFIG_MEDIA_TUNER_TEA5761=n
+CONFIG_MEDIA_TUNER_TEA5767=n
+CONFIG_MEDIA_TUNER_TUA9001=n
+CONFIG_MEDIA_TUNER_XC2028=n
+CONFIG_MEDIA_TUNER_XC4000=n
+CONFIG_MEDIA_TUNER_XC5000=n
+CONFIG_DVB_M88DS3103=n
+CONFIG_DVB_MXL5XX=n
+CONFIG_DVB_STB0899=n
+CONFIG_DVB_STB6100=n
+CONFIG_DVB_STV090x=n
+CONFIG_DVB_STV0910=n
+CONFIG_DVB_STV6110x=n
+CONFIG_DVB_STV6111=n
+CONFIG_DVB_DRXK=n
+CONFIG_DVB_MN88472=n
+CONFIG_DVB_MN88473=n
+CONFIG_DVB_SI2165=n
+CONFIG_DVB_TDA18271C2DD=n
+CONFIG_DVB_CX24110=n
+CONFIG_DVB_CX24116=n
+CONFIG_DVB_CX24117=n
+CONFIG_DVB_CX24120=n
+CONFIG_DVB_CX24123=n
+CONFIG_DVB_DS3000=n
+CONFIG_DVB_MB86A16=n
+CONFIG_DVB_MT312=n
+CONFIG_DVB_S5H1420=n
+CONFIG_DVB_SI21XX=n
+CONFIG_DVB_STB6000=n
+CONFIG_DVB_STV0288=n
+CONFIG_DVB_STV0299=n
+CONFIG_DVB_STV0900=n
+CONFIG_DVB_STV6110=n
+CONFIG_DVB_TDA10071=n
+CONFIG_DVB_TDA10086=n
+CONFIG_DVB_TDA8083=n
+CONFIG_DVB_TDA8261=n
+CONFIG_DVB_TDA826X=n
+CONFIG_DVB_TS2020=n
+CONFIG_DVB_TUA6100=n
+CONFIG_DVB_TUNER_CX24113=n
+CONFIG_DVB_TUNER_ITD1000=n
+CONFIG_DVB_VES1X93=n
+CONFIG_DVB_ZL10036=n
+CONFIG_DVB_ZL10039=n
+CONFIG_DVB_AF9013=n
+CONFIG_DVB_CX22700=n
+CONFIG_DVB_CX22702=n
+CONFIG_DVB_CXD2820R=n
+CONFIG_DVB_CXD2841ER=n
+CONFIG_DVB_DIB3000MB=n
+CONFIG_DVB_DIB3000MC=n
+CONFIG_DVB_DIB7000M=n
+CONFIG_DVB_DIB7000P=n
+CONFIG_DVB_DIB9000=n
+CONFIG_DVB_DRXD=n
+CONFIG_DVB_EC100=n
+CONFIG_DVB_L64781=n
+CONFIG_DVB_MT352=n
+CONFIG_DVB_NXT6000=n
+CONFIG_DVB_RTL2830=n
+CONFIG_DVB_RTL2832=n
+CONFIG_DVB_RTL2832_SDR=n
+CONFIG_DVB_S5H1432=n
+CONFIG_DVB_SI2168=n
+CONFIG_DVB_SP887X=n
+CONFIG_DVB_STV0367=n
+CONFIG_DVB_TDA10048=n
+CONFIG_DVB_TDA1004X=n
+CONFIG_DVB_ZD1301_DEMOD=n
+CONFIG_DVB_ZL10353=n
+CONFIG_DVB_CXD2880=n
+CONFIG_DVB_STV0297=n
+CONFIG_DVB_TDA10021=n
+CONFIG_DVB_TDA10023=n
+CONFIG_DVB_VES1820=n
+CONFIG_DVB_AU8522_DTV=n
+CONFIG_DVB_AU8522_V4L=n
+CONFIG_DVB_BCM3510=n
+CONFIG_DVB_LG2160=n
+CONFIG_DVB_LGDT3305=n
+CONFIG_DVB_LGDT3306A=n
+CONFIG_DVB_LGDT330X=n
+CONFIG_DVB_MXL692=n
+CONFIG_DVB_NXT200X=n
+CONFIG_DVB_OR51132=n
+CONFIG_DVB_OR51211=n
+CONFIG_DVB_S5H1409=n
+CONFIG_DVB_S5H1411=n
+CONFIG_DVB_DIB8000=n
+CONFIG_DVB_MB86A20S=n
+CONFIG_DVB_S921=n
+CONFIG_DVB_MN88443X=n
+CONFIG_DVB_TC90522=n
+CONFIG_DVB_PLL=n
+CONFIG_DVB_TUNER_DIB0070=n
+CONFIG_DVB_TUNER_DIB0090=n
+CONFIG_DVB_A8293=n
+CONFIG_DVB_AF9033=n
+CONFIG_DVB_ASCOT2E=n
+CONFIG_DVB_ATBM8830=n
+CONFIG_DVB_HELENE=n
+CONFIG_DVB_HORUS3A=n
+CONFIG_DVB_ISL6405=n
+CONFIG_DVB_ISL6421=n
+CONFIG_DVB_ISL6423=n
+CONFIG_DVB_IX2505V=n
+CONFIG_DVB_LGS8GL5=n
+CONFIG_DVB_LGS8GXX=n
+CONFIG_DVB_LNBH25=n
+CONFIG_DVB_LNBH29=n
+CONFIG_DVB_LNBP21=n
+CONFIG_DVB_LNBP22=n
+CONFIG_DVB_M88RS2000=n
+CONFIG_DVB_TDA665x=n
+CONFIG_DVB_DRX39XYJ=n
+CONFIG_DVB_CXD2099=n
+CONFIG_DVB_SP2=n
diff --git a/kernel/configs/ti_early_display.config b/kernel/configs/ti_early_display.config
new file mode 100644
index 000000000000..372bc0f9ccc9
--- /dev/null
+++ b/kernel/configs/ti_early_display.config
@@ -0,0 +1,185 @@
+##################################################
+# TI Early Display configs
+##################################################
+
+# Time measurements were perfomed on AM62x-SK and AM62Px-SK
+
+# Configurations that add to boot time have to be reduced
+# in order for display to come up as fast as possible
+
+### Necessary reduction ###
+
+# This config adds support for a virtual file system
+# that developers use to put debugging files into
+#
+# This reduces kernel image size by 335.9KB and boot time by 48ms
+CONFIG_DEBUG_FS=n
+
+# This config adds support for normal Windows file systems
+#
+# This reduces kernel image size by 131.1KB and boot time by 32ms
+CONFIG_VFAT_FS=m
+
+# Kernel can apply read-only permissions to linear aliases of VM areas. This
+# provides extra layer of protection against advertent/inadvertent modification
+# of read-only data through the linear alias. While its a useful security
+# feature, it has a performance impact.
+#
+#This reduces kernel image size by 0KB and boot time by 144ms
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=n
+
+# Remove SPI support
+#
+# This reduces kernel image size by 208.9KB and reduces boot time by 16ms
+CONFIG_SPI=n
+
+# This adds support for PTP support used to precisely synchronize
+# distributed clocks over Ethernet networks
+#
+# This reduces kernel image size by 69.6KB and reduces boot time by 64ms
+CONFIG_PTP_1588_CLOCK=m
+
+# Remove MMC support
+#
+# This reduces kernel image size by 137.2KB and reduces boot time by 32ms
+CONFIG_MMC=m
+
+
+### Additional reduction ###
+
+# These configs reduce boot time by 64ms
+CONFIG_PPS=m
+CONFIG_PSTORE=m
+CONFIG_CPU_FREQ=n
+
+CONFIG_OVERLAY_FS=n
+CONFIG_SQUASHFS=m
+
+CONFIG_COMMON_CLK_SCMI=m
+CONFIG_RESET_SCMI=m
+
+CONFIG_PHY_CADENCE_SIERRA=m
+CONFIG_PHY_XGENE=m
+CONFIG_REALTEK_PHY=m
+
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_MEDIA_CEC_SUPPORT=n
+CONFIG_TCG_TPM=m
+
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_COMPLEX_MAPPINGS=n
+CONFIG_MTD_RAW_NAND=m
+
+CONFIG_MULTIPLEXER=m
+CONFIG_MUX_MMIO=m
+CONFIG_SECTION_MISMATCH_WARN_ONLY=n
+
+CONFIG_KEXEC=n
+CONFIG_KEXEC_FILE=n
+CONFIG_TASKSTATS=n
+CONFIG_ATA=m
+
+CONFIG_RUNTIME_TESTING_MENU=n
+CONFIG_STACKTRACE=n
+CONFIG_SYMBOLIC_ERRNAME=n
+CONFIG_INDIRECT_PIO=n
+CONFIG_QUOTA=n
+
+# Disable ARMv8.1+ architecture features. TI K3 processors
+# are based on ARMv8.0, and these features are not applicable.
+CONFIG_ARM64_CNP=n
+CONFIG_ARM64_HW_AFDBM=n
+CONFIG_ARM64_PAN=n
+CONFIG_ARM64_RAS_EXTN=n
+CONFIG_ARM64_USE_LSE_ATOMICS=n
+# End of architecture features
+
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=n
+CONFIG_MEMORY_HOTPLUG=n
+
+CONFIG_BSD_PROCESS_ACCT=n
+CONFIG_CPU_ISOLATION=n
+CONFIG_IRQ_TIME_ACCOUNTING=n
+CONFIG_POSIX_MQUEUE=n
+CONFIG_PROFILING=n
+
+CONFIG_RD_BZIP2=n
+CONFIG_RD_LZ4=n
+CONFIG_RD_LZMA=n
+CONFIG_RD_LZO=n
+CONFIG_RD_XZ=n
+CONFIG_RD_ZSTD=n
+
+CONFIG_EXTCON=m
+CONFIG_FPGA=m
+CONFIG_HWMON=m
+CONFIG_HWSPINLOCK=n
+CONFIG_I2C_ALGOBIT=m
+CONFIG_IIO=m
+CONFIG_INTERCONNECT=n
+CONFIG_MD=n
+CONFIG_MEMORY=n
+CONFIG_NEW_LEDS=n
+CONFIG_PCI=n
+CONFIG_PWM=n
+CONFIG_RTC_CLASS=n
+CONFIG_SOUND=m
+
+CONFIG_STAGING=n
+CONFIG_THERMAL=n
+CONFIG_USB_SUPPORT=n
+CONFIG_VFIO=m
+CONFIG_VHOST_MENU=n
+CONFIG_VIRTIO_MENU=n
+CONFIG_AT803X_PHY=m
+CONFIG_FSL_RCPM=n
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_MISC=n
+CONFIG_INPUT_MOUSE=n
+CONFIG_INPUT_TOUCHSCREEN=n
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_MOTORCOMM_PHY=m
+
+CONFIG_PHY_AM654_SERDES=m
+CONFIG_PHY_CADENCE_TORRENT=m
+
+CONFIG_RESET_SIMPLE=n
+CONFIG_RPMSG_KDRV=m
+CONFIG_RPMSG_KDRV_ETH_SWITCH=m
+CONFIG_RPMSG_VIRTIO=m
+CONFIG_SCSI=m
+CONFIG_SERIO_AMBAKMI=m
+CONFIG_SERIO_LIBPS2=m
+CONFIG_TUN=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VITESSE_PHY=m
+CONFIG_WLAN=n
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_I2C_SLAVE=n
+
+CONFIG_MFD_HI6421_PMIC=m
+CONFIG_MFD_MAX77620=n
+CONFIG_MFD_MT6397=m
+CONFIG_MFD_RK808=m
+CONFIG_MFD_ROHM_BD718XX=m
+CONFIG_POWER_RESET_BRCMSTB=n
+
+CONFIG_REGULATOR_BD9571MWV=m
+CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_MP8859=m
+CONFIG_REGULATOR_PCA9450=m
+CONFIG_REGULATOR_PF8X00=m
+CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_TPS65219=m
+CONFIG_SERIAL_FSL_LINFLEXUART=m
+CONFIG_SERIAL_FSL_LPUART=m
+
+# These configs enable Display drivers and add 600KB to the kernel Image
+CONFIG_DRM=y
+CONFIG_DRM_TIDSS=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=n
+CONFIG_LOGO=n
diff --git a/kernel/configs/ti_multi_v7_prune.config b/kernel/configs/ti_multi_v7_prune.config
new file mode 100644
index 000000000000..8f1a38fca68a
--- /dev/null
+++ b/kernel/configs/ti_multi_v7_prune.config
@@ -0,0 +1,173 @@
+# Add config flags here that appear in the multi_v7_defconfig but are not
+# used by a kernel targetting only the currently supported TI EVMs
+
+# Non-TI Architectures
+CONFIG_ARCH_ACTIONS=n
+CONFIG_ARCH_AIROHA=n
+CONFIG_ARCH_ALPINE=n
+CONFIG_ARCH_ARTPEC=n
+CONFIG_ARCH_ASPEED=n
+CONFIG_ARCH_AT91=n
+CONFIG_ARCH_BCM=n
+CONFIG_ARCH_BCM_CYGNUS=n
+CONFIG_ARCH_BCM_NSP=n
+CONFIG_ARCH_BCM_5301X=n
+CONFIG_ARCH_BCM_281XX=n
+CONFIG_ARCH_BCM_21664=n
+CONFIG_ARCH_BRCMSTB=n
+CONFIG_ARCH_BERLIN=n
+CONFIG_ARCH_DIGICOLOR=n
+CONFIG_ARCH_HIGHBANK=n
+CONFIG_ARCH_HISI=n
+CONFIG_ARCH_HI3xxx=n
+CONFIG_ARCH_HIP01=n
+CONFIG_ARCH_HIP04=n
+CONFIG_ARCH_HIX5HD2=n
+CONFIG_ARCH_HPE=n
+CONFIG_ARCH_MESON=n
+CONFIG_ARCH_MXC=n
+CONFIG_ARCH_MEDIATEK=n
+CONFIG_ARCH_MILBEAUT=n
+CONFIG_ARCH_QCOM=n
+CONFIG_ARCH_MMP=n
+CONFIG_ARCH_MSM8X60=n
+CONFIG_ARCH_MSM8960=n
+CONFIG_ARCH_MSM8974=n
+CONFIG_ARCH_ROCKCHIP=n
+CONFIG_ARCH_SOCFPGA=n
+CONFIG_ARCH_SPEAR13XX=n
+CONFIG_ARCH_STI=n
+CONFIG_ARCH_EXYNOS=n
+CONFIG_ARCH_SHMOBILE_MULTI=n
+CONFIG_ARCH_EMEV2=n
+CONFIG_ARCH_R7S72100=n
+CONFIG_ARCH_R8A73A4=n
+CONFIG_ARCH_R8A7740=n
+CONFIG_ARCH_R8A7778=n
+CONFIG_ARCH_R8A7779=n
+CONFIG_ARCH_R8A7790=n
+CONFIG_ARCH_R8A7791=n
+CONFIG_ARCH_R8A7793=n
+CONFIG_ARCH_R8A7794=n
+CONFIG_ARCH_RENESAS=n
+CONFIG_ARCH_SH73A0=n
+CONFIG_ARCH_SUNXI=n
+CONFIG_ARCH_STM32=n
+CONFIG_ARCH_SIRF=n
+CONFIG_ARCH_TEGRA=n
+CONFIG_ARCH_TEGRA_2x_SOC=n
+CONFIG_ARCH_TEGRA_3x_SOC=n
+CONFIG_ARCH_TEGRA_114_SOC=n
+CONFIG_ARCH_TEGRA_124_SOC=n
+CONFIG_ARCH_UNIPHIER=n
+CONFIG_ARCH_U8500=n
+CONFIG_ARCH_VEXPRESS=n
+CONFIG_ARCH_VEXPRESS_TC2_PM=n
+CONFIG_ARCH_WM8850=n
+CONFIG_ARCH_ZYNQ=n
+CONFIG_ARCH_VIRT=n
+CONFIG_ARCH_MVEBU=n
+CONFIG_PLAT_SPEAR=n
+CONFIG_CHROME_PLATFORMS=n
+CONFIG_ARCH_INTEL_SOCFPGA=n
+CONFIG_ARCH_SUNPLUS=n
+
+# Multifunction device drivers
+CONFIG_MFD_AS3711=n
+CONFIG_MFD_AS3722=n
+CONFIG_MFD_ATMEL_FLEXCOM=n
+CONFIG_MFD_ATMEL_HLCDC=n
+CONFIG_MFD_BCM590XX=n
+CONFIG_MFD_AXP20X_I2C=n
+CONFIG_MFD_DA9063=n
+CONFIG_MFD_MAX14577=n
+CONFIG_MFD_MAX77686=n
+CONFIG_MFD_MAX77693=n
+CONFIG_MFD_MAX8907=n
+CONFIG_MFD_MAX8997=n
+CONFIG_MFD_MAX8998=n
+CONFIG_MFD_PM8XXX=n
+CONFIG_MFD_RK808=n
+CONFIG_MFD_RN5T618=n
+CONFIG_MFD_SEC_CORE=n
+CONFIG_MFD_STMPE=n
+
+# Regulators
+CONFIG_REGULATOR_ACT8865=n
+CONFIG_REGULATOR_DA9210=n
+CONFIG_REGULATOR_FAN53555=n
+CONFIG_REGULATOR_LP872X=n
+CONFIG_REGULATOR_MAX8952=n
+CONFIG_REGULATOR_MAX8973=n
+CONFIG_REGULATOR_PWM=n
+CONFIG_REGULATOR_TPS51632=n
+CONFIG_REGULATOR_TWL4030=n
+
+# RTC drivers
+CONFIG_RTC_DRV_HYM8563=n
+CONFIG_RTC_DRV_RS5C372=n
+CONFIG_RTC_DRV_BQ32K=n
+CONFIG_RTC_DRV_S35390A=n
+CONFIG_RTC_DRV_RX8581=n
+CONFIG_RTC_DRV_EM3027=n
+
+# Watchdog Device Drivers
+CONFIG_XILINX_WATCHDOG=n
+CONFIG_DW_WATCHDOG=n
+
+# GPIO
+CONFIG_GPIO_DWAPB=n
+CONFIG_GPIO_XILINX=n
+CONFIG_GPIO_TPS6586X=n
+
+# Sound
+CONFIG_SND_ARM=n
+CONFIG_SND_SPI=n
+CONFIG_SND_ATMEL_SOC=n
+CONFIG_SND_SOC_FSL_SAI=n
+CONFIG_SND_SOC_AK4642=n
+CONFIG_SND_SOC_CPCAP=n
+CONFIG_SND_SOC_SGTL5000=n
+CONFIG_SND_SOC_STI_SAS=n
+CONFIG_SND_SOC_WM8978=n
+
+# DRM
+CONFIG_VGA_ARB=n
+CONFIG_DRM_I2C_ADV7511=n
+CONFIG_DRM_NOUVEAU=n
+CONFIG_DRM_EXYNOS=n
+CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=n
+CONFIG_DRM_NXP_PTN3460=n
+CONFIG_DRM_PARADE_PS8622=n
+CONFIG_DRM_STI=n
+CONFIG_DRM_PANEL_SAMSUNG_LD9040=n
+CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=n
+CONFIG_DRM_DUMB_VGA_DAC=n
+CONFIG_DRM_HISI_KIRIN=n
+CONFIG_DRM_RCAR_LVDS=n
+CONFIG_DRM_FSL_DCU=n
+CONFIG_DRM_SII9234=n
+CONFIG_DRM_MXSFB=n
+CONFIG_DRM_HISI_HIBMC=n
+CONFIG_DRM_ATMEL_HLCDC=n
+CONFIG_DRM_STM=n
+CONFIG_DRM_PANEL_ORISETECH_OTM8009A=n
+CONFIG_DRM_PANEL_RAYDIUM_RM68200=n
+CONFIG_DRM_TOSHIBA_TC358764=n
+CONFIG_DRM_ETNAVIV=n
+CONFIG_DRM_PL111=n
+CONFIG_DRM_LIMA=n
+CONFIG_DRM_PANFROST=n
+
+# Video
+CONFIG_LCD_CLASS_DEVICE=n
+CONFIG_FB_EFI=n
+CONFIG_FB_SIMPLE=n
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=n
+CONFIG_FB_ARMCLCD=n
+CONFIG_XEN_FBDEV_FRONTEND=n
+
+# USB
+CONFIG_USB_DWC2=n
+CONFIG_USB_CHIPIDEA=n
+CONFIG_USB_ISP1760=n
diff --git a/kernel/configs/ti_rt.config b/kernel/configs/ti_rt.config
new file mode 100644
index 000000000000..d703fca08d4e
--- /dev/null
+++ b/kernel/configs/ti_rt.config
@@ -0,0 +1,188 @@
+##################################################
+# Real Time Linux Configs
+##################################################
+
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_RT=y
+
+# max out the kernel's tick
+#
+# Ideally this is a balance. Increasing this means we
+# spend more time in the scheduler deciding what we
+# should do and less time on doing it however this
+# also minimizes the time spent running a low-priority
+# task while a real-time priority task is awake
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+
+# omit scheduling ticks for CPUs with a single task
+#
+# If a CPU has only one runnable task there is little
+# need to contiguously interrupt it as there is no other
+# task for it to switch to. This comes at the cost of having
+# to offload the CPU's RCU callbacks to another CPU with
+# an active tick.
+#
+# For workloads with many short-lived tasks HZ_PERIODIC may
+# be the better selection as adaptive-tick modes does not
+# come without tradeoffs. For example the user-to kernel
+# transitions are slightly more expensive
+CONFIG_NO_HZ_FULL=y
+CONFIG_CONTEXT_TRACKING_USER=y
+
+# track our RCU callbacks
+#
+# there are situations in which idle CPUs cannot enter
+# a dynctick or adaptive-tick mode, the most common reason
+# being when a CPU has RCU callbacks pending. However boosting
+# this thread will compete with the realtime task. So let's
+# disable this for now.
+CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=n
+CONFIG_RCU_BOOST=n
+
+# memory management tuning
+#
+# The SLUB allocator (default allocator used by the kernel)
+# uses per-cpu caches to accelerate allocation and freeing of
+# objects local to that processor. This comes at the cost of
+# more indeterminism when freeing. Remove this to remove jitter
+CONFIG_SLUB_CPU_PARTIAL=n
+
+# RCU system tuning
+#
+# The scheduler heavily utilizes the RCU subsystem to avoid
+# large amounts of locking that would be needed otherwise.
+# Removing this is showing to improve the am62x latency numbers
+# using stress-ng and cyclictest.
+CONFIG_RCU_TRACE=n
+
+# remove have kmemleak support
+#
+# Even-though the kmemleak detector is disabled, removing it
+# completely from the build is showing improvements for the
+# am62x latency numbers when monitoring with cyclictest and
+# stress-ng to generate a synthetic background load.
+CONFIG_HAVE_DEBUG_KMEMLEAK=n
+
+# Disable debug features
+
+# CoreSight debug and trace drivers are not typically used in
+# production. Keep them disabled by default. Users can enable
+# when debugging is needed.
+CONFIG_CORESIGHT=n
+
+# Remove support for symbolic crash dumps. These are useful
+# while debugging and not must have for production. This also
+# helps reduce kernel size.
+CONFIG_KALLSYMS=n
+
+# Disable profiling support. Not needed on a production system.
+CONFIG_PROFILING=n
+
+# Disable support for performance events. These are used only
+# for development and debug. Not needed on production system.
+CONFIG_PERF_EVENTS=n
+
+# Disable eBPF support which is typically used for tracing and
+# profiling. This prevents users from loading eBPF programs
+# but BPF usage within the kernel should still work. Disabling
+# JIT compiler will slow down packet filtering.
+CONFIG_BPF_SYSCALL=n
+CONFIG_BPF_JIT=n
+
+# Fine granularity IRQ time accounting is not needed on a
+# production system.
+CONFIG_IRQ_TIME_ACCOUNTING=n
+
+# HACK: speed up event stream timer
+#
+# More of a TODO for myself... however something is putting
+# the CPUs in WFE. Turning this off will increase the
+# frequency this timer that takes the CPUs our of WFE.
+#
+# Ideally this should have a negative effect on our measurements
+# as our CPUs are interrupted more often.
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=n
+
+# Disable ARMv8.1+ architecture featurres. TI processors are based
+# on ARMv8.0, and these feaures are not applicable. If enabled
+# they increase worst case latency from 41 usec to 83 usec when
+# tested on AM62x silicon with 1 hour cyclictest.
+CONFIG_ARM64_HW_AFDBM=n
+CONFIG_ARM64_PAN=n
+CONFIG_ARM64_USE_LSE_ATOMICS=n
+CONFIG_ARM64_RAS_EXTN=n
+CONFIG_ARM64_CNP=n
+CONFIG_ARM64_PTR_AUTH=n
+CONFIG_ARM64_AMU_EXTN=n
+CONFIG_ARM64_TLB_RANGE=n
+CONFIG_ARM64_BTI=n
+CONFIG_ARM64_E0PD=n
+
+# Disable group scheduling. We already disable RT_GROUP_SCHEDULING since
+# there is no way to meaningfully use it (see kernel/configs/ti_arm64_prune.config).
+# Disable group scheduling as such on RT kernel - the main focus anyway
+# is on RT tasks there.
+CONFIG_SCHED_AUTOGROUP=n
+
+# Disable symmetric multi-threading scheduler. Its not used on ARM64
+CONFIG_SCHED_SMT=n
+
+# Kernel stack base address randomization helps frustate attacks that depend on
+# stack address determinism. But it has an impact on RT latency. Using 1 hour
+# cyclictest on AM62x, it was found to increase worst case latency from 50 usecs
+# to 69 usecs. For RT kernel alone, be biased towards better latency over extra
+# security.
+CONFIG_RANDOMIZE_KSTACK_OFFSET=n
+
+# Kernel can apply read-only permissions to linear aliases of VM areas. This
+# provides extra layer of protection against advertent/inadvertent modification
+# of read-only data through the linear alias. While its a useful security
+# feature, it has performance and RT latency impact. When testing on AM62x
+# hardware using cyclictest running for 1 hour, the worst case latency increased
+# from 50 usecs to 58 usecs when this feature was enabled.
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=n
+
+# Kernel page table isolation (KAISER) unmaps kernel page tables when in EL0
+# to mitigate speculation attacks that enable privilege bypass. Note that CPUs
+# used on K3 SoCs are not impacted by meltdown vulnerability (CVE-2017-5754).
+# Using a 6 hour cyclictest, enabling KAISER was seen to increase worst case
+# latency by about 20 usecs (increase from 50 usecs to 70 usecs on AM62x hardware
+# using cutdown configuration designed to minimizeRT latency)
+CONFIG_UNMAP_KERNEL_AT_EL0=n
+
+# Disable control groups which are not minimum required by systemd and docker.
+# These can be enabled as per need of end application.
+#
+# Keeping device control group enabled as docker example does not start without
+# it.
+#
+# Having these enabled has an impact on RT latency. Using AM62x, using cyclictest,
+# a 40 usecs latency impact was seen (worst case latency went from 50 usecs to 90
+# usecs)
+CONFIG_MEMCG=n
+CONFIG_BLK_CGROUP=n
+CONFIG_CGROUP_SCHED=n
+CONFIG_CGROUP_PIDS=n
+CONFIG_CGROUP_FREEZER=n
+CONFIG_CGROUP_HUGETLB=n
+CONFIG_CPUSETS=n
+CONFIG_CGROUP_CPUACCT=n
+CONFIG_CGROUP_PERF=n
+CONFIG_CGROUP_BPF=n
+
+# HACK: Remove security features with real-time latency effects.
+# Unless you have aggressive latency goals you will most likely
+# want these feature enabled. ;)
+CONFIG_ARM64_TAGGED_ADDR_ABI=n
+CONFIG_SECCOMP=n
+CONFIG_STACKPROTECTOR=n
+CONFIG_VMAP_STACK=n
+CONFIG_GCC_PLUGINS=n
+CONFIG_RANDOMIZE_BASE=n
+
+#Disable PM features
+CONFIG_HOTPLUG_CPU=n
+CONFIG_CPU_IDLE=n
+CONFIG_CPU_FREQ=n
+CONFIG_SUSPEND=n
diff --git a/kernel/dma/coherent.c b/kernel/dma/coherent.c
index ff5683a57f77..ffcbe307ca4b 100644
--- a/kernel/dma/coherent.c
+++ b/kernel/dma/coherent.c
@@ -4,6 +4,7 @@
* Borrowed from i386
*/
#include <linux/io.h>
+#include <linux/of.h>
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -146,6 +147,9 @@ static void *__dma_alloc_from_coherent(struct device *dev,
unsigned long flags;
int pageno;
void *ret;
+ static bool ipu_early_booted;
+
+ ipu_early_booted = of_property_read_bool(dev->of_node, "late_attach");
spin_lock_irqsave(&mem->spinlock, flags);
@@ -163,7 +167,8 @@ static void *__dma_alloc_from_coherent(struct device *dev,
((dma_addr_t)pageno << PAGE_SHIFT);
ret = mem->virt_base + ((dma_addr_t)pageno << PAGE_SHIFT);
spin_unlock_irqrestore(&mem->spinlock, flags);
- memset(ret, 0, size);
+ if (!(strstr(dev->kobj.name, "58820000.ipu") && ipu_early_booted))
+ memset(ret, 0, size);
return ret;
err:
spin_unlock_irqrestore(&mem->spinlock, flags);
diff --git a/kernel/reboot.c b/kernel/reboot.c
index 6ebef11c8876..395a0ea3c7a8 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -55,6 +55,7 @@ struct sys_off_handler {
enum sys_off_mode mode;
bool blocking;
void *list;
+ struct device *dev;
};
/*
@@ -324,6 +325,7 @@ static int sys_off_notify(struct notifier_block *nb,
data.cb_data = handler->cb_data;
data.mode = mode;
data.cmd = cmd;
+ data.dev = handler->dev;
return handler->sys_off_cb(&data);
}
@@ -511,6 +513,7 @@ int devm_register_sys_off_handler(struct device *dev,
handler = register_sys_off_handler(mode, priority, callback, cb_data);
if (IS_ERR(handler))
return PTR_ERR(handler);
+ handler->dev = dev;
return devm_add_action_or_reset(dev, devm_unregister_sys_off_handler,
handler);