From 9eb5a3a29e7f380985d7e4fa6e306f89d07384bc Mon Sep 17 00:00:00 2001 From: Kevin Hilman Date: Wed, 9 Dec 2020 20:27:05 -0800 Subject: [PATCH] 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 (cherry picked from commit db7b42ae4d8de5d9616f88ebf831b2752d08b47b kernel/common android-mainline) Signed-off-by: Greg Kroah-Hartman --- arch/arm64/configs/amlogic_gki.fragment | 132 ++++++++++++++++++++++++ build.config.amlogic | 35 +++++++ 2 files changed, 167 insertions(+) create mode 100644 arch/arm64/configs/amlogic_gki.fragment create mode 100644 build.config.amlogic diff --git a/arch/arm64/configs/amlogic_gki.fragment b/arch/arm64/configs/amlogic_gki.fragment new file mode 100644 index 000000000000..d2280d6fcb2d --- /dev/null +++ b/arch/arm64/configs/amlogic_gki.fragment @@ -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 diff --git a/build.config.amlogic b/build.config.amlogic new file mode 100644 index 000000000000..bf67d36c4d3e --- /dev/null +++ b/build.config.amlogic @@ -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 +}