ANDROID: GKI: add support for Amlogic SoCs, everything as modules

Add build config, and kernel config fragment to build a GKI kernel for
Amlogic SoCs with *all* SoC-specific functionality built as modules.

Bug: 179406580
Change-Id: I76664649b00f968819f9c8fefd18656e0b519e79
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
(cherry picked from commit db7b42ae4d8de5d9616f88ebf831b2752d08b47b kernel/common android-mainline)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Kevin Hilman 2020-12-09 20:27:05 -08:00 committed by Greg Kroah-Hartman
parent a7db97195b
commit 9eb5a3a29e
2 changed files with 167 additions and 0 deletions

View File

@ -0,0 +1,132 @@
#
# Generic drivers/frameworks
#
CONFIG_COMMON_CLK_PWM=m
CONFIG_REGULATOR_PWM=m
CONFIG_PWRSEQ_EMMC=m
CONFIG_PWRSEQ_SIMPLE=m
CONFIG_USB_DWC2=m
#
# Networking
#
CONFIG_REALTEK_PHY=m
CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=m
#
# Amlogic
#
CONFIG_ARCH_MESON=y
CONFIG_SERIAL_MESON=m
CONFIG_SERIAL_MESON_CONSOLE=y
#
# Amlogic drivers as modules
#
# core
CONFIG_MESON_SM=m
CONFIG_RESET_MESON=m
CONFIG_MESON_IRQ_GPIO=m
# clocks
CONFIG_COMMON_CLK_MESON_REGMAP=m
CONFIG_COMMON_CLK_MESON_DUALDIV=m
CONFIG_COMMON_CLK_MESON_MPLL=m
CONFIG_COMMON_CLK_MESON_PHASE=m
CONFIG_COMMON_CLK_MESON_PLL=m
CONFIG_COMMON_CLK_MESON_SCLK_DIV=m
CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=m
CONFIG_COMMON_CLK_MESON_AO_CLKC=m
CONFIG_COMMON_CLK_MESON_EE_CLKC=m
CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=m
CONFIG_COMMON_CLK_GXBB=m
CONFIG_COMMON_CLK_AXG=m
CONFIG_COMMON_CLK_G12A=m
# PHY
CONFIG_PHY_MESON8B_USB2=m
CONFIG_PHY_MESON_GXL_USB2=m
CONFIG_PHY_MESON_G12A_USB2=m
CONFIG_PHY_MESON_G12A_USB3_PCIE=m
CONFIG_PHY_MESON_AXG_PCIE=m
CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=m
# peripherals
CONFIG_I2C_MESON=m
CONFIG_MMC_MESON_GX=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_USB_DWC3_MESON_G12A=m
CONFIG_MESON_SARADC=m
CONFIG_SPI_MESON_SPICC=m
CONFIG_SPI_MESON_SPIFC=m
CONFIG_PCI_MESON=m
CONFIG_DWMAC_MESON=m
CONFIG_MDIO_BUS_MUX_MESON_G12A=m
CONFIG_MESON_GXL_PHY=m
CONFIG_PINCTRL_MESON=m
CONFIG_PINCTRL_MESON_GXBB=m
CONFIG_PINCTRL_MESON_GXL=m
CONFIG_PINCTRL_MESON_AXG=m
CONFIG_PINCTRL_MESON_AXG_PMX=m
CONFIG_PINCTRL_MESON_G12A=m
CONFIG_MESON_GXBB_WATCHDOG=m
CONFIG_MESON_WATCHDOG=m
CONFIG_MTD_NAND_MESON=m
CONFIG_PWM_MESON=m
CONFIG_IR_MESON=m
CONFIG_MESON_EFUSE=m
CONFIG_MFD_KHADAS_MCU=m
CONFIG_KHADAS_MCU_FAN_THERMAL=m
CONFIG_AMLOGIC_THERMAL=m
# sound
CONFIG_SND_MESON_AXG_SOUND_CARD=m
CONFIG_SND_MESON_GX_SOUND_CARD=m
CONFIG_SND_MESON_G12A_TOHDMITX=m
# display / video
CONFIG_DRM_MESON=m
CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
CONFIG_CEC_MESON_AO=m
CONFIG_CEC_MESON_G12A_AO=m
CONFIG_VIDEO_MESON_GE2D=m
# SoC drivers
CONFIG_MESON_CANVAS=m
CONFIG_MESON_CLK_MEASURE=m
CONFIG_MESON_GX_PM_DOMAINS=m
CONFIG_MESON_EE_PM_DOMAINS=m
CONFIG_MESON_SECURE_PM_DOMAINS=m
#
# Amlogic drivers disable
#
# 32-bit SoC drivers
CONFIG_MESON6_TIMER=n
CONFIG_MESON_MX_SOCINFO=n
# only needed by DRM on S805X
CONFIG_MESON_GX_SOCINFO=n
#
# Debug / Testing
#
# devtmpfs needed for buildroot/udev module loading, serial console
#CONFIG_DEVTMPFS=y
#CONFIG_DEVTMPFS_MOUNT=y
# debug/testing with FB console
#CONFIG_DRM_KMS_FB_HELPER=y
#CONFIG_DRM_FBDEV_EMULATION=y
#CONFIG_FB=y
#CONFIG_VT=y
#CONFIG_FRAMEBUFFER_CONSOLE=y
#CONFIG_LOGO=y

35
build.config.amlogic Normal file
View File

@ -0,0 +1,35 @@
. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki.aarch64
DEFCONFIG=amlogic_gki_defconfig
PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/amlogic_gki.fragment"
POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}"
# needed for DT overlay support
DTC_FLAGS="-@"
MAKE_GOALS="${MAKE_GOALS}
amlogic/meson-g12a-sei510.dtb
amlogic/meson-sm1-sei610.dtb
amlogic/meson-sm1-khadas-vim3l.dtb
amlogic/meson-g12b-a311d-khadas-vim3.dtb
"
FILES="${FILES}
arch/arm64/boot/Image.lz4
arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dtb
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dtb
arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l.dtb
arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb
"
#
# NOTE: Using Image.lz4 in MAKE_GOALS does not work because
# kernel build passes legacy option (-l) to lz4 command
# and u-boot fails to decompress. Instead, add custom
# command to lz4 compress same options as kernel, but
# without the -l.
#
EXTRA_CMDS="lz4_compress"
function lz4_compress() {
lz4 -f -12 --favor-decSpeed ${OUT_DIR}/arch/arm64/boot/Image ${OUT_DIR}/arch/arm64/boot/Image.lz4
}