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