[meta-xilinx] [PATCH 08/19 v2] conf/machine: Add zybo-linux-bd-zynq7 machine support
Jason Wu
jason.wu.misc at gmail.com
Wed Apr 27 00:46:02 PDT 2016
* 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 at gmail.com>
---
v2:
- zybo-linux-bd.bb is move under reference-design
- zybo-linux-bd.bb contents the suggestion made in previous 05/20 patch
- device-tree rename from zybo-linux-bd to zybo-linux-bd-zynq7
- EXTRA_IMAGEDEPENDS virtual/bitstream
- add device-tree MACHINE_ESSENTIAL_EXTRA_RDEPENDS
- remove fit.itb in IMAGE_BOOT_FILES
---
conf/machine/zybo-linux-bd-zynq7.conf | 32 ++++
.../device-tree/files/zybo-linux-bd/pcw.dtsi | 63 ++++++
.../device-tree/files/zybo-linux-bd/pl.dtsi | 213 +++++++++++++++++++++
.../files/zybo-linux-bd/zybo-linux-bd-zynq7.dts | 185 ++++++++++++++++++
recipes-bsp/reference-design/zybo-linux-bd.bb | 68 +++++++
5 files changed, 561 insertions(+)
create mode 100644 conf/machine/zybo-linux-bd-zynq7.conf
create mode 100644 recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi
create mode 100644 recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi
create mode 100644 recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts
create mode 100644 recipes-bsp/reference-design/zybo-linux-bd.bb
diff --git a/conf/machine/zybo-linux-bd-zynq7.conf b/conf/machine/zybo-linux-bd-zynq7.conf
new file mode 100644
index 0000000..4c43fe3
--- /dev/null
+++ b/conf/machine/zybo-linux-bd-zynq7.conf
@@ -0,0 +1,32 @@
+#@TYPE: Machine
+#@NAME: zybo-linux-bd-zynq7
+#@DESCRIPTION: Machine support for zybo-linux-bd project.
+#
+# generated base on ZYBO linux-bd project
+#
+
+require conf/machine/include/tune-zynq.inc
+require conf/machine/include/machine-xilinx-default.inc
+require conf/machine/include/machine-xilinx-board.inc
+
+MACHINE_FEATURES = "ext2 vfat usbhost usbgadget keyboard screen alsa sdio"
+SERIAL_CONSOLE = "115200 ttyPS0"
+
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
+
+MACHINE_DEVICETREE = " \
+ zybo-linux-bd/pcw.dtsi \
+ zybo-linux-bd/pl.dtsi \
+ zybo-linux-bd/zybo-linux-bd-zynq7.dts \
+ "
+KERNEL_IMAGETYPE = "zImage"
+
+UBOOT_MACHINE = "zynq_zybo_config"
+SPL_BINARY = "spl/boot.bin"
+
+EXTRA_IMAGEDEPENDS += "virtual/bitstream"
+
+IMAGE_BOOT_FILES += "boot.bin \
+ ${MACHINE}.dtb \
+ bitstream \
+ "
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 0000000..0f678d3
--- /dev/null
+++ b/recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi
@@ -0,0 +1,63 @@
+/*
+ * CAUTION: This file is automatically generated by Xilinx.
+ * Version: HSI 2015.4
+ * Today is: Fri Mar 4 15:40:49 2016
+*/
+
+
+/ {
+ cpus {
+ cpu at 0 {
+ operating-points = <650000 1000000 325000 1000000>;
+ };
+ };
+};
+&gem0 {
+ phy-mode = "rgmii-id";
+ status = "okay";
+ xlnx,ptp-enet-clock = <0x6750918>;
+};
+&gpio0 {
+ emio-gpio-width = <64>;
+ gpio-mask-high = <0x0>;
+ gpio-mask-low = <0x5600>;
+};
+&i2c0 {
+ clock-frequency = <400000>;
+ status = "okay";
+};
+&i2c1 {
+ clock-frequency = <400000>;
+ status = "okay";
+};
+&intc {
+ num_cpus = <2>;
+ num_interrupts = <96>;
+};
+&qspi {
+ is-dual = <0>;
+ num-cs = <1>;
+ status = "okay";
+};
+&sdhci0 {
+ status = "okay";
+ xlnx,has-cd = <0x1>;
+ xlnx,has-power = <0x0>;
+ xlnx,has-wp = <0x1>;
+};
+&uart1 {
+ current-speed = <115200>;
+ device_type = "serial";
+ port-number = <0>;
+ status = "okay";
+};
+&usb0 {
+ dr_mode = "host";
+ phy_type = "ulpi";
+ status = "okay";
+ usb-reset = <&gpio0 46 0>;
+};
+&clkc {
+ fclk-enable = <0x3>;
+ ps-clk-frequency = <50000000>;
+};
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 0000000..0e358e5
--- /dev/null
+++ b/recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi
@@ -0,0 +1,213 @@
+/*
+ * CAUTION: This file is automatically generated by Xilinx.
+ * Version: HSI 2015.4
+ * Today is: Fri Mar 4 15:40:49 2016
+*/
+
+
+/ {
+ amba_pl: amba_pl {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "simple-bus";
+ ranges ;
+ axi_dynclk_0: axi_dynclk at 43c10000 {
+ compatible = "xlnx,axi-dynclk-1.0";
+ reg = <0x43c10000 0x10000>;
+ xlnx,s00-axi-addr-width = <0x5>;
+ xlnx,s00-axi-data-width = <0x20>;
+ };
+ axi_gpio_btn: gpio at 41210000 {
+ #gpio-cells = <2>;
+ compatible = "xlnx,xps-gpio-1.00.a";
+ gpio-controller ;
+ reg = <0x41210000 0x10000>;
+ xlnx,all-inputs = <0x1>;
+ xlnx,all-inputs-2 = <0x0>;
+ xlnx,all-outputs = <0x0>;
+ xlnx,all-outputs-2 = <0x0>;
+ xlnx,dout-default = <0x00000000>;
+ xlnx,dout-default-2 = <0x00000000>;
+ xlnx,gpio-width = <0x4>;
+ xlnx,gpio2-width = <0x20>;
+ xlnx,interrupt-present = <0x0>;
+ xlnx,is-dual = <0x0>;
+ xlnx,tri-default = <0xFFFFFFFF>;
+ xlnx,tri-default-2 = <0xFFFFFFFF>;
+ };
+ axi_gpio_hdmi: gpio at 41230000 {
+ #gpio-cells = <2>;
+ compatible = "xlnx,xps-gpio-1.00.a";
+ gpio-controller ;
+ interrupt-parent = <&intc>;
+ interrupts = <0 29 4>;
+ reg = <0x41230000 0x10000>;
+ xlnx,all-inputs = <0x1>;
+ xlnx,all-inputs-2 = <0x0>;
+ xlnx,all-outputs = <0x0>;
+ xlnx,all-outputs-2 = <0x0>;
+ xlnx,dout-default = <0x00000000>;
+ xlnx,dout-default-2 = <0x00000000>;
+ xlnx,gpio-width = <0x1>;
+ xlnx,gpio2-width = <0x20>;
+ xlnx,interrupt-present = <0x1>;
+ xlnx,is-dual = <0x0>;
+ xlnx,tri-default = <0xFFFFFFFF>;
+ xlnx,tri-default-2 = <0xFFFFFFFF>;
+ };
+ axi_gpio_led: gpio at 41200000 {
+ #gpio-cells = <2>;
+ compatible = "xlnx,xps-gpio-1.00.a";
+ gpio-controller ;
+ reg = <0x41200000 0x10000>;
+ xlnx,all-inputs = <0x0>;
+ xlnx,all-inputs-2 = <0x0>;
+ xlnx,all-outputs = <0x1>;
+ xlnx,all-outputs-2 = <0x0>;
+ xlnx,dout-default = <0x00000000>;
+ xlnx,dout-default-2 = <0x00000000>;
+ xlnx,gpio-width = <0x4>;
+ xlnx,gpio2-width = <0x20>;
+ xlnx,interrupt-present = <0x0>;
+ xlnx,is-dual = <0x0>;
+ xlnx,tri-default = <0xFFFFFFFF>;
+ xlnx,tri-default-2 = <0xFFFFFFFF>;
+ };
+ axi_gpio_sw: gpio at 41220000 {
+ #gpio-cells = <2>;
+ compatible = "xlnx,xps-gpio-1.00.a";
+ gpio-controller ;
+ reg = <0x41220000 0x10000>;
+ xlnx,all-inputs = <0x1>;
+ xlnx,all-inputs-2 = <0x0>;
+ xlnx,all-outputs = <0x0>;
+ xlnx,all-outputs-2 = <0x0>;
+ xlnx,dout-default = <0x00000000>;
+ xlnx,dout-default-2 = <0x00000000>;
+ xlnx,gpio-width = <0x4>;
+ xlnx,gpio2-width = <0x20>;
+ xlnx,interrupt-present = <0x0>;
+ xlnx,is-dual = <0x0>;
+ xlnx,tri-default = <0xFFFFFFFF>;
+ xlnx,tri-default-2 = <0xFFFFFFFF>;
+ };
+ axi_i2s_adi_0: axi_i2s_adi at 43c20000 {
+ compatible = "xlnx,axi-i2s-adi-1.0";
+ reg = <0x43c20000 0x10000>;
+ xlnx,bclk-pol = <0x0>;
+ xlnx,dma-type = <0x1>;
+ xlnx,has-rx = <0x1>;
+ xlnx,has-tx = <0x1>;
+ xlnx,lrclk-pol = <0x0>;
+ xlnx,num-ch = <0x1>;
+ xlnx,s-axi-min-size = <0x000001FF>;
+ xlnx,slot-width = <0x18>;
+ };
+ axi_vdma_0: dma at 43000000 {
+ #dma-cells = <1>;
+ compatible = "xlnx,axi-vdma-1.00.a";
+ interrupt-parent = <&intc>;
+ interrupts = <0 30 4>;
+ reg = <0x43000000 0x10000>;
+ xlnx,flush-fsync = <0x1>;
+ xlnx,num-fstores = <0x1>;
+ dma-channel at 43000000 {
+ compatible = "xlnx,axi-vdma-mm2s-channel";
+ interrupts = <0 30 4>;
+ xlnx,datawidth = <0x20>;
+ xlnx,device-id = <0x0>;
+ };
+ };
+ v_tc_0: v_tc at 43c00000 {
+ compatible = "xlnx,v-tc-6.1";
+ interrupt-parent = <&intc>;
+ interrupts = <0 31 4>;
+ reg = <0x43c00000 0x10000>;
+ xlnx,det-achroma-en = <0x0>;
+ xlnx,det-avideo-en = <0x1>;
+ xlnx,det-fieldid-en = <0x0>;
+ xlnx,det-hblank-en = <0x1>;
+ xlnx,det-hsync-en = <0x1>;
+ xlnx,det-vblank-en = <0x1>;
+ xlnx,det-vsync-en = <0x1>;
+ xlnx,detect-en = <0x0>;
+ xlnx,fsync-hstart0 = <0x0>;
+ xlnx,fsync-hstart1 = <0x0>;
+ xlnx,fsync-hstart10 = <0x0>;
+ xlnx,fsync-hstart11 = <0x0>;
+ xlnx,fsync-hstart12 = <0x0>;
+ xlnx,fsync-hstart13 = <0x0>;
+ xlnx,fsync-hstart14 = <0x0>;
+ xlnx,fsync-hstart15 = <0x0>;
+ xlnx,fsync-hstart2 = <0x0>;
+ xlnx,fsync-hstart3 = <0x0>;
+ xlnx,fsync-hstart4 = <0x0>;
+ xlnx,fsync-hstart5 = <0x0>;
+ xlnx,fsync-hstart6 = <0x0>;
+ xlnx,fsync-hstart7 = <0x0>;
+ xlnx,fsync-hstart8 = <0x0>;
+ xlnx,fsync-hstart9 = <0x0>;
+ xlnx,fsync-vstart0 = <0x0>;
+ xlnx,fsync-vstart1 = <0x0>;
+ xlnx,fsync-vstart10 = <0x0>;
+ xlnx,fsync-vstart11 = <0x0>;
+ xlnx,fsync-vstart12 = <0x0>;
+ xlnx,fsync-vstart13 = <0x0>;
+ xlnx,fsync-vstart14 = <0x0>;
+ xlnx,fsync-vstart15 = <0x0>;
+ xlnx,fsync-vstart2 = <0x0>;
+ xlnx,fsync-vstart3 = <0x0>;
+ xlnx,fsync-vstart4 = <0x0>;
+ xlnx,fsync-vstart5 = <0x0>;
+ xlnx,fsync-vstart6 = <0x0>;
+ xlnx,fsync-vstart7 = <0x0>;
+ xlnx,fsync-vstart8 = <0x0>;
+ xlnx,fsync-vstart9 = <0x0>;
+ xlnx,gen-achroma-en = <0x0>;
+ xlnx,gen-achroma-polarity = <0x1>;
+ xlnx,gen-auto-switch = <0x0>;
+ xlnx,gen-avideo-en = <0x1>;
+ xlnx,gen-avideo-polarity = <0x1>;
+ xlnx,gen-cparity = <0x0>;
+ xlnx,gen-f0-vblank-hend = <0x500>;
+ xlnx,gen-f0-vblank-hstart = <0x500>;
+ xlnx,gen-f0-vframe-size = <0x2ee>;
+ xlnx,gen-f0-vsync-hend = <0x500>;
+ xlnx,gen-f0-vsync-hstart = <0x500>;
+ xlnx,gen-f0-vsync-vend = <0x2d9>;
+ xlnx,gen-f0-vsync-vstart = <0x2d4>;
+ xlnx,gen-f1-vblank-hend = <0x500>;
+ xlnx,gen-f1-vblank-hstart = <0x500>;
+ xlnx,gen-f1-vframe-size = <0x2ee>;
+ xlnx,gen-f1-vsync-hend = <0x500>;
+ xlnx,gen-f1-vsync-hstart = <0x500>;
+ xlnx,gen-f1-vsync-vend = <0x2d9>;
+ xlnx,gen-f1-vsync-vstart = <0x2d4>;
+ xlnx,gen-fieldid-en = <0x0>;
+ xlnx,gen-fieldid-polarity = <0x1>;
+ xlnx,gen-hactive-size = <0x500>;
+ xlnx,gen-hblank-en = <0x1>;
+ xlnx,gen-hblank-polarity = <0x1>;
+ xlnx,gen-hframe-size = <0x672>;
+ xlnx,gen-hsync-en = <0x1>;
+ xlnx,gen-hsync-end = <0x596>;
+ xlnx,gen-hsync-polarity = <0x1>;
+ xlnx,gen-hsync-start = <0x56e>;
+ xlnx,gen-interlaced = <0x0>;
+ xlnx,gen-vactive-size = <0x2d0>;
+ xlnx,gen-vblank-en = <0x1>;
+ xlnx,gen-vblank-polarity = <0x1>;
+ xlnx,gen-video-format = <0x2>;
+ xlnx,gen-vsync-en = <0x1>;
+ xlnx,gen-vsync-polarity = <0x1>;
+ xlnx,generate-en = <0x1>;
+ xlnx,has-axi4-lite = <0x1>;
+ xlnx,has-intc-if = <0x0>;
+ xlnx,interlace-en = <0x0>;
+ xlnx,max-lines = <0x1000>;
+ xlnx,max-pixels = <0x1000>;
+ xlnx,num-fsyncs = <0x1>;
+ xlnx,sync-en = <0x0>;
+ };
+ };
+};
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 0000000..a08959e
--- /dev/null
+++ b/recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts
@@ -0,0 +1,185 @@
+/dts-v1/;
+/include/ "skeleton.dtsi"
+/include/ "zynq-7000.dtsi"
+/include/ "pcw.dtsi"
+/include/ "pl.dtsi"
+
+/ {
+ model = "Digilent-Zybo-Linux-BD-v2015.4";
+ aliases {
+ serial0 = &uart1;
+ ethernet0 = &gem0;
+ spi0 = &qspi;
+ };
+ chosen {
+ bootargs = "console=ttyPS0,115200 earlyprintk";
+ };
+ memory {
+ device_type = "memory";
+ reg = <0x0 0x20000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ autorepeat;
+ btn4 {
+ label = "btn4";
+ gpios = <&gpio0 50 0>;
+ linux,code = <108>; /* down */
+ gpio-key,wakeup;
+ autorepeat;
+ };
+ btn5 {
+ label = "btn5";
+ gpios = <&gpio0 51 0>;
+ linux,code = <103>; /* up */
+ gpio-key,wakeup;
+ autorepeat;
+ };
+ };
+
+ usb_phy0: usb_phy at 0 {
+ compatible = "usb-nop-xceiv";
+ #phy-cells = <0>;
+ reset-gpios = <&gpio0 46 1>;
+ };
+};
+
+&amba {
+ u-boot,dm-pre-reloc;
+};
+
+&amba_pl {
+ encoder_0: digilent_encoder {
+ compatible = "digilent,drm-encoder";
+ dglnt,edid-i2c = <&i2c1>;
+ };
+
+ xilinx_drm {
+ compatible = "xlnx,drm";
+ xlnx,vtc = <&v_tc_0>;
+ xlnx,connector-type = "HDMIA";
+ xlnx,encoder-slave = <&encoder_0>;
+ clocks = <&axi_dynclk_0>;
+ planes {
+ xlnx,pixel-format = "xrgb8888";
+ plane0 {
+ dmas = <&axi_vdma_0 0>;
+ dma-names = "dma";
+ };
+ };
+ };
+
+ i2s_clk: i2s_clk {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <12288000>;
+ clock-output-names = "i2s_clk";
+ };
+
+ sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "ZYBO-Sound-Card";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,bitclock-master = <&dailink0_master>;
+ simple-audio-card,frame-master = <&dailink0_master>;
+ simple-audio-card,widgets =
+ "Microphone", "Microphone Jack",
+ "Headphone", "Headphone Jack",
+ "Line", "Line In Jack";
+ simple-audio-card,routing =
+ "MICIN", "Microphone Jack",
+ "Headphone Jack", "LHPOUT",
+ "Headphone Jack", "RHPOUT",
+ "LLINEIN", "Line In Jack",
+ "RLINEIN", "Line In Jack";
+ dailink0_master: simple-audio-card,cpu {
+ clocks = <&i2s_clk>;
+ sound-dai = <&axi_i2s_adi_0>;
+ };
+ simple-audio-card,codec {
+ clocks = <&i2s_clk>;
+ sound-dai = <&ssm2603>;
+ };
+ };
+};
+
+&axi_dynclk_0 {
+ compatible = "digilent,axi-dynclk";
+ #clock-cells = <0>;
+ clocks = <&clkc 15>;
+};
+
+&axi_i2s_adi_0 {
+ #sound-dai-cells = <0>;
+ compatible = "adi,axi-i2s-1.00.a";
+ clocks = <&clkc 15>, <&i2s_clk>;
+ clock-names = "axi", "ref";
+ dmas = <&dmac_s 0 &dmac_s 1>;
+ dma-names = "tx", "rx";
+};
+
+&gem0 {
+ phy-handle = <&phy0>;
+ phy-mode = "rgmii-id";
+ local-mac-address = [];
+ gem0_mdio: mdio {
+ phy0: phy at 1 {
+ compatible = "realtek,RTL8211E";
+ device_type = "ethernet-phy";
+ reg = <1>;
+ };
+ };
+};
+
+&i2c0 {
+ eeprom at 50 {
+ /* Microchip 24AA02E48 */
+ compatible = "microchip,24c02";
+ reg = <0x50>;
+ };
+
+ ssm2603: ssm2603 at 1a{
+ #sound-dai-cells = <0>;
+ compatible = "adi,ssm2603";
+ reg = <0x1a>;
+ };
+};
+
+&qspi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ flash0: flash at 0 {
+ compatible = "micron,m25p80", "s25fl128s";
+ reg = <0x0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <50000000>;
+ partition at 0x00000000 {
+ label = "boot";
+ reg = <0x00000000 0x00300000>;
+ };
+ partition at 0x00300000 {
+ label = "bootenv";
+ reg = <0x00300000 0x00020000>;
+ };
+ partition at 0x00320000 {
+ label = "kernel";
+ reg = <0x00320000 0x00a80000>;
+ };
+ partition at 0x00da0000 {
+ label = "spare";
+ reg = <0x00da0000 0x00000000>;
+ };
+ };
+};
+
+&usb0 {
+ usb-phy = <&usb_phy0>;
+};
+
+&v_tc_0 {
+ compatible = "xlnx,v-tc-5.01.a";
+};
\ 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 0000000..9224d2d
--- /dev/null
+++ b/recipes-bsp/reference-design/zybo-linux-bd.bb
@@ -0,0 +1,68 @@
+SUMMARY = "The reference design for zybo-linux-bd"
+DESCRIPTION = "Contains the Reference Design Files and hardware software \
+hand-off file. The HDF provides bitstream and Xilinx ps7_init_gpl.c/h \
+platform headers."
+SECTION = "bsp"
+DEPENDS += "unzip"
+
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://Projects/${HW_BD}/readme.txt;md5=e1cb7639bf00b6e730ff3a7f13714951"
+
+COMPATIBLE_MACHINE = "zybo-linux-bd-zynq7"
+
+HW_BD = "linux_bd"
+
+SRC_URI = "git://github.com/Digilent/ZYBO.git;protocol=https;nobranch=1"
+SRCREV = "63ca49fe027da49f3b0ac636bd404fd31fbbd945"
+
+PV = "+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+HDF = "/Projects/${HW_BD}/hw_handoff/${HW_BD}_wrapper.hdf"
+
+S ?= "${WORKDIR}/${MACHINE}"
+
+PROVIDES = "virtual/bitstream virtual/zynq7-platform-init"
+
+PLATFORM_INIT ?= "ps7_init_gpl.c \
+ ps7_init_gpl.h"
+
+FILES_${PN}-platform-init += " \
+ ${PLATFORM_INIT_DIR}/ps7_init_gpl.c \
+ ${PLATFORM_INIT_DIR}/ps7_init_gpl.h \
+ "
+
+FILES_${PN}-bitstream += " \
+ download.bit \
+ "
+
+PACKAGES = "${PN}-platform-init ${PN}-bitstream"
+
+BITSTREAM ?= "bitstream-${PV}-${PR}.bit"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit zynq7-platform-paths
+
+do_install() {
+ fn=$(unzip -l ${S}/${HDF} | awk '{print $NF}' | grep ".bit$")
+ unzip -o ${S}/${HDF} ${fn} -d ${D}
+ [ "${fn}" == "download.bit" ] || mv ${D}/${fn} ${D}/download.bit
+
+ install -d ${D}${PLATFORM_INIT_DIR}
+ for fn in ${PLATFORM_INIT}; do
+ unzip -o ${S}/${HDF} ${fn} -d ${D}${PLATFORM_INIT_DIR}
+ done
+}
+
+do_deploy () {
+ if [ -e ${D}/download.bit ]; then
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 ${D}/download.bit ${DEPLOY_DIR_IMAGE}/${BITSTREAM}
+ ln -sf ${BITSTREAM} ${DEPLOY_DIR_IMAGE}/download.bit
+ # for u-boot 2016.3 with spl load bitstream patch
+ ln -sf ${BITSTREAM} ${DEPLOY_DIR_IMAGE}/bitstream
+ fi
+}
+addtask deploy before do_build after do_install
\ No newline at end of file
--
1.9.1
More information about the meta-xilinx
mailing list