]> rtime.felk.cvut.cz Git - hercules2020/jailhouse-build.git/blob - build/Makefile
Rename build/linux-4.4 to build/kernel-4.4
[hercules2020/jailhouse-build.git] / build / Makefile
1 all: buildroot/images/rootfs.cpio.uboot kernel-4.4/vmlinux
2
3 NPROC:=$(shell nproc)
4
5 # TX2 U-Boot does not support FIT images
6 image.fit: buildroot/images/rootfs.cpio.uboot kernel-4.4/vmlinux
7         mkimage -f auto -d kernel-4.4/arch/arm64/boot/Image -i buildroot/images/rootfs.cpio.uboot -b kernel-4.4/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb image.fit
8
9 buildroot/images/rootfs.cpio.uboot: ./buildroot/.config
10 buildroot/images/rootfs.cpio.uboot: rootfs-overlay/lib/firmware/jailhouse.bin rootfs-overlay/lib/modules/4.4.38+/modules.dep
11 buildroot/images/rootfs.cpio.uboot: $(shell find rootfs-overlay)
12 buildroot/images/rootfs.cpio.uboot: rootfs-overlay/bin/prem-test
13         $(MAKE) -j1 -C buildroot ROOTFS_CPIO_COMPRESS_CMD="gzip --fast -c"
14
15 rootfs-overlay/bin/prem-test: ../test/prem-test
16         install -D $< $@
17
18 rootfs-overlay/lib/firmware/jailhouse.bin: ../jailhouse/hypervisor/jailhouse.bin
19 rootfs-overlay/lib/firmware/jailhouse.bin: $(wildcard ../jailhouse/configs/arm64/*.cell)
20         $(MAKE) jailhouse-install
21
22 jailhouse: ../jailhouse/hypervisor/jailhouse.bin
23
24 JAILHOUSE_DESTDIR=$(CURDIR)/rootfs-overlay
25
26 jailhouse-install: FORCE
27         $(MAKE) -C ../jailhouse -j$(NPROC) install KDIR=$(CURDIR)/kernel-4.4 ARCH=arm64 DESTDIR=$(abspath $(JAILHOUSE_DESTDIR)) prefix=/usr
28         mkdir -p $(JAILHOUSE_DESTDIR)/jailhouse/configs/ $(JAILHOUSE_DESTDIR)/jailhouse/demos/
29 #       cp ../jailhouse/inmates/demos/arm64/my-demo.bin rootfs-overlay/jailhouse/demos/
30         cp ../jailhouse/configs/arm64/jetson-tx2.cell $(JAILHOUSE_DESTDIR)/jailhouse/configs/
31         cp ../jailhouse/configs/arm64/jetson-tx2-demo.cell $(JAILHOUSE_DESTDIR)/jailhouse/configs/
32
33 # Add something like this to ~/.ssh/config for
34 # jailhouse-install-remote to work out of the box:
35 #
36 #    Host tx2
37 #      Hostname 192.168.1.54
38 INSTALL_HOST ?= root@tx2
39
40 jailhouse-install-remote: JAILHOUSE_DESTDIR=jailhouse-install
41 jailhouse-install-remote: jailhouse-install
42         rsync -rlptD jailhouse-install/ $(INSTALL_HOST):/
43         rsync -rlptD rootfs-overlay/lib/modules/ $(INSTALL_HOST):/lib/modules
44
45 ../jailhouse/hypervisor/jailhouse.bin: ../jailhouse/include/jailhouse/config.h
46 ../jailhouse/hypervisor/jailhouse.bin: kernel-4.4/vmlinux
47 ../jailhouse/hypervisor/jailhouse.bin: $(addprefix ../jailhouse/,$(shell cd ../jailhouse && git ls-files))
48         $(MAKE) -C ../jailhouse -j$(NPROC) KDIR=$(CURDIR)/kernel-4.4 ARCH=arm64 prefix=/usr
49
50 ../jailhouse/include/jailhouse/config.h: Makefile
51         rm -f $@.tmp
52         echo '#define CONFIG_TRACE_ERROR             1' >> $@.tmp
53         echo '#define CONFIG_ARM_GIC_V2              1' >> $@.tmp
54         echo '#define CONFIG_MACH_JETSON_TX2         1' >> $@.tmp
55         mv --update $@.tmp $@
56
57 rootfs-overlay/lib/modules/4.4.38+/modules.dep: kernel-4.4/vmlinux
58         $(MAKE) -C kernel-4.4 -j$(NPROC)  modules_install INSTALL_MOD_PATH=$(CURDIR)/rootfs-overlay
59
60 kernel-4.4/vmlinux:
61         $(MAKE) -C $(@D) -j$(NPROC)
62
63 .PHONY: FORCE
64
65 ../test/prem-test: FORCE
66         $(MAKE) -C ../test
67
68 clean:
69         rm -rf buildroot/images/rootfs.cpio.uboot kernel-4.4/vmlinux buildroot/target `find buildroot/ -name .stamp_target_installed` jailhouse-install
70
71 deploy: ../test/prem-test
72 #deploy: ../jailhouse/hypervisor/jailhouse.bin
73         scp ../test/prem-test tx2:/bin
74 #       scp ../jailhouse/hypervisor/jailhouse.bin tx2:/lib/firmware
75         ssh tx2 'sh /etc/init.d/S20jailhouse.sh stop && sh /etc/init.d/S20jailhouse.sh start'