kernel: clean up this madness
* WARNING: this intentionally breaks the build on devices who
are not setting BOARD_KERNEL_IMAGE_NAME and are still setting
TARGET_USES_UNCOMPRESSED_KERNEL or TARGET_KERNEL_APPEND_DTB
* The logic here is insanity and if all of this can be done
by simply setting BOARD_KERNEL_IMAGE_NAME, why have all this
extra cruft?
* Use cases:
- Set a kernel image name without "-dtb" on the end, you get a kernel.
Nothing more.
- Set a kernel image name with "-dtb" on the end, you get an kernel
with an appended dt.
- Set a kernel image name without "-dtb" on the end, and set
BOARD_KERNEL_SEPARATED_DT. You get a kernel and a separated dt.img.
- Set a kernel image name with "-dtb" on the end, and set
BOARD_KERNEL_SEPARATED_DT. You're crazy.
Change-Id: I5c3fc6eb727255684278ff562c0ee3faa7124b6b
diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
index d1a19f9..16e8429 100644
--- a/build/tasks/kernel.mk
+++ b/build/tasks/kernel.mk
@@ -29,17 +29,19 @@
# TARGET_KERNEL_ARCH = Kernel Arch
# TARGET_KERNEL_HEADER_ARCH = Optional Arch for kernel headers if
# different from TARGET_KERNEL_ARCH
-# TARGET_USES_UNCOMPRESSED_KERNEL = 'true' if Kernel is uncompressed,
-# optional, defaults to false
# TARGET_KERNEL_CROSS_COMPILE_PREFIX = Compiler prefix (e.g. arm-eabi-)
# defaults to arm-linux-androidkernel- for arm
# aarch64-linux-androidkernel- for arm64
# x86_64-linux-androidkernel- for x86
#
-# BOARD_KERNEL_IMAGE_NAME = Built image name, optional,
-# defaults to Image.gz on arm64
-# defaults to Image if TARGET_USES_UNCOMPRESSED_KERNEL
-# defaults to zImage otherwise
+# BOARD_KERNEL_IMAGE_NAME = Built image name
+# for ARM use: zImage
+# for ARM64 use: Image.gz
+# for uncompressed use: Image
+# If using an appended DT, append '-dtb'
+# to the end of the image name.
+# For example, for ARM devices,
+# use zImage-dtb instead of zImage.
#
# KERNEL_TOOLCHAIN_PREFIX = Overrides TARGET_KERNEL_CROSS_COMPILE_PREFIX,
# Set this var in shell to override
@@ -95,25 +97,16 @@
KERNEL_HEADER_DEFCONFIG := $(KERNEL_DEFCONFIG)
endif
-
-ifneq ($(BOARD_KERNEL_IMAGE_NAME),)
- TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME)
-else
- ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true)
- TARGET_PREBUILT_INT_KERNEL_TYPE := Image
- else
- ifeq ($(KERNEL_ARCH),arm64)
- TARGET_PREBUILT_INT_KERNEL_TYPE := Image.gz
- else
- TARGET_PREBUILT_INT_KERNEL_TYPE := zImage
- endif
- endif
- ifeq ($(TARGET_KERNEL_APPEND_DTB),true)
- TARGET_PREBUILT_INT_KERNEL_TYPE := $(TARGET_PREBUILT_INT_KERNEL_TYPE)-dtb
- endif
+ifeq ($(BOARD_KERNEL_IMAGE_NAME),)
+$(error BOARD_KERNEL_IMAGE_NAME not defined.)
endif
-
-TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE)
+ifneq ($(TARGET_USES_UNCOMPRESSED_KERNEL),)
+$(error TARGET_USES_UNCOMPRESSED_KERNEL is deprecated.)
+endif
+ifneq ($(TARGET_KERNEL_APPEND_DTB),)
+$(error TARGET_KERNEL_APPEND_DTB is deprecated.)
+endif
+TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME)
# Clear this first to prevent accidental poisoning from env
MAKE_FLAGS :=
@@ -306,7 +299,7 @@
TARGET_KERNEL_BINARIES: $(KERNEL_OUT_STAMP) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL_STAMP)
@echo "Building Kernel"
- $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(BOARD_KERNEL_IMAGE_NAME)
$(hide) if grep -q 'CONFIG_OF=y' $(KERNEL_CONFIG) ; \
then \
echo "Building DTBs" ; \