summaryrefslogtreecommitdiff
path: root/Kernel.mk (plain)
blob: a09539f5cfcc53fb8bb004eb9bb0ff03ed84a641
1#if use probuilt kernel or build kernel from source code
2
3KERNEL_ROOTDIR := common
4KERNEL_KO_OUT := $(PRODUCT_OUT)/obj/lib_vendor
5
6WIFI_MODULE := multiwifi
7
8INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
9
10BOARD_MKBOOTIMG_ARGS := --kernel_offset $(BOARD_KERNEL_OFFSET) --header_version $(BOARD_BOOTIMG_HEADER_VERSION)
11
12INSTALLED_2NDBOOTLOADER_TARGET := $(PRODUCT_OUT)/2ndbootloader
13
14ifneq ($(TARGET_KERNEL_BUILT_FROM_SOURCE), true)
15TARGET_PREBUILT_KERNEL := device/amlogic/curie-kernel/Image.gz
16INSTALLED_BOARDDTB_TARGET := $(PRODUCT_OUT)/dt.img
17LOCAL_DTB := device/amlogic/curie-kernel/curie.dtb
18
19$(TARGET_PREBUILT_KERNEL): $(INSTALLED_BOARDDTB_TARGET)
20 @echo "cp kernel modules"
21 mkdir -p $(PRODUCT_OUT)/root/boot
22 mkdir -p $(PRODUCT_OUT)/vendor/lib/firmware/video
23 mkdir -p $(PRODUCT_OUT)/obj/lib
24 mkdir -p $(PRODUCT_OUT)/obj/KERNEL_OBJ/
25 mkdir -p $(PRODUCT_OUT)/recovery/root/boot
26 mkdir -p $(KERNEL_KO_OUT)
27 cp device/amlogic/curie-kernel/lib/mali.ko $(PRODUCT_OUT)/vendor/lib/
28 cp device/amlogic/curie-kernel/lib/modules/* $(KERNEL_KO_OUT)/
29 cp device/amlogic/curie-kernel/tdk/* $(PRODUCT_OUT)/obj/lib/
30 cp device/amlogic/curie-kernel/tdk/* $(PRODUCT_OUT)/vendor/lib/
31 cp device/amlogic/curie-kernel/tdk/* $(PRODUCT_OUT)/recovery/root/boot/
32 -cp device/amlogic/curie-kernel/lib/optee_armtz.ko $(PRODUCT_OUT)/vendor/lib/
33 -cp device/amlogic/curie-kernel/lib/optee.ko $(PRODUCT_OUT)/vendor/lib/
34 cp device/amlogic/curie-kernel/lib/firmware/video/* $(PRODUCT_OUT)/vendor/lib/firmware/video/
35 -cp device/amlogic/curie-kernel/obj/KERNEL_OBJ/vmlinux $(PRODUCT_OUT)/obj/KERNEL_OBJ/
36 mkdir -p $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/
37 cp $(KERNEL_KO_OUT)/* $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/
38 mkdir -p $(PRODUCT_OUT)/vendor/lib/egl
39 mkdir -p $(PRODUCT_OUT)/vendor/lib64/egl
40 cp device/amlogic/curie-kernel/lib/egl/* $(PRODUCT_OUT)/vendor/lib/egl/
41 cp device/amlogic/curie-kernel/lib64/egl/* $(PRODUCT_OUT)/vendor/lib64/egl/
42
43$(INSTALLED_KERNEL_TARGET): $(TARGET_PREBUILT_KERNEL) | $(ACP)
44 @echo "Kernel installed"
45 $(transform-prebuilt-to-target)
46
47$(INSTALLED_BOARDDTB_TARGET): $(LOCAL_DTB) | $(ACP)
48 @echo "dtb installed"
49 $(transform-prebuilt-to-target)
50
51$(INSTALLED_2NDBOOTLOADER_TARGET): $(INSTALLED_BOARDDTB_TARGET) | $(ACP)
52 @echo "2ndbootloader installed"
53 $(transform-prebuilt-to-target)
54
55else
56
57-include device/amlogic/common/gpu.mk
58-include device/amlogic/common/media_modules.mk
59-include device/amlogic/common/wifi_modules.mk
60
61KERNEL_DEVICETREE := gxl_p241_1g gxl_p241_v2-1g
62
63KERNEL_DEFCONFIG := meson64_defconfig
64KERNEL_ARCH := arm64
65
66DTBO_DEVICETREE := common_overlay_dt
67
68KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
69KERNEL_CONFIG := $(KERNEL_OUT)/.config
70INTERMEDIATES_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image.gz
71TARGET_AMLOGIC_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/uImage
72TARGET_AMLOGIC_INT_RECOVERY_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image_recovery
73
74BOARD_VENDOR_KERNEL_MODULES := \
75 $(PRODUCT_OUT)/obj/lib_vendor/audio_data.ko \
76 $(PRODUCT_OUT)/obj/lib_vendor/ddr_window_64.ko
77
78BOARD_VENDOR_KERNEL_MODULES += $(DEFAULT_MEDIA_KERNEL_MODULES)
79BOARD_VENDOR_KERNEL_MODULES += $(DEFAULT_WIFI_KERNEL_MODULES)
80
81WIFI_OUT := $(TARGET_OUT_INTERMEDIATES)/hardware/wifi
82
83PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
84
85define cp-modules
86 mkdir -p $(PRODUCT_OUT)/root/boot
87 mkdir -p $(KERNEL_KO_OUT)
88 -cp $(KERNEL_OUT)/drivers/usb/dwc3/dwc3.ko $(KERNEL_KO_OUT)/
89 -cp $(KERNEL_OUT)/drivers/amlogic/usb/dwc_otg/310/dwc_otg.ko $(KERNEL_KO_OUT)/
90# cp $(WIFI_OUT)/broadcom/drivers/ap6xxx/broadcm_40181/dhd.ko $(TARGET_OUT)/lib/
91# cp $(KERNEL_OUT)/../hardware/amlogic/pmu/aml_pmu_dev.ko $(TARGET_OUT)/lib/
92# cp $(shell pwd)/hardware/amlogic/thermal/aml_thermal.ko $(TARGET_OUT)/lib/
93# cp $(KERNEL_OUT)/../hardware/amlogic/nand/amlnf/aml_nftl_dev.ko $(PRODUCT_OUT)/root/boot/
94endef
95
96$(KERNEL_OUT):
97 mkdir -p $(KERNEL_OUT)
98
99$(KERNEL_CONFIG): $(KERNEL_OUT)
100 $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(KERNEL_DEFCONFIG)
101
102$(INTERMEDIATES_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(INSTALLED_BOARDDTB_TARGET)
103 @echo "make Image"
104# $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE)
105 $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) modules Image.gz
106# $(MAKE) -C $(shell pwd)/$(PRODUCT_OUT)/obj/KERNEL_OBJ M=$(shell pwd)/hardware/amlogic/thermal/ ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) modules
107 #$(gpu-modules)
108 $(MAKE) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) -f device/amlogic/common/wifi_driver.mk $(WIFI_MODULE)
109 $(cp-modules)
110 $(media-modules)
111 mkdir -p $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/
112 cp $(KERNEL_KO_OUT)/* $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/
113
114kerneltags: $(KERNEL_OUT)
115 $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) tags
116
117kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
118 env KCONFIG_NOTIMESTAMP=true \
119 $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) menuconfig
120
121savekernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
122 env KCONFIG_NOTIMESTAMP=true \
123 $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) savedefconfig
124 @echo
125 @echo Saved to $(KERNEL_OUT)/defconfig
126 @echo
127 @echo handly merge to "$(KERNEL_ROOTDIR)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)" if need
128 @echo
129
130build-modules-quick:
131 $(media-modules)
132
133$(INSTALLED_2NDBOOTLOADER_TARGET): $(PRODUCT_OUT)/dt.img | $(ACP)
134 @echo "2ndbootloader installed"
135 $(transform-prebuilt-to-target)
136
137$(INSTALLED_KERNEL_TARGET): $(INTERMEDIATES_KERNEL) | $(ACP)
138 @echo "Kernel installed"
139 $(transform-prebuilt-to-target)
140
141$(BOARD_VENDOR_KERNEL_MODULES): $(INSTALLED_KERNEL_TARGET)
142 @echo "BOARD_VENDOR_KERNEL_MODULES: $(BOARD_VENDOR_KERNEL_MODULES)"
143
144
145.PHONY: bootimage-quick
146bootimage-quick: $(INTERMEDIATES_KERNEL)
147 cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET)
148 out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/root | \
149 out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk.img
150 out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL) \
151 --base 0x0 \
152 --kernel_offset 0x1080000 \
153 --ramdisk $(PRODUCT_OUT)/ramdisk.img \
154 $(BOARD_MKBOOTIMG_ARGS) \
155 --output $(PRODUCT_OUT)/boot.img
156 ls -l $(PRODUCT_OUT)/boot.img
157 echo "Done building boot.img"
158
159.PHONY: recoveryimage-quick
160recoveryimage-quick: $(INTERMEDIATES_KERNEL)
161 cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET)
162 out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/recovery/root | \
163 out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk-recovery.img
164 out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL) \
165 --base 0x0 \
166 --kernel_offset 0x1080000 \
167 --ramdisk $(PRODUCT_OUT)/ramdisk-recovery.img \
168 $(BOARD_MKBOOTIMG_ARGS) \
169 --output $(PRODUCT_OUT)/recovery.img
170 ls -l $(PRODUCT_OUT)/recovery.img
171 echo "Done building recovery.img"
172
173.PHONY: kernelconfig
174
175.PHONY: savekernelconfig
176
177endif
178
179$(PRODUCT_OUT)/ramdisk.img: $(INSTALLED_KERNEL_TARGET)
180$(PRODUCT_OUT)/system.img: $(INSTALLED_KERNEL_TARGET)
181