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