]> rtime.felk.cvut.cz Git - hercules2020/jailhouse-build.git/blobdiff - build/Makefile
Update PREM test and main Makefile
[hercules2020/jailhouse-build.git] / build / Makefile
index 34cdc22ca758b9ccc721467a2bf9a1bca061e157..192c86a1a2f04999ae0d5d55dfdf374c2057bd95 100644 (file)
@@ -1,17 +1,58 @@
-all: buildroot/images/rootfs.cpio.uboot
+all: buildroot/images/rootfs.cpio.uboot linux-4.4/vmlinux
 
-buildroot/images/rootfs.cpio.uboot: rootfs-overlay/lib/firmware/jailhouse.bin rootfs-overlay/lib/modules/3.10.96/kernel
-       $(MAKE) -C buildroot
+NPROC:=$(shell nproc)
 
-rootfs-overlay/lib/firmware/jailhouse.bin: linux-3.10/vmlinux
-rootfs-overlay/lib/firmware/jailhouse.bin: $(addprefix ../jailhouse/,$(shell cd ../jailhouse && git ls-files))
-       $(MAKE) -C ../jailhouse install KDIR=$(CURDIR)/linux-3.10 ARCH=arm64 DESTDIR=$(CURDIR)/rootfs-overlay
+# TX2 U-Boot does not support FIT images
+image.fit: buildroot/images/rootfs.cpio.uboot linux-4.4/vmlinux
+       mkimage -f auto -d linux-4.4/arch/arm64/boot/Image -i buildroot/images/rootfs.cpio.uboot -b linux-4.4/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb image.fit
 
-rootfs-overlay/lib/modules/3.10.96/kernel:
-       $(MAKE) -C linux-3.10 modules_install INSTALL_MOD_PATH=$(CURDIR)/rootfs-overlay
+buildroot/images/rootfs.cpio.uboot: ./buildroot/.config
+buildroot/images/rootfs.cpio.uboot: rootfs-overlay/lib/firmware/jailhouse.bin rootfs-overlay/lib/modules/4.4.38+/modules.dep
+buildroot/images/rootfs.cpio.uboot: $(shell find rootfs-overlay)
+buildroot/images/rootfs.cpio.uboot: rootfs-overlay/bin/prem-test
+       $(MAKE) -j1 -C buildroot ROOTFS_CPIO_COMPRESS_CMD="gzip --fast -c"
 
-linux-3.10/vmlinux:
-       $(MAKE) -C $(@D)
+rootfs-overlay/bin/prem-test: ../test/prem-test
+       cp $< $@
+
+rootfs-overlay/lib/firmware/jailhouse.bin: ../jailhouse/hypervisor/jailhouse.bin
+rootfs-overlay/lib/firmware/jailhouse.bin: $(wildcard ../jailhouse/configs/arm64/*.cell)
+       $(MAKE) -C ../jailhouse -j$(NPROC) install KDIR=$(CURDIR)/linux-4.4 ARCH=arm64 DESTDIR=$(CURDIR)/rootfs-overlay  prefix=/usr
+       mkdir -p rootfs-overlay/jailhouse/configs/ rootfs-overlay/jailhouse/demos/
+#      cp ../jailhouse/inmates/demos/arm64/my-demo.bin rootfs-overlay/jailhouse/demos/
+       cp ../jailhouse/configs/arm64/jetson-tx2.cell rootfs-overlay/jailhouse/configs/
+       cp ../jailhouse/configs/arm64/jetson-tx2-demo.cell rootfs-overlay/jailhouse/configs/
+
+jailhouse: ../jailhouse/hypervisor/jailhouse.bin
+
+../jailhouse/hypervisor/jailhouse.bin: ../jailhouse/include/jailhouse/config.h
+../jailhouse/hypervisor/jailhouse.bin: linux-4.4/vmlinux
+../jailhouse/hypervisor/jailhouse.bin: $(addprefix ../jailhouse/,$(shell cd ../jailhouse && git ls-files))
+       $(MAKE) -C ../jailhouse -j$(NPROC) KDIR=$(CURDIR)/linux-4.4 ARCH=arm64 prefix=/usr
+
+../jailhouse/include/jailhouse/config.h: Makefile
+       rm -f $@.tmp
+       echo '#define CONFIG_TRACE_ERROR             1' >> $@.tmp
+       echo '#define CONFIG_ARM_GIC_V2              1' >> $@.tmp
+       echo '#define CONFIG_MACH_JETSON_TX2         1' >> $@.tmp
+       mv --update $@.tmp $@
+
+rootfs-overlay/lib/modules/4.4.38+/modules.dep: linux-4.4/vmlinux
+       $(MAKE) -C linux-4.4 -j$(NPROC)  modules_install INSTALL_MOD_PATH=$(CURDIR)/rootfs-overlay
+
+linux-4.4/vmlinux:
+       $(MAKE) -C $(@D) -j$(NPROC)
+
+.PHONY: FORCE
+
+../test/prem-test: FORCE
+       $(MAKE) -C ../test
 
 clean:
-       rm buildroot/images/rootfs.cpio.uboot
+       rm buildroot/images/rootfs.cpio.uboot linux-4.4/vmlinux
+
+deploy: ../test/prem-test
+#deploy: ../jailhouse/hypervisor/jailhouse.bin
+       scp ../test/prem-test tx2:/bin
+#      scp ../jailhouse/hypervisor/jailhouse.bin tx2:/lib/firmware
+#      ssh tx2 'sh /etc/init.d/S20jailhouse.sh stop && sh /etc/init.d/S20jailhouse.sh start'