diff options
| author | Jason Wu <jason.wu.misc@gmail.com> | 2016-04-09 00:09:30 +1000 |
|---|---|---|
| committer | Nathan Rossi <nathan@nathanrossi.com> | 2016-05-03 21:50:58 +1000 |
| commit | 5066fef048366ced30a346e2dca67b009f0d32be (patch) | |
| tree | d4dc4274b8a59d5c8b2edc4e93b79538213e0085 | |
| parent | 2cc62e42b062a6eef2664088b1b1bf4eac99074d (diff) | |
| download | meta-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.conf | 31 | ||||
| -rw-r--r-- | recipes-bsp/device-tree/files/zybo-linux-bd/pcw.dtsi | 63 | ||||
| -rw-r--r-- | recipes-bsp/device-tree/files/zybo-linux-bd/pl.dtsi | 213 | ||||
| -rw-r--r-- | recipes-bsp/device-tree/files/zybo-linux-bd/zybo-linux-bd-zynq7.dts | 185 | ||||
| -rw-r--r-- | recipes-bsp/reference-design/zybo-linux-bd.bb | 68 |
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 | |||
| 8 | require conf/machine/include/tune-zynq.inc | ||
| 9 | require conf/machine/include/machine-xilinx-default.inc | ||
| 10 | require conf/machine/include/machine-xilinx-board.inc | ||
| 11 | |||
| 12 | MACHINE_FEATURES = "ext2 vfat usbhost usbgadget keyboard screen alsa sdio" | ||
| 13 | SERIAL_CONSOLE = "115200 ttyPS0" | ||
| 14 | |||
| 15 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" | ||
| 16 | |||
| 17 | MACHINE_DEVICETREE = " \ | ||
| 18 | zybo-linux-bd/pcw.dtsi \ | ||
| 19 | zybo-linux-bd/pl.dtsi \ | ||
| 20 | zybo-linux-bd/zybo-linux-bd-zynq7.dts \ | ||
| 21 | " | ||
| 22 | |||
| 23 | UBOOT_MACHINE = "zynq_zybo_config" | ||
| 24 | SPL_BINARY = "spl/boot.bin" | ||
| 25 | |||
| 26 | EXTRA_IMAGEDEPENDS += "virtual/bitstream" | ||
| 27 | |||
| 28 | IMAGE_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 @@ | |||
| 1 | SUMMARY = "The reference design for zybo-linux-bd" | ||
| 2 | DESCRIPTION = "Contains the Reference Design Files and hardware software \ | ||
| 3 | hand-off file. The HDF provides bitstream and Xilinx ps7_init_gpl.c/h \ | ||
| 4 | platform headers." | ||
| 5 | SECTION = "bsp" | ||
| 6 | DEPENDS += "unzip" | ||
| 7 | |||
| 8 | LICENSE = "Proprietary" | ||
| 9 | LIC_FILES_CHKSUM = "file://Projects/${HW_BD}/readme.txt;md5=e1cb7639bf00b6e730ff3a7f13714951" | ||
| 10 | |||
| 11 | COMPATIBLE_MACHINE = "zybo-linux-bd-zynq7" | ||
| 12 | |||
| 13 | HW_BD = "linux_bd" | ||
| 14 | |||
| 15 | SRC_URI = "git://github.com/Digilent/ZYBO.git;protocol=https;nobranch=1" | ||
| 16 | SRCREV = "63ca49fe027da49f3b0ac636bd404fd31fbbd945" | ||
| 17 | |||
| 18 | PV = "+git${SRCPV}" | ||
| 19 | |||
| 20 | S = "${WORKDIR}/git" | ||
| 21 | |||
| 22 | HDF = "/Projects/${HW_BD}/hw_handoff/${HW_BD}_wrapper.hdf" | ||
| 23 | |||
| 24 | S ?= "${WORKDIR}/${MACHINE}" | ||
| 25 | |||
| 26 | PROVIDES = "virtual/bitstream virtual/zynq7-platform-init" | ||
| 27 | |||
| 28 | PLATFORM_INIT ?= "ps7_init_gpl.c \ | ||
| 29 | ps7_init_gpl.h" | ||
| 30 | |||
| 31 | FILES_${PN}-platform-init += " \ | ||
| 32 | ${PLATFORM_INIT_DIR}/ps7_init_gpl.c \ | ||
| 33 | ${PLATFORM_INIT_DIR}/ps7_init_gpl.h \ | ||
| 34 | " | ||
| 35 | |||
| 36 | FILES_${PN}-bitstream += " \ | ||
| 37 | download.bit \ | ||
| 38 | " | ||
| 39 | |||
| 40 | PACKAGES = "${PN}-platform-init ${PN}-bitstream" | ||
| 41 | |||
| 42 | BITSTREAM ?= "bitstream-${PV}-${PR}.bit" | ||
| 43 | |||
| 44 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
| 45 | |||
| 46 | inherit zynq7-platform-paths | ||
| 47 | |||
| 48 | do_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 | |||
| 59 | do_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 | } | ||
| 68 | addtask deploy before do_build after do_install \ No newline at end of file | ||
