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