WORK = $(PWD)/work
CROSSTOOLS = $(PWD)/../../toolchain/crosstools
-KERNEL_VERSION = 3.6.11
+KERNEL_VERSION = 4.9.6
.PHONY: all clean image modules map config
-all: image modules map
+all: dtb image modules map
-clean: image-clean modules-clean map-clean
+clean: dtb-clean image-clean modules-clean map-clean
-distclean: clean image-distclean modules-distclean map-distclean
+distclean: clean dtb-distclean image-distclean modules-distclean map-distclean
-$(WORK)/linux-$(KERNEL_VERSION).tar.bz2:
- wget -P $(WORK) ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-$(KERNEL_VERSION).tar.bz2
+$(WORK)/linux-$(KERNEL_VERSION).tar.xz:
+ wget -P $(WORK) https://www.kernel.org/pub/linux/kernel/v4.x/linux-$(KERNEL_VERSION).tar.xz
-$(WORK)/linux-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION).tar.bz2 config-$(KERNEL_VERSION)
- tar -C $(WORK) -xvjf $(WORK)/linux-$(KERNEL_VERSION).tar.bz2
+$(WORK)/linux-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION).tar.xz config-$(KERNEL_VERSION)
+ tar -C $(WORK) -xvf $(WORK)/linux-$(KERNEL_VERSION).tar.xz
sed -e 's|LINUX_COMPILE_BY=.*|LINUX_COMPILE_BY=devel|g' -e 's|`hostname`|crux-arm.nu|g' -i $(WORK)/linux-$(KERNEL_VERSION)/scripts/mkcompile_h
cd $(WORK)/linux-$(KERNEL_VERSION) && \
make mrproper && \
image-distclean: image-clean
+$(WORK)/vexpress-v2p-ca9.dtb: image
+ cd $(WORK)/linux-$(KERNEL_VERSION) && \
+ export PATH=$(CROSSTOOLS)/bin:$$PATH && \
+ export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
+ make ARCH=arm CROSS_COMPILE=$(TARGET)- vexpress-v2p-ca9.dtb
+ cp -v $(WORK)/linux-$(KERNEL_VERSION)/arch/arm/boot/dts/vexpress-v2p-ca9.dtb $(WORK)/
+ touch $(WORK)/zImage-$(KERNEL_VERSION)
+
+dtb: $(WORK)/vexpress-v2p-ca9.dtb
+
+dtb-clean:
+ rm -vrf $(WORK)/vexpress-v2p-ca9.dtb
+
+dtb-distclean: dtb-clean
+
$(WORK)/modules-$(KERNEL_VERSION): $(WORK)/linux-$(KERNEL_VERSION)
cd $(WORK)/linux-$(KERNEL_VERSION) && \
export PATH=$(CROSSTOOLS)/bin:$$PATH && \