From d0da01fd61ec24fae56f1fa8379425855618d7e9 Mon Sep 17 00:00:00 2001 From: Alistair Delva Date: Mon, 21 Nov 2022 16:11:21 -0800 Subject: [PATCH] ANDROID: GKI: Add 64-bit RISC-V config Add a "fake" GKI for RISC-V based on the arm64 one. This implementation simply symlinks the arm64 gki_defconfig and merges in two other configs: - arch/riscv/configs/64-bit.config This is an upstream file which enables RISC-V for 64-bit. - arch/riscv/configs/gki.config This is a workaround file which enables things the ARM64 architecture pre-selects, such as GPIOLIB. Without enabling these options, some drivers are incorrectly dropped from the gki_defconfig. Bug: 260012551 Signed-off-by: Alistair Delva Change-Id: Ifad59ed483bdbb736e905eefc5107328155a361b --- BUILD.bazel | 3 +++ arch/riscv/configs/gki.config | 2 ++ arch/riscv/configs/gki_defconfig | 1 + build.config.gki.riscv64 | 26 ++++++++++++++++++++++++++ build.config.riscv64 | 14 ++++++++++++++ 5 files changed, 46 insertions(+) create mode 100644 arch/riscv/configs/gki.config create mode 120000 arch/riscv/configs/gki_defconfig create mode 100644 build.config.gki.riscv64 create mode 100644 build.config.riscv64 diff --git a/BUILD.bazel b/BUILD.bazel index ed296689b215..82bc747fc41c 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -22,6 +22,9 @@ define_common_kernels(target_configs = { "kernel_aarch64_debug": { "module_implicit_outs": COMMON_GKI_MODULES_LIST, }, + "kernel_riscv64": { + "module_implicit_outs": COMMON_GKI_MODULES_LIST, + }, "kernel_x86_64": { "kmi_symbol_list_strict_mode": False, "module_implicit_outs": COMMON_GKI_MODULES_LIST, diff --git a/arch/riscv/configs/gki.config b/arch/riscv/configs/gki.config new file mode 100644 index 000000000000..5558fef96af9 --- /dev/null +++ b/arch/riscv/configs/gki.config @@ -0,0 +1,2 @@ +CONFIG_CPU_FREQ=y +CONFIG_GPIOLIB=y diff --git a/arch/riscv/configs/gki_defconfig b/arch/riscv/configs/gki_defconfig new file mode 120000 index 000000000000..3388ea403df4 --- /dev/null +++ b/arch/riscv/configs/gki_defconfig @@ -0,0 +1 @@ +../../arm64/configs/gki_defconfig \ No newline at end of file diff --git a/build.config.gki.riscv64 b/build.config.gki.riscv64 new file mode 100644 index 000000000000..0eb01c4975de --- /dev/null +++ b/build.config.gki.riscv64 @@ -0,0 +1,26 @@ +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.common +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.riscv64 +. ${ROOT_DIR}/${KERNEL_DIR}/build.config.gki + +MAKE_GOALS="${MAKE_GOALS} +Image.lz4 +Image.gz +" + +FILES="${FILES} +arch/riscv/boot/Image.lz4 +arch/riscv/boot/Image.gz +" + +BUILD_SYSTEM_DLKM=1 +MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules + +BUILD_GKI_CERTIFICATION_TOOLS=1 + +BUILD_GKI_ARTIFACTS=1 +BUILD_GKI_BOOT_IMG_SIZE=67108864 +BUILD_GKI_BOOT_IMG_GZ_SIZE=47185920 +BUILD_GKI_BOOT_IMG_LZ4_SIZE=53477376 + +PRE_DEFCONFIG_CMDS="mkdir -p \${OUT_DIR}/arch/riscv/configs/ && cat ${ROOT_DIR}/${KERNEL_DIR}/arch/riscv/configs/gki_defconfig ${ROOT_DIR}/${KERNEL_DIR}/arch/riscv/configs/64-bit.config ${ROOT_DIR}/${KERNEL_DIR}/arch/riscv/configs/gki.config > \${OUT_DIR}/arch/riscv/configs/${DEFCONFIG};" +POST_DEFCONFIG_CMDS="" diff --git a/build.config.riscv64 b/build.config.riscv64 new file mode 100644 index 000000000000..0ef054b61a84 --- /dev/null +++ b/build.config.riscv64 @@ -0,0 +1,14 @@ +ARCH=riscv +MAKE_GOALS=" +Image +modules +" + +FILES=" +arch/riscv/boot/Image +vmlinux +System.map +vmlinux.symvers +modules.builtin +modules.builtin.modinfo +"