blob: b40b649ae6487c30a1e7b06a771f18a1c4fd7a71
1 | #if use probuilt kernel or build kernel from source code |
2 | |
3 | KERNEL_ROOTDIR := common |
4 | KERNEL_KO_OUT := $(PRODUCT_OUT)/obj/lib_vendor |
5 | |
6 | INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel |
7 | |
8 | BOARD_MKBOOTIMG_ARGS := --second $(PRODUCT_OUT)/dtb.img --kernel_offset $(BOARD_KERNEL_OFFSET) |
9 | |
10 | ifneq ($(USE_USB_AS_HOST),true) |
11 | BOARD_MKBOOTIMG_ARGS += --cmdline "otg_device=1" |
12 | endif |
13 | |
14 | ifneq ($(TARGET_KERNEL_BUILT_FROM_SOURCE), true) |
15 | TARGET_PREBUILT_KERNEL := device/amlogic/einstein-kernel/Image.gz |
16 | INSTALLED_BOARDDTB_TARGET := $(PRODUCT_OUT)/dtb.img |
17 | LOCAL_DTB := device/amlogic/einstein-kernel/einstein.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 |
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/einstein-kernel/lib/mali.ko $(PRODUCT_OUT)/vendor/lib/ |
28 | cp device/amlogic/einstein-kernel/lib/modules/* $(KERNEL_KO_OUT)/ |
29 | cp device/amlogic/einstein-kernel/tdk/* $(PRODUCT_OUT)/obj/lib/ |
30 | cp device/amlogic/einstein-kernel/tdk/* $(PRODUCT_OUT)/vendor/lib/ |
31 | -cp device/amlogic/einstein-kernel/lib/optee_armtz.ko $(PRODUCT_OUT)/vendor/lib/ |
32 | -cp device/amlogic/einstein-kernel/lib/optee.ko $(PRODUCT_OUT)/vendor/lib/ |
33 | cp device/amlogic/einstein-kernel/tdk/* $(PRODUCT_OUT)/recovery/root/boot/ |
34 | -cp device/amlogic/einstein-kernel/obj/KERNEL_OBJ/vmlinux $(PRODUCT_OUT)/obj/KERNEL_OBJ/ |
35 | mkdir -p $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/ |
36 | cp $(KERNEL_KO_OUT)/* $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/ |
37 | mkdir -p $(PRODUCT_OUT)/vendor/lib/egl |
38 | mkdir -p $(PRODUCT_OUT)/vendor/lib64/egl |
39 | cp device/amlogic/einstein-kernel/lib/egl/* $(PRODUCT_OUT)/vendor/lib/egl/ |
40 | cp device/amlogic/einstein-kernel/lib64/egl/* $(PRODUCT_OUT)/vendor/lib64/egl/ |
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 | |
50 | else |
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 | |
56 | KERNEL_DEVICETREE := txlx_t962x_r311_2g |
57 | KERNEL_DEFCONFIG := meson64_defconfig |
58 | KERNEL_ARCH := arm64 |
59 | |
60 | WIFI_MODULE := multiwifi |
61 | |
62 | KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ |
63 | KERNEL_CONFIG := $(KERNEL_OUT)/.config |
64 | INTERMEDIATES_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image.gz |
65 | TARGET_AMLOGIC_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/uImage |
66 | TARGET_AMLOGIC_INT_RECOVERY_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image_recovery |
67 | |
68 | BOARD_VENDOR_KERNEL_MODULES := \ |
69 | $(PRODUCT_OUT)/obj/lib_vendor/audio_data.ko \ |
70 | $(PRODUCT_OUT)/obj/lib_vendor/ddr_window_64.ko |
71 | |
72 | BOARD_VENDOR_KERNEL_MODULES += $(DEFAULT_MEDIA_KERNEL_MODULES) |
73 | BOARD_VENDOR_KERNEL_MODULES += $(DEFAULT_WIFI_KERNEL_MODULES) |
74 | |
75 | WIFI_OUT := $(TARGET_OUT_INTERMEDIATES)/hardware/wifi |
76 | |
77 | PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- |
78 | |
79 | define 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/ |
88 | endef |
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/ |
108 | |
109 | kerneltags: $(KERNEL_OUT) |
110 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) tags |
111 | |
112 | kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) |
113 | env KCONFIG_NOTIMESTAMP=true \ |
114 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) menuconfig |
115 | |
116 | savekernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) |
117 | env KCONFIG_NOTIMESTAMP=true \ |
118 | $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) savedefconfig |
119 | @echo |
120 | @echo Saved to $(KERNEL_OUT)/defconfig |
121 | @echo |
122 | @echo handly merge to "$(KERNEL_ROOTDIR)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)" if need |
123 | @echo |
124 | |
125 | build-modules-quick: |
126 | $(media-modules) |
127 | |
128 | $(INSTALLED_KERNEL_TARGET): $(INTERMEDIATES_KERNEL) | $(ACP) |
129 | @echo "Kernel installed" |
130 | $(transform-prebuilt-to-target) |
131 | |
132 | $(BOARD_VENDOR_KERNEL_MODULES): $(INSTALLED_KERNEL_TARGET) |
133 | @echo "BOARD_VENDOR_KERNEL_MODULES: $(BOARD_VENDOR_KERNEL_MODULES)" |
134 | |
135 | |
136 | .PHONY: bootimage-quick |
137 | bootimage-quick: $(INTERMEDIATES_KERNEL) |
138 | cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET) |
139 | out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/root | \ |
140 | out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk.img |
141 | out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL) \ |
142 | --base 0x0 \ |
143 | --kernel_offset 0x1080000 \ |
144 | --ramdisk $(PRODUCT_OUT)/ramdisk.img \ |
145 | $(BOARD_MKBOOTIMG_ARGS) \ |
146 | --output $(PRODUCT_OUT)/boot.img |
147 | ls -l $(PRODUCT_OUT)/boot.img |
148 | echo "Done building boot.img" |
149 | |
150 | .PHONY: recoveryimage-quick |
151 | recoveryimage-quick: $(INTERMEDIATES_KERNEL) |
152 | cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET) |
153 | out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/recovery/root | \ |
154 | out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk-recovery.img |
155 | out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL) \ |
156 | --base 0x0 \ |
157 | --kernel_offset 0x1080000 \ |
158 | --ramdisk $(PRODUCT_OUT)/ramdisk-recovery.img \ |
159 | $(BOARD_MKBOOTIMG_ARGS) \ |
160 | --output $(PRODUCT_OUT)/recovery.img |
161 | ls -l $(PRODUCT_OUT)/recovery.img |
162 | echo "Done building recovery.img" |
163 | |
164 | .PHONY: kernelconfig |
165 | |
166 | .PHONY: savekernelconfig |
167 | |
168 | endif |
169 | |
170 | $(PRODUCT_OUT)/ramdisk.img: $(INSTALLED_KERNEL_TARGET) |
171 | $(PRODUCT_OUT)/system.img: $(INSTALLED_KERNEL_TARGET) |
172 |