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