summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Wu <jason.wu.misc@gmail.com>2016-04-09 00:09:30 +1000
committerNathan Rossi <nathan@nathanrossi.com>2016-05-03 21:50:58 +1000
commit5066fef048366ced30a346e2dca67b009f0d32be (patch)
treed4dc4274b8a59d5c8b2edc4e93b79538213e0085
parent2cc62e42b062a6eef2664088b1b1bf4eac99074d (diff)
downloadmeta-xilinx-5066fef048366ced30a346e2dca67b009f0d32be.tar.gz
conf/machine: Add zybo-linux-bd-zynq7 machine support
* base on Zybo linux_bd reference design * Add device tree with required nodes * hdf is fetch from Digilent github Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
-rw-r--r--conf/machine/zybo-linux-bd-zynq7.conf31
-rw-r--r--recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi63
-rw-r--r--recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi213
-rw-r--r--recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts185
-rw-r--r--recipes-bsp/reference-design/zybo-linux-bd.bb68
5 files changed, 560 insertions, 0 deletions
diff --git a/conf/machine/zybo-linux-bd-zynq7.conf b/conf/machine/zybo-linux-bd-zynq7.conf
new file mode 100644
index 00000000..d8c7f4b5
--- /dev/null
+++ b/conf/machine/zybo-linux-bd-zynq7.conf
@@ -0,0 +1,31 @@
1#@TYPE: Machine
2#@NAME: zybo-linux-bd-zynq7
3#@DESCRIPTION: Machine support for zybo-linux-bd project.
4#
5# generated base on ZYBO linux-bd project
6#
7
8require conf/machine/include/tune-zynq.inc
9require conf/machine/include/machine-xilinx-default.inc
10require conf/machine/include/machine-xilinx-board.inc
11
12MACHINE_FEATURES = "ext2 vfat usbhost usbgadget keyboard screen alsa sdio"
13SERIAL_CONSOLE = "115200 ttyPS0"
14
15MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
16
17MACHINE_DEVICETREE = " \
18 zybo-linux-bd/pcw.dtsi \
19 zybo-linux-bd/pl.dtsi \
20 zybo-linux-bd/zybo-linux-bd-zynq7.dts \
21 "
22
23UBOOT_MACHINE = "zynq_zybo_config"
24SPL_BINARY = "spl/boot.bin"
25
26EXTRA_IMAGEDEPENDS += "virtual/bitstream"
27
28IMAGE_BOOT_FILES += "boot.bin \
29 ${MACHINE}.dtb \
30 bitstream \
31 "
diff --git a/recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi b/recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi
new file mode 100644
index 00000000..0f678d39
--- /dev/null
+++ b/recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi
@@ -0,0 +1,63 @@
1/*
2 * CAUTION: This file is automatically generated by Xilinx.
3 * Version: HSI 2015.4
4 * Today is: Fri Mar 4 15:40:49 2016
5*/
6
7
8/ {
9 cpus {
10 cpu@0 {
11 operating-points = <650000 1000000 325000 1000000>;
12 };
13 };
14};
15&gem0 {
16 phy-mode = "rgmii-id";
17 status = "okay";
18 xlnx,ptp-enet-clock = <0x6750918>;
19};
20&gpio0 {
21 emio-gpio-width = <64>;
22 gpio-mask-high = <0x0>;
23 gpio-mask-low = <0x5600>;
24};
25&i2c0 {
26 clock-frequency = <400000>;
27 status = "okay";
28};
29&i2c1 {
30 clock-frequency = <400000>;
31 status = "okay";
32};
33&intc {
34 num_cpus = <2>;
35 num_interrupts = <96>;
36};
37&qspi {
38 is-dual = <0>;
39 num-cs = <1>;
40 status = "okay";
41};
42&sdhci0 {
43 status = "okay";
44 xlnx,has-cd = <0x1>;
45 xlnx,has-power = <0x0>;
46 xlnx,has-wp = <0x1>;
47};
48&uart1 {
49 current-speed = <115200>;
50 device_type = "serial";
51 port-number = <0>;
52 status = "okay";
53};
54&usb0 {
55 dr_mode = "host";
56 phy_type = "ulpi";
57 status = "okay";
58 usb-reset = <&gpio0 46 0>;
59};
60&clkc {
61 fclk-enable = <0x3>;
62 ps-clk-frequency = <50000000>;
63};
diff --git a/recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi b/recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi
new file mode 100644
index 00000000..0e358e5a
--- /dev/null
+++ b/recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi
@@ -0,0 +1,213 @@
1/*
2 * CAUTION: This file is automatically generated by Xilinx.
3 * Version: HSI 2015.4
4 * Today is: Fri Mar 4 15:40:49 2016
5*/
6
7
8/ {
9 amba_pl: amba_pl {
10 #address-cells = <1>;
11 #size-cells = <1>;
12 compatible = "simple-bus";
13 ranges ;
14 axi_dynclk_0: axi_dynclk@43c10000 {
15 compatible = "xlnx,axi-dynclk-1.0";
16 reg = <0x43c10000 0x10000>;
17 xlnx,s00-axi-addr-width = <0x5>;
18 xlnx,s00-axi-data-width = <0x20>;
19 };
20 axi_gpio_btn: gpio@41210000 {
21 #gpio-cells = <2>;
22 compatible = "xlnx,xps-gpio-1.00.a";
23 gpio-controller ;
24 reg = <0x41210000 0x10000>;
25 xlnx,all-inputs = <0x1>;
26 xlnx,all-inputs-2 = <0x0>;
27 xlnx,all-outputs = <0x0>;
28 xlnx,all-outputs-2 = <0x0>;
29 xlnx,dout-default = <0x00000000>;
30 xlnx,dout-default-2 = <0x00000000>;
31 xlnx,gpio-width = <0x4>;
32 xlnx,gpio2-width = <0x20>;
33 xlnx,interrupt-present = <0x0>;
34 xlnx,is-dual = <0x0>;
35 xlnx,tri-default = <0xFFFFFFFF>;
36 xlnx,tri-default-2 = <0xFFFFFFFF>;
37 };
38 axi_gpio_hdmi: gpio@41230000 {
39 #gpio-cells = <2>;
40 compatible = "xlnx,xps-gpio-1.00.a";
41 gpio-controller ;
42 interrupt-parent = <&intc>;
43 interrupts = <0 29 4>;
44 reg = <0x41230000 0x10000>;
45 xlnx,all-inputs = <0x1>;
46 xlnx,all-inputs-2 = <0x0>;
47 xlnx,all-outputs = <0x0>;
48 xlnx,all-outputs-2 = <0x0>;
49 xlnx,dout-default = <0x00000000>;
50 xlnx,dout-default-2 = <0x00000000>;
51 xlnx,gpio-width = <0x1>;
52 xlnx,gpio2-width = <0x20>;
53 xlnx,interrupt-present = <0x1>;
54 xlnx,is-dual = <0x0>;
55 xlnx,tri-default = <0xFFFFFFFF>;
56 xlnx,tri-default-2 = <0xFFFFFFFF>;
57 };
58 axi_gpio_led: gpio@41200000 {
59 #gpio-cells = <2>;
60 compatible = "xlnx,xps-gpio-1.00.a";
61 gpio-controller ;
62 reg = <0x41200000 0x10000>;
63 xlnx,all-inputs = <0x0>;
64 xlnx,all-inputs-2 = <0x0>;
65 xlnx,all-outputs = <0x1>;
66 xlnx,all-outputs-2 = <0x0>;
67 xlnx,dout-default = <0x00000000>;
68 xlnx,dout-default-2 = <0x00000000>;
69 xlnx,gpio-width = <0x4>;
70 xlnx,gpio2-width = <0x20>;
71 xlnx,interrupt-present = <0x0>;
72 xlnx,is-dual = <0x0>;
73 xlnx,tri-default = <0xFFFFFFFF>;
74 xlnx,tri-default-2 = <0xFFFFFFFF>;
75 };
76 axi_gpio_sw: gpio@41220000 {
77 #gpio-cells = <2>;
78 compatible = "xlnx,xps-gpio-1.00.a";
79 gpio-controller ;
80 reg = <0x41220000 0x10000>;
81 xlnx,all-inputs = <0x1>;
82 xlnx,all-inputs-2 = <0x0>;
83 xlnx,all-outputs = <0x0>;
84 xlnx,all-outputs-2 = <0x0>;
85 xlnx,dout-default = <0x00000000>;
86 xlnx,dout-default-2 = <0x00000000>;
87 xlnx,gpio-width = <0x4>;
88 xlnx,gpio2-width = <0x20>;
89 xlnx,interrupt-present = <0x0>;
90 xlnx,is-dual = <0x0>;
91 xlnx,tri-default = <0xFFFFFFFF>;
92 xlnx,tri-default-2 = <0xFFFFFFFF>;
93 };
94 axi_i2s_adi_0: axi_i2s_adi@43c20000 {
95 compatible = "xlnx,axi-i2s-adi-1.0";
96 reg = <0x43c20000 0x10000>;
97 xlnx,bclk-pol = <0x0>;
98 xlnx,dma-type = <0x1>;
99 xlnx,has-rx = <0x1>;
100 xlnx,has-tx = <0x1>;
101 xlnx,lrclk-pol = <0x0>;
102 xlnx,num-ch = <0x1>;
103 xlnx,s-axi-min-size = <0x000001FF>;
104 xlnx,slot-width = <0x18>;
105 };
106 axi_vdma_0: dma@43000000 {
107 #dma-cells = <1>;
108 compatible = "xlnx,axi-vdma-1.00.a";
109 interrupt-parent = <&intc>;
110 interrupts = <0 30 4>;
111 reg = <0x43000000 0x10000>;
112 xlnx,flush-fsync = <0x1>;
113 xlnx,num-fstores = <0x1>;
114 dma-channel@43000000 {
115 compatible = "xlnx,axi-vdma-mm2s-channel";
116 interrupts = <0 30 4>;
117 xlnx,datawidth = <0x20>;
118 xlnx,device-id = <0x0>;
119 };
120 };
121 v_tc_0: v_tc@43c00000 {
122 compatible = "xlnx,v-tc-6.1";
123 interrupt-parent = <&intc>;
124 interrupts = <0 31 4>;
125 reg = <0x43c00000 0x10000>;
126 xlnx,det-achroma-en = <0x0>;
127 xlnx,det-avideo-en = <0x1>;
128 xlnx,det-fieldid-en = <0x0>;
129 xlnx,det-hblank-en = <0x1>;
130 xlnx,det-hsync-en = <0x1>;
131 xlnx,det-vblank-en = <0x1>;
132 xlnx,det-vsync-en = <0x1>;
133 xlnx,detect-en = <0x0>;
134 xlnx,fsync-hstart0 = <0x0>;
135 xlnx,fsync-hstart1 = <0x0>;
136 xlnx,fsync-hstart10 = <0x0>;
137 xlnx,fsync-hstart11 = <0x0>;
138 xlnx,fsync-hstart12 = <0x0>;
139 xlnx,fsync-hstart13 = <0x0>;
140 xlnx,fsync-hstart14 = <0x0>;
141 xlnx,fsync-hstart15 = <0x0>;
142 xlnx,fsync-hstart2 = <0x0>;
143 xlnx,fsync-hstart3 = <0x0>;
144 xlnx,fsync-hstart4 = <0x0>;
145 xlnx,fsync-hstart5 = <0x0>;
146 xlnx,fsync-hstart6 = <0x0>;
147 xlnx,fsync-hstart7 = <0x0>;
148 xlnx,fsync-hstart8 = <0x0>;
149 xlnx,fsync-hstart9 = <0x0>;
150 xlnx,fsync-vstart0 = <0x0>;
151 xlnx,fsync-vstart1 = <0x0>;
152 xlnx,fsync-vstart10 = <0x0>;
153 xlnx,fsync-vstart11 = <0x0>;
154 xlnx,fsync-vstart12 = <0x0>;
155 xlnx,fsync-vstart13 = <0x0>;
156 xlnx,fsync-vstart14 = <0x0>;
157 xlnx,fsync-vstart15 = <0x0>;
158 xlnx,fsync-vstart2 = <0x0>;
159 xlnx,fsync-vstart3 = <0x0>;
160 xlnx,fsync-vstart4 = <0x0>;
161 xlnx,fsync-vstart5 = <0x0>;
162 xlnx,fsync-vstart6 = <0x0>;
163 xlnx,fsync-vstart7 = <0x0>;
164 xlnx,fsync-vstart8 = <0x0>;
165 xlnx,fsync-vstart9 = <0x0>;
166 xlnx,gen-achroma-en = <0x0>;
167 xlnx,gen-achroma-polarity = <0x1>;
168 xlnx,gen-auto-switch = <0x0>;
169 xlnx,gen-avideo-en = <0x1>;
170 xlnx,gen-avideo-polarity = <0x1>;
171 xlnx,gen-cparity = <0x0>;
172 xlnx,gen-f0-vblank-hend = <0x500>;
173 xlnx,gen-f0-vblank-hstart = <0x500>;
174 xlnx,gen-f0-vframe-size = <0x2ee>;
175 xlnx,gen-f0-vsync-hend = <0x500>;
176 xlnx,gen-f0-vsync-hstart = <0x500>;
177 xlnx,gen-f0-vsync-vend = <0x2d9>;
178 xlnx,gen-f0-vsync-vstart = <0x2d4>;
179 xlnx,gen-f1-vblank-hend = <0x500>;
180 xlnx,gen-f1-vblank-hstart = <0x500>;
181 xlnx,gen-f1-vframe-size = <0x2ee>;
182 xlnx,gen-f1-vsync-hend = <0x500>;
183 xlnx,gen-f1-vsync-hstart = <0x500>;
184 xlnx,gen-f1-vsync-vend = <0x2d9>;
185 xlnx,gen-f1-vsync-vstart = <0x2d4>;
186 xlnx,gen-fieldid-en = <0x0>;
187 xlnx,gen-fieldid-polarity = <0x1>;
188 xlnx,gen-hactive-size = <0x500>;
189 xlnx,gen-hblank-en = <0x1>;
190 xlnx,gen-hblank-polarity = <0x1>;
191 xlnx,gen-hframe-size = <0x672>;
192 xlnx,gen-hsync-en = <0x1>;
193 xlnx,gen-hsync-end = <0x596>;
194 xlnx,gen-hsync-polarity = <0x1>;
195 xlnx,gen-hsync-start = <0x56e>;
196 xlnx,gen-interlaced = <0x0>;
197 xlnx,gen-vactive-size = <0x2d0>;
198 xlnx,gen-vblank-en = <0x1>;
199 xlnx,gen-vblank-polarity = <0x1>;
200 xlnx,gen-video-format = <0x2>;
201 xlnx,gen-vsync-en = <0x1>;
202 xlnx,gen-vsync-polarity = <0x1>;
203 xlnx,generate-en = <0x1>;
204 xlnx,has-axi4-lite = <0x1>;
205 xlnx,has-intc-if = <0x0>;
206 xlnx,interlace-en = <0x0>;
207 xlnx,max-lines = <0x1000>;
208 xlnx,max-pixels = <0x1000>;
209 xlnx,num-fsyncs = <0x1>;
210 xlnx,sync-en = <0x0>;
211 };
212 };
213};
diff --git a/recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts b/recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts
new file mode 100644
index 00000000..a08959e2
--- /dev/null
+++ b/recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts
@@ -0,0 +1,185 @@
1/dts-v1/;
2/include/ "skeleton.dtsi"
3/include/ "zynq-7000.dtsi"
4/include/ "pcw.dtsi"
5/include/ "pl.dtsi"
6
7/ {
8 model = "Digilent-Zybo-Linux-BD-v2015.4";
9 aliases {
10 serial0 = &uart1;
11 ethernet0 = &gem0;
12 spi0 = &qspi;
13 };
14 chosen {
15 bootargs = "console=ttyPS0,115200 earlyprintk";
16 };
17 memory {
18 device_type = "memory";
19 reg = <0x0 0x20000000>;
20 };
21
22 gpio-keys {
23 compatible = "gpio-keys";
24 #address-cells = <1>;
25 #size-cells = <0>;
26 autorepeat;
27 btn4 {
28 label = "btn4";
29 gpios = <&gpio0 50 0>;
30 linux,code = <108>; /* down */
31 gpio-key,wakeup;
32 autorepeat;
33 };
34 btn5 {
35 label = "btn5";
36 gpios = <&gpio0 51 0>;
37 linux,code = <103>; /* up */
38 gpio-key,wakeup;
39 autorepeat;
40 };
41 };
42
43 usb_phy0: usb_phy@0 {
44 compatible = "usb-nop-xceiv";
45 #phy-cells = <0>;
46 reset-gpios = <&gpio0 46 1>;
47 };
48};
49
50&amba {
51 u-boot,dm-pre-reloc;
52};
53
54&amba_pl {
55 encoder_0: digilent_encoder {
56 compatible = "digilent,drm-encoder";
57 dglnt,edid-i2c = <&i2c1>;
58 };
59
60 xilinx_drm {
61 compatible = "xlnx,drm";
62 xlnx,vtc = <&v_tc_0>;
63 xlnx,connector-type = "HDMIA";
64 xlnx,encoder-slave = <&encoder_0>;
65 clocks = <&axi_dynclk_0>;
66 planes {
67 xlnx,pixel-format = "xrgb8888";
68 plane0 {
69 dmas = <&axi_vdma_0 0>;
70 dma-names = "dma";
71 };
72 };
73 };
74
75 i2s_clk: i2s_clk {
76 #clock-cells = <0>;
77 compatible = "fixed-clock";
78 clock-frequency = <12288000>;
79 clock-output-names = "i2s_clk";
80 };
81
82 sound {
83 compatible = "simple-audio-card";
84 simple-audio-card,name = "ZYBO-Sound-Card";
85 simple-audio-card,format = "i2s";
86 simple-audio-card,bitclock-master = <&dailink0_master>;
87 simple-audio-card,frame-master = <&dailink0_master>;
88 simple-audio-card,widgets =
89 "Microphone", "Microphone Jack",
90 "Headphone", "Headphone Jack",
91 "Line", "Line In Jack";
92 simple-audio-card,routing =
93 "MICIN", "Microphone Jack",
94 "Headphone Jack", "LHPOUT",
95 "Headphone Jack", "RHPOUT",
96 "LLINEIN", "Line In Jack",
97 "RLINEIN", "Line In Jack";
98 dailink0_master: simple-audio-card,cpu {
99 clocks = <&i2s_clk>;
100 sound-dai = <&axi_i2s_adi_0>;
101 };
102 simple-audio-card,codec {
103 clocks = <&i2s_clk>;
104 sound-dai = <&ssm2603>;
105 };
106 };
107};
108
109&axi_dynclk_0 {
110 compatible = "digilent,axi-dynclk";
111 #clock-cells = <0>;
112 clocks = <&clkc 15>;
113};
114
115&axi_i2s_adi_0 {
116 #sound-dai-cells = <0>;
117 compatible = "adi,axi-i2s-1.00.a";
118 clocks = <&clkc 15>, <&i2s_clk>;
119 clock-names = "axi", "ref";
120 dmas = <&dmac_s 0 &dmac_s 1>;
121 dma-names = "tx", "rx";
122};
123
124&gem0 {
125 phy-handle = <&phy0>;
126 phy-mode = "rgmii-id";
127 local-mac-address = [];
128 gem0_mdio: mdio {
129 phy0: phy@1 {
130 compatible = "realtek,RTL8211E";
131 device_type = "ethernet-phy";
132 reg = <1>;
133 };
134 };
135};
136
137&i2c0 {
138 eeprom@50 {
139 /* Microchip 24AA02E48 */
140 compatible = "microchip,24c02";
141 reg = <0x50>;
142 };
143
144 ssm2603: ssm2603@1a{
145 #sound-dai-cells = <0>;
146 compatible = "adi,ssm2603";
147 reg = <0x1a>;
148 };
149};
150
151&qspi {
152 #address-cells = <1>;
153 #size-cells = <0>;
154 flash0: flash@0 {
155 compatible = "micron,m25p80", "s25fl128s";
156 reg = <0x0>;
157 #address-cells = <1>;
158 #size-cells = <1>;
159 spi-max-frequency = <50000000>;
160 partition@0x00000000 {
161 label = "boot";
162 reg = <0x00000000 0x00300000>;
163 };
164 partition@0x00300000 {
165 label = "bootenv";
166 reg = <0x00300000 0x00020000>;
167 };
168 partition@0x00320000 {
169 label = "kernel";
170 reg = <0x00320000 0x00a80000>;
171 };
172 partition@0x00da0000 {
173 label = "spare";
174 reg = <0x00da0000 0x00000000>;
175 };
176 };
177};
178
179&usb0 {
180 usb-phy = <&usb_phy0>;
181};
182
183&v_tc_0 {
184 compatible = "xlnx,v-tc-5.01.a";
185}; \ No newline at end of file
diff --git a/recipes-bsp/reference-design/zybo-linux-bd.bb b/recipes-bsp/reference-design/zybo-linux-bd.bb
new file mode 100644
index 00000000..9224d2d1
--- /dev/null
+++ b/recipes-bsp/reference-design/zybo-linux-bd.bb
@@ -0,0 +1,68 @@
1SUMMARY = "The reference design for zybo-linux-bd"
2DESCRIPTION = "Contains the Reference Design Files and hardware software \
3hand-off file. The HDF provides bitstream and Xilinx ps7_init_gpl.c/h \
4platform headers."
5SECTION = "bsp"
6DEPENDS += "unzip"
7
8LICENSE = "Proprietary"
9LIC_FILES_CHKSUM = "file://Projects/${HW_BD}/readme.txt;md5=e1cb7639bf00b6e730ff3a7f13714951"
10
11COMPATIBLE_MACHINE = "zybo-linux-bd-zynq7"
12
13HW_BD = "linux_bd"
14
15SRC_URI = "git://github.com/Digilent/ZYBO.git;protocol=https;nobranch=1"
16SRCREV = "63ca49fe027da49f3b0ac636bd404fd31fbbd945"
17
18PV = "+git${SRCPV}"
19
20S = "${WORKDIR}/git"
21
22HDF = "/Projects/${HW_BD}/hw_handoff/${HW_BD}_wrapper.hdf"
23
24S ?= "${WORKDIR}/${MACHINE}"
25
26PROVIDES = "virtual/bitstream virtual/zynq7-platform-init"
27
28PLATFORM_INIT ?= "ps7_init_gpl.c \
29 ps7_init_gpl.h"
30
31FILES_${PN}-platform-init += " \
32 ${PLATFORM_INIT_DIR}/ps7_init_gpl.c \
33 ${PLATFORM_INIT_DIR}/ps7_init_gpl.h \
34 "
35
36FILES_${PN}-bitstream += " \
37 download.bit \
38 "
39
40PACKAGES = "${PN}-platform-init ${PN}-bitstream"
41
42BITSTREAM ?= "bitstream-${PV}-${PR}.bit"
43
44PACKAGE_ARCH = "${MACHINE_ARCH}"
45
46inherit zynq7-platform-paths
47
48do_install() {
49 fn=$(unzip -l ${S}/${HDF} | awk '{print $NF}' | grep ".bit$")
50 unzip -o ${S}/${HDF} ${fn} -d ${D}
51 [ "${fn}" == "download.bit" ] || mv ${D}/${fn} ${D}/download.bit
52
53 install -d ${D}${PLATFORM_INIT_DIR}
54 for fn in ${PLATFORM_INIT}; do
55 unzip -o ${S}/${HDF} ${fn} -d ${D}${PLATFORM_INIT_DIR}
56 done
57}
58
59do_deploy () {
60 if [ -e ${D}/download.bit ]; then
61 install -d ${DEPLOY_DIR_IMAGE}
62 install -m 0644 ${D}/download.bit ${DEPLOY_DIR_IMAGE}/${BITSTREAM}
63 ln -sf ${BITSTREAM} ${DEPLOY_DIR_IMAGE}/download.bit
64 # for u-boot 2016.3 with spl load bitstream patch
65 ln -sf ${BITSTREAM} ${DEPLOY_DIR_IMAGE}/bitstream
66 fi
67}
68addtask deploy before do_build after do_install \ No newline at end of file