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